0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-16 21:46:22 -05:00
Commit graph

6306 commits

Author SHA1 Message Date
Matt Kane
a79a8b0230
Content Layer (#11360)
* Empty commit

* Changeset

* feat: add Content Layer loader (#11334)

* wip

* wip

* wip

* Update demo

* Add meta

* wip

* Add file loader

* Add schema validation

* Remove log

* Changeset

* Format

* Lockfile

* Fix type

* Handle loading for data store JSON

* Use rollup util to import JSON

* Fix types

* Format

* Add tests

* Changes from review

* fix: sync content layer in dev (#11365)

* wip

* wip

* wip

* Update demo

* Add meta

* wip

* Add file loader

* Add schema validation

* Remove log

* Changeset

* Format

* Lockfile

* Fix type

* Handle loading for data store JSON

* Use rollup util to import JSON

* Fix types

* Format

* Add tests

* Changes from review

* Sync content layer in dev

* feat: add typegen for loaders (#11358)

* fix: watch for content layer changes (#11371)

* fix: watch for content layer changes

* Add test

* feat: adds simple loader (#11386)

* wip

* Add simple loader

* Fix type guard

* Tighten loader schema

* Add loader function to type

* Reinstall vitest

* feat: add glob loader (#11398)

* feat: add glob loader

* Enable watching and fix paths

* Store the full entry object, not just data

* Add generateId support

* Fix test

* Rename loaders to sync

* Refacctor imports

* Use getEntry

* Format

* Fix import

* Remove type from output

* Windows path

* Add test for absolute path

* Update lockfile

* Debugging windows

* Allow file URL for base dir

* Reset time limit

* feat: add markdown rendering to content layer (#11440)

* feat: add glob loader

* Enable watching and fix paths

* Store the full entry object, not just data

* Add generateId support

* Fix test

* Rename loaders to sync

* Refacctor imports

* Use getEntry

* Format

* Fix import

* Remove type from output

* Windows path

* Add test for absolute path

* Update lockfile

* Debugging windows

* Allow file URL for base dir

* Reset time limit

* wip: add markdown rendering to content layer

* use cached entries

* CLean up types

* Instrument more of the build

* Add digest helper

* Add comments

* Make image extraction work

* feat: image support for content layer (#11469)

* wip

* wip

* Add image to benchmark

* Stub assets if missing

* Resolve assets in data

* Ignore virtual module

* Format

* rm log

* Handle images when using cached data

* Fix CCC

* Add a comment

* Changes from review

* Format

* Use relative paths for asset files

* Pass all md props to getImage

* Ensure dotastro dir exists

* Fix tests

* Changes from review

* Don't use temp array in getcollection

* Add error handling

* Format

* Handle paths that are already relative

* Dedupe sync runs

* Fix syncing in dev

* Changes from review

* Windows paths ftw

* feat(content-layer): support references in content layer (#11494)

* Support references in content layer

* Fix utf8 rendering

* Warn for invalid entries

* Fix test

* lol windows paths

* Remove assertion

* chore: fix content layer types (#11527)

* Add experimental_content type

* Fix import

* Make data store methods generic

* fix loader types

* Lockfile

* Clean content layer with `--force` (#11541)

* Clearn content layer with `--force`

* Add tests

* Document --force flag

* Fixes to content layer render types (#11558)

* Lockfile

* feat: use devalue to serialize content layer data (#11562)

* feat: use devalue to serialize content layer data

* Fix import

* Use devalue stringify

* Unused import

* Propagate error messages correctly

* Support --force flag in sync and dev (#11581)

* Support --force flag in sync and dev

* Fix test

* Separate render function and merge content layer types (#11579)

* Separate render function and merge content layer types

* Changes from review

* fix: clear content layer cache if config has changed (#11591)

* fix: clear content layer cache if config has changed

* Add test

* Watch config

* Change from review

* fix: skip glob files in content dir (#11622)

* fix: skip glob files in content dir

* Changes from review

* Log pattern

* Refactor content layer into shared instance (#11625)

* Refactor content layer into shared instance

* Clean up when testing

* Handle cleanup

* fix: support filters in content layer getCollection (#11631)

* Throw when using deprecated getEntryByX functions with content layer (#11637)

* Updates to content layer types and jsdocs (#11643)

* Add hot key to reload content layer (#11626)

* Add hot key to reload content layer

* Fix filename

* Remove cli message

* Update example

* Change key to "s"

* feat: handle simple mdx rendering (#11633)

* feat: handle simple mdx rendering

* cleanup

* feedback

* fix regression

* remove log

* flip condition

* update tests

* log collections to understand the error

* let's try this alternative

* try parallel test to understand the issue

* chore: use a new fixture to fix tests

* rebase and docs

* fix regressions

* remove old code

* address feedback

* rename param

* log error

* rebase

* chore: try a different cache dir to solve the error test

* fix invalidation of the module when there's no store available

* address suggestion

* run formatter

* update lock file

* Lint

* Add experimental content layer flag (#11652)

* Add experimental content layer flag

* Syntax and format

* Aside

* Format

* Reset content config between runs

* Update fixture

* Update terminology

* Lint

* wut

* Normalize render function return value (#11663)

* Add markdoc support to content layer (#11664)

* Add markdoc support to content layer

* Switch test to cheerio

* Update benchmarks

* update lock file

* Update content layer flag docs (#11682)

* Update content layer flag docs

* Apply suggestions from code review

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* More markdoc

* Typo

* Apply suggestions from code review

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Add changeset for content layer experimental release (#11644)

* Add changeset for content layer experimental release

* Update changeset

* Update .changeset/smooth-chicken-wash.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* feat: injectTypes (#11551)

* feat: make inline config 1st arg

* fix: run config done in sync

* feat: start working on injectTypes

* feat: write files

* feat: adapt core features

* feat: migrate db to injectTypes

* feat: special db handling

* feat: update settings instead of workarounds

* fix: create dotAstroDir

* feat: refactor sync tests

* fix: path

* fix: paths

* chore: add comments

* feat: overwrite content file if exists

* chore: remove unused db env related code

* feat: use dotAstroDir for settings

* chore: simplify astro env sync

* feat: use dotAstroDir for preferences

* feat: handle db in integration api

* chore: reorganize

* feat: format

* feat: add test

* Discard changes to examples/basics/astro.config.mjs

* Discard changes to examples/basics/package.json

* Discard changes to pnpm-lock.yaml

* chore: remove test files

* feat: update examples dts

* fix: dts

* chore: changesets

* fix: indentation

* Apply suggestions from code review

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>

* Apply suggestions from code review

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>

* chore: format

* Update packages/astro/src/integrations/hooks.ts

* Update .changeset/mean-horses-kiss.md

* feat: remove formatting

* feat: handle fs errors

* feat: remove astro:db special path handling

* feat: add fs error

* Update packages/astro/src/content/types-generator.ts

* Update .changeset/mean-horses-kiss.md

* Update errors-data.ts

* Update .changeset/mean-horses-kiss.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update .changeset/mean-horses-kiss.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>

* Add file generation and flag for content intellisense (#11639)

* feat: add type to infer input type of collection

* refactor:

* feat: generate json schema for content too

* feat: generate a manifest of all the collections

* refactor: unnecessary type

* fix: only add content collections to manifest

* chore: changeset

* fix: generate file URLs

* fix: flag it properly

* fix: save in lower case

* docs: add jsdoc to experimental option

* nit: move function out

* fix: match vscode flag name

* Update packages/astro/src/@types/astro.ts

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update packages/astro/src/@types/astro.ts

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update serious-pumas-run.md

* test: add tests

* Add content layer support

* Apply suggestions from code review

* fix: test

* Update .changeset/serious-pumas-run.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Apply suggestions from code review

* Remove check for json

---------

Co-authored-by: Matt Kane <m@mk.gg>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* nit: use same filesystem error as injectTypes

* fix: code component was missing support for meta string (#11605)

* fix: code component was missing support for meta string

Fixed #11604

* Create odd-buttons-pay.md

* <Code>: add reference link for meta prop

* Apply suggestions from code review

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update .changeset/odd-buttons-pay.md

* Update .changeset/odd-buttons-pay.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

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>

* Deprecates exporting prerender with dynamic values (#11657)

* wip

* done i think

* Add changeset

* Use hook instead

* Reorder hooks [skip ci]

* Update .changeset/eleven-pens-glow.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Fix run

* Fix link

* Add link

Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>

* More accurate migration [skip ci]

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>

* Use node parseArgs instead of yargs-parser and arg (#11645)

* wip

* done

* Add changeset

* Format

* Update

* Fix houston

* Fix test

* Fix test

* [ci] format

* resolve conflict

---------

Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
Co-authored-by: Julien Cayzac <jcayzac@users.noreply.github.com>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>
Co-authored-by: Bjorn Lu <ematipico@users.noreply.github.com>
2024-08-14 11:49:19 +01:00
Bjorn Lu
19a7259211 [ci] format 2024-08-14 10:08:44 +00:00
Bjorn Lu
849e4c6c23
Use node parseArgs instead of yargs-parser and arg (#11645)
* wip

* done

* Add changeset

* Format

* Update

* Fix houston

* Fix test

* Fix test
2024-08-14 11:05:50 +01:00
Bjorn Lu
a23c69d0d0
Deprecates exporting prerender with dynamic values (#11657)
* wip

* done i think

* Add changeset

* Use hook instead

* Reorder hooks [skip ci]

* Update .changeset/eleven-pens-glow.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Fix run

* Fix link

* Add link

Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>

* More accurate migration [skip ci]

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>
2024-08-14 11:05:19 +01:00
Julien Cayzac
d3d99fba26
fix: code component was missing support for meta string (#11605)
* fix: code component was missing support for meta string

Fixed #11604

* Create odd-buttons-pay.md

* <Code>: add reference link for meta prop

* Apply suggestions from code review

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update .changeset/odd-buttons-pay.md

* Update .changeset/odd-buttons-pay.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

---------

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>
2024-08-14 11:04:36 +01:00
Erika
3fb927d7ae
nit: typo in changelog (#11696) 2024-08-14 10:29:35 +02:00
Houston (Bot)
6bb001476c
[ci] release (#11686)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-14 09:14:23 +01:00
Emanuele Stoppa
cb98b74881 [ci] format 2024-08-13 14:48:00 +00:00
Emanuele Stoppa
c7bda4cd67
fix(actions): save error stack trace in memory (#11689) 2024-08-13 10:47:12 -04:00
renovate[bot]
315ec07e1b
fix(deps): update all non-major dependencies (#11674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: bluwy <bjornlu.dev@gmail.com>
2024-08-13 22:29:37 +08:00
Matthew Phillips
f5616a8ac0 [ci] format 2024-08-13 12:59:45 +00:00
Matthew Phillips
932bd2eb07
Encrypt server islands props (#11535)
* Encrypt server islands props

* Comment on the hex algo

* Use @oslojs/encoding

* Rename functions

* Add base to test

* Remove old tests no longer valid

* Run test locally

* Make sure adapters run before manifest

* Add a changeset

* Adjust test adapter

* don't assume adapter is at root

* Add a changeset

* Updates on review comments

* Update oslo

* Add better description of Node adapter change
2024-08-13 08:58:47 -04:00
Billy Le
5c9183a8ee [ci] format 2024-08-13 10:22:03 +00:00
Billy Le
dc0a297e2a
Set action input default values from zod if FormData key is not present (#11655)
* fix: remove duplicate while loop. use correct boolean values on validation

* chore: rephrase changeset
2024-08-13 11:21:12 +01:00
Emanuele Stoppa
242be51618 [ci] format 2024-08-13 10:21:00 +00:00
Emanuele Stoppa
34da907f3b
fix: make semicolon optional when detecting prerender option (#11678)
* fix: make semicolon optional when detecting `prerender` option

* trim to remove possible carriage return

* Apply suggestions from code review

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

---------

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
2024-08-13 11:20:12 +01:00
huseeiin
64f81e92d1
Update astro.ts (#11665) 2024-08-12 21:03:26 +08:00
Houston (Bot)
8118120e91
[ci] release (#11654)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-09 17:49:10 -04:00
Ben Holmes
ee69a065d3 [ci] format 2024-08-09 21:17:51 +00:00
Ben Holmes
f31d4665c1
Actions: auto-redirect action response to avoid "confirm form resubmission" dialog (#11603)
* feat: redirect with result to avoid resubmission dialog

* fix: use standard POST for react forms

* fix(test): handle redirect responses

* refactor: actionresultbehavior -> disableredirect

* refactor: next() -> throw internal error

* fix(test): bad referer link

* refactor: followRedirect -> followExpectedRedirect

* refactor: remove encryption TODO

* feat: changeset

* chore: whitespace

* feat: laravel note

* refactor: clean up cookie -> action payload

* refactor: actionsinternal -> actionpayload

* refactor: use _astroAction const

* refactor: actionRedirect string as const

* refactor: simplify error check

* chore: remove stray console log

* refactor: only delete cookies on error

* fix: check cookie after handling POST requests

* chore: remove unused tgz

* Revert "fix: check cookie after handling POST requests"

This reverts commit 607f90f07b.

* Revert "refactor: only delete cookies on error"

This reverts commit 52aab84b6b.
2024-08-09 17:17:06 -04:00
Bjorn Lu
7adb350a37
Prevent throwing in react and solid component checks (#11624) 2024-08-09 20:01:25 +08:00
Bjorn Lu
cc405dd1fe
Simplify eslint and pnpm config (#11646) 2024-08-09 00:14:39 +08:00
Ben Holmes
13b912a870
Actions: fix missing orThrow type when input is omitted (#11658)
* fix: orThrow missing when input is omitted

* chore: changeset
2024-08-08 11:53:33 -04:00
Florian Lefebvre
a851021498 [ci] format 2024-08-08 12:35:46 +00:00
Florian Lefebvre
32be5494f6
chore: improve astro:env docs (#11653)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2024-08-08 14:34:55 +02:00
Houston (Bot)
6b99523c3f
[ci] release (#11602)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-08 07:52:00 -04:00
Ben Holmes
589d35158d
Actions: remove "action used with get" error (#11648)
* fix: remove "action used with get" error

* chore: remove unused import

* fix(test): does not throw on GET

* chore: changeset
2024-08-08 07:43:25 -04:00
Darius
72c7ae9901
update formatter config (#11640)
* update formatter config

* format

---------

Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
2024-08-08 12:12:50 +02:00
Josh Goldberg ✨
85de47cd98 [ci] format 2024-08-08 09:54:55 +00:00
Josh Goldberg ✨
4c1b769bcf
chore: bump typescript-eslint to v8 (#11649) 2024-08-08 17:54:04 +08:00
Matthew Lee
9aaf58c133
Consistent file hashes (#11628)
* Fix css plugin having inconsistent builds in different environments

Astro's css plugin generates chunk ids that include a hash of all of
the chunk's parent ids.  These ids are currently the absolute file paths
of the parent files.  The generated chunk ids are then inserted into
those pages as import statements.

Because these import statements include a hash based on these absolute
file paths, this causes rollup to generate different hashes for those
pages when a build is run in different environments.  The exact same
project will produce identical assets with different filenames when
built on different machines, or when built from different directories
on the same machine, etc.

To fix this, I've stripped out the working directory of these file paths
before they are added to the hash.  This means that the hash will still
change if the files referencing it chacnge (which I believe is the
intended behavior), but will be stable if the entire project is built
in different environments.

* add changeset

* fixup! use settings.config.root and vite's normalizePath

I've chosen to update the function signature of shortHashedName
to match createSlugger's, so it now accepts the settings object
and returns the actual hashing function.  This way, createSlugger's
function signature doesn't need to update to needlessly accept
an additional argument.

* fixup! remove unused import

* Update .changeset/young-pillows-shave.md

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

* fixup! use fileURLtoPath

---------

Co-authored-by: Matt Lee <mdlee.md@gmail.com>
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
2024-08-07 15:55:27 +01:00
Bjorn Lu
ea82b03cd6
Improve regex performance (#11635) 2024-08-07 16:01:23 +08:00
Bjorn Lu
74a093056d [ci] format 2024-08-07 02:42:23 +00:00
Bjorn Lu
c8fe46d562
Remove #astro/* subpath imports (#11636) 2024-08-07 10:41:35 +08:00
Ben Holmes
2716f52aae
Actions: fix 500 on empty object for Vercel serverless (#11634)
* fix: only set content-type when body is defined

* feat(test): content-type is omitted

* chore: changeset
2024-08-06 11:54:42 -04:00
Ben Holmes
d532df1222 [ci] format 2024-08-05 12:23:26 +00:00
Ben Holmes
81d7150e02
Actions: Add devalue for serializing complex values (#11593)
* wip: move getActionResult setup to render

* feat: serialize action data for edge

* refactor: serializeActionResult util

* feat: introduce devalue for body parsing

* refactor: orthrow -> main

* feat(test): Date and Set

* refactor: move getAction to separate file for bundling

* docs: changeset

* Revert "refactor: move getAction to separate file for bundling"

This reverts commit ef2b40991f90ff64c063cb4364eb2affcb2328c3.

* Revert "Revert "refactor: move getAction to separate file for bundling""

This reverts commit 40deaeda1dd350b27fa3da994a7c37005ae7a187.

* fix: actions import from client

* feat: add support for URL objects

* refactor: new isActionError utility

* refactor: reuse isInputError in fromJson

* fix: use INTERNAL_SERVER_ERROR for unknown errors
2024-08-05 08:22:38 -04:00
Jeff R
3f27c9d934 [ci] format 2024-08-05 11:30:59 +00:00
Jeff R
6e5676862b
sort newest to oldest (#11587)
* sort newest to oldest

* Update pubDate to preserve a meaningful order in the examples/blog folder
2024-08-05 13:30:06 +02:00
Abu Bakr
196092ae69
fix: audit incorrectly flagging images as above the fold (#10891) (#11617)
* fix: audit incorrectly flagging images as above the fold (#10891)

Previously used lement.offsetTop to find the y position of the image, which does not work when the element parent has a position: relative property.
Instead, this uses lement.getBoundingClientRect().y top get real y position of the image.
There's one issue though, which is that getBoundingClientRect returns the position relative to the user's viewport, not the absolute position.
So, add window.scrollY to the value to cancel that effect out, and you have the element's absolute position.

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect
https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY

* chore: add changeset
2024-08-05 13:29:20 +02:00
renovate[bot]
da86d5459f
fix(deps): update all non-major dependencies (#11618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 16:22:43 +08:00
renovate[bot]
bc2796436d
chore(deps): update dependency postcss-preset-env to v10 (#11619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 10:06:00 +08:00
Armand Philippot
09ec2cadce
fix(astro:content): add deprecated to getEntryBySlug & getDataEntryById (#11600)
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
2024-08-02 16:31:32 +02:00
Sarah Rainsberger
1b3c81c684
[error docs] adds section heading for Actions (#11601) 2024-08-02 11:02:54 -03:00
Houston (Bot)
2abbc281b3
[ci] release (#11590)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-02 09:18:47 -04:00
Bjorn Lu
d052428e38 [ci] format 2024-08-02 12:20:29 +00:00
Bjorn Lu
69d54b4bf2
Remove more unused code (#11598) 2024-08-02 20:19:41 +08:00
Bjorn Lu
c2d6c1f727
Remove unused code (#11592) 2024-08-02 10:15:42 +08:00
Ben Holmes
ac72ed2f55 [ci] format 2024-08-01 12:25:19 +00:00
Ben Holmes
a65ffe314b
Actions: Remove async local storage dependency (#11584)
* refactor: move from Async local storage to .bind()

* feat: Astro.callAction for server calls

* feat(e2e): update server call

* feat(types): test callAction types

* fix: callAction context on rewrite

* feat: called from server error

* chore: remove store.ts file

* chore: remove getApiContext client stub

* chore: changeset

* fix: src -> dist import

* refactor: move content collection errors together

* fix: move rfc link to hint
2024-08-01 08:24:22 -04:00