diff --git a/README.md b/README.md index f57050fd..8658b47e 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ Above is the minimal configuration to split a large sitemap. When the number of | property | description | type | | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | | siteUrl | Base url of your website | string | +| output (optional) | Next.js output modes. [Check documentation](https://nextjs.org/docs/pages/api-reference/next-config-js/output). | `standalone`, `export` | | changefreq (optional) | Change frequency. Default `daily` | string | | priority (optional) | Priority. Default `0.7` | number | | sitemapBaseFileName (optional) | The name of the generated sitemap file before the file extension. Default `"sitemap"` | string | diff --git a/azure-pipeline.yml b/azure-pipeline.yml index 05c83aa3..cffb7ab6 100644 --- a/azure-pipeline.yml +++ b/azure-pipeline.yml @@ -1,4 +1,4 @@ -name: 4.0$(rev:.r) +name: 4.1$(rev:.r) trigger: branches: include: diff --git a/examples/amp/package.json b/examples/amp/package.json index 29482be1..d23adcaf 100644 --- a/examples/amp/package.json +++ b/examples/amp/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/app-dir/package.json b/examples/app-dir/package.json index 6efcd0ae..11f5d9a3 100644 --- a/examples/app-dir/package.json +++ b/examples/app-dir/package.json @@ -11,15 +11,15 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@corex/workspace": "^4.0.37", - "@types/react": "^18.2.0", + "@corex/workspace": "^4.0.43", + "@types/react": "^18.2.6", "next-sitemap": "*", - "turbo": "^1.8.3" + "turbo": "^1.9.8" } } diff --git a/examples/basic/package.json b/examples/basic/package.json index b9826e36..d1520d29 100644 --- a/examples/basic/package.json +++ b/examples/basic/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/commonjs/package.json b/examples/commonjs/package.json index 6ae3fad7..5201ecdb 100644 --- a/examples/commonjs/package.json +++ b/examples/commonjs/package.json @@ -10,13 +10,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/custom-config-file/package.json b/examples/custom-config-file/package.json index a0d3552c..0ecf0384 100644 --- a/examples/custom-config-file/package.json +++ b/examples/custom-config-file/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap --config=awesome-sitemap.config.js" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/custom-overrides/package.json b/examples/custom-overrides/package.json index 54092e5d..80a66d9d 100644 --- a/examples/custom-overrides/package.json +++ b/examples/custom-overrides/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/custom-robots-txt-transformer/package.json b/examples/custom-robots-txt-transformer/package.json index c3eec013..308c43bc 100644 --- a/examples/custom-robots-txt-transformer/package.json +++ b/examples/custom-robots-txt-transformer/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/no-index-sitemaps/package.json b/examples/no-index-sitemaps/package.json index f3ce9352..4ccb6166 100644 --- a/examples/no-index-sitemaps/package.json +++ b/examples/no-index-sitemaps/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/examples/static-export/.gitignore b/examples/static-export/.gitignore new file mode 100644 index 00000000..8f322f0d --- /dev/null +++ b/examples/static-export/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/static-export/README.md b/examples/static-export/README.md new file mode 100644 index 00000000..f4da3c4c --- /dev/null +++ b/examples/static-export/README.md @@ -0,0 +1,34 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/static-export/app/about/more/page.tsx b/examples/static-export/app/about/more/page.tsx new file mode 100644 index 00000000..c4ef74cf --- /dev/null +++ b/examples/static-export/app/about/more/page.tsx @@ -0,0 +1,9 @@ +const HomePage: React.FC = () => { + return ( +
+

About more page

+
+ ) +} + +export default HomePage diff --git a/examples/static-export/app/about/page.tsx b/examples/static-export/app/about/page.tsx new file mode 100644 index 00000000..5d336e78 --- /dev/null +++ b/examples/static-export/app/about/page.tsx @@ -0,0 +1,9 @@ +const HomePage: React.FC = () => { + return ( +
+

About page

+
+ ) +} + +export default HomePage diff --git a/examples/static-export/app/layout.tsx b/examples/static-export/app/layout.tsx new file mode 100644 index 00000000..dbce4ea8 --- /dev/null +++ b/examples/static-export/app/layout.tsx @@ -0,0 +1,11 @@ +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/examples/static-export/app/page.tsx b/examples/static-export/app/page.tsx new file mode 100644 index 00000000..2ec957c7 --- /dev/null +++ b/examples/static-export/app/page.tsx @@ -0,0 +1,9 @@ +const HomePage: React.FC = () => { + return ( +
+

HomePage Component

+
+ ) +} + +export default HomePage diff --git a/examples/static-export/next-sitemap.config.js b/examples/static-export/next-sitemap.config.js new file mode 100644 index 00000000..0f6cd5c1 --- /dev/null +++ b/examples/static-export/next-sitemap.config.js @@ -0,0 +1,9 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/** @type {import('next-sitemap').IConfig} */ +const config = { + siteUrl: process.env.SITE_URL || 'https://example.com', + generateRobotsTxt: true, + output: 'export', // Set static output here +} + +module.exports = config diff --git a/examples/static-export/next.config.js b/examples/static-export/next.config.js new file mode 100644 index 00000000..ac7197db --- /dev/null +++ b/examples/static-export/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'export', +} + +module.exports = nextConfig diff --git a/examples/static-export/package.json b/examples/static-export/package.json new file mode 100644 index 00000000..b05c1330 --- /dev/null +++ b/examples/static-export/package.json @@ -0,0 +1,11 @@ +{ + "name": "static-export", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build && next-sitemap", + "start": "next start", + "lint": "next lint" + } +} diff --git a/examples/static-export/tsconfig.json b/examples/static-export/tsconfig.json new file mode 100644 index 00000000..e06a4454 --- /dev/null +++ b/examples/static-export/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/with-next-sitemap-i18n/package.json b/examples/with-next-sitemap-i18n/package.json index 4735d3b7..ad3c89b2 100644 --- a/examples/with-next-sitemap-i18n/package.json +++ b/examples/with-next-sitemap-i18n/package.json @@ -11,13 +11,13 @@ "postbuild": "next-sitemap" }, "dependencies": { - "@types/react-dom": "^18.0.11", - "next": "^13.2.4", + "@types/react-dom": "^18.2.4", + "next": "^13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.2.0", + "@types/react": "^18.2.6", "next-sitemap": "*" } } diff --git a/package.json b/package.json index f8a97338..d40cd346 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "format": "prettier --write \"**/*.{js,mjs,cjs,jsx,json,ts,tsx,md,mdx,css,html,yml,yaml,scss,less,graphql,graphqls,gql}\"" }, "devDependencies": { - "@corex/workspace": "^4.0.29", - "turbo": "^1.8.2" + "@corex/workspace": "^4.0.43", + "turbo": "^1.9.8" } } diff --git a/packages/next-sitemap/package.json b/packages/next-sitemap/package.json index ec134067..ca8b9240 100644 --- a/packages/next-sitemap/package.json +++ b/packages/next-sitemap/package.json @@ -52,7 +52,8 @@ "postbuild": "tsc --module commonjs --outDir dist/cjs" }, "dependencies": { - "@corex/deepmerge": "^4.0.37", + "@corex/deepmerge": "^4.0.43", + "fast-glob": "^3.2.12", "minimist": "^1.2.8" }, "peerDependencies": { diff --git a/packages/next-sitemap/src/builders/url-set-builder.ts b/packages/next-sitemap/src/builders/url-set-builder.ts index 0281fe3c..f8d40c0a 100644 --- a/packages/next-sitemap/src/builders/url-set-builder.ts +++ b/packages/next-sitemap/src/builders/url-set-builder.ts @@ -68,11 +68,12 @@ export class UrlSetBuilder { // Init all page keys const allKeys = [ - ...Object.keys(this.manifest?.build.pages), + ...Object.keys(this.manifest?.build?.pages ?? {}), ...(this.manifest?.build?.ampFirstPages ?? []), ...(this.manifest?.preRender - ? Object.keys(this.manifest?.preRender.routes) + ? Object.keys(this.manifest?.preRender?.routes ?? {}) : []), + ...(this.manifest?.staticExportPages ?? []), ] // Filter out next.js internal urls and generate urls based on sitemap diff --git a/packages/next-sitemap/src/cli.ts b/packages/next-sitemap/src/cli.ts index bfad85d0..736393ed 100644 --- a/packages/next-sitemap/src/cli.ts +++ b/packages/next-sitemap/src/cli.ts @@ -16,7 +16,10 @@ export class CLI { const { config, runtimePaths } = await new ConfigParser().loadConfig() // Load next.js manifest - const manifest = await new ManifestParser().loadManifest(runtimePaths) + const manifest = await new ManifestParser().loadManifest( + config, + runtimePaths + ) // Generate url set const urlSet = await new UrlSetBuilder(config, manifest).createUrlSet() @@ -49,6 +52,6 @@ export class CLI { * @returns */ async execute() { - return this.main().then(Logger.generationCompleted) + return this.main().then(Logger.generationCompleted).catch(Logger.error) } } diff --git a/packages/next-sitemap/src/interface.ts b/packages/next-sitemap/src/interface.ts index 797ba0ff..18896f8d 100644 --- a/packages/next-sitemap/src/interface.ts +++ b/packages/next-sitemap/src/interface.ts @@ -80,6 +80,12 @@ export interface IConfig { */ changefreq?: Changefreq + /** + * The type of build output. + * @see https://nextjs.org/docs/pages/api-reference/next-config-js/output + */ + output?: 'standalone' | 'export' | undefined + /** * Priority * @default 0.7 @@ -198,9 +204,10 @@ export interface IExportMarker { } export interface INextManifest { - build: IBuildManifest + build?: IBuildManifest preRender?: IPreRenderManifest routes?: IRoutesManifest + staticExportPages?: string[] } /** @@ -228,6 +235,7 @@ export interface IRuntimePaths { EXPORT_MARKER: string SITEMAP_INDEX_FILE?: string SITEMAP_INDEX_URL?: string + STATIC_EXPORT_ROOT: string } export type IAlternateRef = { diff --git a/packages/next-sitemap/src/logger.ts b/packages/next-sitemap/src/logger.ts index 6fb241b7..c000fb91 100644 --- a/packages/next-sitemap/src/logger.ts +++ b/packages/next-sitemap/src/logger.ts @@ -4,6 +4,15 @@ import type { INextSitemapResult } from './interface.js' * Generic console logger */ export class Logger { + /** + * Missing build + */ + static noBuildManifest() { + Logger.error( + 'Unable to find build-manifest.\nMake sure to build the project using `next build` command\n' + ) + } + /** * Missing build */ diff --git a/packages/next-sitemap/src/parsers/config-parser.ts b/packages/next-sitemap/src/parsers/config-parser.ts index c05d3015..35f255ac 100644 --- a/packages/next-sitemap/src/parsers/config-parser.ts +++ b/packages/next-sitemap/src/parsers/config-parser.ts @@ -12,11 +12,17 @@ export class ConfigParser { * @returns */ private async getRuntimeConfig( + config: IConfig, runtimePaths: IRuntimePaths ): Promise> { + // Skip export marker loading if output is set to "export" + if (config?.output === 'export') { + return {} + } + + // Load export marker const exportMarkerConfig = await loadJSON( - runtimePaths.EXPORT_MARKER, - false + runtimePaths.EXPORT_MARKER ).catch((err) => { Logger.noExportMarker() throw err @@ -38,7 +44,7 @@ export class ConfigParser { runtimePaths: IRuntimePaths ): Promise { // Runtime configs - const runtimeConfig = await this.getRuntimeConfig(runtimePaths) + const runtimeConfig = await this.getRuntimeConfig(config, runtimePaths) // Prioritize `trailingSlash` value from `next-sitemap.js` const trailingSlashConfig: Partial = {} diff --git a/packages/next-sitemap/src/parsers/manifest-parser.ts b/packages/next-sitemap/src/parsers/manifest-parser.ts index ffea33de..8ceeba97 100644 --- a/packages/next-sitemap/src/parsers/manifest-parser.ts +++ b/packages/next-sitemap/src/parsers/manifest-parser.ts @@ -5,11 +5,41 @@ import type { IBuildManifest, IRuntimePaths, IRoutesManifest, + IConfig, } from '../interface.js' +import { Logger } from '../logger.js' import { loadJSON } from '../utils/file.js' +import fg from 'fast-glob' export class ManifestParser { - async loadManifest(runtimePaths: IRuntimePaths): Promise { + /** + * Return paths of html files if config.output = "export" + * @param exportFolder + * @returns + */ + async getStaticExportPages(config: IConfig, exportFolder: string) { + // Skip this step if config.output is not export mode + if (config?.output !== 'export') { + return [] + } + + // Get html file paths using glob + const htmlFiles = await fg(`${exportFolder}/**/*.html`) + + // Cleanup files + return htmlFiles?.map((file) => + file + .replace(exportFolder, '') + .replace('index', '') + .replace('.html', '') + .trim() + ) + } + + async loadManifest( + config: IConfig, + runtimePaths: IRuntimePaths + ): Promise { // Load build manifest const buildManifest = await loadJSON( runtimePaths.BUILD_MANIFEST @@ -17,27 +47,30 @@ export class ManifestParser { // Throw error if no build manifest exist if (!buildManifest) { - throw new Error( - 'Unable to find build manifest, make sure to build your next project before running next-sitemap command' - ) + throw Logger.noBuildManifest() } // Load pre-render manifest const preRenderManifest = await loadJSON( - runtimePaths.PRERENDER_MANIFEST, - false + runtimePaths.PRERENDER_MANIFEST ) // Load routes manifest const routesManifest = await loadJSON( - runtimePaths.ROUTES_MANIFEST, - false + runtimePaths.ROUTES_MANIFEST + ) + + // Get static export path when output is set as "export" + const staticExportPages = await this.getStaticExportPages( + config, + runtimePaths.STATIC_EXPORT_ROOT ) return { - build: buildManifest, + build: buildManifest ?? ({} as any), preRender: preRenderManifest, routes: routesManifest, + staticExportPages, } } } diff --git a/packages/next-sitemap/src/utils/__tests__/defaults.test.ts b/packages/next-sitemap/src/utils/__tests__/defaults.test.ts index 1f36bc89..e76fc3aa 100644 --- a/packages/next-sitemap/src/utils/__tests__/defaults.test.ts +++ b/packages/next-sitemap/src/utils/__tests__/defaults.test.ts @@ -73,6 +73,46 @@ describe('next-sitemap/defaults', () => { }) }) + test('withDefaultConfig: Static export', () => { + const myConfig = withDefaultConfig({ + output: 'export', // Static output mode + generateRobotsTxt: true, + generateIndexSitemap: true, + sitemapSize: 50000, + exclude: ['1', '2'], + robotsTxtOptions: { + policies: [], + additionalSitemaps: [ + 'https://example.com/awesome-sitemap.xml', + 'https://example.com/awesome-sitemap-2.xml', + ], + }, + }) + + expect(myConfig).toStrictEqual>({ + output: 'export', + sourceDir: 'out', + outDir: 'out', + sitemapBaseFileName: 'sitemap', + generateIndexSitemap: true, + priority: 0.7, + changefreq: 'daily', + sitemapSize: 50000, + autoLastmod: true, + generateRobotsTxt: true, + exclude: ['1', '2'], + transform: defaultSitemapTransformer, + robotsTxtOptions: { + transformRobotsTxt: defaultRobotsTxtTransformer, + policies: [], + additionalSitemaps: [ + 'https://example.com/awesome-sitemap.xml', + 'https://example.com/awesome-sitemap-2.xml', + ], + }, + }) + }) + test('withDefaultConfig: Default transformation', async () => { const myConfig = withDefaultConfig({ trailingSlash: false, diff --git a/packages/next-sitemap/src/utils/defaults.ts b/packages/next-sitemap/src/utils/defaults.ts index d86bb42e..afde6528 100644 --- a/packages/next-sitemap/src/utils/defaults.ts +++ b/packages/next-sitemap/src/utils/defaults.ts @@ -41,6 +41,33 @@ export const defaultConfig: Partial = { }, } +/** + * Set a preset for static export mode + * @param config + * @returns + */ +export const getStaticExportConfigPreset = ( + config: Partial +): Partial => { + // Return empty preset for non static export + if (config?.output !== 'export') { + return {} + } + + return { + sourceDir: 'out', + outDir: 'out', + } +} + +/** + * Get default config + * @param config + * @returns + */ export const withDefaultConfig = (config: Partial): IConfig => { - return overwriteMerge(defaultConfig, config) + // Add output.export config + const staticExportConfig = getStaticExportConfigPreset(config) + + return overwriteMerge(defaultConfig, staticExportConfig, config) } diff --git a/packages/next-sitemap/src/utils/file.ts b/packages/next-sitemap/src/utils/file.ts index 366b242a..d5f964f9 100644 --- a/packages/next-sitemap/src/utils/file.ts +++ b/packages/next-sitemap/src/utils/file.ts @@ -7,21 +7,17 @@ import path from 'node:path' * @param throwError * @returns */ -export const loadJSON = async ( - path: string, - throwError = true -): Promise => { +export const loadJSON = async (path: string): Promise => { // Get path stat - const stat = await fs.stat(path) + const stat = await fs.stat(path).catch(() => { + return { + isFile: () => false, // Handle errors gracefully + } + }) // Return undefined or throw error if (!stat.isFile()) { - // Handle error - if (throwError) { - throw new Error(`${path} does not exist.`) - } - - return + return // Handle errors gracefully } const jsonString = await fs.readFile(path, { encoding: 'utf-8' }) diff --git a/packages/next-sitemap/src/utils/path.ts b/packages/next-sitemap/src/utils/path.ts index d4e41141..f9099713 100644 --- a/packages/next-sitemap/src/utils/path.ts +++ b/packages/next-sitemap/src/utils/path.ts @@ -42,6 +42,7 @@ export const getRuntimePaths = (config: IConfig): IRuntimePaths => { ROUTES_MANIFEST: getPath(config.sourceDir!, 'routes-manifest.json'), EXPORT_MARKER: getPath(config.sourceDir!, 'export-marker.json'), ROBOTS_TXT_FILE: getPath(config.outDir!, 'robots.txt'), + STATIC_EXPORT_ROOT: getPath(config.outDir!), SITEMAP_INDEX_URL, SITEMAP_INDEX_FILE, } diff --git a/yarn.lock b/yarn.lock index 0f7ca522..2e4a9391 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1065,10 +1065,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@corex/deepmerge@^4.0.37": - version "4.0.37" - resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.37.tgz#873dcf71aee46596d7e385437b0d94770ef4c85f" - integrity sha512-PX90bEnrLdxd5e6rSFWsghExMuSw0Uov3fWJuuaoFuUQIS/446diu/4seExK5b+43L+SOBbd2uBGwYUkG1JfCw== +"@corex/deepmerge@^4.0.43": + version "4.0.43" + resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.43.tgz#9bd42559ebb41cc5a7fb7cfeea5f231c20977dca" + integrity sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ== "@corex/eslint-config@*": version "4.0.37" @@ -1122,10 +1122,10 @@ resolved "https://registry.yarnpkg.com/@corex/tsconfig/-/tsconfig-4.0.37.tgz#1edf03538b8169d15dd1180dc8486b154dc7e0c9" integrity sha512-y7BMkHdE1f96AzwGxPcecdenuGa9kilYwwl8ht+IByhUwCT6Z6zGDT0fRKkdwTAfXuTdcHsa16Yi1W6YRYynAg== -"@corex/workspace@^4.0.29", "@corex/workspace@^4.0.37": - version "4.0.37" - resolved "https://registry.yarnpkg.com/@corex/workspace/-/workspace-4.0.37.tgz#92370102808efa41887bc96a592ec2acc973b1a9" - integrity sha512-bs9lHY71quBt9ffB18OhHQ+dMEjM3WXDgIbTgPmT8MkNkf13Y8ASHilQGlxSnmkviOwpq6mLqGHx3lVpYcMOBQ== +"@corex/workspace@^4.0.43": + version "4.0.43" + resolved "https://registry.yarnpkg.com/@corex/workspace/-/workspace-4.0.43.tgz#6d66f5109092cf9681912a8a3d368f079068d82e" + integrity sha512-YAcphn5UqN1nu0oafnnwXz8PC94wOwQwjHLjePWbGgD/t6ibuAA8mgURyj6BEWrKB5qVTZhoU/Y0Y6NT+fnHRg== dependencies: "@corex/eslint-config" "*" "@corex/jest" "*" @@ -1454,75 +1454,55 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@next/env@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.4.tgz#8b763700262b2445140a44a8c8d088cef676dbae" - integrity sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA== - -"@next/swc-android-arm-eabi@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.4.tgz#758d0403771e549f9cee71cbabc0cb16a6c947c0" - integrity sha512-DWlalTSkLjDU11MY11jg17O1gGQzpRccM9Oes2yTqj2DpHndajrXHGxj9HGtJ+idq2k7ImUdJVWS2h2l/EDJOw== - -"@next/swc-android-arm64@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.4.tgz#834d586523045110d5602e0c8aae9028835ac427" - integrity sha512-sRavmUImUCf332Gy+PjIfLkMhiRX1Ez4SI+3vFDRs1N5eXp+uNzjFUK/oLMMOzk6KFSkbiK/3Wt8+dHQR/flNg== - -"@next/swc-darwin-arm64@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.4.tgz#5006fca179a36ef3a24d293abadec7438dbb48c6" - integrity sha512-S6vBl+OrInP47TM3LlYx65betocKUUlTZDDKzTiRDbsRESeyIkBtZ6Qi5uT2zQs4imqllJznVjFd1bXLx3Aa6A== - -"@next/swc-darwin-x64@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.4.tgz#6549c7c04322766acc3264ccdb3e1b43fcaf7946" - integrity sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw== - -"@next/swc-freebsd-x64@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.4.tgz#0bbe28979e3e868debc2cc06e45e186ce195b7f4" - integrity sha512-kkbzKVZGPaXRBPisoAQkh3xh22r+TD+5HwoC5bOkALraJ0dsOQgSMAvzMXKsN3tMzJUPS0tjtRf1cTzrQ0I5vQ== - -"@next/swc-linux-arm-gnueabihf@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.4.tgz#1d28d2203f5a7427d6e7119d7bcb5fc40959fb3e" - integrity sha512-7qA1++UY0fjprqtjBZaOA6cas/7GekpjVsZn/0uHvquuITFCdKGFCsKNBx3S0Rpxmx6WYo0GcmhNRM9ru08BGg== - -"@next/swc-linux-arm64-gnu@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.4.tgz#eb26448190948cdf4c44b8f34110a3ecea32f1d0" - integrity sha512-xzYZdAeq883MwXgcwc72hqo/F/dwUxCukpDOkx/j1HTq/J0wJthMGjinN9wH5bPR98Mfeh1MZJ91WWPnZOedOg== - -"@next/swc-linux-arm64-musl@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.4.tgz#c4227c0acd94a420bb14924820710e6284d234d3" - integrity sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw== - -"@next/swc-linux-x64-gnu@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.4.tgz#6bcb540944ee9b0209b33bfc23b240c2044dfc3e" - integrity sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ== - -"@next/swc-linux-x64-musl@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.4.tgz#ce21e43251eaf09a09df39372b2c3e38028c30ff" - integrity sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA== - -"@next/swc-win32-arm64-msvc@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.4.tgz#68220063d8e5e082f5465498675640dedb670ff1" - integrity sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw== - -"@next/swc-win32-ia32-msvc@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.4.tgz#7c120ab54a081be9566df310bed834f168252990" - integrity sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw== - -"@next/swc-win32-x64-msvc@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.4.tgz#5abda92fe12b9829bf7951c4a221282c56041144" - integrity sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw== +"@next/env@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.2.tgz#cf3ebfd523a33d8404c1216e02ac8d856a73170e" + integrity sha512-Wqvo7lDeS0KGwtwg9TT9wKQ8raelmUxt+TQKWvG/xKfcmDXNOtCuaszcfCF8JzlBG1q0VhpI6CKaRMbVPMDWgw== + +"@next/swc-darwin-arm64@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.2.tgz#d0b497df972bd02eee3bc823d6a76c2cc8b733ef" + integrity sha512-6BBlqGu3ewgJflv9iLCwO1v1hqlecaIH2AotpKfVUEzUxuuDNJQZ2a4KLb4MBl8T9/vca1YuWhSqtbF6ZuUJJw== + +"@next/swc-darwin-x64@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.2.tgz#09a800bed8dfe4beec4cbf14092f9c22db24470b" + integrity sha512-iZuYr7ZvGLPjPmfhhMl0ISm+z8EiyLBC1bLyFwGBxkWmPXqdJ60mzuTaDSr5WezDwv0fz32HB7JHmRC6JVHSZg== + +"@next/swc-linux-arm64-gnu@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.2.tgz#b7ade28834564120b0b25ffa0b79d75982d290bc" + integrity sha512-2xVabFtIge6BJTcJrW8YuUnYTuQjh4jEuRuS2mscyNVOj6zUZkom3CQg+egKOoS+zh2rrro66ffSKIS+ztFJTg== + +"@next/swc-linux-arm64-musl@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.2.tgz#f5420548234d35251630ddaa2e9a7dc32337a887" + integrity sha512-wKRCQ27xCUJx5d6IivfjYGq8oVngqIhlhSAJntgXLt7Uo9sRT/3EppMHqUZRfyuNBTbykEre1s5166z+pvRB5A== + +"@next/swc-linux-x64-gnu@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.2.tgz#0241dc011d73f08df9d9998cffdfcf08d1971520" + integrity sha512-NpCa+UVhhuNeaFVUP1Bftm0uqtvLWq2JTm7+Ta48+2Uqj2mNXrDIvyn1DY/ZEfmW/1yvGBRaUAv9zkMkMRixQA== + +"@next/swc-linux-x64-musl@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.2.tgz#fd35919e2b64b1c739583145799fefd594ef5d63" + integrity sha512-ZWVC72x0lW4aj44e3khvBrj2oSYj1bD0jESmyah3zG/3DplEy/FOtYkMzbMjHTdDSheso7zH8GIlW6CDQnKhmQ== + +"@next/swc-win32-arm64-msvc@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.2.tgz#fa95d2dbb97707c130a868a1bd7e83e64bedf4c6" + integrity sha512-pLT+OWYpzJig5K4VKhLttlIfBcVZfr2+Xbjra0Tjs83NQSkFS+y7xx+YhCwvpEmXYLIvaggj2ONPyjbiigOvHQ== + +"@next/swc-win32-ia32-msvc@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.2.tgz#31a98e61d3cda92ec2293c50df7cb5280fc63697" + integrity sha512-dhpiksQCyGca4WY0fJyzK3FxMDFoqMb0Cn+uDB+9GYjpU2K5//UGPQlCwiK4JHxuhg8oLMag5Nf3/IPSJNG8jw== + +"@next/swc-win32-x64-msvc@13.4.2": + version "13.4.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.2.tgz#8435ab6087046355f5de07122d3097949e8fab10" + integrity sha512-O7bort1Vld00cu8g0jHZq3cbSTUNMohOEvYqsqE10+yfohhdPHzvzO+ziJRz4Dyyr/fYKREwS7gR4JC0soSOMw== "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" @@ -1581,10 +1561,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@swc/helpers@0.4.14": - version "0.4.14" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" - integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== dependencies: tslib "^2.4.0" @@ -1738,14 +1718,21 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.11": +"@types/react-dom@^18.0.0": version "18.0.11" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.0": +"@types/react-dom@^18.2.4": + version "18.2.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" + integrity sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw== + dependencies: + "@types/react" "*" + +"@types/react@*": version "18.2.0" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.0.tgz#15cda145354accfc09a18d2f2305f9fc099ada21" integrity sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA== @@ -1754,6 +1741,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.6": + version "18.2.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" + integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -2220,6 +2216,13 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -4338,30 +4341,28 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -next@^13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/next/-/next-13.2.4.tgz#2363330392b0f7da02ab41301f60857ffa7f67d6" - integrity sha512-g1I30317cThkEpvzfXujf0O4wtaQHtDCLhlivwlTJ885Ld+eOgcz7r3TGQzeU+cSRoNHtD8tsJgzxVdYojFssw== +next@^13.4.2: + version "13.4.2" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.2.tgz#972f73a794f2c61729facedc79c49b22bdc89f0c" + integrity sha512-aNFqLs3a3nTGvLWlO9SUhCuMUHVPSFQC0+tDNGAsDXqx+WJDFSbvc233gOJ5H19SBc7nw36A9LwQepOJ2u/8Kg== dependencies: - "@next/env" "13.2.4" - "@swc/helpers" "0.4.14" + "@next/env" "13.4.2" + "@swc/helpers" "0.5.1" + busboy "1.6.0" caniuse-lite "^1.0.30001406" postcss "8.4.14" styled-jsx "5.1.1" + zod "3.21.4" optionalDependencies: - "@next/swc-android-arm-eabi" "13.2.4" - "@next/swc-android-arm64" "13.2.4" - "@next/swc-darwin-arm64" "13.2.4" - "@next/swc-darwin-x64" "13.2.4" - "@next/swc-freebsd-x64" "13.2.4" - "@next/swc-linux-arm-gnueabihf" "13.2.4" - "@next/swc-linux-arm64-gnu" "13.2.4" - "@next/swc-linux-arm64-musl" "13.2.4" - "@next/swc-linux-x64-gnu" "13.2.4" - "@next/swc-linux-x64-musl" "13.2.4" - "@next/swc-win32-arm64-msvc" "13.2.4" - "@next/swc-win32-ia32-msvc" "13.2.4" - "@next/swc-win32-x64-msvc" "13.2.4" + "@next/swc-darwin-arm64" "13.4.2" + "@next/swc-darwin-x64" "13.4.2" + "@next/swc-linux-arm64-gnu" "13.4.2" + "@next/swc-linux-arm64-musl" "13.4.2" + "@next/swc-linux-x64-gnu" "13.4.2" + "@next/swc-linux-x64-musl" "13.4.2" + "@next/swc-win32-arm64-msvc" "13.4.2" + "@next/swc-win32-ia32-msvc" "13.4.2" + "@next/swc-win32-x64-msvc" "13.4.2" node-int64@^0.4.0: version "0.4.0" @@ -5043,6 +5044,11 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -5334,47 +5340,47 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -turbo-darwin-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.8.3.tgz#f220459e7636056d9a67bc9ead8dc01c495f9d55" - integrity sha512-bLM084Wr17VAAY/EvCWj7+OwYHvI9s/NdsvlqGp8iT5HEYVimcornCHespgJS/yvZDfC+mX9EQkn3V2JmYgGGw== - -turbo-darwin-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.8.3.tgz#1529f0755cd683e372140d6b9532efe4ca523b38" - integrity sha512-4oZjXtzakopMK110kue3z/hqu3WLv+eDLZOX1NGdo49gqca9BeD8GbH+sXpAp6tqyeuzpss+PIliVYuyt7LgbA== - -turbo-linux-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.8.3.tgz#1aed7f4bb4492cb4c9d8278044a66d3c6107ee5b" - integrity sha512-uvX2VKotf5PU14FCxJA5iHItPQno2JWzerMd+g3/h/Asay6dvxvtVjc39MQeGT0H5njSvzVKFkT+3/5q8lgOEg== - -turbo-linux-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.8.3.tgz#0269b31b2947c40833052325361a94193ca46150" - integrity sha512-E1p+oH3XKMaPS4rqWhYsL4j2Pzc0d/9P5KU7Kn1kqVLo2T3iRA7n2KVULEieUNE0nTH+aIJPXYXOpqCI5wFJaA== - -turbo-windows-64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.8.3.tgz#cf94f427414eb8416c1fe22229f9a578dd1ec78b" - integrity sha512-cnzAytHtoLXd0J7aNzRpZFpL/GTjcBmkvAPlbOdf/Pl1iwS4qzGrudZQ+OM1lmLgLIfBPIavsGHBknTwTNib4A== - -turbo-windows-arm64@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.8.3.tgz#db5739fe1d6907d07874779f6d5fac87b3f3ca6a" - integrity sha512-ulIiItNm2w/zYJdD5/oAzjzNns1IjbpweRzpsE8tLXaWwo6+fnXXkyloUug0IUhcd2k6fJXfoiDZfygqpOVuXg== - -turbo@^1.8.2, turbo@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.8.3.tgz#6fe1ce749a38b54f15f0fcb24ee45baefa98e948" - integrity sha512-zGrkU1EuNFmkq6iky6LcMqD4h0OLE8XysVFxQWRIZbcTNnf0XAycbsbeEyiJpiWeqb7qtg2bVuY9EYcNoNhVuQ== +turbo-darwin-64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.9.8.tgz#febb33027c59c04ff79f7511a886f3f97a827950" + integrity sha512-PkTdBjPfgpj/Dob/6SjkzP0BBP80/KmFjLEocXVEECCLJE6tHKbWLRdvc79B0N6SufdYdZ1uvvoU3KPtBokSPw== + +turbo-darwin-arm64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.9.8.tgz#4b3c2ebb71b781520ea7bcf689e0860d289b346a" + integrity sha512-sLwqOx3XV57QCEoJM9GnDDnnqidG8wf29ytxssBaWHBdeJTjupyrmzTUrX+tyKo3Q+CjWvbPLyqVqxT4g5NuXQ== + +turbo-linux-64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.9.8.tgz#1233e8019aeb0ba550c73b753102d679bd4f00c2" + integrity sha512-AMg6VT6sW7aOD1uOs5suxglXfTYz9T0uVyKGKokDweGOYTWmuTMGU5afUT1tYRUwQ+kVPJI+83Atl5Ob0oBsgw== + +turbo-linux-arm64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.9.8.tgz#226a35f6604a451895fbbf142226956b1968318e" + integrity sha512-tLnxFv+OIklwTjiOZ8XMeEeRDAf150Ry4BCivNwgTVFAqQGEqkFP6KGBy56hb5RRF1frPQpoPGipJNVm7c8m1w== + +turbo-windows-64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.9.8.tgz#0c65f3f8a7c7b025a3cb62e69de42b452238d3a9" + integrity sha512-r3pCjvXTMR7kq2E3iqwFlN1R7pFO/TOsuUjMhOSPP7HwuuUIinAckU4I9foM3q7ZCQd1XXScBUt3niDyHijAqQ== + +turbo-windows-arm64@1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.9.8.tgz#50a102dae12d48f52520718e3ff4605d12a62c25" + integrity sha512-CWzRbX2TM5IfHBC6uWM659qUOEDC4h0nn16ocG8yIq1IF3uZMzKRBHgGOT5m1BHom+R08V0NcjTmPRoqpiI0dg== + +turbo@^1.9.8: + version "1.9.8" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.9.8.tgz#6d97630f9df7c25c588722837ac4c2b9342c7766" + integrity sha512-dTouGZBm4a2fE0OPafcTQERCp4i3ZOow0Pr0JlOyxKmzJy0JRwXypH013kbZoK6k1ET5tS/g9rwUXIM/AmWXXQ== optionalDependencies: - turbo-darwin-64 "1.8.3" - turbo-darwin-arm64 "1.8.3" - turbo-linux-64 "1.8.3" - turbo-linux-arm64 "1.8.3" - turbo-windows-64 "1.8.3" - turbo-windows-arm64 "1.8.3" + turbo-darwin-64 "1.9.8" + turbo-darwin-arm64 "1.9.8" + turbo-linux-64 "1.9.8" + turbo-linux-arm64 "1.9.8" + turbo-windows-64 "1.9.8" + turbo-windows-arm64 "1.9.8" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -5640,3 +5646,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==