* feat(assets): Add Vite plugin
* feat(images): Set up Image component
* fix(types): Attempt to fix type generation
* Revert "fix(types): Attempt to fix type generation"
This reverts commit 063aa276e2.
* fix(image): Fix image types causing build to fail
* feat(image): Implement client side part
* feat(services): Allow arbitrary transforms parameters
* fix(image): Fix paths and types
* config(types): Update config types to provide completions for available services
* feat(image): Add serving in dev
* feat(image): Improve type error messages
* refactor(image): Move sharp's parseParams to baseService
* refactor(image): Skip work in dev for remote servies
* feat(image): Add support for remote images
* feat(image): Add squoosh service
* chore: update export map
* refactor(image): Abstract attributes handling by services
* config(vercel): Remove test image service
* feat(image): Support for relative images in Markdown (WIP)
* feat(images): Add support for relative images in Markdown
* feat(image): Update with RFC feedback
* fix(image): Fix alt error on getImage
* feat(image): Add support for assets validation through content collections
* feat(image): Remove validateTransform
* feat(image): Move to assets folder
* fix(image): Fix package exports
* feat(image): Add static imports references to virtual moduel
* fix(image): Fix images from content collections not working when embedded
* chore: lockfile
* fix(markdown): Fix type
* fix(images): Flag enhanced images behing an experimental flag
* config(example): Update images example conifg
* fix(image): Fix types
* fix(image): Fix asset type for strict, allow arbritary input and output formats
* chore: fix example check
* feat(image): Emit assets for ESM imported images
* Add initial core image tests (#6381)
* feat(images): Make frontmatter extraction more generic than images for future
* feat(image): Add support for building
* fix(image): Fix types
* fix(images): Fix compatibility with image integration
* feat(images): Cuter generation stats
* fix(images): Globals are unsafe, it turns out
* fix(images): Only generate images if flag is enabled
* fix(images): Only create `addStaticImage` in build
* feat(images): Add SSR endpoint
* fix(images): Only inject route in SSR
* Add tests for SSR
* Remove console.log
* Updated lockfile
* rename to satisfy the link gods
* skip build tests for now
* fix(images): Fix WASM files not being copied in dev
* feat(images): Add quality presets
* fix build tests running
* Remove console.log
* Add tests for getImage
* Test local services
* Test the content collections API
* Add tests for quality
* Skipping content collections test
* feat(image): Add support for `~/assets` alias
* test(image): Add tests for aliases in dev
* Fix windows + content collections
* test(image): Add tests for aliased images and images in Markdown
* Fix markdown images being built
* Should be posix join
* Use the optimized image
* fix test
* Fixes windows smoke
* fix(image): Nits
* feat(images): Add automatic update for `env.d.ts` when experimental images are enabled
* fix(images): Revert env.d.ts change if the user opted-out of the experimental image support
* chore: remove bad image example project
* feat(image): Rename `experimental.images` to `experimental.assets`
* fix(images): Remove unused code in MDX integration
* chore: Remove unrelated change
* fix(images): Remove export from astro/components
* Fix, esm import on Win
* test(images): Add test for format
* fix(images): Add `client-image.d.ts` to export map
* chore: changeset
* fix(images): Adjust with feedback, no more automatic refine, asset() -> image()
* fix(images): Fix types
* fix(images): Remove unnecessary spread
* fix(images): Better types for parseUrl and transform
* fix(images): Fix types
* fix(images): Adjust from feedback
* fix(images): Pass width and height through getHTMLAttributes even if they're not added by the uesr
* fix(images): Recusirsively extract frontmatter assets
* fix(images): Use a reduce instead
* feat(images): Add support for data: URIs
* chore: changeset
* docs(images): Misc docs fixes
* Update .changeset/gold-rocks-cry.md
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update .changeset/gold-rocks-cry.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/assets/services/service.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/assets/services/service.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/assets/services/service.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/assets/types.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/assets/types.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
---------
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Matthew Phillips <matthew@matthewphillips.info>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* fix(vercel): update getRequest to use undici
* Changeset
* haha ts-expect-error is a double-edged sword
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* fix: don't mix Vite plugins when spawning temporary Vite server
* chore: include command to `createVite` options
* chore: use `command` and exclude `preview`
* chore: add test
* fix(test): remove command check from apply fn
* chore: add hint about filtering vite plugins and command
* chore: apply suggestion
Co-authored-by: Ben Holmes <hey@bholmes.dev>
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* fix(endpoints): Add a warning when trying to set encoding and headers in SSR
* fix(endpoint): Oops, it'd be great if it actually worked
* fix(endpoint): Fix import path
* fix(endpoint): Add link to docs
* Update packages/astro/src/core/endpoint/index.ts
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* fix: don't output encoding warning if endpoint is pre-rendered
* Update packages/astro/src/core/endpoint/index.ts
* Update packages/astro/src/core/endpoint/index.ts
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* [Lit] render DSD attributes based on `shadowRootOptions`
## Changes
- Update `@astrojs/lit`’s `server.js` to properly render elements with `delegatesFocus: false` set in their `shadowRootOptions`.
- Logic is based on `@lit-labs/ssr` [latest implementation as found here](b0c3f82ef0/packages/labs/ssr/src/lib/render-value.ts (L738))
## Testing
A test was added to ensure an element with `delegatesFocus` set to true has this attribute properly included in the rendered static markup.
* chore: add changeset
* fix: bump `undici` to v5.20.0
* fix(cookies): Hopefully the last time we mess with undici and cookies
* chore: add @astrojs/telemetry to changeset
---------
Co-authored-by: Princesseuh <princssdev@gmail.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* fix: use getSetCookie, if available
* fix: explicitly use entries
* fix(image): be defensive on node@18.14.1
* chore: update changeset
* ci: skip test in 18.14.1
* [create-astro] Execute the 'git' step as the final interaction
This ensures the initialized repository has all configuration
changes commited in the first commit
* Add changeset
* @astrojs/image: add support for SVG images
* @astrojs/image: add tests for SVG images
* @astrojs/image: update README.md with SVG format info
* Add minor changeset for @astrojs/image
* test: add fixture
* test: add test case
* test: fix tests
* feat: support mjs/ js file extensions for cc config
* chore: sync lockfile
* test: make assertion more specific
* test: make template minimal
* chore: add changeset
* feat: add warning when `allowJs` is `false`
* improve warning
* extract tsconfig loader to another function
* rename to more descriptive variable
* apply review suggestion
Co-authored-by: Ben Holmes <hey@bholmes.dev>
---------
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* feat(intergration/vercel): add vercel analytics support
* docs(intergration/vercel): add vercel analytics prop
* docs(intergration/vercel): bump version to 3.1.0
* Update packages/integrations/vercel/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* docs(intergration/vercel): add file name for example
* feat(intergration/vercel): convert analytics to ts and support in edge
* docs(intergration/vercel): move file names to code blocks as comments
* fix(intergration/vercel): remove unused import
* feat(intergration/vercel): add analytics support to static mode
* chore(intergration/vercel): revert version change
* style(intergration/vercel): add a blank line after astro import
* chore(intergration/vercel): generate file by changeset
* Update .changeset/eighty-bobcats-deliver.md
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/integrations/vercel/README.md
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/integrations/vercel/src/analytics.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* chore(intergration/vercel): simplify analytics script
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Add additional scoping for head buffering
* Add test for direct usage of nested component
* Add special scoping for Astro.scopes.render()
* Generate propagation map during the build
* Move to a maybeHead instruction
* Properly serialize for SSR
* More conservative scoping
* Maybe had should honor result._metadata.hasRenderedHead
* Properly type slots
* Allow template result to be passed
* Add changeset
* fix(netlify): Try to make polyfill external
* feat(webapi): Add polyfill applier for SSR
* fix(netlify): Externalize polyfills so they're always applied before user code
* chore: changeset
* test(netlify): Add test for polyfill being in the proper place
* config(netlify): Remove unnecessary change to package.json
* revert(netlify): Revert changes
* feat(astro): Add a way for packages to explicitely mark themselves as needing to be external
* Update .changeset/silent-dragons-sell.md
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* feat: use vite dev server for content config
* refactor: improve export naming
* chore: update `sync` to spin up server
* refactor: run sync before build in cli
* fix: move sync call to build setup
* chore: clean up attachContent... types
* chore: remove unneeded comment
* chore: changeset
* fix: attachContentServerListeners in unit tests
* fix: allow forced contentDirExists
* chore: update schema signature
* fix: move content listeners to unit test
* chore remove contentDirExists flag; unused
* chore: stub weird unit test fix
* minor fixes for errors related to vercel SSR in core
* yielding empty string instead of nothing, to not exit the iterator
---------
Co-authored-by: AirBorne04 <>
* Fix lit hydration not having the same reactive values
* add changeset
* add clientEntrypoint to package exports
* update tests
* add changeset
* only add defer-hydration when strictly necessary
* remove second changest
* fix test typos
Currently, @astrojs/image allows *importing* images from srcDir
only. Importing images from outside srcDir fails miserably *in dev
mode* and produces incorrect src.
This happens because `path.relative(fileURLToPath(config.srcDir), id)`
resolves to "../something" and when joined with '/@astroimage' cancels
it out (`join('/@astroimage', '../../something')` => `'/something'`).
Rework /@astroimage URL scheme to be similar to "/@fs/" scheme—always
export absolute path to the target file.
* fix: add error handling for invalid arguments
* chore: add changeset
* Update packages/astro/src/core/errors/errors-data.ts
Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com>
---------
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com>
* chore: script, rename delayed -> propagated
* fix: consistent propagatedAssets flag
* feat: inject those scripts in dev!
* test: scripts included in dev and build
* chore: add TODO for prod build fix
* chore: changeset
* Allow passing `undefined` to transform options
This fixes#6001, allowing undefined passed as a variable in addition to not passing the property at all
* Create strange-olives-rest.md
* Improve error message for missing `widths` prop
* Add changeset
* Add a check for existing .git directory (and skip if one is found).
* Changeset attempt :-)
* Update .changeset/try-button-rumor.md
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Update vite-plugin-content-assets.ts
* Add changeset for #5927
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Co-authored-by: Anders Kaseorg <andersk@mit.edu>
* Updated according to new configuration
Astro imports the `defineConfig` function from `astro/config`. The `integrations` key needs to be passed into the `defineConfig` function, but it is not shown in the README. Updated the README according to the CLI example.
* update alpine
* update image
* update lit
* update mdx
* update preact
* update prefetch
* update react
* update sitemap
* update solid
* update svelte
* update tailwind
* update turbolinks
* update vue
* chore: add changeset
* update image
* update svelte readme
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Astro <Code> component is not able to use a custom theme anymore
* Astro <Code> component is not able to use a custom theme anymore
* Astro <Code> component is not able to use a custom theme anymore
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* fix
* add test
* use `fileURLToPath` instead
* chore: changeset
* remove useless config file
* revert back to using `decodeURIComponent`
* test: better test
* re-revert back to using `fileURLToPath`
* [ci] release
* Update changelogs (#5955)
* [ci] release
* Wrap astro 2.0 beta logs in `<details>`
* Add link to docs upgrade guide
* First pass cleaning up 2.0 release notes
* mdx changes from Sarah
* combine 5584 and 5842 in deno, image, netlify
* markdown/remark incl (5684 & 5769) to match mdx
* Tweak markdown/remark formatting
* Format astro-prism
* Format astro-rss
* Format create-astro
* Format cloudflare
* Format lit
* Format partytown
* Format node
* Format preact
* Format react
* Format solid
* Format svelte
* Format tailwind
* Format vercel
* Format vue
* Format telemetry
* Format webapi
* Format scripts
* Reinstate h3s for headings
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* Reformat mdx
* astro & markdown/remark: Combine #5679 & #5684 changelogs
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Ben Holmes <hey@bholmes.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* feat: respect `slug` frontmatter prop
* chore: replace `slug` check with proper types
* fix: regen types on `slug` change
* chore: add TODO on slug gen
* tests: update to use `slug` frontmatter prop
* chore: add error message on `slug` inside object schema
* lint
* chore: add note on frontmatter parse
* refactor: move content errors to new heading
* chore: ContentSchemaContainsSlugError
* chore: changeset
* docs: be 10% less gentle
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* fix: avoid parsing slug on unlink
* docs: clarify old API is for beta users
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* First stylistic pass
* Rework for x/o instead of and
* fix typo
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Add changeset
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Rename getEntry to getEntryBySchema
* Improve entrySlug types and return undefined
* Add changeset
* Update packages/astro/src/content/template/types.d.ts
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* Update the types to accept both raw string and known value
* Add comment on the implementation not currently being O(1)
Co-authored-by: Ben Holmes <hey@bholmes.dev>
* fix(image): Remove unnecessary polyfill now that we dropped Node 14
* fix(squoosh): Remove fetch of local wasm binary since undici doesn't support that
* chore: changeset
* Simplify HMR handling
* Try skip test to reveal other test result
* Support virtual files
* Fix head injection
* Revert CI changes
* Bring back normalizeFilename
* Refactor
* Add changeset
* refactor: remove experimental.cc from core
* chore: remove experimental flag from tests
* fix: mock contentDir in remark tests
* fix: check vfile.path in rel-image-error plugin
* fix: move .astro/ excludes to all test/fixtures
* fix: include test/**/fixtures in ignore
* chore: changeset
* fix: always generate types on init
* fix: skip type generation when no content dir found
* fix: avoid stripping `.ts` for existsSync check
* chore: changeset
* fix: run type gen when content/ dir added in dev
* feat(webapi): Remove unnecessary polyfills now that we dropped support for Node 14
* feat(webapi): Removed more unnecessary polyfills for Node 16
* chore: changeset
* chore: Update engines field
* fix(deps): Remove node-fetch
* feat(polyfills): Remove node-fetch for undici
* feat(webapi): Remove node-fetch from the webapis polyfills for undici
* feat(core): Remove node-fetch for undici in Astro core
* feat(telemetry): Remove node-fetch for undici
* feat(node): Remove node-fetch for undici in node integration
* feat(vercel): Remove node-fetch for undici in Vercel integration
* chore: update lockfile
* chore: update lockfile
* chore: changeset
* fix(set): Fix set directives not streaming correctly on Node 16
* Try another approach
* Debugging
* Debug fetch
* Use global fetch if there is one
* changeset for lit
* Remove web-streams-polyfill
* Remove web-streams-polyfill license note
* Update .changeset/stupid-wolves-explain.md
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Initial refactor
* Extract as vite plugin
* Cleanup vite plugin
* Reduce option passing
* Use localhost as preview default host
* Simplify base handling
* Fix host handling
* Add changeset
* Remove unused imports
* Remove unused sirv dep
* Try pin playwright to 1.28.1
* Update playwright
* Try this
* Speed up CI
* Try fix page off
* Refactor networkidle
* Ensure open connections are destroyed when the preview server is closed
* Revert debug code
Co-authored-by: Matthew Phillips <matthew@matthewphillips.info>
* Add Astro as a peerDependency
* Add changeset
* Update .changeset/thin-seahorses-worry.md
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* ci(node): Move CI to Node 16 and add Node 18 to the matrix
* fix(netlify): Fix set-cookie not working on Node 18
* fix(netlify): Handle if `set-cookie` is already somehow an array (apparently it can?)
* test(node): Fix `toPromise` to match Astro's
* fix(tests): Use the actual underlying ArrayBuffer instance to create the buffer in toPromise
* chore: changeset
* feat: add smartypants flag
* test: smartypants in markdown and mdx
* docs: Smartypants -> SmartyPants
* chore: changeset
* chore: update changeset with 1.0 -> 2.0 in mind
* chore: bump to minor change
* feat(errors): Add file location where error happened during build for user-generated errors
* chore: changeset
* fix(errors): Only add information if the error is in a compatible shape
* feat(errors): Add hint to throw Error objects instead of other types for better information
* test(errors): Add test to make sure errors in build have the error location
* chore(lockfile): Update lockfile
* chore: misc text fixes
* feat: slugify slug to handle capitals and spaces
* docs: add not on Slugger issues
* deps: bump to github-slugger 2.0
* refactor: new Slugger() -> slug util
* fix: stop using URL.pathname
* fix: `file://` prefix on isContentFlagImport
* test: spaces in fixture file name
* chore: add `test:unit:match`
* refactor: handle collection errors from getEntryInfo
* test: unit getEntryInfo
* chore: changeset
* chore: markdown-remark out of date
* fix: correctly strip index on windows
* fix: move to utils, fix slug regex
* refactor: intermediate var
* lint: `path` variable shadowing
* chore: add not on allowFilesOutsideCollection
* fix(astro/core): Do not add base to hoisted script body
* fix(astro/core): Add base path to hoisted .js files only
* fix(astro/core): undo style changes
* Add new overlay
* Fix CSS errors missing the proper stacktrace
* Fix names not working in some cases
* Add changeset
* Fix Playwright not detecting the overlay
* Update E2E test
* Fix tests
* Small refactor, fix syntax highlight on light mode, fix code element showing even with no code
* Simplier injection
* Add Markdown support to CLI reporting
* Fix not being able to navigate with the keyboard to the open in editor link
* aria-hide some svgs (#5508)
we should also make the "open in editor" button a button, not a link, if we are using JS for interactions
* Implement close method so Vite can close the overlay when needed
* Fix filepaths not being absolute when coming from node_modules for errors
* Fix multi line errors with indentation not showing correctly
* Fix entire page being scrolled to the error line in certain cases
* Update docs links
* Put the new error overlay behind a flag
* add flag for e2e tests
Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Allow setting domain when deleting cookies
* Add delete cookie with domain tests
* Fix syntax for AstroCookieDeleteOptions type
* Add changeset
* Update to a minor change rather than a patch
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
With this new `server.headers` option, the users can specify
custom headers for `astro dev` and `astro preview` servers.
This is useful when they want to build a website requiring
specific response headers such as `Cross-Origin-Opener-Policy`.
* test(astro-rss): Compare XML using chai-xml
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
* fix(astro-rss): Generate feed with proper XML escaping
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
* Head propagation
* Adding a changeset
* Fix broken build
* Self review stuff
* Use compiler prerelease exact version
* new compiler version
* Update packages/astro/src/vite-plugin-head-propagation/index.ts
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Use getAstroMetadata
* add .js
* make relative lookup work on win
* Use compiler@0.30.0
* PR review comments
* Make renderHead an alias for a better named function
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
A PR merged back in April changed the type of Params, allowing numbers to be provided in addition to strings. See https://github.com/withastro/astro/pull/3087. However, as said PR changed the type of Params instead of GetStaticPathsItem, it also affects Astro.params. This commit moves the change to GetStaticPathsItem, reverting the type of Astro.params.
* Use Vite's resolve to resolve paths for client:only
* Adding a changeset
* Add it to the markdown legacy plugin too
* Remove fully resolving
* Fully resolve in the analyzer
* don't do this twice
* remove dead code
* feat: provide HOST env variable at runtime
* doc: add change to documentation
* Update documentation according to suggestions
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* fix: empty string is considered as undefined
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* I cant catch an error in the loadRemoteImage function when the fetch function occurs error
* I cant catch an error in the loadRemoteImage function when the fetch function occurs error
* fix ssg file
Co-authored-by: wuls <linsheng.wu@beantechs.com>
Co-authored-by: Okiki Ojo <okikio.dev@gmail.com>
* Allow Code component to run in Vercel
* Adding a changeset
* Pass theme through to `codeToHtml`
* Use script to generate languages
* another bundling approach
* fix lint warnings
* Use Vite to load non JS astro configs
* Adding a changeset
* Allow config to not exist
* Use a file url
* Use proload as a fallback
* add missing peerdep
* fix lint mistakes
* Refactor the vite-load
* First check if the file exists
* Pass through fs
* Update packages/astro/src/core/config/vite-load.ts
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Also load astro.config.cjs
* Do search before trying to load
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Revert "Revert "Allow image-pool to be used as its own Worker (#5317)" (#5360)"
This reverts commit 20e60c6e08.
* Remove special image-pool.js moving around
* Merge in assetIncludes
* changeset
* Copy to chunk folder in SSR too
* Update tidy-shoes-yawn.md
* Use base rather than site to create subpath for links/scripts
* Adding a changeset
* Warn when the site has a pathname but not using base
* fix asset test
* fix asset inlining behavior
* Properly support trailingSlash: never with a base
* adding a changeset
* Pass through the base
* only mess with pathname when trailingSlash === 'never'
* maybe fixes stuff
* Update based on review notes
* Revert "Allow image-pool to be used as its own Worker (#5317)"
This reverts commit d701ae074a.
* Adding a changeset
* Remove diff
* Remove unused code
* chore: upgrade @astrojs/compiler
* fix: update test to match new compiler behavior
* test: verify that all styles are bundled
Co-authored-by: Nate Moore <nate@astro.build>
* Handle `base` in adapters
* Use removeBase in the test adapter
* Update packages/integrations/node/src/preview.ts
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Update packages/integrations/cloudflare/src/server.advanced.ts
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Include the subpath for links
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Surface configuration errors to the client
* Actually start the container on restart
* Add beforeRestart to clear the console
* Some minor changes, restarted() returns an Error maybe
* Refactor testing code
* Adding a changeset
* Graceful error recovery in the dev server
Move dev-container to dev
Update for the lockfile
Invalidate modules in an error state
Test invalidation of broken modules
Remove unused error state
Normalize for windows
try a larger timeout
Fixes build
just for testing
more testing
Keep it posix
fully posix
* Fix up Windows path for testing
* some debugging
* use posix join
* finally fixed
* Remove leftover debugging
* Reset the timeout
* Adding a changeset
* test: add tests
* test: add test case
* test: update test
* fix: add new extensions to regex used to removed
* chore: add changeset
* test: update test
* Refactor error handling
* Fix import path in test
* Revert "Fix import path in test"
This reverts commit 5ca34f3c09.
* Fix import path in test
* Fix AggregateErrors actually not being.. an aggregration of errors
* Fix missing info in Vite enhanced error
* Conserve original error name if we have one
* Workaround compiler issue
* GitHub action please
* Update E2E test
* Wrap ssrFixStacktrace in try/catch
* Refactor Vite/Node methods out of the general index.ts
* Fix missing import
* Add changeset
* enable access to cloudflare runtime
* added get runtime api
added context to the runtime in "advanced" mode
* added typings and adjusted some return vars
* added default types
* added usage description to changeset and readme
Co-authored-by: AirBorne04 <unknown>
Co-authored-by: AirBorne04 <>
* fix: also pass attrs to underlying img
`class` for direct img styling, `width` & `height` to prevent layout shift, etc need to be passed to the underlying img tag to work.
* remove redundant attr from picture tag
* revert to previous commit
- seemed to break some tests
- can't deal with fixing that right now, maybe later
* only passing attributes to the img
* adding a note to the README
* chore: add changeset
Co-authored-by: Tony Sullivan <tony.f.sullivan@outlook.com>
* test1
* fixed test
* removed console.log
* changeset
* pnpm-lock
* fixed test again
* fta
* fta2
* fix: wait for fetch
* -fixed test template
* empty
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: My Name <my.name@my-company.com>
* adding cookies to the an api route response, also when returning a simple result
* in dev server, convert a simple endpoint result into a response object
Co-authored-by: AirBorne04 <unknown>
Co-authored-by: AirBorne04 <>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Add new fields to API route context
* Add props and redirect
* Pass custom redirect status code
* Correctly pass props in api routes
* Add better docs
* Add test
* Fix build
* Add constants file
* Add links to jsdoc
* Workaround lint issue
* Thanks Chris
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Missed one doc change
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Add more detail to the changesets
* Strict redirect status type
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Added support for updating tsconfig.json when using astro add
* Refactor
* Remove unneeded change
* Fix build failling due to type difference
* Extend changeset description
* First run
* Works with tailwind!
* Added TSConfig to watchlist
* Changeset
* Fix eslint
* Renamed `isConfigReload` --> `isRestart` and `injectWatchTarget` --> `addWatchFile`
* Refactored watchTargets to watchFiles
* Refactor createSettings
* addWatchFile now accepts URL
* Fix getViteConfig
* Expanded description of the change
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* Check that removal of url.hash breaks no tests
* test if status-quo is as expected
* Adapt tests to fail
* Adapt the shouldPreload function to skip same path
* Add changeset
* remove query params from file extension
* Revert changes to make change as small as possible
* moving the removeQueryParam check to basename()
* chore: adding a changeset
* adding SSR test coverage for new picture test cases
Co-authored-by: Tony Sullivan <tony.f.sullivan@outlook.com>
* adjusting cloudflare adapter (respecting user config)
define better solid ssr config
* only inline the framework
this needs to happen for worker build in order to have the correct build mode for the framework, which needs the nodejs no matter if it is for node or the browser.
Co-authored-by: AirBorne04 <daniel@floatingpixels.com>
* Yield out potentional slot instructions when rendering dynamic tags
* Adding a changeset
* yield instead of return
* Handle the fact that renderComponent returns an iterable
* Only yield out html once
* fix(astro): tag jsx vnodes with renderer so errors are properly handled
* chore: fix missing package in test
Co-authored-by: Nate Moore <nate@astro.build>
* Move module declarations for Markdown and MDX to the proper file so they're globally available
* Remove tsconfig.json depending on client.d.ts unnecessarily
* Fix CSS ordering between imported and Astro styles
* Fix linting errors
* Add changeset and upgrade compiler version
* Update test to reflect shared styles placed before page styles
* Update endpoint.ts
* add warning for post routes called when output is not server
* Update famous-camels-study.md
* Update endpoint.ts
* If not get
* Resolve changes
* Update Picture.astro
the image variable of getPicture contains a width and height property, which we usually require. In this case, the image is wrapped in a picture tag and the img tag itself should not have a width and height property as this will break the responsiveness of the image provided by the picture tag.
* added changeset
* fixing SSG picture tests that were expecting img dimensions
Co-authored-by: Tony Sullivan <tony.f.sullivan@outlook.com>
* WIP: adding a service built on @squoosh/lib
* WIP: investigating memory leaks in Squoosh
* WIP: vendoring Squoosh to work with our build
* chore: a bit of cleanup and a small perf gain
* removing a few unused deps
* fix: removing temp .only() in sharp test
* hooking up the last build steps to copy over .wasm files
* removing the duplicated lib/*.wasm files
* defaulting to Sharp for the initial @next release
* make sure pnpm always runs the postbuild script
* removing a few node dependencies
* refactor: move the copy .wasm build step out of the SSR bundle
* linter fixes
* fixing lock file
* chore: add TEMP changeset
* fix built wasm location for SSG builds
* Revert "defaulting to Sharp for the initial @next release"
This reverts commit 1a8d4f7f60.
* removing sharp dependency
* Revert "fix built wasm location for SSG builds"
This reverts commit 446b80bb53.
* chore: update lockfile
* fixing up image tests for the wasm loader
* updating the README for squoosh
* parallel wasm builds
* refactor: a bit of house keeping
* perf: allow a thread for each output encoding format
* fix: dev broke with the shift to wasm workers
* adds a new `astro:build:generated` hook for SSG builds
* fix: typo + calling cleanup methods in wasm codecs
* adding @astrojs/webapi for the TransformStream polyfill
* Revert "adding @astrojs/webapi for the TransformStream polyfill"
This reverts commit 39e5b845a5.
* perf: using sharp for most of the CI tests
* chore: update lockfile
* removing hard-coded squoosh imports
* fix: adding sharp to rollup externals
* test: using dev for the squoosh tests
* fix: updating the build output dir for wasm filles in SSG builds
* updating the changeset with migration details
* Revert "adds a new `astro:build:generated` hook for SSG builds"
This reverts commit 59b5fec7be.
* nit: adding comments for the wasm file copy
* chore: fix eslint warning
* Add HTTP Proxy Support to `fetch` Polyfill
Use `global-agent` to support HTTP_PROXY, HTTPS_PROXY, and NO_PROXY
environment variables.
* Add Changeset For HTTP Proxy Support in `fetch`
* `create-astro`: always create `tsconfig.json`
Currently, we only make sure `tsconfig.json` exists when `strict` or `strictest` is selected. Both `default` & `optout` are intended to correspond to `base` -- and will do so for all [23 official templates](https://github.com/withastro/astro/tree/main/examples), but not necessarily for third-party templates.
The [example command for installing a third-party template](https://github.com/withastro/astro/blob/a800bf7/packages/create-astro/README.md?plain=1#L31-L35) is (rather conveniently for the sake of this PR!) an example of a template without a `tsconfig.json` file, and installing it with the `default` ("Relaxed") Typescript option results in no `tsconfig.json` file, rather than a `tsconfig.json` file containing `{ "extends": "astro/tsconfigs/base" }` as would be expected.
This PR addresses this scenario.
It also explicitly sets the `tsconfig.json` file to `{ "extends": "astro/tsconfigs/base" }` when `default` (which I renamed to `base`, still presented to the user as "Relaxed") or `optout` is selected (`optout` has always printed a warning about the importance of `tsconfig.json` & `src/env.d.ts` but otherwise behaved identically to `default`). This is necessary in two scenarios:
1. When the `tsconfig.json` file was created by this script.
2. When it either didn't already include `"extends"`, or it extended a different config by default. For example, some third-party templates might default to `strict`, in which case I'm guessing we'd want to respect the user's choice and change that to `base`.
* update `del` 6.1.1 --> 7.0.0
* test: prevent excess writes
(without this it triggers many times)
* test: create-astro typescript prompt
* changeset
* fix: recursive `mkdirSync`
* test: longer timeout for `windows-latest` OS
(see if this fixes failing tests)
* better glob path creation, don't hardcode `/`
* test: longer timeout for windows-latest OS
(since I'm about to trigger another CI run by pushing a commit, might as well try this too)
* create-astro test: show last CLI output on timeout
* drop variable timeout
Typescript tests are slower than directory tests, but they are all usually less than 5000 ms. Less complexity, easier to maintain.
* DRY new error output
* Update lockfile
* Sync lockfile with main
* Update lockfile
Co-authored-by: Princesseuh <princssdev@gmail.com>
* docs: add MDXLayoutProps to README
* chore: changeset
* nit: remove "if you understand this diff"
* nit: AdD tYpE sAfEtY
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/integrations/mdx/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Revert "Update preact example to match @astrojs/preact ranges (#4840)"
This reverts commit d650a1161a.
* Revert "[ci] format"
This reverts commit e3c78c5b16.
* Revert "Support shared signals in Preact islands (#4763)"
This reverts commit 5e46be5468.
* Support signals in Preact islands
* Add a changeset
* Only add signals if we need them
* Refactor signal logic into its own module
* Keep track of the signals used
* Revert "Revert "Adds a new "astro:build:generated" hook for SSG builds (#4772)" (#4774)"
This reverts commit 13a4b0d488.
* fix: updating for latest merge with main
* supports Uint8Array/Uint16Array/Uint32Array
* update astro-island to supports the added types
* run changeset
* apply format
* pass metadata through
* using Array type
* write test cases for serializing Uint8Array/Uint16Array/Uint32Array
* fix the broken test cases
* add type assertion for psychological safety
* this changes is minor change
* feat: serialize UintArrays directly
* Update index.ts
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* [chore] replaces hard-coded `minify` values with `vite.build.minify`
* [style] changes ternary to not-equals
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* [chore] removes `minify` in favor of user config & Vite defaults
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Remove explicit `Transfer-Encoding: chunked`
This header is not necessary and is ignored by essentially all HTTP
servers when provided explicitly by the user. This is because the HTTP
transport layer handles adding this header automatically as needed.
Some variations of HTTP transport (like HTTP/2, which is enabled by
default in Deno, Netlify, and CFW) have no notion of
`Transfer-Encoding: chunked`, because all responses are streamed.
* add changeset
* Refactor to remove AstroConfig['_ctx']
* Fix type error
* Export validateConfig
* Move to an options bag for createSettings
* Move config tests into test/untils/config
* Add a changeste
* fix build
* Properly allow file uploads in the dev server
* Allow custom 404 route to handle API route missing methods
* Add a changeset
* what was i thinking
* Pass through the pathname
* Move the try/catch out and into handleRequest
* await the result of handleRoute
* Update peer dep
* Create leaders-of-the-free-world.md
Update: `@astrojs/tailwindcss` project with `tailwindcss` as a `peer-dependency`
* Removed tailwindcss as 'dependency'
* Update `pnpm-lock` with changes to deps
* Update .changeset/leaders-of-the-free-world.md
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>