From bb1e533a00140e9b442882af87be07234f2f422c Mon Sep 17 00:00:00 2001 From: Bad Manners <me@badmanners.xyz> Date: Tue, 3 Dec 2024 19:09:09 -0300 Subject: [PATCH] Migrate to Astro 5 --- .vscode/settings.json | 20 +- astro.config.mjs | 17 +- examples/blog.md | 2 +- examples/game.md | 2 +- examples/story.md | 2 +- package-lock.json | 2560 ++++++++--------- package.json | 12 +- scripts/export-story.ts | 18 +- src/components/CopyrightedCharacters.astro | 2 +- src/components/ExternalPosts.astro | 6 +- src/{content/config.ts => content.config.ts} | 13 +- .../blog/crossing-over-postmortem.mdx | 0 src/{content => data}/blog/drafts/.gitignore | 0 .../blog/ssh-all-the-way-down.mdx | 1 - .../blog/supercharged-ssh-apps-on-sish.mdx | 1 - .../blog/taken-in-breakdown.mdx | 0 src/{content => data}/games/crossing-over.md | 0 src/{content => data}/games/drafts/.gitignore | 0 .../series/the-lost-of-the-marshes.yaml | 0 .../stories/accommodation.md | 0 .../stories/addictive-additions.md | 0 src/{content => data}/stories/annivoresary.md | 0 .../stories/better-in-bully-batter.md | 0 .../stories/big-haul-part-2.md | 0 src/{content => data}/stories/big-haul.md | 0 src/{content => data}/stories/birdroom.md | 0 .../stories/bladder-filler.md | 0 .../stories/bottom-of-the-food-chain.md | 0 .../stories/butting-into-their-plans.md | 0 .../stories/coils-and-spoils.md | 0 .../stories/delicacy-s-dare.md | 0 .../stories/drafts/.gitignore | 0 .../stories/eggs-for-months.md | 0 .../stories/engaged-in-reality.md | 1 - .../stories/engaging-contacts.md | 0 .../stories/flavorful-favor.md | 0 .../stories/for-the-night.md | 0 .../stories/gentle-and-cruel.md | 0 src/{content => data}/stories/good-pet.md | 0 .../stories/hate-to-sea-it.md | 0 .../stories/hungry-for-love.md | 0 src/{content => data}/stories/hyper-hunger.md | 0 .../stories/insistence-and-assistance.md | 0 .../stories/lactation-action.md | 0 src/{content => data}/stories/latest-catch.md | 0 .../stories/never-too-late.md | 0 src/{content => data}/stories/noble-fire.md | 0 .../stories/overzealous-zenko.md | 0 .../stories/part-of-the-show.md | 0 .../stories/pet-sit-saturday.md | 0 .../stories/playing-it-safe.md | 1 - .../stories/reaching-for-the-full-moon.md | 0 src/{content => data}/stories/rose-s-binge.md | 0 .../stories/ruffling-some-feathers.md | 0 .../stories/spontaneous-sleepover.md | 0 src/{content => data}/stories/taken-in.md | 0 .../stories/tasting-high-consequences.md | 0 .../stories/team-building.md | 0 src/{content => data}/stories/team-effort.md | 0 .../stories/the-last-livestream.md | 0 .../bonus-1-quince-s-fantasy.md | 0 .../the-lost-of-the-marshes/chapter-1.md | 0 .../the-lost-of-the-marshes/chapter-10.md | 0 .../the-lost-of-the-marshes/chapter-11.md | 0 .../the-lost-of-the-marshes/chapter-2.md | 0 .../the-lost-of-the-marshes/chapter-3.md | 0 .../the-lost-of-the-marshes/chapter-4.md | 0 .../the-lost-of-the-marshes/chapter-5.md | 0 .../the-lost-of-the-marshes/chapter-6.md | 0 .../the-lost-of-the-marshes/chapter-7.md | 0 .../the-lost-of-the-marshes/chapter-8.md | 0 .../the-lost-of-the-marshes/chapter-9.md | 0 .../stories/tiny-accident.md | 0 src/{content => data}/stories/tomo-moku.md | 0 .../stories/trouble-sleeping.md | 0 .../stories/warped-friendship.md | 0 .../stories/within-limits.md | 0 .../stories/woofer-exploration.md | 0 src/{content => data}/stories/you-re-home.md | 0 .../tag-categories/1-types-of-vore.yaml | 0 .../10-recurring-characters.yaml | 0 .../tag-categories/2-body-types.yaml | 0 .../tag-categories/3-genders.yaml | 0 .../tag-categories/4-relative-size.yaml | 0 .../tag-categories/5-willingness.yaml | 0 .../6-vore-related-scenarios.yaml | 0 .../tag-categories/7-sexual-content.yaml | 0 .../tag-categories/8-other-kinks.yaml | 0 .../tag-categories/9-type-of-content.yaml | 0 src/{content => data}/users/anonymous.yaml | 0 src/{content => data}/users/asof-yeun.yaml | 0 src/{content => data}/users/avour-inden.yaml | 0 src/{content => data}/users/bad-manners.yaml | 0 src/{content => data}/users/dee-lumeni.yaml | 0 .../users/hans-woofington.yaml | 0 src/{content => data}/users/holi.yaml | 0 src/{content => data}/users/scion.yaml | 0 src/{content => data}/users/yolkmonkey.yaml | 0 src/i18n/index.ts | 4 +- src/integrations/pagefind.ts | 2 +- src/layouts/BlogPostLayout.astro | 4 +- src/layouts/GalleryLayout.astro | 6 +- src/layouts/GameLayout.astro | 4 +- src/layouts/PublishedContentLayout.astro | 8 +- src/layouts/StoryLayout.astro | 4 +- src/pages/404.astro | 2 +- .../export-story/{[...slug].ts => [...id].ts} | 9 +- .../blog/{[...slug].astro => [...id].astro} | 8 +- src/pages/blog/feed.xml.ts | 4 +- src/pages/blog/index.astro | 4 +- src/pages/feed.xml.ts | 20 +- .../games/{[...slug].astro => [...id].astro} | 8 +- src/pages/games/feed.xml.ts | 6 +- src/pages/games/index.astro | 4 +- src/pages/index.astro | 8 +- src/pages/search.astro | 2 +- .../{[...slug].astro => [...id].astro} | 13 +- src/pages/stories/[...page].astro | 4 +- src/pages/stories/feed.xml.ts | 4 +- .../stories/the-lost-of-the-marshes.astro | 12 +- src/pages/tags.astro | 2 +- src/pages/tags/[badSlug].astro | 2 +- src/pages/tags/[slug].astro | 8 +- src/utils/feed.ts | 14 +- src/utils/format_copyrighted_characters.ts | 2 +- src/utils/get_website_link_for_user.ts | 2 +- src/utils/is_anonymous_user.ts | 2 +- src/utils/is_user_self.ts | 2 +- src/utils/qualify_local_urls_in_markdown.ts | 24 +- 129 files changed, 1408 insertions(+), 1448 deletions(-) rename src/{content/config.ts => content.config.ts} (96%) rename src/{content => data}/blog/crossing-over-postmortem.mdx (100%) rename src/{content => data}/blog/drafts/.gitignore (100%) rename src/{content => data}/blog/ssh-all-the-way-down.mdx (99%) rename src/{content => data}/blog/supercharged-ssh-apps-on-sish.mdx (99%) rename src/{content => data}/blog/taken-in-breakdown.mdx (100%) rename src/{content => data}/games/crossing-over.md (100%) rename src/{content => data}/games/drafts/.gitignore (100%) rename src/{content => data}/series/the-lost-of-the-marshes.yaml (100%) rename src/{content => data}/stories/accommodation.md (100%) rename src/{content => data}/stories/addictive-additions.md (100%) rename src/{content => data}/stories/annivoresary.md (100%) rename src/{content => data}/stories/better-in-bully-batter.md (100%) rename src/{content => data}/stories/big-haul-part-2.md (100%) rename src/{content => data}/stories/big-haul.md (100%) rename src/{content => data}/stories/birdroom.md (100%) rename src/{content => data}/stories/bladder-filler.md (100%) rename src/{content => data}/stories/bottom-of-the-food-chain.md (100%) rename src/{content => data}/stories/butting-into-their-plans.md (100%) rename src/{content => data}/stories/coils-and-spoils.md (100%) rename src/{content => data}/stories/delicacy-s-dare.md (100%) rename src/{content => data}/stories/drafts/.gitignore (100%) rename src/{content => data}/stories/eggs-for-months.md (100%) rename src/{content => data}/stories/engaged-in-reality.md (99%) rename src/{content => data}/stories/engaging-contacts.md (100%) rename src/{content => data}/stories/flavorful-favor.md (100%) rename src/{content => data}/stories/for-the-night.md (100%) rename src/{content => data}/stories/gentle-and-cruel.md (100%) rename src/{content => data}/stories/good-pet.md (100%) rename src/{content => data}/stories/hate-to-sea-it.md (100%) rename src/{content => data}/stories/hungry-for-love.md (100%) rename src/{content => data}/stories/hyper-hunger.md (100%) rename src/{content => data}/stories/insistence-and-assistance.md (100%) rename src/{content => data}/stories/lactation-action.md (100%) rename src/{content => data}/stories/latest-catch.md (100%) rename src/{content => data}/stories/never-too-late.md (100%) rename src/{content => data}/stories/noble-fire.md (100%) rename src/{content => data}/stories/overzealous-zenko.md (100%) rename src/{content => data}/stories/part-of-the-show.md (100%) rename src/{content => data}/stories/pet-sit-saturday.md (100%) rename src/{content => data}/stories/playing-it-safe.md (99%) rename src/{content => data}/stories/reaching-for-the-full-moon.md (100%) rename src/{content => data}/stories/rose-s-binge.md (100%) rename src/{content => data}/stories/ruffling-some-feathers.md (100%) rename src/{content => data}/stories/spontaneous-sleepover.md (100%) rename src/{content => data}/stories/taken-in.md (100%) rename src/{content => data}/stories/tasting-high-consequences.md (100%) rename src/{content => data}/stories/team-building.md (100%) rename src/{content => data}/stories/team-effort.md (100%) rename src/{content => data}/stories/the-last-livestream.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/bonus-1-quince-s-fantasy.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-1.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-10.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-11.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-2.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-3.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-4.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-5.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-6.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-7.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-8.md (100%) rename src/{content => data}/stories/the-lost-of-the-marshes/chapter-9.md (100%) rename src/{content => data}/stories/tiny-accident.md (100%) rename src/{content => data}/stories/tomo-moku.md (100%) rename src/{content => data}/stories/trouble-sleeping.md (100%) rename src/{content => data}/stories/warped-friendship.md (100%) rename src/{content => data}/stories/within-limits.md (100%) rename src/{content => data}/stories/woofer-exploration.md (100%) rename src/{content => data}/stories/you-re-home.md (100%) rename src/{content => data}/tag-categories/1-types-of-vore.yaml (100%) rename src/{content => data}/tag-categories/10-recurring-characters.yaml (100%) rename src/{content => data}/tag-categories/2-body-types.yaml (100%) rename src/{content => data}/tag-categories/3-genders.yaml (100%) rename src/{content => data}/tag-categories/4-relative-size.yaml (100%) rename src/{content => data}/tag-categories/5-willingness.yaml (100%) rename src/{content => data}/tag-categories/6-vore-related-scenarios.yaml (100%) rename src/{content => data}/tag-categories/7-sexual-content.yaml (100%) rename src/{content => data}/tag-categories/8-other-kinks.yaml (100%) rename src/{content => data}/tag-categories/9-type-of-content.yaml (100%) rename src/{content => data}/users/anonymous.yaml (100%) rename src/{content => data}/users/asof-yeun.yaml (100%) rename src/{content => data}/users/avour-inden.yaml (100%) rename src/{content => data}/users/bad-manners.yaml (100%) rename src/{content => data}/users/dee-lumeni.yaml (100%) rename src/{content => data}/users/hans-woofington.yaml (100%) rename src/{content => data}/users/holi.yaml (100%) rename src/{content => data}/users/scion.yaml (100%) rename src/{content => data}/users/yolkmonkey.yaml (100%) rename src/pages/api/export-story/{[...slug].ts => [...id].ts} (96%) rename src/pages/blog/{[...slug].astro => [...id].astro} (74%) rename src/pages/games/{[...slug].astro => [...id].astro} (73%) rename src/pages/stories/{[...slug].astro => [...id].astro} (74%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 007862f..8ec09b3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,24 +2,10 @@ "files.associations": { "*.css": "tailwindcss" }, - "json.schemas": [ - { - "fileMatch": ["/src/content/series/**"], - "url": "./.astro/collections/series.schema.json" - }, - { - "fileMatch": ["/src/content/tag-categories/**"], - "url": "./.astro/collections/tag-categories.schema.json" - }, - { - "fileMatch": ["/src/content/users/**"], - "url": "./.astro/collections/users.schema.json" - } - ], "yaml.schemas": { - "./.astro/collections/series.schema.json": "/src/content/series/**", - "./.astro/collections/tag-categories.schema.json": "/src/content/tag-categories/**", - "./.astro/collections/users.schema.json": "/src/content/users/**" + "./.astro/collections/series.schema.json": "/src/data/series/**", + "./.astro/collections/tag-categories.schema.json": "/src/data/tag-categories/**", + "./.astro/collections/users.schema.json": "/src/data/users/**" }, "[astro]": { "editor.defaultFormatter": "esbenp.prettier-vscode" diff --git a/astro.config.mjs b/astro.config.mjs index dfd9618..6a6c843 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -60,15 +60,14 @@ export default defineConfig({ redirects: { "/stories/1": "/stories", }, - experimental: { - env: { - schema: { - PUBLISH_DRAFTS: envField.boolean({ - context: "server", - access: "public", - default: false, - }), - }, + env: { + schema: { + APACHE_CONFIG: envField.boolean({ context: "server", access: "public", default: false }), + PUBLISH_DRAFTS: envField.boolean({ + context: "server", + access: "public", + default: false, + }), }, }, }); diff --git a/examples/blog.md b/examples/blog.md index b1416df..26cd5e0 100644 --- a/examples/blog.md +++ b/examples/blog.md @@ -1,5 +1,5 @@ --- -# slug: some-custom-slug +# id: some-custom-id title: Example Blog Post # pubDate: 2024-01-01 isDraft: true diff --git a/examples/game.md b/examples/game.md index 1ef3655..8e51b16 100644 --- a/examples/game.md +++ b/examples/game.md @@ -1,5 +1,5 @@ --- -# slug: some-custom-slug +# id: some-custom-id title: Example Game # shortTitle: Example # pubDate: 2024-01-01 diff --git a/examples/story.md b/examples/story.md index 8762b23..fc288a3 100644 --- a/examples/story.md +++ b/examples/story.md @@ -1,5 +1,5 @@ --- -# slug: some-custom-slug +# id: some-custom-id title: Example Story # shortTitle: Example # pubDate: 2024-01-01 diff --git a/package-lock.json b/package-lock.json index 71d2bd7..bc774f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,26 +1,26 @@ { "name": "gallery.badmanners.xyz", - "version": "1.13.1", + "version": "1.14.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gallery.badmanners.xyz", - "version": "1.13.1", + "version": "1.14.0", "hasInstallScript": true, "dependencies": { "@astrojs/alpinejs": "^0.4.0", "@astrojs/check": "^0.9.4", - "@astrojs/mdx": "^3.1.7", - "@astrojs/rss": "^4.0.7", - "@astrojs/tailwind": "^5.1.1", + "@astrojs/mdx": "^4.0.1", + "@astrojs/rss": "^4.0.9", + "@astrojs/tailwind": "^5.1.3", "@astropub/md": "^1.0.0", "@pagefind/default-ui": "^1.2.0", "@tailwindcss/typography": "^0.5.15", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.15.11", - "astro-htaccess": "^0.2.0", + "astro": "^5.0.1", + "astro-htaccess": "^0.2.3", "clsx": "^2.1.1", "fluid-tailwind": "^1.0.3", "github-slugger": "^2.0.0", @@ -47,6 +47,19 @@ "tsx": "^4.19.1" } }, + "../astro-htaccess": { + "version": "0.2.3", + "license": "MIT", + "devDependencies": { + "@astrojs/check": "^0.9.4", + "@types/node": "^22.5.1", + "astro": "^5.0.1", + "typescript": "^5.5.4" + }, + "peerDependencies": { + "astro": ">= 4.0.0 < 6" + } + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -59,19 +72,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@astrojs/alpinejs": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/alpinejs/-/alpinejs-0.4.0.tgz", @@ -107,33 +107,33 @@ "license": "MIT" }, "node_modules/@astrojs/internal-helpers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.4.1.tgz", - "integrity": "sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.4.2.tgz", + "integrity": "sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==", "license": "MIT" }, "node_modules/@astrojs/language-server": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.15.0.tgz", - "integrity": "sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==", + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.15.4.tgz", + "integrity": "sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==", "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.10.3", - "@astrojs/yaml2ts": "^0.2.1", + "@astrojs/yaml2ts": "^0.2.2", "@jridgewell/sourcemap-codec": "^1.4.15", - "@volar/kit": "~2.4.5", - "@volar/language-core": "~2.4.5", - "@volar/language-server": "~2.4.5", - "@volar/language-service": "~2.4.5", + "@volar/kit": "~2.4.7", + "@volar/language-core": "~2.4.7", + "@volar/language-server": "~2.4.7", + "@volar/language-service": "~2.4.7", "fast-glob": "^3.2.12", "muggle-string": "^0.4.1", - "volar-service-css": "0.0.61", - "volar-service-emmet": "0.0.61", - "volar-service-html": "0.0.61", - "volar-service-prettier": "0.0.61", - "volar-service-typescript": "0.0.61", - "volar-service-typescript-twoslash-queries": "0.0.61", - "volar-service-yaml": "0.0.61", + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-prettier": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "volar-service-yaml": "0.0.62", "vscode-html-languageservice": "^5.2.0", "vscode-uri": "^3.0.8" }, @@ -154,44 +154,44 @@ } }, "node_modules/@astrojs/markdown-remark": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.2.0.tgz", - "integrity": "sha512-vWGM24KZXz11jR3JO+oqYU3T2qpuOi4uGivJ9SQLCAI01+vEkHC60YJMRvHPc+hwd60F7euNs1PeOEixIIiNQw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.3.0.tgz", + "integrity": "sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/prism": "3.1.0", "github-slugger": "^2.0.0", - "hast-util-from-html": "^2.0.1", + "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", - "rehype-stringify": "^10.0.0", + "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.0", "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.0", + "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", - "shiki": "^1.10.3", + "shiki": "^1.22.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", - "vfile": "^6.0.2" + "vfile": "^6.0.3" } }, "node_modules/@astrojs/mdx": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-3.1.7.tgz", - "integrity": "sha512-8lGdCt+S0TrZgQpbcP3fQJc4cTeacAirtz9TpAMtHCWrQGW8slKt3WG4/0N+bhZgYRC4h5AT5drzFz+y3wvmsg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.0.1.tgz", + "integrity": "sha512-ShntQtbIsMEnR29DCF9vBNxBOGU29FVRBXKdS5njYic4t4asrbxYmjFXiqqQ0ONnBNHk9P0RHFgqEy1GL/YbJg==", "license": "MIT", "dependencies": { - "@astrojs/markdown-remark": "5.2.0", - "@mdx-js/mdx": "^3.0.1", - "acorn": "^8.12.1", + "@astrojs/markdown-remark": "6.0.0", + "@mdx-js/mdx": "^3.1.0", + "acorn": "^8.14.0", "es-module-lexer": "^1.5.4", "estree-util-visit": "^2.0.0", - "gray-matter": "^4.0.3", - "hast-util-to-html": "^9.0.2", + "hast-util-to-html": "^9.0.3", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.0", @@ -201,10 +201,49 @@ "vfile": "^6.0.3" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" }, "peerDependencies": { - "astro": "^4.8.0" + "astro": "^5.0.0" + } + }, + "node_modules/@astrojs/mdx/node_modules/@astrojs/markdown-remark": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.0.0.tgz", + "integrity": "sha512-Tabo7xM44Pz2Yf9qpdaCCgxRmtaypi2YCinqTUNefDrWUa+OyKW62OuNeCaGwNh/ys+QAd9FUWN5/3HgPWjP4Q==", + "license": "MIT", + "dependencies": { + "@astrojs/prism": "3.2.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.1.0", + "js-yaml": "^4.1.0", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.1", + "remark-smartypants": "^3.0.2", + "shiki": "^1.23.1", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/mdx/node_modules/@astrojs/prism": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.2.0.tgz", + "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.29.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" } }, "node_modules/@astrojs/prism": { @@ -212,6 +251,7 @@ "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.1.0.tgz", "integrity": "sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==", "license": "MIT", + "peer": true, "dependencies": { "prismjs": "^1.29.0" }, @@ -220,52 +260,52 @@ } }, "node_modules/@astrojs/rss": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.7.tgz", - "integrity": "sha512-ZEG55XFB19l+DplUvBISmz04UbjDtKliRO4Y5+ERRhAMjgCVVobEBNE6ZwWG1h6orWUocy4nfPihKXDyB73x9g==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.9.tgz", + "integrity": "sha512-W1qeLc/WP1vMS5xXa+BnaLU0paeSeGjN8RJVAoBaOIkQuKXjIUA9hvPno89heo73in5i67g40gy70oeeHMqp6A==", "license": "MIT", "dependencies": { - "fast-xml-parser": "^4.4.0", + "fast-xml-parser": "^4.5.0", "kleur": "^4.1.5" } }, "node_modules/@astrojs/tailwind": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.1.tgz", - "integrity": "sha512-LwurA10uIKcGRxQP2R81RvAnBT0WPKzBntXZBF4hrAefDgM5Uumn0nsGr6tdIjSARgYz4X+Cq/Vh78t3bql3yw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.3.tgz", + "integrity": "sha512-XF7WhXRhqEHGvADqc0kDtF7Yv/g4wAWTaj91jBBTBaYnc4+MQLH94duFfFa4NlTkRG40VQd012eF3MhO3Kk+bg==", "license": "MIT", "dependencies": { "autoprefixer": "^10.4.20", - "postcss": "^8.4.45", + "postcss": "^8.4.49", "postcss-load-config": "^4.0.2" }, "peerDependencies": { - "astro": "^3.0.0 || ^4.0.0 || ^5.0.0-beta.0", + "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", "tailwindcss": "^3.0.24" } }, "node_modules/@astrojs/telemetry": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.1.0.tgz", - "integrity": "sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.2.0.tgz", + "integrity": "sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==", "license": "MIT", "dependencies": { - "ci-info": "^4.0.0", - "debug": "^4.3.4", + "ci-info": "^4.1.0", + "debug": "^4.3.7", "dlv": "^1.1.3", - "dset": "^3.1.3", + "dset": "^3.1.4", "is-docker": "^3.0.0", - "is-wsl": "^3.0.0", + "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" } }, "node_modules/@astrojs/yaml2ts": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.1.tgz", - "integrity": "sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.2.tgz", + "integrity": "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==", "license": "MIT", "dependencies": { "yaml": "^2.5.0" @@ -280,160 +320,6 @@ "@astrojs/markdown-remark": "^5" } }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", @@ -452,28 +338,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/parser": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", @@ -489,72 +353,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", @@ -624,9 +422,9 @@ "license": "MIT" }, "node_modules/@emnapi/runtime": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", - "integrity": "sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "license": "MIT", "optional": true, "dependencies": { @@ -1396,18 +1194,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1497,9 +1283,9 @@ } }, "node_modules/@mdx-js/mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", - "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -1508,14 +1294,15 @@ "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", - "estree-util-to-js": "^2.0.0", + "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", - "hast-util-to-estree": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", - "periscopic": "^3.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", @@ -1698,22 +1485,10 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz", - "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -1724,9 +1499,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz", - "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -1737,9 +1512,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz", - "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -1750,9 +1525,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz", - "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -1763,9 +1538,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz", - "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", "cpu": [ "arm64" ], @@ -1776,9 +1551,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz", - "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", "cpu": [ "x64" ], @@ -1789,9 +1564,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz", - "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", "cpu": [ "arm" ], @@ -1802,9 +1577,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz", - "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -1815,9 +1590,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz", - "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -1828,9 +1603,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz", - "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -1841,9 +1616,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz", - "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "cpu": [ "ppc64" ], @@ -1854,9 +1629,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz", - "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -1867,9 +1642,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz", - "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "cpu": [ "s390x" ], @@ -1880,9 +1655,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz", - "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", "cpu": [ "x64" ], @@ -1893,9 +1668,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz", - "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -1906,9 +1681,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz", - "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -1919,9 +1694,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz", - "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -1932,9 +1707,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz", - "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -1945,44 +1720,44 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", - "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.24.0.tgz", + "integrity": "sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==", "license": "MIT", "dependencies": { - "@shikijs/engine-javascript": "1.22.2", - "@shikijs/engine-oniguruma": "1.22.2", - "@shikijs/types": "1.22.2", + "@shikijs/engine-javascript": "1.24.0", + "@shikijs/engine-oniguruma": "1.24.0", + "@shikijs/types": "1.24.0", "@shikijs/vscode-textmate": "^9.3.0", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.3" } }, "node_modules/@shikijs/engine-javascript": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", - "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.24.0.tgz", + "integrity": "sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==", "license": "MIT", "dependencies": { - "@shikijs/types": "1.22.2", + "@shikijs/types": "1.24.0", "@shikijs/vscode-textmate": "^9.3.0", - "oniguruma-to-js": "0.4.3" + "oniguruma-to-es": "0.7.0" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", - "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.24.0.tgz", + "integrity": "sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==", "license": "MIT", "dependencies": { - "@shikijs/types": "1.22.2", + "@shikijs/types": "1.24.0", "@shikijs/vscode-textmate": "^9.3.0" } }, "node_modules/@shikijs/types": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", - "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.24.0.tgz", + "integrity": "sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==", "license": "MIT", "dependencies": { "@shikijs/vscode-textmate": "^9.3.0", @@ -2020,52 +1795,11 @@ } }, "node_modules/@types/alpinejs": { - "version": "3.13.10", - "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.10.tgz", - "integrity": "sha512-ah53tF6mWuuwerpDE7EHwbZErNDJQlsLISPqJhYj2RZ9nuTYbRknSkqebUd3igkhLIZKkPa7IiXjSn9qsU9O2w==", + "version": "3.13.11", + "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.11.tgz", + "integrity": "sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==", "license": "MIT" }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", @@ -2136,13 +1870,13 @@ } }, "node_modules/@types/node": { - "version": "22.7.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz", - "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==", + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", "devOptional": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@types/sanitize-html": { @@ -2168,13 +1902,13 @@ "license": "ISC" }, "node_modules/@volar/kit": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.5.tgz", - "integrity": "sha512-ZzyErW5UiDfiIuJ/lpqc2Kx5PHDGDZ/bPlPJYpRcxlrn8Z8aDhRlsLHkNKcNiH65TmNahk2kbLaiejiqu6BD3A==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.10.tgz", + "integrity": "sha512-ul+rLeO9RlFDgkY/FhPWMnpFqAsjvjkKz8VZeOY5YCJMwTblmmSBlNJtFNxSBx9t/k1q80nEthLyxiJ50ZbIAg==", "license": "MIT", "dependencies": { - "@volar/language-service": "2.4.5", - "@volar/typescript": "2.4.5", + "@volar/language-service": "2.4.10", + "@volar/typescript": "2.4.10", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" @@ -2184,23 +1918,23 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz", - "integrity": "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz", + "integrity": "sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==", "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.5" + "@volar/source-map": "2.4.10" } }, "node_modules/@volar/language-server": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.5.tgz", - "integrity": "sha512-l5PswE0JzCtstTlwBUpikeSa3lNUBJhTuWtj9KclZTGi2Uex4RcqGOhTiDsUUtvdv/hEuYCxGq1EdJJPlQsD/g==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.10.tgz", + "integrity": "sha512-odQsgrJh8hOXfxkSj/BSnpjThb2/KDhbxZnG/XAEx6E3QGDQv4hAOz9GWuKoNs0tkjgwphQGIwDMT1JYaTgRJw==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.5", - "@volar/language-service": "2.4.5", - "@volar/typescript": "2.4.5", + "@volar/language-core": "2.4.10", + "@volar/language-service": "2.4.10", + "@volar/typescript": "2.4.10", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -2210,53 +1944,47 @@ } }, "node_modules/@volar/language-service": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.5.tgz", - "integrity": "sha512-xiFlL0aViGg6JhwAXyohPrdlID13uom8WQg6DWYaV8ob8RRy+zoLlBUI8SpQctwlWEO9poyrYK01revijAwkcw==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.10.tgz", + "integrity": "sha512-VxUiWS11rnRzakkqw5x1LPhsz+RBfD0CrrFarLGW2/voliYXEdCuSOM3r8JyNRvMvP4uwhD38ccAdTcULQEAIQ==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.5", + "@volar/language-core": "2.4.10", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz", - "integrity": "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.10.tgz", + "integrity": "sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==", "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.5.tgz", - "integrity": "sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.10.tgz", + "integrity": "sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.5", + "@volar/language-core": "2.4.10", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vscode/emmet-helper": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", - "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz", + "integrity": "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==", "license": "MIT", "dependencies": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.15.1", - "vscode-uri": "^2.1.2" + "vscode-uri": "^3.0.8" } }, - "node_modules/@vscode/emmet-helper/node_modules/vscode-uri": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", - "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", - "license": "MIT" - }, "node_modules/@vscode/l10n": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", @@ -2316,9 +2044,9 @@ } }, "node_modules/alpinejs": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.1.tgz", - "integrity": "sha512-ICar8UsnRZAYvv/fCNfNeKMXNoXGUfwHrjx7LqXd08zIP95G2d9bAOuaL97re+1mgt/HojqHsfdOLo/A5LuWgQ==", + "version": "3.14.6", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.6.tgz", + "integrity": "sha512-8Abdd6u8oVurOChPqWCHS2Lr3C9g4+zb/kL1vNPykK/2dVkb3giTcpQ1wykzzWmX7wbTvWLnHX3I3CPPnnAMCA==", "license": "MIT", "dependencies": { "@vue/reactivity": "~3.1.1" @@ -2386,6 +2114,18 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -2405,6 +2145,18 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -2446,27 +2198,23 @@ } }, "node_modules/astro": { - "version": "4.16.8", - "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.8.tgz", - "integrity": "sha512-BRWFP0UQ8gkOr90KQW7oooedtgCk/j91pyv1WQUmgZwMUZk/v0HJRiddAZgvGCECOnmZFc9ZqRZnBsAMUgApNQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.0.1.tgz", + "integrity": "sha512-7XzFq3eFdSkeT/aCNealVv4klwmKoOYb6LZymbyZQrdUA9vEoUCKFcujVo4YbJJ8WXyEm515ZHPCxHTdDneEug==", "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.10.3", - "@astrojs/internal-helpers": "0.4.1", - "@astrojs/markdown-remark": "5.3.0", - "@astrojs/telemetry": "3.1.0", - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/types": "^7.26.0", + "@astrojs/internal-helpers": "0.4.2", + "@astrojs/markdown-remark": "6.0.0", + "@astrojs/telemetry": "3.2.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.3", - "@types/babel__core": "^7.20.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", - "ci-info": "^4.0.0", + "ci-info": "^4.1.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^0.7.2", @@ -2483,33 +2231,33 @@ "fast-glob": "^3.3.2", "flattie": "^1.1.1", "github-slugger": "^2.0.0", - "gray-matter": "^4.0.3", "html-escaper": "^3.0.3", "http-cache-semantics": "^4.1.1", "js-yaml": "^4.1.0", "kleur": "^4.1.5", - "magic-string": "^0.30.12", + "magic-string": "^0.30.14", "magicast": "^0.3.5", "micromatch": "^4.0.8", "mrmime": "^2.0.0", "neotraverse": "^0.6.18", - "ora": "^8.1.0", "p-limit": "^6.1.0", "p-queue": "^8.0.1", "preferred-pm": "^4.0.0", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.6.3", - "shiki": "^1.22.2", + "shiki": "^1.23.1", "tinyexec": "^0.3.1", "tsconfck": "^3.1.4", + "ultrahtml": "^1.5.3", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", - "vite": "^5.4.10", - "vitefu": "^1.0.3", + "vite": "^6.0.1", + "vitefu": "^1.0.4", "which-pm": "^3.0.0", - "xxhash-wasm": "^1.0.2", + "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", + "yocto-spinner": "^0.1.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.5", "zod-to-ts": "^1.2.0" @@ -2518,7 +2266,7 @@ "astro": "astro.js" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0", + "node": "^18.17.1 || ^20.3.0 || >=22.0.0", "npm": ">=9.6.5", "pnpm": ">=7.1.0" }, @@ -2527,25 +2275,21 @@ } }, "node_modules/astro-htaccess": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/astro-htaccess/-/astro-htaccess-0.2.0.tgz", - "integrity": "sha512-2QCike5DRkeBfbvkhBXkaRw18WkOLu7+jo7GSrlBPc8lcfk0BipXsGl8ggv5MCcDEt1iADdki9V5W4XecA0T7w==", - "license": "MIT", - "peerDependencies": { - "astro": "^4.0.0" - } + "resolved": "../astro-htaccess", + "link": true }, "node_modules/astro/node_modules/@astrojs/markdown-remark": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.3.0.tgz", - "integrity": "sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.0.0.tgz", + "integrity": "sha512-Tabo7xM44Pz2Yf9qpdaCCgxRmtaypi2YCinqTUNefDrWUa+OyKW62OuNeCaGwNh/ys+QAd9FUWN5/3HgPWjP4Q==", "license": "MIT", "dependencies": { - "@astrojs/prism": "3.1.0", + "@astrojs/prism": "3.2.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", + "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", @@ -2553,7 +2297,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", - "shiki": "^1.22.0", + "shiki": "^1.23.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", @@ -2561,6 +2305,18 @@ "vfile": "^6.0.3" } }, + "node_modules/astro/node_modules/@astrojs/prism": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.2.0.tgz", + "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.29.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -2663,18 +2419,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -2697,9 +2441,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -2716,10 +2460,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2750,9 +2494,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", + "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", "funding": [ { "type": "opencollective", @@ -2779,6 +2523,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -2835,9 +2591,9 @@ } }, "node_modules/ci-info": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", - "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "funding": [ { "type": "github", @@ -2861,33 +2617,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2926,24 +2655,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -3026,12 +2737,23 @@ "node": ">=12.5.0" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", - "optional": true + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", @@ -3044,26 +2766,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "optional": true - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -3090,12 +2792,6 @@ "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "license": "ISC" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, "node_modules/cookie": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", @@ -3312,9 +3008,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.32", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", - "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==", + "version": "1.5.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.68.tgz", + "integrity": "sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==", "license": "ISC" }, "node_modules/emmet": { @@ -3339,6 +3035,12 @@ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "license": "MIT" }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "license": "MIT" + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -3357,6 +3059,38 @@ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "license": "MIT" }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -3404,6 +3138,18 @@ "node": ">=6" } }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3456,6 +3202,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-util-to-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", @@ -3506,18 +3266,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3541,10 +3289,10 @@ } }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", - "license": "MIT" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { "version": "4.5.0", @@ -3653,9 +3401,9 @@ } }, "node_modules/fluid-tailwind": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fluid-tailwind/-/fluid-tailwind-1.0.3.tgz", - "integrity": "sha512-JhSklHiXUcKnb/PIru1TbyorLD+k0rCIgeAbFwzu1QyQHYDKmKKsKzN7xPisSeGGr7FtYY9S63t+tzddUlxxrQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fluid-tailwind/-/fluid-tailwind-1.0.4.tgz", + "integrity": "sha512-jO1+4l4r3kE/5We3kYRl3o4JsbFA2zoluEwJG3VrytlKuCfK4aTv5QHqXgOaw0YQd9HKjOVIFYsVvhG8sxIh5w==", "license": "MIT", "dependencies": { "filter-obj": "^5.1.0", @@ -3718,15 +3466,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3737,9 +3476,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "license": "MIT", "engines": { "node": ">=18" @@ -3752,7 +3491,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -3799,58 +3538,12 @@ "node": ">= 6" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -3882,15 +3575,15 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", + "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", - "hastscript": "^8.0.0", + "hastscript": "^9.0.0", "property-information": "^6.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", @@ -3928,9 +3621,9 @@ } }, "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -3980,6 +3673,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" + }, + "node_modules/hast-util-to-estree/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, "node_modules/hast-util-to-html": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", @@ -4004,9 +3712,9 @@ } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", + "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -4030,21 +3738,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, "node_modules/hast-util-to-parse5": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", @@ -4094,9 +3787,9 @@ } }, "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", + "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -4162,9 +3855,9 @@ } }, "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, "node_modules/is-alphabetical": { @@ -4250,15 +3943,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -4317,18 +4001,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4359,27 +4031,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-wsl": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", @@ -4425,12 +4076,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4443,51 +4088,18 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonc-parser": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", "license": "MIT" }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -4498,9 +4110,9 @@ } }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "license": "MIT", "engines": { "node": ">=14" @@ -4597,46 +4209,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "license": "MIT" }, - "node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -4648,18 +4220,15 @@ } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.14", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz", + "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -4701,9 +4270,9 @@ } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "license": "MIT", "funding": { "type": "github", @@ -4711,9 +4280,9 @@ } }, "node_modules/marked": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz", - "integrity": "sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.4.tgz", + "integrity": "sha512-vkVZ8ONmUdPnjCKc5uTRvmkRbx4EAi2OkTOXmfTDhZz3OFqMNBM1oTTWwTr4HY4uAEojhzPf+Fy8F1DWa3Sndg==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -4753,22 +4322,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", - "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -5003,9 +4560,9 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -5013,6 +4570,7 @@ "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" @@ -5045,9 +4603,9 @@ } }, "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", "funding": [ { "type": "GitHub Sponsors", @@ -5080,9 +4638,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", "funding": [ { "type": "GitHub Sponsors", @@ -5338,9 +4896,9 @@ } }, "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", @@ -5359,9 +4917,9 @@ } }, "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", @@ -5408,9 +4966,9 @@ } }, "node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -5428,9 +4986,9 @@ } }, "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", @@ -5450,9 +5008,9 @@ } }, "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", @@ -5472,9 +5030,9 @@ } }, "node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -5492,9 +5050,9 @@ } }, "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", @@ -5511,9 +5069,9 @@ } }, "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -5532,9 +5090,9 @@ } }, "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", @@ -5552,9 +5110,9 @@ } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -5571,9 +5129,9 @@ } }, "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -5593,9 +5151,9 @@ } }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -5635,9 +5193,9 @@ } }, "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", @@ -5651,9 +5209,9 @@ "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", @@ -5670,9 +5228,9 @@ } }, "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", @@ -5689,9 +5247,9 @@ } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -5710,9 +5268,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", + "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", "funding": [ { "type": "GitHub Sponsors", @@ -5732,9 +5290,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -5748,9 +5306,9 @@ "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", "funding": [ { "type": "GitHub Sponsors", @@ -5776,16 +5334,16 @@ "node": ">=8.6" } }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/minimatch": { @@ -5845,9 +5403,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -5926,66 +5484,15 @@ "node": ">= 6" } }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/oniguruma-to-es": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-0.7.0.tgz", + "integrity": "sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==", "license": "MIT", "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/oniguruma-to-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", - "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", - "license": "MIT", - "dependencies": { - "regex": "^4.3.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/ora": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.1.0.tgz", - "integrity": "sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==", - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "emoji-regex-xs": "^1.0.0", + "regex": "^5.0.2", + "regex-recursion": "^4.3.0" } }, "node_modules/p-limit": { @@ -6047,9 +5554,9 @@ } }, "node_modules/p-timeout": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==", "license": "MIT", "engines": { "node": ">=14.16" @@ -6140,12 +5647,12 @@ "license": "MIT" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -6197,36 +5704,19 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -6269,9 +5759,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -6289,7 +5779,7 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -6439,9 +5929,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", "devOptional": true, "license": "MIT", "bin": { @@ -6470,9 +5960,9 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz", - "integrity": "sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", + "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", "dev": true, "license": "MIT", "engines": { @@ -6637,10 +6127,92 @@ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", "license": "MIT" }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/regex": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.3.tgz", - "integrity": "sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/regex/-/regex-5.0.2.tgz", + "integrity": "sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-4.3.0.tgz", + "integrity": "sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", "license": "MIT" }, "node_modules/rehype": { @@ -6689,6 +6261,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/rehype-stringify": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", @@ -6723,9 +6310,9 @@ } }, "node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", @@ -6844,28 +6431,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/retext": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", @@ -6898,9 +6469,9 @@ } }, "node_modules/retext-smartypants": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.1.1.tgz", - "integrity": "sha512-onsHf34i/GzgElJgtT1K2V+31yEhWs7NJboKNxXJcmVMMPxLpgxZ9iADoMdydd6j/bHic5F/aNq0CGqElEtu2g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", @@ -6938,9 +6509,9 @@ } }, "node_modules/rollup": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz", - "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "license": "MIT", "dependencies": { "@types/estree": "1.0.6" @@ -6953,24 +6524,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.3", - "@rollup/rollup-android-arm64": "4.24.3", - "@rollup/rollup-darwin-arm64": "4.24.3", - "@rollup/rollup-darwin-x64": "4.24.3", - "@rollup/rollup-freebsd-arm64": "4.24.3", - "@rollup/rollup-freebsd-x64": "4.24.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.3", - "@rollup/rollup-linux-arm-musleabihf": "4.24.3", - "@rollup/rollup-linux-arm64-gnu": "4.24.3", - "@rollup/rollup-linux-arm64-musl": "4.24.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3", - "@rollup/rollup-linux-riscv64-gnu": "4.24.3", - "@rollup/rollup-linux-s390x-gnu": "4.24.3", - "@rollup/rollup-linux-x64-gnu": "4.24.3", - "@rollup/rollup-linux-x64-musl": "4.24.3", - "@rollup/rollup-win32-arm64-msvc": "4.24.3", - "@rollup/rollup-win32-ia32-msvc": "4.24.3", - "@rollup/rollup-win32-x64-msvc": "4.24.3", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -7040,19 +6611,6 @@ "suf-log": "^2.5.3" } }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -7127,15 +6685,15 @@ } }, "node_modules/shiki": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", - "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.24.0.tgz", + "integrity": "sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==", "license": "MIT", "dependencies": { - "@shikijs/core": "1.22.2", - "@shikijs/engine-javascript": "1.22.2", - "@shikijs/engine-oniguruma": "1.22.2", - "@shikijs/types": "1.22.2", + "@shikijs/core": "1.24.0", + "@shikijs/engine-javascript": "1.24.0", + "@shikijs/engine-oniguruma": "1.24.0", + "@shikijs/types": "1.24.0", "@shikijs/vscode-textmate": "^9.3.0", "@types/hast": "^3.0.4" } @@ -7217,18 +6775,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, - "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -7348,15 +6894,6 @@ "node": ">=4" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", @@ -7364,12 +6901,12 @@ "license": "MIT" }, "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", "license": "MIT", "dependencies": { - "inline-style-parser": "0.1.1" + "inline-style-parser": "0.2.4" } }, "node_modules/sucrase": { @@ -7426,33 +6963,33 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.16.tgz", + "integrity": "sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -7510,13 +7047,16 @@ "node": ">=10.13.0" } }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { @@ -7664,17 +7204,17 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD", "optional": true }, "node_modules/tsx": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", - "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", - "dev": true, + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", + "devOptional": true, "license": "MIT", "dependencies": { "esbuild": "~0.23.0", @@ -8085,7 +7625,7 @@ "version": "0.23.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", - "dev": true, + "devOptional": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -8122,9 +7662,9 @@ } }, "node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", + "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" @@ -8140,9 +7680,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -8153,18 +7693,24 @@ } }, "node_modules/typescript-auto-import-cache": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.3.tgz", - "integrity": "sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", "license": "MIT", "dependencies": { "semver": "^7.3.8" } }, + "node_modules/ultrahtml": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==", + "license": "MIT" + }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, "license": "MIT" }, @@ -8402,20 +7948,20 @@ } }, "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.2.tgz", + "integrity": "sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==", "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -8424,19 +7970,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -8457,20 +8009,449 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, "node_modules/vitefu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.3.tgz", - "integrity": "sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.4.tgz", + "integrity": "sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==", "license": "MIT", "workspaces": [ "tests/deps/*", "tests/projects/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { "vite": { @@ -8479,9 +8460,9 @@ } }, "node_modules/volar-service-css": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.61.tgz", - "integrity": "sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", "license": "MIT", "dependencies": { "vscode-css-languageservice": "^6.3.0", @@ -8498,9 +8479,9 @@ } }, "node_modules/volar-service-emmet": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.61.tgz", - "integrity": "sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", "license": "MIT", "dependencies": { "@emmetio/css-parser": "^0.4.0", @@ -8518,9 +8499,9 @@ } }, "node_modules/volar-service-html": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.61.tgz", - "integrity": "sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", "license": "MIT", "dependencies": { "vscode-html-languageservice": "^5.3.0", @@ -8537,9 +8518,9 @@ } }, "node_modules/volar-service-prettier": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.61.tgz", - "integrity": "sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.62.tgz", + "integrity": "sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" @@ -8558,9 +8539,9 @@ } }, "node_modules/volar-service-typescript": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.61.tgz", - "integrity": "sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", "license": "MIT", "dependencies": { "path-browserify": "^1.0.1", @@ -8580,9 +8561,9 @@ } }, "node_modules/volar-service-typescript-twoslash-queries": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.61.tgz", - "integrity": "sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" @@ -8597,9 +8578,9 @@ } }, "node_modules/volar-service-yaml": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.61.tgz", - "integrity": "sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==", + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.62.tgz", + "integrity": "sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8", @@ -8615,9 +8596,9 @@ } }, "node_modules/vscode-css-languageservice": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", - "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.2.tgz", + "integrity": "sha512-GEpPxrUTAeXWdZWHev1OJU9lz2Q2/PPBxQ2TIRmLGvQiH3WZbqaNoute0n0ewxlgtjzTW3AKZT+NHySk5Rf4Eg==", "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", @@ -8835,24 +8816,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -8885,22 +8848,10 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", "license": "MIT" }, "node_modules/y18n": { @@ -8912,16 +8863,10 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, "node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -9102,6 +9047,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yocto-spinner": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.1.1.tgz", + "integrity": "sha512-vb6yztJdmbX9BwiR2NlKim7roGM5xFFhiTO6UstNiKBnh8NT6uFNjpXYC6DWTnLgRRyHh2nDNEM8kLHSRLw4kg==", + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/package.json b/package.json index 738c499..bd9c267 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "gallery.badmanners.xyz", "type": "module", - "version": "1.13.1", + "version": "1.14.0", "scripts": { "postinstall": "astro sync", "dev": "astro dev", @@ -17,16 +17,16 @@ "dependencies": { "@astrojs/alpinejs": "^0.4.0", "@astrojs/check": "^0.9.4", - "@astrojs/mdx": "^3.1.7", - "@astrojs/rss": "^4.0.7", - "@astrojs/tailwind": "^5.1.1", + "@astrojs/mdx": "^4.0.1", + "@astrojs/rss": "^4.0.9", + "@astrojs/tailwind": "^5.1.3", "@astropub/md": "^1.0.0", "@pagefind/default-ui": "^1.2.0", "@tailwindcss/typography": "^0.5.15", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.15.11", - "astro-htaccess": "^0.2.0", + "astro": "^5.0.1", + "astro-htaccess": "^0.2.3", "clsx": "^2.1.1", "fluid-tailwind": "^1.0.3", "github-slugger": "^2.0.0", diff --git a/scripts/export-story.ts b/scripts/export-story.ts index dbd2631..95ce712 100644 --- a/scripts/export-story.ts +++ b/scripts/export-story.ts @@ -7,7 +7,7 @@ import { createInterface } from "node:readline"; import { program } from "commander"; import fetchRetryWrapper from "fetch-retry"; import type { HealthcheckResponse } from "../src/pages/api/healthcheck"; -import type { ExportStoryResponse } from "../src/pages/api/export-story/[...slug]"; +import type { ExportStoryResponse } from "../src/pages/api/export-story/[...id]"; function getRTFStyles(rtfSource: string) { const matches = rtfSource.matchAll( @@ -46,7 +46,7 @@ const isLibreOfficeRunning = async () => lines.on("close", () => res(false)); }); -async function exportStory(slug: string, options: { outputDir: string }) { +async function exportStory(id: string, options: { outputDir: string }) { /* Check that LibreOffice is not running */ if (await isLibreOfficeRunning()) { console.error("ERROR: LibreOffice cannot be open while this command is running!"); @@ -103,7 +103,7 @@ async function exportStory(slug: string, options: { outputDir: string }) { let storyText = ""; try { console.log("Getting data from Astro..."); - const response = await fetch(new URL(`api/export-story/${slug}`, astroURL)); + const response = await fetch(new URL(`api/export-story/${id}`, astroURL)); if (!response.ok) { throw new Error(`Failed to reach export-story API (status code ${response.status})`); } @@ -114,7 +114,7 @@ async function exportStory(slug: string, options: { outputDir: string }) { // Story (async () => { storyText = data.story; - await writeFile(join(outputDir, `${slug}.txt`), storyText); + await writeFile(join(outputDir, `${id}.txt`), storyText); })(), // Descriptions Object.entries(data.description).map( @@ -153,9 +153,9 @@ async function exportStory(slug: string, options: { outputDir: string }) { console.log("Parsing story into output formats..."); // Process output files in parallel await Promise.all([ - // ${slug}.md - writeFile(join(outputDir, `${slug}.md`), storyText.replaceAll(/=(?==)/g, "= ").replaceAll("*", "\\*")), - // ${slug}.rtf + // ${id}.md + writeFile(join(outputDir, `${id}.md`), storyText.replaceAll(/=(?==)/g, "= ").replaceAll("*", "\\*")), + // ${id}.rtf (async () => { const tempDir = await mkdtemp(join(tmpdir(), "export-story-")); await writeFile(join(tempDir, "temp.txt"), storyText.replaceAll(/\n\n+/g, "\n")); @@ -174,7 +174,7 @@ async function exportStory(slug: string, options: { outputDir: string }) { console.warn(`Missing RTF style "Normal"! Skipping RTF file generation.`); } else { await writeFile( - join(outputDir, `${slug}.rtf`), + join(outputDir, `${id}.rtf`), rtfText.replaceAll(rtfStyles["Preformatted Text"], rtfStyles["Normal"]), ); } @@ -187,7 +187,7 @@ async function exportStory(slug: string, options: { outputDir: string }) { await program .name("export-story") .description("Generate and export formatted upload files for a story") - .argument("<story-slug>", `Slug portion of the story's URL (eg. "the-lost-of-the-marshes/chapter-1")`) + .argument("<story-id>", `ID portion of the story's URL (eg. "the-lost-of-the-marshes/chapter-1")`) .option("-o, --output-dir <directory>", `Empty or inexistent directory path to export files to`) .action(exportStory) .parseAsync(); diff --git a/src/components/CopyrightedCharacters.astro b/src/components/CopyrightedCharacters.astro index 6e57ab6..5fbd465 100644 --- a/src/components/CopyrightedCharacters.astro +++ b/src/components/CopyrightedCharacters.astro @@ -1,5 +1,5 @@ --- -import type { CopyrightedCharacters } from "@content/config"; +import type { CopyrightedCharacters } from "src/content.config"; import { t, type Lang } from "@i18n"; import UserComponent from "./UserComponent.astro"; import CopyrightedCharactersItem from "./CopyrightedCharactersItem.astro"; diff --git a/src/components/ExternalPosts.astro b/src/components/ExternalPosts.astro index ba7be15..033a7de 100644 --- a/src/components/ExternalPosts.astro +++ b/src/components/ExternalPosts.astro @@ -1,5 +1,5 @@ --- -import type { Posts } from "@content/config"; +import type { Posts } from "src/content.config"; import { t, type Lang } from "@i18n"; import { IconEkasPortal, IconFurAffinity, IconInkbunny, IconSoFurry, IconWeasyl } from "./icons/brands"; @@ -16,7 +16,7 @@ const isVisible = eka || furaffinity || inkbunny || sofurry || weasyl; { isVisible ? ( <section id="external-posts-section" class="my-5 px-2 font-serif" aria-describedby="title-external-posts"> - <> + <Fragment> <h2 id="title-external-posts" class="py-2 font-serif text-xl font-semibold text-stone-800 dark:text-stone-100"> {t(lang, "published_content/syndication_see_also_on")} </h2> @@ -87,7 +87,7 @@ const isVisible = eka || furaffinity || inkbunny || sofurry || weasyl; </li> ) : null} </ul> - </> + </Fragment> </section> ) : null } diff --git a/src/content/config.ts b/src/content.config.ts similarity index 96% rename from src/content/config.ts rename to src/content.config.ts index 34efed8..159ef0a 100644 --- a/src/content/config.ts +++ b/src/content.config.ts @@ -1,4 +1,5 @@ import { defineCollection, reference, z } from "astro:content"; +import { glob } from "astro/loaders"; // Constants @@ -258,7 +259,7 @@ export type Posts = PublishedContent["posts"]; // Content collections const storiesCollection = defineCollection({ - type: "content", + loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/data/stories" }), schema: ({ image }) => z .object({ @@ -287,7 +288,7 @@ const storiesCollection = defineCollection({ }); const gamesCollection = defineCollection({ - type: "content", + loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/data/games" }), schema: ({ image }) => z .object({ @@ -309,7 +310,7 @@ const gamesCollection = defineCollection({ }); const blogCollection = defineCollection({ - type: "content", + loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/data/blog" }), schema: ({ image }) => z .object({ @@ -328,7 +329,7 @@ const blogCollection = defineCollection({ // Data collections const usersCollection = defineCollection({ - type: "data", + loader: glob({ pattern: "*.{yml,yaml}", base: "./src/data/users" }), schema: ({ image }) => z .object({ @@ -349,7 +350,7 @@ const usersCollection = defineCollection({ }); const seriesCollection = defineCollection({ - type: "data", + loader: glob({ pattern: "*.{yml,yaml}", base: "./src/data/series" }), schema: z.object({ // Required parameters name: z.string(), @@ -358,7 +359,7 @@ const seriesCollection = defineCollection({ }); const tagCategoriesCollection = defineCollection({ - type: "data", + loader: glob({ pattern: "*.{yml,yaml}", base: "./src/data/tag-categories" }), schema: z.object({ // Required parameters name: z.string(), diff --git a/src/content/blog/crossing-over-postmortem.mdx b/src/data/blog/crossing-over-postmortem.mdx similarity index 100% rename from src/content/blog/crossing-over-postmortem.mdx rename to src/data/blog/crossing-over-postmortem.mdx diff --git a/src/content/blog/drafts/.gitignore b/src/data/blog/drafts/.gitignore similarity index 100% rename from src/content/blog/drafts/.gitignore rename to src/data/blog/drafts/.gitignore diff --git a/src/content/blog/ssh-all-the-way-down.mdx b/src/data/blog/ssh-all-the-way-down.mdx similarity index 99% rename from src/content/blog/ssh-all-the-way-down.mdx rename to src/data/blog/ssh-all-the-way-down.mdx index a73d421..b35b7c7 100644 --- a/src/content/blog/ssh-all-the-way-down.mdx +++ b/src/data/blog/ssh-all-the-way-down.mdx @@ -1,5 +1,4 @@ --- -slug: ssh-all-the-way-down title: SSH all the way down! pubDate: 2024-09-22 isAgeRestricted: false diff --git a/src/content/blog/supercharged-ssh-apps-on-sish.mdx b/src/data/blog/supercharged-ssh-apps-on-sish.mdx similarity index 99% rename from src/content/blog/supercharged-ssh-apps-on-sish.mdx rename to src/data/blog/supercharged-ssh-apps-on-sish.mdx index f4b4de8..8eb208b 100644 --- a/src/content/blog/supercharged-ssh-apps-on-sish.mdx +++ b/src/data/blog/supercharged-ssh-apps-on-sish.mdx @@ -1,5 +1,4 @@ --- -slug: supercharged-ssh-apps-on-sish title: Supercharged SSH applications on sish pubDate: 2024-09-23 isAgeRestricted: false diff --git a/src/content/blog/taken-in-breakdown.mdx b/src/data/blog/taken-in-breakdown.mdx similarity index 100% rename from src/content/blog/taken-in-breakdown.mdx rename to src/data/blog/taken-in-breakdown.mdx diff --git a/src/content/games/crossing-over.md b/src/data/games/crossing-over.md similarity index 100% rename from src/content/games/crossing-over.md rename to src/data/games/crossing-over.md diff --git a/src/content/games/drafts/.gitignore b/src/data/games/drafts/.gitignore similarity index 100% rename from src/content/games/drafts/.gitignore rename to src/data/games/drafts/.gitignore diff --git a/src/content/series/the-lost-of-the-marshes.yaml b/src/data/series/the-lost-of-the-marshes.yaml similarity index 100% rename from src/content/series/the-lost-of-the-marshes.yaml rename to src/data/series/the-lost-of-the-marshes.yaml diff --git a/src/content/stories/accommodation.md b/src/data/stories/accommodation.md similarity index 100% rename from src/content/stories/accommodation.md rename to src/data/stories/accommodation.md diff --git a/src/content/stories/addictive-additions.md b/src/data/stories/addictive-additions.md similarity index 100% rename from src/content/stories/addictive-additions.md rename to src/data/stories/addictive-additions.md diff --git a/src/content/stories/annivoresary.md b/src/data/stories/annivoresary.md similarity index 100% rename from src/content/stories/annivoresary.md rename to src/data/stories/annivoresary.md diff --git a/src/content/stories/better-in-bully-batter.md b/src/data/stories/better-in-bully-batter.md similarity index 100% rename from src/content/stories/better-in-bully-batter.md rename to src/data/stories/better-in-bully-batter.md diff --git a/src/content/stories/big-haul-part-2.md b/src/data/stories/big-haul-part-2.md similarity index 100% rename from src/content/stories/big-haul-part-2.md rename to src/data/stories/big-haul-part-2.md diff --git a/src/content/stories/big-haul.md b/src/data/stories/big-haul.md similarity index 100% rename from src/content/stories/big-haul.md rename to src/data/stories/big-haul.md diff --git a/src/content/stories/birdroom.md b/src/data/stories/birdroom.md similarity index 100% rename from src/content/stories/birdroom.md rename to src/data/stories/birdroom.md diff --git a/src/content/stories/bladder-filler.md b/src/data/stories/bladder-filler.md similarity index 100% rename from src/content/stories/bladder-filler.md rename to src/data/stories/bladder-filler.md diff --git a/src/content/stories/bottom-of-the-food-chain.md b/src/data/stories/bottom-of-the-food-chain.md similarity index 100% rename from src/content/stories/bottom-of-the-food-chain.md rename to src/data/stories/bottom-of-the-food-chain.md diff --git a/src/content/stories/butting-into-their-plans.md b/src/data/stories/butting-into-their-plans.md similarity index 100% rename from src/content/stories/butting-into-their-plans.md rename to src/data/stories/butting-into-their-plans.md diff --git a/src/content/stories/coils-and-spoils.md b/src/data/stories/coils-and-spoils.md similarity index 100% rename from src/content/stories/coils-and-spoils.md rename to src/data/stories/coils-and-spoils.md diff --git a/src/content/stories/delicacy-s-dare.md b/src/data/stories/delicacy-s-dare.md similarity index 100% rename from src/content/stories/delicacy-s-dare.md rename to src/data/stories/delicacy-s-dare.md diff --git a/src/content/stories/drafts/.gitignore b/src/data/stories/drafts/.gitignore similarity index 100% rename from src/content/stories/drafts/.gitignore rename to src/data/stories/drafts/.gitignore diff --git a/src/content/stories/eggs-for-months.md b/src/data/stories/eggs-for-months.md similarity index 100% rename from src/content/stories/eggs-for-months.md rename to src/data/stories/eggs-for-months.md diff --git a/src/content/stories/engaged-in-reality.md b/src/data/stories/engaged-in-reality.md similarity index 99% rename from src/content/stories/engaged-in-reality.md rename to src/data/stories/engaged-in-reality.md index 1f2be97..c51ebb5 100644 --- a/src/content/stories/engaged-in-reality.md +++ b/src/data/stories/engaged-in-reality.md @@ -1,5 +1,4 @@ --- -slug: engaged-in-reality title: Engaged in Reality pubDate: 2024-11-01 authors: bad-manners diff --git a/src/content/stories/engaging-contacts.md b/src/data/stories/engaging-contacts.md similarity index 100% rename from src/content/stories/engaging-contacts.md rename to src/data/stories/engaging-contacts.md diff --git a/src/content/stories/flavorful-favor.md b/src/data/stories/flavorful-favor.md similarity index 100% rename from src/content/stories/flavorful-favor.md rename to src/data/stories/flavorful-favor.md diff --git a/src/content/stories/for-the-night.md b/src/data/stories/for-the-night.md similarity index 100% rename from src/content/stories/for-the-night.md rename to src/data/stories/for-the-night.md diff --git a/src/content/stories/gentle-and-cruel.md b/src/data/stories/gentle-and-cruel.md similarity index 100% rename from src/content/stories/gentle-and-cruel.md rename to src/data/stories/gentle-and-cruel.md diff --git a/src/content/stories/good-pet.md b/src/data/stories/good-pet.md similarity index 100% rename from src/content/stories/good-pet.md rename to src/data/stories/good-pet.md diff --git a/src/content/stories/hate-to-sea-it.md b/src/data/stories/hate-to-sea-it.md similarity index 100% rename from src/content/stories/hate-to-sea-it.md rename to src/data/stories/hate-to-sea-it.md diff --git a/src/content/stories/hungry-for-love.md b/src/data/stories/hungry-for-love.md similarity index 100% rename from src/content/stories/hungry-for-love.md rename to src/data/stories/hungry-for-love.md diff --git a/src/content/stories/hyper-hunger.md b/src/data/stories/hyper-hunger.md similarity index 100% rename from src/content/stories/hyper-hunger.md rename to src/data/stories/hyper-hunger.md diff --git a/src/content/stories/insistence-and-assistance.md b/src/data/stories/insistence-and-assistance.md similarity index 100% rename from src/content/stories/insistence-and-assistance.md rename to src/data/stories/insistence-and-assistance.md diff --git a/src/content/stories/lactation-action.md b/src/data/stories/lactation-action.md similarity index 100% rename from src/content/stories/lactation-action.md rename to src/data/stories/lactation-action.md diff --git a/src/content/stories/latest-catch.md b/src/data/stories/latest-catch.md similarity index 100% rename from src/content/stories/latest-catch.md rename to src/data/stories/latest-catch.md diff --git a/src/content/stories/never-too-late.md b/src/data/stories/never-too-late.md similarity index 100% rename from src/content/stories/never-too-late.md rename to src/data/stories/never-too-late.md diff --git a/src/content/stories/noble-fire.md b/src/data/stories/noble-fire.md similarity index 100% rename from src/content/stories/noble-fire.md rename to src/data/stories/noble-fire.md diff --git a/src/content/stories/overzealous-zenko.md b/src/data/stories/overzealous-zenko.md similarity index 100% rename from src/content/stories/overzealous-zenko.md rename to src/data/stories/overzealous-zenko.md diff --git a/src/content/stories/part-of-the-show.md b/src/data/stories/part-of-the-show.md similarity index 100% rename from src/content/stories/part-of-the-show.md rename to src/data/stories/part-of-the-show.md diff --git a/src/content/stories/pet-sit-saturday.md b/src/data/stories/pet-sit-saturday.md similarity index 100% rename from src/content/stories/pet-sit-saturday.md rename to src/data/stories/pet-sit-saturday.md diff --git a/src/content/stories/playing-it-safe.md b/src/data/stories/playing-it-safe.md similarity index 99% rename from src/content/stories/playing-it-safe.md rename to src/data/stories/playing-it-safe.md index c2c9b84..043ffd9 100644 --- a/src/content/stories/playing-it-safe.md +++ b/src/data/stories/playing-it-safe.md @@ -1,5 +1,4 @@ --- -slug: playing-it-safe title: Playing It Safe pubDate: 2024-08-08 authors: bad-manners diff --git a/src/content/stories/reaching-for-the-full-moon.md b/src/data/stories/reaching-for-the-full-moon.md similarity index 100% rename from src/content/stories/reaching-for-the-full-moon.md rename to src/data/stories/reaching-for-the-full-moon.md diff --git a/src/content/stories/rose-s-binge.md b/src/data/stories/rose-s-binge.md similarity index 100% rename from src/content/stories/rose-s-binge.md rename to src/data/stories/rose-s-binge.md diff --git a/src/content/stories/ruffling-some-feathers.md b/src/data/stories/ruffling-some-feathers.md similarity index 100% rename from src/content/stories/ruffling-some-feathers.md rename to src/data/stories/ruffling-some-feathers.md diff --git a/src/content/stories/spontaneous-sleepover.md b/src/data/stories/spontaneous-sleepover.md similarity index 100% rename from src/content/stories/spontaneous-sleepover.md rename to src/data/stories/spontaneous-sleepover.md diff --git a/src/content/stories/taken-in.md b/src/data/stories/taken-in.md similarity index 100% rename from src/content/stories/taken-in.md rename to src/data/stories/taken-in.md diff --git a/src/content/stories/tasting-high-consequences.md b/src/data/stories/tasting-high-consequences.md similarity index 100% rename from src/content/stories/tasting-high-consequences.md rename to src/data/stories/tasting-high-consequences.md diff --git a/src/content/stories/team-building.md b/src/data/stories/team-building.md similarity index 100% rename from src/content/stories/team-building.md rename to src/data/stories/team-building.md diff --git a/src/content/stories/team-effort.md b/src/data/stories/team-effort.md similarity index 100% rename from src/content/stories/team-effort.md rename to src/data/stories/team-effort.md diff --git a/src/content/stories/the-last-livestream.md b/src/data/stories/the-last-livestream.md similarity index 100% rename from src/content/stories/the-last-livestream.md rename to src/data/stories/the-last-livestream.md diff --git a/src/content/stories/the-lost-of-the-marshes/bonus-1-quince-s-fantasy.md b/src/data/stories/the-lost-of-the-marshes/bonus-1-quince-s-fantasy.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/bonus-1-quince-s-fantasy.md rename to src/data/stories/the-lost-of-the-marshes/bonus-1-quince-s-fantasy.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-1.md b/src/data/stories/the-lost-of-the-marshes/chapter-1.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-1.md rename to src/data/stories/the-lost-of-the-marshes/chapter-1.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-10.md b/src/data/stories/the-lost-of-the-marshes/chapter-10.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-10.md rename to src/data/stories/the-lost-of-the-marshes/chapter-10.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-11.md b/src/data/stories/the-lost-of-the-marshes/chapter-11.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-11.md rename to src/data/stories/the-lost-of-the-marshes/chapter-11.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-2.md b/src/data/stories/the-lost-of-the-marshes/chapter-2.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-2.md rename to src/data/stories/the-lost-of-the-marshes/chapter-2.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-3.md b/src/data/stories/the-lost-of-the-marshes/chapter-3.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-3.md rename to src/data/stories/the-lost-of-the-marshes/chapter-3.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-4.md b/src/data/stories/the-lost-of-the-marshes/chapter-4.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-4.md rename to src/data/stories/the-lost-of-the-marshes/chapter-4.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-5.md b/src/data/stories/the-lost-of-the-marshes/chapter-5.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-5.md rename to src/data/stories/the-lost-of-the-marshes/chapter-5.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-6.md b/src/data/stories/the-lost-of-the-marshes/chapter-6.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-6.md rename to src/data/stories/the-lost-of-the-marshes/chapter-6.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-7.md b/src/data/stories/the-lost-of-the-marshes/chapter-7.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-7.md rename to src/data/stories/the-lost-of-the-marshes/chapter-7.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-8.md b/src/data/stories/the-lost-of-the-marshes/chapter-8.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-8.md rename to src/data/stories/the-lost-of-the-marshes/chapter-8.md diff --git a/src/content/stories/the-lost-of-the-marshes/chapter-9.md b/src/data/stories/the-lost-of-the-marshes/chapter-9.md similarity index 100% rename from src/content/stories/the-lost-of-the-marshes/chapter-9.md rename to src/data/stories/the-lost-of-the-marshes/chapter-9.md diff --git a/src/content/stories/tiny-accident.md b/src/data/stories/tiny-accident.md similarity index 100% rename from src/content/stories/tiny-accident.md rename to src/data/stories/tiny-accident.md diff --git a/src/content/stories/tomo-moku.md b/src/data/stories/tomo-moku.md similarity index 100% rename from src/content/stories/tomo-moku.md rename to src/data/stories/tomo-moku.md diff --git a/src/content/stories/trouble-sleeping.md b/src/data/stories/trouble-sleeping.md similarity index 100% rename from src/content/stories/trouble-sleeping.md rename to src/data/stories/trouble-sleeping.md diff --git a/src/content/stories/warped-friendship.md b/src/data/stories/warped-friendship.md similarity index 100% rename from src/content/stories/warped-friendship.md rename to src/data/stories/warped-friendship.md diff --git a/src/content/stories/within-limits.md b/src/data/stories/within-limits.md similarity index 100% rename from src/content/stories/within-limits.md rename to src/data/stories/within-limits.md diff --git a/src/content/stories/woofer-exploration.md b/src/data/stories/woofer-exploration.md similarity index 100% rename from src/content/stories/woofer-exploration.md rename to src/data/stories/woofer-exploration.md diff --git a/src/content/stories/you-re-home.md b/src/data/stories/you-re-home.md similarity index 100% rename from src/content/stories/you-re-home.md rename to src/data/stories/you-re-home.md diff --git a/src/content/tag-categories/1-types-of-vore.yaml b/src/data/tag-categories/1-types-of-vore.yaml similarity index 100% rename from src/content/tag-categories/1-types-of-vore.yaml rename to src/data/tag-categories/1-types-of-vore.yaml diff --git a/src/content/tag-categories/10-recurring-characters.yaml b/src/data/tag-categories/10-recurring-characters.yaml similarity index 100% rename from src/content/tag-categories/10-recurring-characters.yaml rename to src/data/tag-categories/10-recurring-characters.yaml diff --git a/src/content/tag-categories/2-body-types.yaml b/src/data/tag-categories/2-body-types.yaml similarity index 100% rename from src/content/tag-categories/2-body-types.yaml rename to src/data/tag-categories/2-body-types.yaml diff --git a/src/content/tag-categories/3-genders.yaml b/src/data/tag-categories/3-genders.yaml similarity index 100% rename from src/content/tag-categories/3-genders.yaml rename to src/data/tag-categories/3-genders.yaml diff --git a/src/content/tag-categories/4-relative-size.yaml b/src/data/tag-categories/4-relative-size.yaml similarity index 100% rename from src/content/tag-categories/4-relative-size.yaml rename to src/data/tag-categories/4-relative-size.yaml diff --git a/src/content/tag-categories/5-willingness.yaml b/src/data/tag-categories/5-willingness.yaml similarity index 100% rename from src/content/tag-categories/5-willingness.yaml rename to src/data/tag-categories/5-willingness.yaml diff --git a/src/content/tag-categories/6-vore-related-scenarios.yaml b/src/data/tag-categories/6-vore-related-scenarios.yaml similarity index 100% rename from src/content/tag-categories/6-vore-related-scenarios.yaml rename to src/data/tag-categories/6-vore-related-scenarios.yaml diff --git a/src/content/tag-categories/7-sexual-content.yaml b/src/data/tag-categories/7-sexual-content.yaml similarity index 100% rename from src/content/tag-categories/7-sexual-content.yaml rename to src/data/tag-categories/7-sexual-content.yaml diff --git a/src/content/tag-categories/8-other-kinks.yaml b/src/data/tag-categories/8-other-kinks.yaml similarity index 100% rename from src/content/tag-categories/8-other-kinks.yaml rename to src/data/tag-categories/8-other-kinks.yaml diff --git a/src/content/tag-categories/9-type-of-content.yaml b/src/data/tag-categories/9-type-of-content.yaml similarity index 100% rename from src/content/tag-categories/9-type-of-content.yaml rename to src/data/tag-categories/9-type-of-content.yaml diff --git a/src/content/users/anonymous.yaml b/src/data/users/anonymous.yaml similarity index 100% rename from src/content/users/anonymous.yaml rename to src/data/users/anonymous.yaml diff --git a/src/content/users/asof-yeun.yaml b/src/data/users/asof-yeun.yaml similarity index 100% rename from src/content/users/asof-yeun.yaml rename to src/data/users/asof-yeun.yaml diff --git a/src/content/users/avour-inden.yaml b/src/data/users/avour-inden.yaml similarity index 100% rename from src/content/users/avour-inden.yaml rename to src/data/users/avour-inden.yaml diff --git a/src/content/users/bad-manners.yaml b/src/data/users/bad-manners.yaml similarity index 100% rename from src/content/users/bad-manners.yaml rename to src/data/users/bad-manners.yaml diff --git a/src/content/users/dee-lumeni.yaml b/src/data/users/dee-lumeni.yaml similarity index 100% rename from src/content/users/dee-lumeni.yaml rename to src/data/users/dee-lumeni.yaml diff --git a/src/content/users/hans-woofington.yaml b/src/data/users/hans-woofington.yaml similarity index 100% rename from src/content/users/hans-woofington.yaml rename to src/data/users/hans-woofington.yaml diff --git a/src/content/users/holi.yaml b/src/data/users/holi.yaml similarity index 100% rename from src/content/users/holi.yaml rename to src/data/users/holi.yaml diff --git a/src/content/users/scion.yaml b/src/data/users/scion.yaml similarity index 100% rename from src/content/users/scion.yaml rename to src/data/users/scion.yaml diff --git a/src/content/users/yolkmonkey.yaml b/src/data/users/yolkmonkey.yaml similarity index 100% rename from src/content/users/yolkmonkey.yaml rename to src/data/users/yolkmonkey.yaml diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 4ec70c1..601a948 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -1,5 +1,5 @@ -import { type GamePlatform, type Lang, DEFAULT_LANG } from "@content/config"; -export { type Lang, DEFAULT_LANG } from "@content/config"; +import { type GamePlatform, type Lang, DEFAULT_LANG } from "src/content.config"; +export { type Lang, DEFAULT_LANG } from "src/content.config"; const UI_STRINGS = { // Utility functions diff --git a/src/integrations/pagefind.ts b/src/integrations/pagefind.ts index bf1607c..42a2d8f 100644 --- a/src/integrations/pagefind.ts +++ b/src/integrations/pagefind.ts @@ -24,7 +24,7 @@ export default function pagefind(config: PagefindConfig = {}): AstroIntegration outDir = fileURLToPath(new URL(".vercel/output/static/", config.root)); } else if (config.adapter?.name === "@astrojs/cloudflare") { outDir = fileURLToPath(new URL(config.base?.replace(/^\//, ""), config.outDir)); - } else if (config.adapter?.name === "@astrojs/node" && config.output === "hybrid") { + } else if (config.adapter?.name === "@astrojs/node") { outDir = fileURLToPath(config.build.client!); } else { outDir = fileURLToPath(config.outDir); diff --git a/src/layouts/BlogPostLayout.astro b/src/layouts/BlogPostLayout.astro index faaceff..1a37ef4 100644 --- a/src/layouts/BlogPostLayout.astro +++ b/src/layouts/BlogPostLayout.astro @@ -33,13 +33,13 @@ const relatedBlogPosts = (await getEntries(props.relatedBlogPosts)).filter((post series={series} prev={prev && !prev.data.isDraft ? { - link: `/blog/${prev.slug}`, + link: `/blog/${prev.id}`, title: t(props.lang, "blog/previous_post", prev.data.title), } : undefined} next={next && !next.data.isDraft ? { - link: `/blog/${next.slug}`, + link: `/blog/${next.id}`, title: t(props.lang, "blog/next_post", next.data.title), } : undefined} diff --git a/src/layouts/GalleryLayout.astro b/src/layouts/GalleryLayout.astro index 03e1360..729f3bb 100644 --- a/src/layouts/GalleryLayout.astro +++ b/src/layouts/GalleryLayout.astro @@ -55,7 +55,7 @@ const isCurrentRoute = (path: string) => src={logo.src} alt="A pixelated metal briefcase over a green gradient background." class="u-logo my-4 w-full max-w-[192px] rounded-sm border-2 border-green-800 shadow-md dark:border-green-950" - width={192} + height={192} /> </a> <span class="p-name mb-6 mt-4 text-3xl font-semibold">Bad Manners</span> @@ -124,9 +124,9 @@ const isCurrentRoute = (path: string) => currentYear === "2024" ? ( <time datetime="2024">2024</time> ) : ( - <> + <Fragment> <time datetime="2024">2024</time>–<time datetime={currentYear}>{currentYear}</time> - </> + </Fragment> ) } | </span> diff --git a/src/layouts/GameLayout.astro b/src/layouts/GameLayout.astro index 5a029aa..8dd3fb8 100644 --- a/src/layouts/GameLayout.astro +++ b/src/layouts/GameLayout.astro @@ -35,10 +35,10 @@ const metaDescription = t(props.lang, "game/warnings", props.platforms, props.co copyrightedCharacters={props.copyrightedCharacters} series={series} prev={prev && !prev.data.isDraft - ? { link: `/games/${prev.slug}`, title: t(props.lang, "game/previous_game", prev.data.title) } + ? { link: `/games/${prev.id}`, title: t(props.lang, "game/previous_game", prev.data.title) } : undefined} next={next && !next.data.isDraft - ? { link: `/games/${next.slug}`, title: t(props.lang, "game/next_game", next.data.title) } + ? { link: `/games/${next.id}`, title: t(props.lang, "game/next_game", next.data.title) } : undefined} relatedStories={relatedStories} relatedGames={relatedGames} diff --git a/src/layouts/PublishedContentLayout.astro b/src/layouts/PublishedContentLayout.astro index c720a19..635dda2 100644 --- a/src/layouts/PublishedContentLayout.astro +++ b/src/layouts/PublishedContentLayout.astro @@ -9,7 +9,7 @@ import BaseLayout from "@layouts/BaseLayout.astro"; import CopyrightedCharacters from "@components/CopyrightedCharacters.astro"; import Prose from "@components/Prose.astro"; import MastodonComments from "@components/MastodonComments.astro"; -import type { CopyrightedCharacters as CopyrightedCharactersType, Posts } from "@content/config"; +import type { CopyrightedCharacters as CopyrightedCharactersType, Posts } from "src/content.config"; import { qualifyLocalURLsInMarkdown } from "@utils/qualify_local_urls_in_markdown"; import { IconSun, @@ -366,7 +366,7 @@ const returnTo = series <ul class="font-serif"> {props.relatedStories.map((story) => ( <li> - <a href={`/stories/${story.slug}`}>{story.data.title}</a> + <a href={`/stories/${story.id}`}>{story.data.title}</a> </li> ))} </ul> @@ -387,7 +387,7 @@ const returnTo = series <ul class="font-serif"> {props.relatedGames.map((game) => ( <li> - <a href={`/games/${game.slug}`}>{game.data.title}</a> + <a href={`/games/${game.id}`}>{game.data.title}</a> </li> ))} </ul> @@ -408,7 +408,7 @@ const returnTo = series <ul class="font-serif"> {props.relatedBlogPosts.map((post) => ( <li> - <a href={`/blog/${post.slug}`}>{post.data.title}</a> + <a href={`/blog/${post.id}`}>{post.data.title}</a> </li> ))} </ul> diff --git a/src/layouts/StoryLayout.astro b/src/layouts/StoryLayout.astro index cede7c6..247ae9e 100644 --- a/src/layouts/StoryLayout.astro +++ b/src/layouts/StoryLayout.astro @@ -41,13 +41,13 @@ const metaDescription = t(props.lang, "story/warnings", wordCount, props.content series={series} prev={prev && !prev.data.isDraft ? { - link: `/stories/${prev.slug}`, + link: `/stories/${prev.id}`, title: t(props.lang, "story/previous_story", prev.data.shortTitle || prev.data.title), } : undefined} next={next && !next.data.isDraft ? { - link: `/stories/${next.slug}`, + link: `/stories/${next.id}`, title: t(props.lang, "story/next_story", next.data.shortTitle || next.data.title), } : undefined} diff --git a/src/pages/404.astro b/src/pages/404.astro index 9fa21e5..3ca4503 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -8,6 +8,6 @@ import GalleryLayout from "@layouts/GalleryLayout.astro"; <meta name="description" content="The requested link could not be found." /> </Fragment> <h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">404 – Not Found</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <p class="my-4">The requested link could not be found. Make sure that the URL is correct.</p> </GalleryLayout> diff --git a/src/pages/api/export-story/[...slug].ts b/src/pages/api/export-story/[...id].ts similarity index 96% rename from src/pages/api/export-story/[...slug].ts rename to src/pages/api/export-story/[...id].ts index 5010c76..2784fb6 100644 --- a/src/pages/api/export-story/[...slug].ts +++ b/src/pages/api/export-story/[...id].ts @@ -1,6 +1,6 @@ import type { APIRoute, GetStaticPaths } from "astro"; import { getCollection, type CollectionEntry, getEntries } from "astro:content"; -import type { PostWebsite } from "@content/config"; +import type { PostWebsite } from "src/content.config"; import { t } from "@i18n"; import { formatCopyrightedCharacters } from "@utils/format_copyrighted_characters"; import { markdownToBbcode } from "@utils/markdown_to_bbcode"; @@ -36,7 +36,7 @@ type Props = { }; type Params = { - slug: CollectionEntry<"stories">["slug"]; + id: CollectionEntry<"stories">["id"]; }; export const getStaticPaths: GetStaticPaths = async () => { @@ -44,7 +44,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return []; } return (await getCollection("stories")).map((story) => ({ - params: { slug: story.slug } satisfies Params, + params: { id: story.id } satisfies Params, props: { story } satisfies Props, })); }; @@ -52,6 +52,9 @@ export const getStaticPaths: GetStaticPaths = async () => { export const GET: APIRoute<Props, Params> = async ({ props: { story }, site }) => { try { const { lang } = story.data; + if (!story.body) { + throw new Error("Story body cannot be empty"); + } const copyrightedCharacters = await formatCopyrightedCharacters(story.data.copyrightedCharacters); const authorsList = await getEntries(story.data.authors); const commissionersList = story.data.commissioners && (await getEntries(story.data.commissioners)); diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...id].astro similarity index 74% rename from src/pages/blog/[...slug].astro rename to src/pages/blog/[...id].astro index f37daed..27023cd 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...id].astro @@ -1,13 +1,13 @@ --- import type { GetStaticPaths } from "astro"; -import { type CollectionEntry, getCollection } from "astro:content"; +import { type CollectionEntry, getCollection, render } from "astro:content"; import { PUBLISH_DRAFTS } from "astro:env/server"; import BlogPostLayout from "@layouts/BlogPostLayout.astro"; type Props = CollectionEntry<"blog">; type Params = { - slug: CollectionEntry<"blog">["slug"]; + id: CollectionEntry<"blog">["id"]; }; export const getStaticPaths: GetStaticPaths = async () => { @@ -15,13 +15,13 @@ export const getStaticPaths: GetStaticPaths = async () => { return posts .filter((post) => import.meta.env.DEV || PUBLISH_DRAFTS || !post.data.isDraft) .map((post) => ({ - params: { slug: post.slug } satisfies Params, + params: { id: post.id } satisfies Params, props: post satisfies Props, })); }; const post = Astro.props; -const { Content } = await post.render(); +const { Content } = await render(post); --- <BlogPostLayout {...post.data}> diff --git a/src/pages/blog/feed.xml.ts b/src/pages/blog/feed.xml.ts index 1d1d641..d7fcac0 100644 --- a/src/pages/blog/feed.xml.ts +++ b/src/pages/blog/feed.xml.ts @@ -1,6 +1,6 @@ import rss from "@astrojs/rss"; import type { APIRoute } from "astro"; -import { getCollection } from "astro:content"; +import { getCollection, render } from "astro:content"; import { blogFeedItem, type EntryWithPubDate } from "@utils/feed"; const MAX_ITEMS = 8; @@ -22,7 +22,7 @@ export const GET: APIRoute = async ({ site }) => { xmlns: { atom: "http://www.w3.org/2005/Atom" }, customData: `<link href="${new URL("blog", site)}" rel="alternate" type="text/html" /><atom:link href="${new URL("blog/feed.xml", site)}" rel="self" type="application/rss+xml" />`, items: await Promise.all( - posts.map(async ({ data, slug, render }) => blogFeedItem(site, data, slug, (await render()).Content)), + posts.map(async (post) => blogFeedItem(site, post.data, post.id, (await render(post)).Content)), ), }); }; diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro index b4425c0..314b630 100644 --- a/src/pages/blog/index.astro +++ b/src/pages/blog/index.astro @@ -25,7 +25,7 @@ const posts = await Promise.all( <meta name="description" content="A collection of blog posts written by Bad Manners." /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Blog</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div class="my-4 flex w-full"> <p class="p-summary grow">Whatever has been rattling in my head as of late.</p> <a class="u-url text-link ml-2 p-1 md:mr-5" href="/blog/feed.xml" rel="alternate" title="RSS feed" data-tooltip> @@ -39,7 +39,7 @@ const posts = await Promise.all( <li class="h-entry"> <a class="u-url text-link hover:underline focus:underline" - href={`/blog/${post.slug}`} + href={`/blog/${post.id}`} title={markdownToPlaintext(post.data.description)} data-tooltip > diff --git a/src/pages/feed.xml.ts b/src/pages/feed.xml.ts index b7d03ac..4c05580 100644 --- a/src/pages/feed.xml.ts +++ b/src/pages/feed.xml.ts @@ -1,6 +1,6 @@ import rss from "@astrojs/rss"; import type { APIRoute } from "astro"; -import { getCollection } from "astro:content"; +import { getCollection, render } from "astro:content"; import { blogFeedItem, gameFeedItem, storyFeedItem, type EntryWithPubDate } from "@utils/feed"; const MAX_ITEMS = 8; @@ -36,17 +36,17 @@ export const GET: APIRoute = async ({ site }) => { customData: `<link href="${site}" rel="alternate" type="text/html" /><atom:link href="${new URL("feed.xml", site)}" rel="self" type="application/rss+xml" />`, items: await Promise.all( [ - stories.map(({ data, slug, render }) => ({ - date: data.pubDate, - fn: async () => storyFeedItem(site, data, slug, (await render()).Content), + stories.map((story) => ({ + date: story.data.pubDate, + fn: async () => storyFeedItem(site, story.data, story.id, (await render(story)).Content), })), - games.map(({ data, slug, render }) => ({ - date: data.pubDate, - fn: async () => gameFeedItem(site, data, slug, (await render()).Content), + games.map((game) => ({ + date: game.data.pubDate, + fn: async () => gameFeedItem(site, game.data, game.id, (await render(game)).Content), })), - posts.map(({ data, slug, render }) => ({ - date: data.pubDate, - fn: async () => blogFeedItem(site, data, slug, (await render()).Content), + posts.map((post) => ({ + date: post.data.pubDate, + fn: async () => blogFeedItem(site, post.data, post.id, (await render(post)).Content), })), ] .flat() diff --git a/src/pages/games/[...slug].astro b/src/pages/games/[...id].astro similarity index 73% rename from src/pages/games/[...slug].astro rename to src/pages/games/[...id].astro index 41f9a41..7389223 100644 --- a/src/pages/games/[...slug].astro +++ b/src/pages/games/[...id].astro @@ -1,13 +1,13 @@ --- import type { GetStaticPaths } from "astro"; -import { type CollectionEntry, getCollection } from "astro:content"; +import { type CollectionEntry, getCollection, render } from "astro:content"; import GameLayout from "@layouts/GameLayout.astro"; import { PUBLISH_DRAFTS } from "astro:env/server"; type Props = CollectionEntry<"games">; type Params = { - slug: CollectionEntry<"games">["slug"]; + id: CollectionEntry<"games">["id"]; }; export const getStaticPaths: GetStaticPaths = async () => { @@ -15,13 +15,13 @@ export const getStaticPaths: GetStaticPaths = async () => { return games .filter((game) => import.meta.env.DEV || PUBLISH_DRAFTS || !game.data.isDraft) .map((game) => ({ - params: { slug: game.slug } satisfies Params, + params: { id: game.id } satisfies Params, props: game satisfies Props, })); }; const game = Astro.props; -const { Content } = await game.render(); +const { Content } = await render(game); --- <GameLayout {...game.data}> diff --git a/src/pages/games/feed.xml.ts b/src/pages/games/feed.xml.ts index cc62488..63f1e62 100644 --- a/src/pages/games/feed.xml.ts +++ b/src/pages/games/feed.xml.ts @@ -1,6 +1,6 @@ import rss from "@astrojs/rss"; import type { APIRoute } from "astro"; -import { getCollection } from "astro:content"; +import { getCollection, render } from "astro:content"; import { gameFeedItem, type EntryWithPubDate } from "@utils/feed"; const MAX_ITEMS = 8; @@ -9,7 +9,7 @@ export const GET: APIRoute = async ({ site }) => { if (!site) { throw new Error("site is required."); } - const stories = ( + const games = ( (await getCollection("games", (game) => !game.data.isDraft && game.data.pubDate)) as EntryWithPubDate<"games">[] ) .sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime()) @@ -22,7 +22,7 @@ export const GET: APIRoute = async ({ site }) => { xmlns: { atom: "http://www.w3.org/2005/Atom" }, customData: `<link href="${new URL("games", site)}" rel="alternate" type="text/html" /><atom:link href="${new URL("games/feed.xml", site)}" rel="self" type="application/rss+xml" />`, items: await Promise.all( - stories.map(async ({ data, slug, render }) => gameFeedItem(site, data, slug, (await render()).Content)), + games.map(async (game) => gameFeedItem(site, game.data, game.id, (await render(game)).Content)), ), }); }; diff --git a/src/pages/games/index.astro b/src/pages/games/index.astro index 2f2ce07..c72fcc4 100644 --- a/src/pages/games/index.astro +++ b/src/pages/games/index.astro @@ -24,7 +24,7 @@ const games = await Promise.all( <meta name="description" content="A safe vore videogame created by Bad Manners." /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Games</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div class="my-4 flex w-full"> <p class="p-summary grow">A game that I've gone and done.</p> <a class="u-url text-link ml-2 p-1 md:mr-5" href="/games/feed.xml" rel="alternate" title="RSS feed" data-tooltip> @@ -38,7 +38,7 @@ const games = await Promise.all( <li class="h-entry"> <a class="u-url text-link hover:underline focus:underline" - href={`/games/${game.slug}`} + href={`/games/${game.id}`} title={t(game.data.lang, "game/warnings", game.data.platforms, game.data.contentWarning)} data-tooltip > diff --git a/src/pages/index.astro b/src/pages/index.astro index ca4d1d0..58f3cff 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -68,7 +68,7 @@ async function storyEntry(story: EntryWithPubDate<"stories">): Promise<LatestIte type: "Story", isAgeRestricted: story.data.isAgeRestricted, thumbnail: story.data.thumbnail, - href: `/stories/${story.slug}`, + href: `/stories/${story.id}`, title: story.data.title, authors: await getEntries(story.data.authors), lang: story.data.lang, @@ -82,7 +82,7 @@ async function gameEntry(game: EntryWithPubDate<"games">): Promise<LatestItemsEn type: "Game", isAgeRestricted: game.data.isAgeRestricted, thumbnail: game.data.thumbnail, - href: `/games/${game.slug}`, + href: `/games/${game.id}`, title: game.data.title, authors: await getEntries(game.data.authors), lang: game.data.lang, @@ -96,7 +96,7 @@ async function blogEntry(post: EntryWithPubDate<"blog">): Promise<LatestItemsEnt type: "Blog post", isAgeRestricted: post.data.isAgeRestricted, thumbnail: post.data.thumbnail, - href: `/blog/${post.slug}`, + href: `/blog/${post.id}`, title: post.data.title, authors: await getEntries(post.data.authors), lang: post.data.lang, @@ -157,7 +157,7 @@ if (featuredItems.length > MAX_FEATURED_ITEMS) { <meta name="description" content="Find stories, games, and blog posts made by Bad Manners." /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Gallery</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div class="p-summary"> <div class="my-4 flex"> <p class="grow"> diff --git a/src/pages/search.astro b/src/pages/search.astro index 0bff83e..4c20613 100644 --- a/src/pages/search.astro +++ b/src/pages/search.astro @@ -33,6 +33,6 @@ const bundlePath = `${import.meta.env.BASE_URL}pagefind/`; <meta name="description" content="Search for stories, games, and blog posts made by Bad Manners." /> </Fragment> <h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Search</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div id="search" class="pagefind-ui pagefind-init my-4" data-pagefind-ui data-bundle-path={bundlePath}></div> </GalleryLayout> diff --git a/src/pages/stories/[...slug].astro b/src/pages/stories/[...id].astro similarity index 74% rename from src/pages/stories/[...slug].astro rename to src/pages/stories/[...id].astro index 515ac08..d489478 100644 --- a/src/pages/stories/[...slug].astro +++ b/src/pages/stories/[...id].astro @@ -1,6 +1,6 @@ --- import type { GetStaticPaths } from "astro"; -import { type CollectionEntry, getCollection } from "astro:content"; +import { type CollectionEntry, getCollection, render } from "astro:content"; import getReadingTime from "reading-time"; import StoryLayout from "@layouts/StoryLayout.astro"; import { PUBLISH_DRAFTS } from "astro:env/server"; @@ -8,7 +8,7 @@ import { PUBLISH_DRAFTS } from "astro:env/server"; type Props = CollectionEntry<"stories">; type Params = { - slug: CollectionEntry<"stories">["slug"]; + id: CollectionEntry<"stories">["id"]; }; export const getStaticPaths: GetStaticPaths = async () => { @@ -16,22 +16,25 @@ export const getStaticPaths: GetStaticPaths = async () => { return stories .filter((story) => import.meta.env.DEV || PUBLISH_DRAFTS || !story.data.isDraft) .map((story) => ({ - params: { slug: story.slug } satisfies Params, + params: { id: story.id } satisfies Params, props: story satisfies Props, })); }; const story = Astro.props; +if (!story.body) { + throw new Error("Story body cannot be empty"); +} const readingTime = getReadingTime(story.body); if (story.data.wordCount && Math.abs(story.data.wordCount - readingTime.words) >= 150) { console.warn( `WARNING: "wordCount" differs greatly from actual word count for published story ` + - `${story.data.title} ("${story.slug}") ` + + `${story.data.title} ("${story.id}") ` + `(expected ~${story.data.wordCount}, found ${readingTime.words})`, ); } -const { Content } = await story.render(); +const { Content } = await render(story); --- <StoryLayout {...story.data}> diff --git a/src/pages/stories/[...page].astro b/src/pages/stories/[...page].astro index 42a89e6..89a3a9c 100644 --- a/src/pages/stories/[...page].astro +++ b/src/pages/stories/[...page].astro @@ -35,7 +35,7 @@ const totalPages = Math.ceil(page.total / page.size); <meta name="description" content="Safe vore stories written by Bad Manners." /> </Fragment> <h1 class="p-name m-2 grow text-3xl font-semibold text-stone-800 dark:text-stone-100">Stories</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div class="my-4 flex"> <p class="p-summary grow">The bulk of my content!</p> <a class="u-url text-link ml-2 p-1 md:mr-5" href="/stories/feed.xml" rel="alternate" title="RSS feed" data-tooltip> @@ -84,7 +84,7 @@ const totalPages = Math.ceil(page.total / page.size); <li class="h-entry break-inside-avoid"> <a class="u-url text-link hover:underline focus:underline" - href={`/stories/${story.slug}`} + href={`/stories/${story.id}`} title={t(story.data.lang, "story/warnings", story.data.wordCount, story.data.contentWarning)} data-tooltip > diff --git a/src/pages/stories/feed.xml.ts b/src/pages/stories/feed.xml.ts index 6527271..22aaf7f 100644 --- a/src/pages/stories/feed.xml.ts +++ b/src/pages/stories/feed.xml.ts @@ -1,6 +1,6 @@ import rss from "@astrojs/rss"; import type { APIRoute } from "astro"; -import { getCollection } from "astro:content"; +import { getCollection, render } from "astro:content"; import { storyFeedItem, type EntryWithPubDate } from "@utils/feed"; const MAX_ITEMS = 8; @@ -25,7 +25,7 @@ export const GET: APIRoute = async ({ site }) => { xmlns: { atom: "http://www.w3.org/2005/Atom" }, customData: `<link href="${new URL("stories/1", site)}" rel="alternate" type="text/html" /><atom:link href="${new URL("stories/feed.xml", site)}" rel="self" type="application/rss+xml" />`, items: await Promise.all( - stories.map(async ({ data, slug, render }) => storyFeedItem(site, data, slug, (await render()).Content)), + stories.map(async (story) => storyFeedItem(site, story.data, story.id, (await render(story)).Content)), ), }); }; diff --git a/src/pages/stories/the-lost-of-the-marshes.astro b/src/pages/stories/the-lost-of-the-marshes.astro index 883e86f..c0787cb 100644 --- a/src/pages/stories/the-lost-of-the-marshes.astro +++ b/src/pages/stories/the-lost-of-the-marshes.astro @@ -14,10 +14,10 @@ const stories = (await getCollection( (story) => !story.data.isDraft && story.data.pubDate && story.data.series?.id === series.id, )) as StoryWithPubDate[]; const mainChapters = stories - .filter((story) => story.slug.startsWith("the-lost-of-the-marshes/chapter-")) + .filter((story) => story.id.startsWith("the-lost-of-the-marshes/chapter-")) .sort((a, b) => a.data.pubDate.getTime() - b.data.pubDate.getTime()); const bonusChapters = stories - .filter((story) => story.slug.startsWith("the-lost-of-the-marshes/bonus-")) + .filter((story) => story.id.startsWith("the-lost-of-the-marshes/bonus-")) .sort((a, b) => a.data.pubDate.getTime() - b.data.pubDate.getTime()); const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summary); --- @@ -31,7 +31,7 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">{series.data.name}</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <p class="p-summary my-4"> This is the main hub for the story of Quince, Nikili, and Suu, as well as all bonus content. </p> @@ -59,7 +59,7 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ .filter((story) => story.data.summary) .map((story) => ( <li class="my-2"> - <a class="text-link underline" href={`/stories/${story.slug}`}> + <a class="text-link underline" href={`/stories/${story.id}`}> {story.data.shortTitle || story.data.title}: </a> <span>{story.data.summary}</span> @@ -72,7 +72,7 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ { mainChapters.map((story) => ( <li class="h-entry break-inside-avoid"> - <a class="u-url text-link hover:underline focus:underline" href={`/stories/${story.slug}`}> + <a class="u-url text-link hover:underline focus:underline" href={`/stories/${story.id}`}> {story.data.thumbnail ? ( <Image class="u-photo w-48" @@ -106,7 +106,7 @@ const mainChaptersWithSummaries = mainChapters.filter((story) => story.data.summ { bonusChapters.map((story) => ( <li class="h-entry break-inside-avoid"> - <a class="u-url text-link hover:underline focus:underline" href={`/stories/${story.slug}`}> + <a class="u-url text-link hover:underline focus:underline" href={`/stories/${story.id}`}> {story.data.thumbnail ? ( <Image class="u-photo w-48" diff --git a/src/pages/tags.astro b/src/pages/tags.astro index 638a29d..220c649 100644 --- a/src/pages/tags.astro +++ b/src/pages/tags.astro @@ -81,7 +81,7 @@ if (uncategorizedTagsSet.size > 0) { <meta name="description" content="Find all content by Bad Manners with a specific tag." /> </Fragment> <h1 class="m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">All available tags</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <section class="my-2" aria-labelledby="category-series"> <h2 id="category-series" class="p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">Series</h2> <ul class="list-disc pl-8"> diff --git a/src/pages/tags/[badSlug].astro b/src/pages/tags/[badSlug].astro index 6934c2e..be8afa3 100644 --- a/src/pages/tags/[badSlug].astro +++ b/src/pages/tags/[badSlug].astro @@ -28,6 +28,6 @@ const { badTag } = Astro.props; <meta name="robots" content="noindex" /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Works tagged "{badTag}"</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <p class="my-4">No.</p> </GalleryLayout> diff --git a/src/pages/tags/[slug].astro b/src/pages/tags/[slug].astro index 2383fb1..8104471 100644 --- a/src/pages/tags/[slug].astro +++ b/src/pages/tags/[slug].astro @@ -142,7 +142,7 @@ const totalWorksWithTag = t( <meta name="description" content={`Works by Bad Manners tagged with "${props.tag}".`} /> </Fragment> <h1 class="p-name m-2 text-3xl font-semibold text-stone-800 dark:text-stone-100">Works tagged "{props.tag}"</h1> - <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden /> + <hr class="mb-3 ml-[2px] mt-2 h-[4px] max-w-xs rounded-sm bg-stone-800 dark:bg-stone-100" aria-hidden="true" /> <div class="my-4"> <Prose> {description ? <Markdown of={description} /> : null} @@ -167,7 +167,7 @@ const totalWorksWithTag = t( <li class="h-entry break-inside-avoid"> <a class="u-url text-link hover:underline focus:underline" - href={`/stories/${story.slug}`} + href={`/stories/${story.id}`} title={t(story.data.lang, "story/warnings", story.data.wordCount, story.data.contentWarning)} data-tooltip > @@ -238,7 +238,7 @@ const totalWorksWithTag = t( <li class="h-entry break-inside-avoid"> <a class="u-url text-link hover:underline focus:underline" - href={`/games/${game.slug}`} + href={`/games/${game.id}`} title={t(game.data.lang, "game/warnings", game.data.platforms, game.data.contentWarning)} data-tooltip > @@ -305,7 +305,7 @@ const totalWorksWithTag = t( <li class="h-entry break-inside-avoid"> <a class="u-url text-link hover:underline focus:underline" - href={`/blog/${post.slug}`} + href={`/blog/${post.id}`} title={markdownToPlaintext(post.data.description)} data-tooltip > diff --git a/src/utils/feed.ts b/src/utils/feed.ts index 8bc4de0..ecfa7e7 100644 --- a/src/utils/feed.ts +++ b/src/utils/feed.ts @@ -8,7 +8,7 @@ import { qualifyLocalURLsInMarkdown } from "./qualify_local_urls_in_markdown"; import { markdown } from "@astropub/md"; import { t, type Lang } from "@i18n"; import type { AstroComponentFactory } from "astro/runtime/server/index.js"; -import mdxRenderer from "astro/jsx/server.js"; +import mdxRenderer from "@astrojs/mdx/server.js"; import { htmlToAbsoluteUrls } from "./html_to_absolute_urls"; import { formatCopyrightedCharacters } from "./format_copyrighted_characters"; @@ -37,14 +37,14 @@ const getLinkForUser = (user: CollectionEntry<"users">, lang: Lang) => { export async function storyFeedItem( site: URL, data: EntryWithPubDate<"stories">["data"], - slug: CollectionEntry<"stories">["slug"], + id: CollectionEntry<"stories">["id"], content: AstroComponentFactory, ): Promise<FeedItem> { const copyrightedCharacters = await formatCopyrightedCharacters(data.copyrightedCharacters); return { title: `New story! "${data.title}"`, pubDate: toNoonUTCDate(data.pubDate), - link: `/stories/${slug}`, + link: `/stories/${id}`, description: `${t(data.lang, "story/warnings", data.wordCount, data.contentWarning)}\n\n${markdownToPlaintext(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`.replaceAll( /[\n ]+/g, @@ -106,14 +106,14 @@ export async function storyFeedItem( export async function gameFeedItem( site: URL, data: EntryWithPubDate<"games">["data"], - slug: CollectionEntry<"games">["slug"], + id: CollectionEntry<"games">["id"], content: AstroComponentFactory, ): Promise<FeedItem> { const copyrightedCharacters = await formatCopyrightedCharacters(data.copyrightedCharacters); return { title: `New game! "${data.title}"`, pubDate: toNoonUTCDate(data.pubDate), - link: `/games/${slug}`, + link: `/games/${id}`, description: `${t(data.lang, "game/warnings", data.platforms, data.contentWarning)}\n\n${markdownToPlaintext( await qualifyLocalURLsInMarkdown(data.description, data.lang, site), )}`.replaceAll(/[\n ]+/g, " "), @@ -160,13 +160,13 @@ export async function gameFeedItem( export async function blogFeedItem( site: URL, data: EntryWithPubDate<"blog">["data"], - slug: CollectionEntry<"blog">["slug"], + id: CollectionEntry<"blog">["id"], content: AstroComponentFactory, ): Promise<FeedItem> { return { title: `New blog post! "${data.title}"`, pubDate: toNoonUTCDate(data.pubDate), - link: `/blog/${slug}`, + link: `/blog/${id}`, description: markdownToPlaintext(await qualifyLocalURLsInMarkdown(data.description, data.lang, site)).replaceAll( /[\n ]+/g, " ", diff --git a/src/utils/format_copyrighted_characters.ts b/src/utils/format_copyrighted_characters.ts index 9449d53..56ba0aa 100644 --- a/src/utils/format_copyrighted_characters.ts +++ b/src/utils/format_copyrighted_characters.ts @@ -1,5 +1,5 @@ import { getEntry, type CollectionEntry } from "astro:content"; -import type { CopyrightedCharacters } from "@content/config"; +import type { CopyrightedCharacters } from "src/content.config"; export async function formatCopyrightedCharacters(copyrightedCharacters: CopyrightedCharacters) { return await Promise.all( diff --git a/src/utils/get_website_link_for_user.ts b/src/utils/get_website_link_for_user.ts index 021e4c5..4e62432 100644 --- a/src/utils/get_website_link_for_user.ts +++ b/src/utils/get_website_link_for_user.ts @@ -1,5 +1,5 @@ import type { CollectionEntry } from "astro:content"; -import { DEFAULT_LANG, type UserWebsite } from "@content/config"; +import { DEFAULT_LANG, type UserWebsite } from "src/content.config"; import { getUsernameForLang } from "./get_username_for_lang"; type WebsiteUserData<W extends UserWebsite> = NonNullable<CollectionEntry<"users">["data"]["links"][W]>; diff --git a/src/utils/is_anonymous_user.ts b/src/utils/is_anonymous_user.ts index 405d8b0..b387d09 100644 --- a/src/utils/is_anonymous_user.ts +++ b/src/utils/is_anonymous_user.ts @@ -1,5 +1,5 @@ import type { CollectionEntry } from "astro:content"; -import { ANONYMOUS_USER_ID } from "@content/config"; +import { ANONYMOUS_USER_ID } from "src/content.config"; const ID: CollectionEntry<"users">["id"] = ANONYMOUS_USER_ID; diff --git a/src/utils/is_user_self.ts b/src/utils/is_user_self.ts index e910a55..97caf97 100644 --- a/src/utils/is_user_self.ts +++ b/src/utils/is_user_self.ts @@ -1,5 +1,5 @@ import type { CollectionEntry } from "astro:content"; -import { SELF_USER_ID } from "@content/config"; +import { SELF_USER_ID } from "src/content.config"; const ID: CollectionEntry<"users">["id"] = SELF_USER_ID; diff --git a/src/utils/qualify_local_urls_in_markdown.ts b/src/utils/qualify_local_urls_in_markdown.ts index d9372d5..f487789 100644 --- a/src/utils/qualify_local_urls_in_markdown.ts +++ b/src/utils/qualify_local_urls_in_markdown.ts @@ -1,5 +1,5 @@ import { getCollection, getEntry } from "astro:content"; -import type { Lang, PostWebsite, UserWebsite } from "@content/config"; +import type { Lang, PostWebsite, UserWebsite } from "src/content.config"; import { getWebsiteLinkForUser } from "./get_website_link_for_user"; import { getUsernameForLang } from "./get_username_for_lang"; @@ -12,11 +12,11 @@ type MatchGroups = text: string; link: string; contentPrefix: "stories" | "games" | "blog" | "users"; - slug: string; + id: string; }; const LOCAL_URL_REGEX = - /\[(?<text>[^\]]*)\]\((?<link>(?:\/(?<contentPrefix>stories|games|blog|users)(?!\/?\)|\/[1-9]\d*\/?\))\/(?<slug>[^\)]+))|(?:\/[^\)]+?))\/?\)/g; + /\[(?<text>[^\]]*)\]\((?<link>(?:\/(?<contentPrefix>stories|games|blog|users)(?!\/?\)|\/[1-9]\d*\/?\))\/(?<id>[^\)]+))|(?:\/[^\)]+?))\/?\)/g; const SERIES_URLS_REGEX_PROMISE = getCollection("series").then( (series) => new RegExp(`^(${series.map(({ data }) => data.link.replace(/\/$/, "")).join("|")})\/?$`), @@ -49,12 +49,12 @@ export async function qualifyLocalURLsInMarkdown(originalText: string, lang: Lan } // Check if this is a special link (story, game, or user) if ("contentPrefix" in groups && groups.contentPrefix) { - const { contentPrefix, slug } = groups; + const { contentPrefix, id } = groups; switch (contentPrefix) { case "stories": - const story = await getEntry("stories", slug); + const story = await getEntry("stories", id); if (!story) { - throw new Error(`Couldn't find story with slug "${slug}"`); + throw new Error(`Couldn't find story with ID "${id}"`); } if (typeof website === "string" && story.data.posts[website as PostWebsite]?.link) { replacements.push(`[${text}](${story.data.posts[website as PostWebsite]!.link})`); @@ -62,9 +62,9 @@ export async function qualifyLocalURLsInMarkdown(originalText: string, lang: Lan } break; case "games": - const game = await getEntry("games", slug); + const game = await getEntry("games", id); if (!game) { - throw new Error(`Couldn't find game with slug "${slug}"`); + throw new Error(`Couldn't find game with ID "${id}"`); } if (typeof website === "string" && game.data.posts[website as PostWebsite]?.link) { replacements.push(`[${text}](${game.data.posts[website as PostWebsite]!.link})`); @@ -72,9 +72,9 @@ export async function qualifyLocalURLsInMarkdown(originalText: string, lang: Lan } break; case "blog": - const post = await getEntry("blog", slug); + const post = await getEntry("blog", id); if (!post) { - throw new Error(`Couldn't find blog post with slug "${slug}"`); + throw new Error(`Couldn't find blog post with ID "${id}"`); } if (typeof website === "string" && post.data.posts[website as PostWebsite]?.link) { replacements.push(`[${text}](${post.data.posts[website as PostWebsite]!.link})`); @@ -82,9 +82,9 @@ export async function qualifyLocalURLsInMarkdown(originalText: string, lang: Lan } break; case "users": - const user = await getEntry("users", slug); + const user = await getEntry("users", id); if (!user) { - throw new Error(`Couldn't find user with id "${slug}"`); + throw new Error(`Couldn't find user with ID "${id}"`); } // If there's a label in the link, use that if possible if (text) {