* fix(toolbar): Make it so every built-in app can be closed by outside clicks
* chore: changeset
* test: add tests
* test: fix test
* ci: don't run bundle-size on dev-toolba
* fix(node): add user specified headers to preview server responses
* docs: clarify comment
* style: new line
* test: remove test
* chore: add changeset
* Initial DB migration code
* chore: update package.json
* chore: update lockfile
* feat: add db as top-level config value
* Small package change
* Add a very basic test
* deps: remove unused
* chore: astro/db scripts, exports, deps
* chore: set tsconfig to monorepo defaults
* feat: MVP to use libsql in dev
* fix: test fixture paths
* fix: test file paths
* chore: remove CLI tests
* fix: add astro-scripts to db
* fix: package.json merge
* fix: load seed file separately for build
* feat: create db on filesystem for build
* fix: ul test. It passes now!
* Squashed commit of the following:
commit acdddd728c56f25e42975db7f367ab8a998e8c41
Author: Princesseuh <3019731+Princesseuh@users.noreply.github.com>
Date: Wed Jan 10 14:06:16 2024 -0500
fix: proper type augment for the config
commit b41ca9aacf291d1e5f0a27b6d6339ce4fc608ec3
Author: Nate Moore <nate@astro.build>
Date: Tue Jan 9 14:33:42 2024 -0600
wip: type augmentation
* feat: data() fn with basic type safety
* wip: update from seed file to data()
* fix: bad collectionSchema data type
* refactor: move dev to use filesystem to run seed at right time
* chore: remove seed file logic
* docs: add basic README
* CLI sync command
* Runtime checking of writable
* docs: add join example
* Implement defineWritableCollection
* feat: use studio connection for studio builds
* fix: add defineWritableCollection export
* refactor: use getTableName() util
* feat(db): add support for pass-through `astro db` command
* chore: add error map
* fix: add drizzle import
* refactor: studio -> db cli
* feat: add ticketing example
* fix: bad types in astro config
* fix: remove invalid `data()` on writable collection
* fix: vite warning on load-astro-config
* wip: add seeding for readable collections (nonstable ids!)
* merge migration work into branch
* cleanup migration commands
* migrate seed data to new db push command
* add migrations table to db
* fix remote db bugs
* fix: warn writable collections when studio false
* chore: delete README contents (now on Notion)
* chore: remove blank README
* chore: add dev dependency on db
* Removed unused deps
* 0.1.0
* Add config-augment.d.ts to published artifacts"
* Fixes merge issues with main
* fix: support promise response from data()
* feat: basic glob fixture
* Add a main field
* Give a help message when no db command is provided
* feat: `db push --token` for GitHub CI secrets
* fix getPackage for db package
* 0.1.2
* wip: build a table type
* chore: update lockfile
* chore: temporarily remove `Table` type
* feat: better Table object for type inference
* format
* add primaryKey support
* improve snapshot parsing support
* cleanup primary key support, db push
* add simple db shell
* cleanup old copy paste code
* feat: scrappy global data() prototype
* feat(test): recipes example
* fix: use Extract to narrow keyof to strings
* 0.1.3
* Create a runtime version of createRemoteDatabaseClient
* 0.1.4
* Grab the dbUrl from the environment
* 0.1.5
* Expose the database to the build output
* 0.1.6
* 0.1.7
* 0.1.15
* wip: data() -> set() concept
* fix: just infer insert keys for now
* refactor: rewrite to injected set() function
* deps: chokidar, drizzle
* feat: glob support with { db, table } signature
* chore: move basics to new data set
* refactor: set -> seed
* feat: expose Model.table
* refactor: clean up types
* feat: migrations now working!
* upgrade @libsql/client
* format
* expose relevant types
* 0.1.16
* feat: config design
* feat: add indexes from collectionToTable
* feat: add indexes to setupDbTables
* fix: remove unique constraint on recipeId
* Use an import statement to grab the database file
* 0.1.17
* Remove unused import
* Rename to ?fileurl
* 0.1.18
* feat: index migrations
* move migration logic to turso, add back sync support
* feat: add queries unit tests and fix related bugs
* refactor: move field queries to field-queries.test
* feat: index query tests
* refactor: reorganize the rats nest of files
* Make the DB_URL be root relative
* Upgrade to latest libsql
* 0.1.19
* 0.1.20
* Make work in webcontainer
* 0.1.22
* Remove content database from the static build
* 0.1.23
* chore: remove `optional: true` from pk
* chore: disable console linting for CLI
* fix: remove `id` column from Table type
* chore: remove `AstroId` type
* fix(ex): add `id` col to ticketing
* 0.2.0
* 0.2.1
* add keywords
* 0.2.2
* feat: API shape
* feat: FINALLY collection and name attached
* refactor: move to arrow function signature
* fix: foreignKeys references signature
* chore: unused imports
* feat: add foreignkeys to create table
* chore: lint
* chore: enable foreign keys in local mode only
* refactor: objShallowEqual -> deep diff
* fix: correct `hasDefault` inference
* fix: correct type Config reference
* fix: respect primaryKey from hasDefault
* fix: mark data keys as optional until we have type inference
* improve conflict and dataloss handling
- moved prompts to db push
- moved prompt logic out of lower-level functions
- improved logic overall
- improved user-facing prompt messages
* improve error messaging around studio config missing
* make it more clear when remove vs. local db is in use
* fix bug in prompt logic
* feat: better field.x() types
* feat: better seed() types
* chore: remove `as any` on seed values
* feat: good enough return type on seed :)
* feat: defineData()
* fix: add back promptResponse injection
* fix: use schema.parse to resolve dates
* fix: correctly respect primary key on INSERT INTO
* add short-lived db tokens
* add help output
* add better token error logging
* fix studio tests
* add shortcut link command from studio web ui
* Add support for SQL defaults
You can now use sql`CURRENT_TIMESTAMP`, `NOW`, and a couple of other
helpers, to set defaults.
* chore: todo
* feat: ignore `optional` and `default` when pk is present
* refactor: type `false` instead of type `never`
* feat: prevent `optional` on text pk
* fix db URL import for windows
* fix: add back textField multiline
* fix: remove explicit AUTOINCREMENT on int pk
* feat(db-cli): clean up CLI logging, support --json flag for `astro db verify`, extract shared logic to a utility
* prepare to run seed on all db push commands
* chore: expose setMeta for unit testing
* feat(test): reference add and remove tests
* feat: add references checks to migratiosn
* feat: remove useForeignKey checks
* feat: add pragma when pushing migrations
* feat(test): foreignKeys
* fix: transform collection config to be JSON serializable
* refactor: _setMeta -> preprocess for `table`
* refactor: reference tests
* chore: remove console log
* fix: handle serialized SQL object correctly
* refactor: store raw sql instead
* seed on every push
* Move field schema only a `schema` object
* Fix references test
* 0.3.0
* add default URLs to db package
* 0.3.1
* Fix input types
* fix: primaryKey type check
* 0.3.2
* fix: respect default in table types
* fix: avoid dropping tables on production seed
* fix: escape name on drop table
* feat: allow verify to mock migration file
* Handle unauthorized linking
* Fix verbiage of unauthorized link warning
* Add some color to the unauthorized message
* 0.3.3
* Improve the unauthorized error output
* 0.3.4
* fix: better error message
* Seed the Themes in build too
* Push skipped test
* chore: remove dead isJsonSerializable check
* fix: use `dateType` for dates (oops)
* refactor: clarify date coerce comment
* refactor: remove unused coerce
* chore: unskip date test
* feat: seed -> seedReturning
* refactor: throw when seeding writable in prod
* Add unsafeWritable option
* refactor: use FieldsConfig for Table generic
* chore: lint
* fix: use z.input for AstroConfigWithDB type
* fix: add defaults for boolean config options
* Support new CLI command structure
* Allow writable in the tests
* fix: handle defaults for safe type changes
* refactor: avoid selecting ['schema'] on input types
* 0.3.5
* Rename field->column, collection->table
* Rename collections->tables
* rename to defineReadableTable
* deps: upgrade ticketing-example
* fix: stray console.log
* deps: bump preact again
* chore: preact->react
* fix: parse params.event as number
* fix: correct event references
* Allow integrations to define schema
* fix: file-url plugin failure on repeated generateBundle() runs
* update url
* Cleanup
* Linting
* fix windows file permission issue
When runnng `astro dev`, the watcher would close trying to delete the `content.db` file due to a file permission error. This change makes the local DB client a disposable to allow cleanup after usage.
* Formatting
* "fix" Symbol.dispose usage
---------
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: bholmesdev <hey@bholmes.dev>
Co-authored-by: Fred K. Schott <fkschott@gmail.com>
Co-authored-by: itsMapleLeaf <19603573+itsMapleLeaf@users.noreply.github.com>
* chore: use biome to sort imports
* do the sorting
* Update package.json
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
---------
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Base Environment
* SSRRoutePipeline -> AppEnvironment
* BuildPipeline -> BuildEnvironment
* DevPipeline -> DevEnvironment
* per-request pipeline
* internal middleware: i18n
* delete callEndpoint
* pipeline access for internal middleware
* Address review comments
`environment.ts` is now lives directly in `src/core`, rather than `src/core/render`.
`environment.createPipeline` is removed. `Pipeline.create` is used instead.
Constructors with positional arguments are replaced by `Environment.create` with named arguments.
Clarifies the use of `HiddenPipeline`.
* migrate some of `RenderContext`'s responsibilities to `Pipeline`
* delete renderPage
* RenderContext.params -> Pipeline.params
* delete `RenderContext`
* `Pipeline` -> `RenderContext`
* `Environment` -> `Pipeline`
* `AppEnvironment` -> `AppPipeline`
* `BuildEnvironment` -> `BuildPipeline`
* `DevEnvironment` -> `DevPipeline`
* provide locals directly to renderContext
* add changeset
* add remote image dimension probing, and param for getImage options, and new astro error
* add inferSize parameter to getImage, which probes remote image size, and respective types to picture and image component
* add fixture and tests
* add changeset
* attempt to fix pnpm-lock.yaml
* fix pnpm-lock.yaml again
* pnpm-lock spacing
* fix pnpm-lock AGAIN
* better description of error for docgen
* improve failed to probe error message and correct required dimensions error
* increase timeout for mdx tests
* increasing mdx timeout to 2min to see if it passes, will reduce if it does
* setting mdx timeout to 70 seconds
* Update packages/astro/src/assets/services/service.ts
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
* refactor to move logic to getImage instead of validateOptions and to not add a third type to image and picture
* fix broken link created by docs PR
* remove the probe-image-size library due to its use of node APIs
* undo all changes to service.ts that were left after moving inferSize logic to getImage
* update error message
* remove probe-image-size library all together, update error message, add vendored version of complete image-size library instead of refactored version
* Update .changeset/tame-cameras-change.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/tame-cameras-change.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* reword the error message based on Sarah's previous review
* remove probe-image-size from pnpmlock
* fix lockfile?
* update error message name
* move image-size into vendor folder
* add eslint ignore to a line in image-size
* test if change to mdx test timeout was needed
* Update .changeset/tame-cameras-change.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* update changset syntax
* patch parse heif to account for filetype block being out of order
---------
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Improve Node.js performance using an AsyncIterable
* Oops
* Get rid of extra abstraction
* Update .changeset/hip-cherries-behave.md
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
* Check if already resolved
* Resolve on done
* Get rid of unneeded "done"
* Done when length is zero
* Let errors resolve
* Update packages/astro/src/runtime/server/render/astro/render.ts
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Move doctype to top-level
* Document the new function
* Update .changeset/hip-cherries-behave.md
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Update .changeset/hip-cherries-behave.md
---------
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Fixes an issue with view transition names containing spaces or punctuation.
* reworked, more robust approach
* better readability and also escapes the escape character (_)
* update changeset
* add comemnts to describe the re-encoding
* updated changeset
* typos
* Apply suggestions from code review
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* simplify decoding it ever required.
* better coverage and now also checks animation behavior
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* fix: Fixing the issue of errors caused by multiple values in the role, when multiple roles exist, check each role.
fix#9856
* Update .changeset/eight-flowers-remain.md
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* chore: Migrate some astro-*.test.js to node:test
* revert astro-dev-headers and astro-client-only
* replace strictEqual with equal in astro-class-list
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* chore: Migrate All packages/create-astro/test to node:test
* Some minor fix
* Requested Changes done
* Reopen
* Apply suggestions from code review
* let's test with concurrency
* chore: fix possible false positive tests
* todo test
* skip tests
* Apply suggestions from code review
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Fix an issue where ReadableStream wasn't canceled in dev mode
* Add changeset
* add test
---------
Co-authored-by: lilnasy <69170106+lilnasy@users.noreply.github.com>
* feat(markdoc): Add support for using a custom component for images
* chore: changeset
* test: add test
* Update .changeset/shaggy-spies-sit.md
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
---------
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
* Create simple react element if element has no children
* Fix for when element has text
* add changeset
* minor -> patch
---------
Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* fix: use correct data object when parsing schema
* feat(test): add `strict()` to slug schema test
* chore: changeset
* docs: "Adds support for"
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
---------
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* fix(i18n): fix regression in current locale
* Update .changeset/shy-wolves-ring.md
* Update packages/astro/test/i18n-routing.test.js
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Update .changeset/six-fishes-beg.md
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* fix test case
---------
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* Revert "fix(compiler): Support dynamic slot names (#9605)"
This reverts commit 8ce40a417c.
* chore: changeset
* Update .changeset/weak-pans-sit.md
* chore: bump compiler version
* fix failing test
We were expecting the source code to produce an error, but in
2.4.0 of the compiler, that generates valid code
---------
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
* Progressively add new tests (remove old later)
* Finalize tests
* Remove unused comments
* Assert that errors are not present and add jsdocs to util function
* Fix
* Remove mocha deps
* fix(NodeApp): end with "Internal server error" on mid-stream error
* add changeset
* add test
* Apply suggestions from code review
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* adds the ./ prefix to the import statement for user
* remove accidental new line added
* add tests
* add changeset
* Update young-eyes-film.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* add test
* added runtime endpoint test for `new Response`
* added `try..catch` for reroute directive handling
Fixes#9871
* added changeset
* replaced `try..catch` with HTTP status code check
based on the suggestion of @lilnasy
* updated changeset description
* added more tests for the endpoint reroute header
* fixed grammar in `renderEndpoint` comment
* updated endpoint tests to check for the reroute directive header in lower-case
* updated changeset description
* Fix: Fix a bug that Japanese files were not displayed correctly.
* chore: generate change description
* Update .changeset/cool-colts-watch.md
* add test case for non-UTF-8 file name
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* fix(i18n): compute current locale from route instead of request
* Update .changeset/large-kangaroos-camp.md
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
---------
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* fix: fix `transition:name` can be unicode
* delete prefix -
* use for func
* add changeset
* Update .changeset/cold-bobcats-shave.md
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* fix review issue
* fix review issue
* add comment
* add \ to regex
* fix some issue
* delete unused import
* remove a rule
* remove valid rule --
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* Update transition.ts
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
* format
* use cssesc to escape name
* test: add e2e test
* add charset for layout
* use the raw value for e2e test
* use cssesc instead of toValidIdent
* uncomment
---------
Co-authored-by: Martin Trapp <94928215+martrapp@users.noreply.github.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* chore(@astrojs/node): use Node.js for testing
* revert file
* address feedback
* feedback
* Run tests in a single process (#9823)
* Run tests in a single process
* Make test less flaky
* chore: remove module
---------
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
* fix(errors): Add more information to some error messages
* chore: changeset
* Apply suggestions from code review
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* feat(node): add trailing slash support
* add changeset
* test(node): add base route test in trailing-slash.js
detected an infinite loop in base path when trailingSlash: never
* fix(node): avoid infinite redirect when trailingSlash: never
* address test failures after rebase pt.1
* address test failures after rebase pt.2
---------
Co-authored-by: lilnasy <69170106+lilnasy@users.noreply.github.com>
* fix: Fix regression on dynamic sibling trees and index inside rest parameter folders
* Add extra test scenarios
* Make `/[foo].astro` also win over `/[foo]/[...rest].astro`
* Make `/[foo].astro` also win over `/[foo]/[...rest].astro`
* Update tests
* Remove commented out code
* Update .changeset/six-shrimps-glow.md
* Fix sorting cycle
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* rearrange plugins and add props to Image component
* add tests and update lockfile
* add changeset
* re-rearrange plugin order, gfm/smartypants then user defined then image related then shiki/prism
* make more generic
* add more/better tests
* remove unused logger
---------
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
The latest version of `vite-plugin-markdown` uses a regular
expression that includes the file path via string concatenation.
However the file path is not escaped for use in a regular
expressions. So if a markdown document includes a reference to an
image file name which includes certain special characters it will
cause the build to fail.
This patch escapes regex special characters in the file path string
being injected into the regular expression. While I found that not
all special characters will cause this problem, it seems safer to
simply escape all regex specials. I also added test to verify this.
Related to: Commit 165cfc154b
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>