astro 0.21.13 → 0.22.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/astro.js +64 -64
  2. package/components/Code.astro +34 -34
  3. package/components/Debug.astro +44 -43
  4. package/components/Markdown.astro +20 -15
  5. package/components/Prism.astro +20 -23
  6. package/dist/cli/check.js +1 -1
  7. package/dist/cli/index.js +22 -19
  8. package/dist/core/build/index.js +37 -130
  9. package/dist/core/build/internal.js +19 -0
  10. package/dist/core/build/page-data.js +92 -0
  11. package/dist/core/build/scan-based-build.js +50 -0
  12. package/dist/core/build/static-build.js +226 -0
  13. package/dist/core/config.js +3 -2
  14. package/dist/core/create-vite.js +2 -2
  15. package/dist/core/dev/index.js +8 -6
  16. package/dist/core/dev/messages.js +1 -1
  17. package/dist/core/dev/template/4xx.js +1 -1
  18. package/dist/core/dev/template/5xx.js +1 -1
  19. package/dist/core/dev/util.js +1 -1
  20. package/dist/core/logger.js +1 -1
  21. package/dist/core/preview/index.js +2 -3
  22. package/dist/core/ssr/css.js +1 -1
  23. package/dist/core/ssr/html.js +1 -1
  24. package/dist/core/ssr/index.js +47 -43
  25. package/dist/core/ssr/paginate.js +1 -1
  26. package/dist/core/ssr/result.js +72 -0
  27. package/dist/core/ssr/routing.js +1 -1
  28. package/dist/core/ssr/rss.js +1 -1
  29. package/dist/core/ssr/sitemap.js +1 -1
  30. package/dist/core/util.js +1 -1
  31. package/dist/runtime/client/hmr.js +1 -1
  32. package/dist/runtime/client/idle.js +1 -1
  33. package/dist/runtime/client/load.js +1 -1
  34. package/dist/runtime/client/media.js +1 -1
  35. package/dist/runtime/client/only.js +1 -1
  36. package/dist/runtime/client/visible.js +1 -1
  37. package/dist/runtime/server/hydration.js +8 -5
  38. package/dist/runtime/server/index.js +6 -5
  39. package/dist/runtime/server/metadata.js +34 -17
  40. package/dist/runtime/server/util.js +11 -1
  41. package/dist/types/@types/astro.d.ts +3 -0
  42. package/dist/types/cli/index.d.ts +1 -1
  43. package/dist/types/core/build/internal.d.ts +14 -0
  44. package/dist/types/core/build/page-data.d.ts +17 -0
  45. package/dist/types/core/build/scan-based-build.d.ts +16 -0
  46. package/dist/types/core/build/static-build.d.ts +16 -0
  47. package/dist/types/core/config.d.ts +5 -0
  48. package/dist/types/core/dev/index.d.ts +13 -12
  49. package/dist/types/core/ssr/index.d.ts +8 -1
  50. package/dist/types/core/ssr/result.d.ts +9 -0
  51. package/dist/types/runtime/server/hydration.d.ts +2 -1
  52. package/dist/types/runtime/server/metadata.d.ts +20 -9
  53. package/dist/types/runtime/server/util.d.ts +6 -0
  54. package/dist/types/vite-plugin-astro/compile.d.ts +5 -0
  55. package/dist/types/vite-plugin-astro/index.d.ts +3 -1
  56. package/dist/types/vite-plugin-astro/query.d.ts +12 -0
  57. package/dist/types/vite-plugin-build-css/index.d.ts +2 -5
  58. package/dist/types/vite-plugin-build-html/index.d.ts +2 -5
  59. package/dist/vite-plugin-astro/compile.js +93 -0
  60. package/dist/vite-plugin-astro/index.js +54 -66
  61. package/dist/vite-plugin-astro/query.js +24 -0
  62. package/dist/vite-plugin-astro/styles.js +1 -1
  63. package/dist/vite-plugin-astro-postprocess/index.js +1 -1
  64. package/dist/vite-plugin-build-css/index.js +26 -20
  65. package/dist/vite-plugin-build-css/resolve.js +1 -1
  66. package/dist/vite-plugin-build-html/add-rollup-input.js +1 -1
  67. package/dist/vite-plugin-build-html/extract-assets.js +1 -1
  68. package/dist/vite-plugin-build-html/index.js +13 -14
  69. package/dist/vite-plugin-build-html/util.js +1 -1
  70. package/dist/vite-plugin-config-alias/index.js +1 -1
  71. package/dist/vite-plugin-fetch/index.js +1 -1
  72. package/dist/vite-plugin-jsx/index.js +1 -1
  73. package/dist/vite-plugin-markdown/index.js +4 -1
  74. package/package.json +13 -13
@@ -1,20 +1,19 @@
1
- import { rollupPluginAstroBuildHTML } from "../../vite-plugin-build-html/index.js";
2
- import { rollupPluginAstroBuildCSS } from "../../vite-plugin-build-css/index.js";
3
1
  import fs from "fs";
4
2
  import * as colors from "kleur/colors";
5
3
  import { polyfill } from "@astropub/webapi";
6
4
  import { performance } from "perf_hooks";
7
5
  import vite from "../vite.js";
8
- import { fileURLToPath } from "url";
9
6
  import { createVite } from "../create-vite.js";
10
7
  import { debug, defaultLogOptions, info, levels, timerMessage, warn } from "../logger.js";
11
- import { preload as ssrPreload } from "../ssr/index.js";
12
- import { generatePaginateFunction } from "../ssr/paginate.js";
13
- import { createRouteManifest, validateGetStaticPathsModule, validateGetStaticPathsResult } from "../ssr/routing.js";
14
- import { generateRssFunction } from "../ssr/rss.js";
8
+ import { createRouteManifest } from "../ssr/routing.js";
15
9
  import { generateSitemap } from "../ssr/sitemap.js";
10
+ import { collectPagesData } from "./page-data.js";
11
+ import { build as scanBasedBuild } from "./scan-based-build.js";
12
+ import { staticBuild } from "./static-build.js";
16
13
  async function build(config, options = { logging: defaultLogOptions }) {
17
- polyfill(globalThis);
14
+ polyfill(globalThis, {
15
+ exclude: "window document"
16
+ });
18
17
  const builder = new AstroBuilder(config, options);
19
18
  await builder.build();
20
19
  }
@@ -50,115 +49,38 @@ class AstroBuilder {
50
49
  this.viteServer = viteServer;
51
50
  debug(logging, "build", timerMessage("Vite started", timer.viteStart));
52
51
  timer.loadStart = performance.now();
53
- const assets = {};
54
- const allPages = {};
55
- await Promise.all(this.manifest.routes.map(async (route) => {
56
- var _a;
57
- if (route.pathname) {
58
- allPages[route.component] = {
59
- route,
60
- paths: [route.pathname],
61
- preload: await ssrPreload({
62
- astroConfig: this.config,
63
- filePath: new URL(`./${route.component}`, this.config.projectRoot),
64
- logging,
65
- mode: "production",
66
- origin,
67
- pathname: route.pathname,
68
- route,
69
- routeCache: this.routeCache,
70
- viteServer
71
- }).then((routes) => {
72
- const html = `${route.pathname}`.replace(/\/?$/, "/index.html");
73
- debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.green("\u2714"))} ${route.component} \u2192 ${colors.yellow(html)}`);
74
- return routes;
75
- }).catch((err) => {
76
- debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.red("\u2718"))} ${route.component}`);
77
- throw err;
78
- })
79
- };
80
- return;
81
- }
82
- const result = await this.getStaticPathsForRoute(route).then((routes) => {
83
- const label = routes.paths.length === 1 ? "page" : "pages";
84
- debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.green("\u2714"))} ${route.component} \u2192 ${colors.magenta(`[${routes.paths.length} ${label}]`)}`);
85
- return routes;
86
- }).catch((err) => {
87
- debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.red("\u2717"))} ${route.component}`);
88
- throw err;
89
- });
90
- if ((_a = result.rss) == null ? void 0 : _a.xml) {
91
- const rssFile = new URL(result.rss.url.replace(/^\/?/, "./"), this.config.dist);
92
- if (assets[fileURLToPath(rssFile)]) {
93
- throw new Error(`[getStaticPaths] RSS feed ${result.rss.url} already exists.
94
- Use \`rss(data, {url: '...'})\` to choose a unique, custom URL. (${route.component})`);
95
- }
96
- assets[fileURLToPath(rssFile)] = result.rss.xml;
97
- }
98
- allPages[route.component] = {
99
- route,
100
- paths: result.paths,
101
- preload: await ssrPreload({
102
- astroConfig: this.config,
103
- filePath: new URL(`./${route.component}`, this.config.projectRoot),
104
- logging,
105
- mode: "production",
106
- origin,
107
- pathname: result.paths[0],
108
- route,
109
- routeCache: this.routeCache,
110
- viteServer
111
- })
112
- };
113
- }));
52
+ const { assets, allPages } = await collectPagesData({
53
+ astroConfig: this.config,
54
+ logging: this.logging,
55
+ manifest: this.manifest,
56
+ origin,
57
+ routeCache: this.routeCache,
58
+ viteServer: this.viteServer
59
+ });
114
60
  debug(logging, "build", timerMessage("All pages loaded", timer.loadStart));
115
- const pureCSSChunks = new Set();
116
- const chunkToReferenceIdMap = new Map();
117
- const astroStyleMap = new Map();
118
- const astroPageStyleMap = new Map();
119
61
  const pageNames = [];
120
62
  timer.buildStart = performance.now();
121
- await vite.build({
122
- logLevel: "error",
123
- mode: "production",
124
- build: {
125
- emptyOutDir: true,
126
- minify: "esbuild",
127
- outDir: fileURLToPath(this.config.dist),
128
- rollupOptions: {
129
- input: [],
130
- output: { format: "esm" }
131
- },
132
- target: "es2020"
133
- },
134
- plugins: [
135
- rollupPluginAstroBuildHTML({
136
- astroConfig: this.config,
137
- astroPageStyleMap,
138
- astroStyleMap,
139
- chunkToReferenceIdMap,
140
- pureCSSChunks,
141
- logging,
142
- origin,
143
- allPages,
144
- pageNames,
145
- routeCache: this.routeCache,
146
- viteServer
147
- }),
148
- rollupPluginAstroBuildCSS({
149
- astroPageStyleMap,
150
- astroStyleMap,
151
- chunkToReferenceIdMap,
152
- pureCSSChunks
153
- }),
154
- ...viteConfig.plugins || []
155
- ],
156
- publicDir: viteConfig.publicDir,
157
- root: viteConfig.root,
158
- envPrefix: "PUBLIC_",
159
- server: viteConfig.server,
160
- base: this.config.buildOptions.site ? new URL(this.config.buildOptions.site).pathname : "/"
161
- });
63
+ if (this.config.buildOptions.experimentalStaticBuild) {
64
+ await staticBuild({
65
+ allPages,
66
+ astroConfig: this.config,
67
+ logging: this.logging,
68
+ origin: this.origin,
69
+ routeCache: this.routeCache,
70
+ viteConfig: this.viteConfig
71
+ });
72
+ } else {
73
+ await scanBasedBuild({
74
+ allPages,
75
+ astroConfig: this.config,
76
+ logging: this.logging,
77
+ origin: this.origin,
78
+ pageNames,
79
+ routeCache: this.routeCache,
80
+ viteConfig: this.viteConfig,
81
+ viteServer: this.viteServer
82
+ });
83
+ }
162
84
  debug(logging, "build", timerMessage("Vite build finished", timer.buildStart));
163
85
  timer.assetsStart = performance.now();
164
86
  Object.keys(assets).map((k) => {
@@ -183,21 +105,6 @@ Use \`rss(data, {url: '...'})\` to choose a unique, custom URL. (${route.compone
183
105
  await this.printStats({ logging, timeStart: timer.init, pageCount: pageNames.length });
184
106
  }
185
107
  }
186
- async getStaticPathsForRoute(route) {
187
- if (!this.viteServer)
188
- throw new Error(`vite.createServer() not called!`);
189
- const filePath = new URL(`./${route.component}`, this.config.projectRoot);
190
- const mod = await this.viteServer.ssrLoadModule(fileURLToPath(filePath));
191
- validateGetStaticPathsModule(mod);
192
- const rss = generateRssFunction(this.config.buildOptions.site, route);
193
- const staticPaths = (await mod.getStaticPaths({ paginate: generatePaginateFunction(route), rss: rss.generator })).flat();
194
- this.routeCache[route.component] = staticPaths;
195
- validateGetStaticPathsResult(staticPaths, this.logging);
196
- return {
197
- paths: staticPaths.map((staticPath) => staticPath.params && route.generate(staticPath.params)).filter(Boolean),
198
- rss: rss.rss
199
- };
200
- }
201
108
  async printStats({ logging, timeStart, pageCount }) {
202
109
  debug(logging, "");
203
110
  const buildTime = performance.now() - timeStart;
@@ -210,4 +117,4 @@ Use \`rss(data, {url: '...'})\` to choose a unique, custom URL. (${route.compone
210
117
  export {
211
118
  build as default
212
119
  };
213
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvaW5kZXgudHMiXSwKICAibWFwcGluZ3MiOiAiQUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQSxxQkFBb0MsUUFBcUIsVUFBd0IsRUFBRSxTQUFTLHFCQUFvQztBQUU5SCxXQUFTO0FBRVQsUUFBTSxVQUFVLElBQUksYUFBYSxRQUFRO0FBQ3pDLFFBQU0sUUFBUTtBQUFBO0FBR2hCLG1CQUFtQjtBQUFBLEVBVWpCLFlBQVksUUFBcUIsU0FBdUI7QUFQaEQsZ0JBQU87QUFFUCxzQkFBeUI7QUFNL0IsUUFBSSxDQUFDLE9BQU8sYUFBYSxRQUFRLE9BQU8sYUFBYSxZQUFZLE9BQU87QUFDdEUsV0FBSyxRQUFRLFNBQVMsVUFBVTtBQUFBO0FBR2xDLFFBQUksUUFBUTtBQUFNLFdBQUssT0FBTyxRQUFRO0FBQ3RDLFNBQUssU0FBUztBQUNkLFVBQU0sT0FBTyxPQUFPLFdBQVc7QUFDL0IsU0FBSyxVQUFVLFFBQVE7QUFDdkIsU0FBSyxTQUFTLE9BQU8sYUFBYSxPQUFPLElBQUksSUFBSSxPQUFPLGFBQWEsTUFBTSxTQUFTLG9CQUFvQjtBQUN4RyxTQUFLLFdBQVcsb0JBQW9CLEVBQUUsVUFBVSxLQUFLO0FBQUE7QUFBQSxRQUdqRCxRQUFRO0FBQ1osVUFBTSxFQUFFLFNBQVMsV0FBVztBQUM1QixVQUFNLFFBQWdDO0FBQ3RDLFVBQU0sT0FBTyxZQUFZO0FBQ3pCLFVBQU0sWUFBWSxZQUFZO0FBQzlCLFVBQU0sYUFBYSxNQUFNLFdBQ3ZCLEtBQUssWUFDSDtBQUFBLE1BQ0UsTUFBTSxLQUFLO0FBQUEsTUFDWCxRQUFRO0FBQUEsUUFDTixLQUFLLEVBQUUsU0FBUztBQUFBLFFBQ2hCLGdCQUFnQjtBQUFBO0FBQUEsT0FHcEIsS0FBSyxPQUFPLFFBQVEsS0FFdEIsRUFBRSxhQUFhLEtBQUssUUFBUTtBQUU5QixTQUFL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
120
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvaW5kZXgudHMiXSwKICAibWFwcGluZ3MiOiAiQUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQSxxQkFBb0MsUUFBcUIsVUFBd0IsRUFBRSxTQUFTLHFCQUFvQztBQUUvSCxXQUFTLFlBQVk7QUFBQSxJQUNwQixTQUFTO0FBQUE7QUFHVixRQUFNLFVBQVUsSUFBSSxhQUFhLFFBQVE7QUFDekMsUUFBTSxRQUFRO0FBQUE7QUFHZixtQkFBbUI7QUFBQSxFQVVsQixZQUFZLFFBQXFCLFNBQXVCO0FBUGhELGdCQUFPO0FBRVAsc0JBQXlCO0FBTWhDLFFBQUksQ0FBQyxPQUFPLGFBQWEsUUFBUSxPQUFPLGFBQWEsWUFBWSxPQUFPO0FBQ3ZFLFdBQUssUUFBUSxTQUFTLFVBQVU7QUFBQTtBQUdqQyxRQUFJLFFBQVE7QUFBTSxXQUFLLE9BQU8sUUFBUTtBQUN0QyxTQUFLLFNBQVM7QUFDZCxVQUFNLE9BQU8sT0FBTyxXQUFXO0FBQy9CLFNBQUssVUFBVSxRQUFRO0FBQ3ZCLFNBQUssU0FBUyxPQUFPLGFBQWEsT0FBTyxJQUFJLElBQUksT0FBTyxhQUFhLE1BQU0sU0FBUyxvQkFBb0I7QUFDeEcsU0FBSyxXQUFXLG9CQUFvQixFQUFFLFVBQVUsS0FBSztBQUFBO0FBQUEsUUFHaEQsUUFBUTtBQUNiLFVBQU0sRUFBRSxTQUFTLFdBQVc7QUFDNUIsVUFBTSxRQUFnQztBQUN0QyxVQUFNLE9BQU8sWUFBWTtBQUN6QixVQUFNLFlBQVksWUFBWTtBQUM5QixVQUFNLGFBQWEsTUFBTSxXQUN4QixLQUFLLFlBQ0o7QUFBQSxNQUNDLE1BQU0sS0FBSztBQUFBLE1BQ1gsUUFBUTtBQUFBLFFBQ1AsS0FBSyxFQUFFLFNBQVM7QUFBQSxRQUNoQixnQkFBZ0I7QUFBQTtBQUFBLE9BR2xCLEtBQUssT0FBTyxRQUFRLEtBRXJCLEVBQUUsYUFBYSxLQUFLLFFBQVE7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
@@ -0,0 +1,19 @@
1
+ function createBuildInternals() {
2
+ const pureCSSChunks = new Set();
3
+ const chunkToReferenceIdMap = new Map();
4
+ const astroStyleMap = new Map();
5
+ const astroPageStyleMap = new Map();
6
+ const facadeIdToAssetsMap = new Map();
7
+ return {
8
+ pureCSSChunks,
9
+ chunkToReferenceIdMap,
10
+ astroStyleMap,
11
+ astroPageStyleMap,
12
+ facadeIdToAssetsMap,
13
+ entrySpecifierToBundleMap: new Map()
14
+ };
15
+ }
16
+ export {
17
+ createBuildInternals
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvaW50ZXJuYWwudHMiXSwKICAibWFwcGluZ3MiOiAiQUEwQk8sZ0NBQWdEO0FBR3RELFFBQU0sZ0JBQWdCLElBQUk7QUFDMUIsUUFBTSx3QkFBd0IsSUFBSTtBQUlsQyxRQUFNLGdCQUFnQixJQUFJO0FBRTFCLFFBQU0sb0JBQW9CLElBQUk7QUFHOUIsUUFBTSxzQkFBc0IsSUFBSTtBQUVoQyxTQUFPO0FBQUEsSUFDTjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLDJCQUEyQixJQUFJO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,92 @@
1
+ import { fileURLToPath } from "url";
2
+ import * as colors from "kleur/colors";
3
+ import { debug } from "../logger.js";
4
+ import { preload as ssrPreload } from "../ssr/index.js";
5
+ import { validateGetStaticPathsModule, validateGetStaticPathsResult } from "../ssr/routing.js";
6
+ import { generatePaginateFunction } from "../ssr/paginate.js";
7
+ import { generateRssFunction } from "../ssr/rss.js";
8
+ async function collectPagesData(opts) {
9
+ const { astroConfig, logging, manifest, origin, routeCache, viteServer } = opts;
10
+ const assets = {};
11
+ const allPages = {};
12
+ await Promise.all(manifest.routes.map(async (route) => {
13
+ var _a;
14
+ if (route.pathname) {
15
+ allPages[route.component] = {
16
+ route,
17
+ paths: [route.pathname],
18
+ preload: await ssrPreload({
19
+ astroConfig,
20
+ filePath: new URL(`./${route.component}`, astroConfig.projectRoot),
21
+ logging,
22
+ mode: "production",
23
+ origin,
24
+ pathname: route.pathname,
25
+ route,
26
+ routeCache,
27
+ viteServer
28
+ }).then((routes) => {
29
+ const html = `${route.pathname}`.replace(/\/?$/, "/index.html");
30
+ debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.green("\u2714"))} ${route.component} \u2192 ${colors.yellow(html)}`);
31
+ return routes;
32
+ }).catch((err) => {
33
+ debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.red("\u2718"))} ${route.component}`);
34
+ throw err;
35
+ })
36
+ };
37
+ return;
38
+ }
39
+ const result = await getStaticPathsForRoute(opts, route).then((routes) => {
40
+ const label = routes.paths.length === 1 ? "page" : "pages";
41
+ debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.green("\u2714"))} ${route.component} \u2192 ${colors.magenta(`[${routes.paths.length} ${label}]`)}`);
42
+ return routes;
43
+ }).catch((err) => {
44
+ debug(logging, "build", `\u251C\u2500\u2500 ${colors.bold(colors.red("\u2717"))} ${route.component}`);
45
+ throw err;
46
+ });
47
+ if ((_a = result.rss) == null ? void 0 : _a.xml) {
48
+ const rssFile = new URL(result.rss.url.replace(/^\/?/, "./"), astroConfig.dist);
49
+ if (assets[fileURLToPath(rssFile)]) {
50
+ throw new Error(`[getStaticPaths] RSS feed ${result.rss.url} already exists.
51
+ Use \`rss(data, {url: '...'})\` to choose a unique, custom URL. (${route.component})`);
52
+ }
53
+ assets[fileURLToPath(rssFile)] = result.rss.xml;
54
+ }
55
+ allPages[route.component] = {
56
+ route,
57
+ paths: result.paths,
58
+ preload: await ssrPreload({
59
+ astroConfig,
60
+ filePath: new URL(`./${route.component}`, astroConfig.projectRoot),
61
+ logging,
62
+ mode: "production",
63
+ origin,
64
+ pathname: result.paths[0],
65
+ route,
66
+ routeCache,
67
+ viteServer
68
+ })
69
+ };
70
+ }));
71
+ return { assets, allPages };
72
+ }
73
+ async function getStaticPathsForRoute(opts, route) {
74
+ const { astroConfig, logging, routeCache, viteServer } = opts;
75
+ if (!viteServer)
76
+ throw new Error(`vite.createServer() not called!`);
77
+ const filePath = new URL(`./${route.component}`, astroConfig.projectRoot);
78
+ const mod = await viteServer.ssrLoadModule(fileURLToPath(filePath));
79
+ validateGetStaticPathsModule(mod);
80
+ const rss = generateRssFunction(astroConfig.buildOptions.site, route);
81
+ const staticPaths = (await mod.getStaticPaths({ paginate: generatePaginateFunction(route), rss: rss.generator })).flat();
82
+ routeCache[route.component] = staticPaths;
83
+ validateGetStaticPathsResult(staticPaths, logging);
84
+ return {
85
+ paths: staticPaths.map((staticPath) => staticPath.params && route.generate(staticPath.params)).filter(Boolean),
86
+ rss: rss.rss
87
+ };
88
+ }
89
+ export {
90
+ collectPagesData
91
+ };
92
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvcGFnZS1kYXRhLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFpQkEsZ0NBQXVDLE1BQWdFO0FBQ3RHLFFBQU0sRUFBRSxhQUFhLFNBQVMsVUFBVSxRQUFRLFlBQVksZUFBZTtBQUUzRSxRQUFNLFNBQWlDO0FBQ3ZDLFFBQU0sV0FBeUI7QUFNL0IsUUFBTSxRQUFRLElBQ2IsU0FBUyxPQUFPLElBQUksT0FBTyxVQUFVO0FBdkN2QztBQXlDRyxRQUFJLE1BQU0sVUFBVTtBQUNuQixlQUFTLE1BQU0sYUFBYTtBQUFBLFFBQzNCO0FBQUEsUUFDQSxPQUFPLENBQUMsTUFBTTtBQUFBLFFBQ2QsU0FBUyxNQUFNLFdBQVc7QUFBQSxVQUN6QjtBQUFBLFVBQ0EsVUFBVSxJQUFJLElBQUksS0FBSyxNQUFNLGFBQWEsWUFBWTtBQUFBLFVBQ3REO0FBQUEsVUFDQSxNQUFNO0FBQUEsVUFDTjtBQUFBLFVBQ0EsVUFBVSxNQUFNO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFdBRUMsS0FBSyxDQUFDLFdBQVc7QUFDakIsZ0JBQU0sT0FBTyxHQUFHLE1BQU0sV0FBVyxRQUFRLFFBQVE7QUFDakQsZ0JBQU0sU0FBUyxTQUFTLHNCQUFPLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBUyxNQUFNLG9CQUFlLE9BQU8sT0FBTztBQUNwRyxpQkFBTztBQUFBLFdBRVAsTUFBTSxDQUFDLFFBQVE7QUFDZixnQkFBTSxTQUFTLFNBQVMsc0JBQU8sT0FBTyxLQUFLLE9BQU8sSUFBSSxjQUFTLE1BQU07QUFDckUsZ0JBQU07QUFBQTtBQUFBO0FBR1Q7QUFBQTtBQUdELFVBQU0sU0FBUyxNQUFNLHVCQUF1QixNQUFNLE9BQ2hELEtBQUssQ0FBQyxXQUFXO0FBQ2pCLFlBQU0sUUFBUSxPQUFPLE1BQU0sV0FBVyxJQUFJLFNBQVM7QUFDbkQsWUFBTSxTQUFTLFNBQVMsc0JBQU8sT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFTLE1BQU0sb0JBQWUsT0FBTyxRQUFRLElBQUksT0FBTyxNQUFNLFVBQVU7QUFDaEksYUFBTztBQUFBLE9BRVAsTUFBTSxDQUFDLFFBQVE7QUFDZixZQUFNLFNBQVMsU0FBUyxzQkFBTyxPQUFPLEtBQUssT0FBTyxJQUFJLGNBQVMsTUFBTTtBQUNyRSxZQUFNO0FBQUE7QUFFUixRQUFJLGFBQU8sUUFBUCxtQkFBWSxLQUFLO0FBQ3BCLFlBQU0sVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxRQUFRLE9BQU8sWUFBWTtBQUMxRSxVQUFJLE9BQU8sY0FBYyxXQUFXO0FBQ25DLGNBQU0sSUFBSSxNQUFNLDZCQUE2QixPQUFPLElBQUk7QUFBQSxtRUFBeUYsTUFBTTtBQUFBO0FBRXhKLGFBQU8sY0FBYyxZQUFZLE9BQU8sSUFBSTtBQUFBO0FBRTdDLGFBQVMsTUFBTSxhQUFhO0FBQUEsTUFDM0I7QUFBQSxNQUNBLE9BQU8sT0FBTztBQUFBLE1BQ2QsU0FBUyxNQUFNLFdBQVc7QUFBQSxRQUN6QjtBQUFBLFFBQ0EsVUFBVSxJQUFJLElBQUksS0FBSyxNQUFNLGFBQWEsWUFBWTtBQUFBLFFBQ3REO0FBQUEsUUFDQSxNQUFNO0FBQUEsUUFDTjtBQUFBLFFBQ0EsVUFBVSxPQUFPLE1BQU07QUFBQSxRQUN2QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQTtBQUFBO0FBTUosU0FBTyxFQUFFLFFBQVE7QUFBQTtBQUdsQixzQ0FBc0MsTUFBK0IsT0FBaUU7QUFDckksUUFBTSxFQUFFLGFBQWEsU0FBUyxZQUFZLGVBQWU7QUFDekQsTUFBSSxDQUFDO0FBQVksVUFBTSxJQUFJLE1BQU07QUFDakMsUUFBTSxXQUFXLElBQUksSUFBSSxLQUFLLE1BQU0sYUFBYSxZQUFZO0FBQzdELFFBQU0sTUFBTyxNQUFNLFdBQVcsY0FBYyxjQUFjO0FBQzFELCtCQUE2QjtBQUM3QixRQUFNLE1BQU0sb0JBQW9CLFlBQVksYUFBYSxNQUFNO0FBQy9ELFFBQU0sY0FBcUMsT0FBTSxJQUFJLGVBQWdCLEVBQUUsVUFBVSx5QkFBeUIsUUFBUSxLQUFLLElBQUksY0FBYztBQUN6SSxhQUFXLE1BQU0sYUFBYTtBQUM5QiwrQkFBNkIsYUFBYTtBQUMxQyxTQUFPO0FBQUEsSUFDTixPQUFPLFlBQVksSUFBSSxDQUFDLGVBQWUsV0FBVyxVQUFVLE1BQU0sU0FBUyxXQUFXLFNBQVMsT0FBTztBQUFBLElBQ3RHLEtBQUssSUFBSTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,50 @@
1
+ import { fileURLToPath } from "url";
2
+ import vite from "../vite.js";
3
+ import { createBuildInternals } from "../../core/build/internal.js";
4
+ import { rollupPluginAstroBuildHTML } from "../../vite-plugin-build-html/index.js";
5
+ import { rollupPluginAstroBuildCSS } from "../../vite-plugin-build-css/index.js";
6
+ async function build(opts) {
7
+ const { allPages, astroConfig, logging, origin, pageNames, routeCache, viteConfig, viteServer } = opts;
8
+ const internals = createBuildInternals();
9
+ return await vite.build({
10
+ logLevel: "error",
11
+ mode: "production",
12
+ build: {
13
+ emptyOutDir: true,
14
+ minify: "esbuild",
15
+ outDir: fileURLToPath(astroConfig.dist),
16
+ rollupOptions: {
17
+ input: [],
18
+ output: {
19
+ format: "esm"
20
+ }
21
+ },
22
+ target: "es2020"
23
+ },
24
+ plugins: [
25
+ rollupPluginAstroBuildHTML({
26
+ astroConfig,
27
+ internals,
28
+ logging,
29
+ origin,
30
+ allPages,
31
+ pageNames,
32
+ routeCache,
33
+ viteServer
34
+ }),
35
+ rollupPluginAstroBuildCSS({
36
+ internals
37
+ }),
38
+ ...viteConfig.plugins || []
39
+ ],
40
+ publicDir: viteConfig.publicDir,
41
+ root: viteConfig.root,
42
+ envPrefix: "PUBLIC_",
43
+ server: viteConfig.server,
44
+ base: astroConfig.buildOptions.site ? new URL(astroConfig.buildOptions.site).pathname : "/"
45
+ });
46
+ }
47
+ export {
48
+ build
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvc2Nhbi1iYXNlZC1idWlsZC50cyJdLAogICJtYXBwaW5ncyI6ICJBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFhQSxxQkFBNEIsTUFBNkI7QUFDeEQsUUFBTSxFQUFFLFVBQVUsYUFBYSxTQUFTLFFBQVEsV0FBVyxZQUFZLFlBQVksZUFBZTtBQUdsRyxRQUFNLFlBQVk7QUFFbEIsU0FBTyxNQUFNLEtBQUssTUFBTTtBQUFBLElBQ3ZCLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxNQUNOLGFBQWE7QUFBQSxNQUNiLFFBQVE7QUFBQSxNQUNSLFFBQVEsY0FBYyxZQUFZO0FBQUEsTUFDbEMsZUFBZTtBQUFBLFFBRWQsT0FBTztBQUFBLFFBQ1AsUUFBUTtBQUFBLFVBQ1AsUUFBUTtBQUFBO0FBQUE7QUFBQSxNQUdWLFFBQVE7QUFBQTtBQUFBLElBRVQsU0FBUztBQUFBLE1BQ1IsMkJBQTJCO0FBQUEsUUFDMUI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxNQUVELDBCQUEwQjtBQUFBLFFBQ3pCO0FBQUE7QUFBQSxNQUVELEdBQUksV0FBVyxXQUFXO0FBQUE7QUFBQSxJQUUzQixXQUFXLFdBQVc7QUFBQSxJQUN0QixNQUFNLFdBQVc7QUFBQSxJQUNqQixXQUFXO0FBQUEsSUFDWCxRQUFRLFdBQVc7QUFBQSxJQUNuQixNQUFNLFlBQVksYUFBYSxPQUFPLElBQUksSUFBSSxZQUFZLGFBQWEsTUFBTSxXQUFXO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,226 @@
1
+ import fs from "fs";
2
+ import npath from "path";
3
+ import { fileURLToPath } from "url";
4
+ import glob from "fast-glob";
5
+ import vite from "../vite.js";
6
+ import { debug, error } from "../../core/logger.js";
7
+ import { createBuildInternals } from "../../core/build/internal.js";
8
+ import { rollupPluginAstroBuildCSS } from "../../vite-plugin-build-css/index.js";
9
+ import { getParamsAndProps } from "../ssr/index.js";
10
+ import { createResult } from "../ssr/result.js";
11
+ import { renderPage } from "../../runtime/server/index.js";
12
+ async function staticBuild(opts) {
13
+ const { allPages, astroConfig } = opts;
14
+ const pageInput = new Set();
15
+ const jsInput = new Set();
16
+ const facadeIdToPageDataMap = new Map();
17
+ for (const [component, pageData] of Object.entries(allPages)) {
18
+ const [renderers, mod] = pageData.preload;
19
+ const metadata = mod.$$metadata;
20
+ const topLevelImports = new Set([
21
+ ...metadata.hydratedComponentPaths(),
22
+ ...metadata.hydrationDirectiveSpecifiers(),
23
+ ...renderers.filter((renderer) => !!renderer.source).map((renderer) => renderer.source)
24
+ ]);
25
+ for (const specifier of topLevelImports) {
26
+ jsInput.add(specifier);
27
+ }
28
+ let astroModuleId = new URL("./" + component, astroConfig.projectRoot).pathname;
29
+ pageInput.add(astroModuleId);
30
+ facadeIdToPageDataMap.set(astroModuleId, pageData);
31
+ }
32
+ const internals = createBuildInternals();
33
+ const [ssrResult] = await Promise.all([ssrBuild(opts, internals, pageInput), clientBuild(opts, internals, jsInput)]);
34
+ await generatePages(ssrResult, opts, internals, facadeIdToPageDataMap);
35
+ await cleanSsrOutput(opts);
36
+ }
37
+ async function ssrBuild(opts, internals, input) {
38
+ const { astroConfig, viteConfig } = opts;
39
+ return await vite.build({
40
+ logLevel: "error",
41
+ mode: "production",
42
+ build: {
43
+ emptyOutDir: true,
44
+ minify: false,
45
+ outDir: fileURLToPath(astroConfig.dist),
46
+ ssr: true,
47
+ rollupOptions: {
48
+ input: Array.from(input),
49
+ output: {
50
+ format: "esm"
51
+ }
52
+ },
53
+ target: "es2020"
54
+ },
55
+ plugins: [
56
+ vitePluginNewBuild(input, internals, "mjs"),
57
+ rollupPluginAstroBuildCSS({
58
+ internals
59
+ }),
60
+ ...viteConfig.plugins || []
61
+ ],
62
+ publicDir: viteConfig.publicDir,
63
+ root: viteConfig.root,
64
+ envPrefix: "PUBLIC_",
65
+ server: viteConfig.server,
66
+ base: astroConfig.buildOptions.site ? new URL(astroConfig.buildOptions.site).pathname : "/"
67
+ });
68
+ }
69
+ async function clientBuild(opts, internals, input) {
70
+ const { astroConfig, viteConfig } = opts;
71
+ return await vite.build({
72
+ logLevel: "error",
73
+ mode: "production",
74
+ build: {
75
+ emptyOutDir: false,
76
+ minify: "esbuild",
77
+ outDir: fileURLToPath(astroConfig.dist),
78
+ rollupOptions: {
79
+ input: Array.from(input),
80
+ output: {
81
+ format: "esm"
82
+ },
83
+ preserveEntrySignatures: "exports-only"
84
+ },
85
+ target: "es2020"
86
+ },
87
+ plugins: [
88
+ vitePluginNewBuild(input, internals, "js"),
89
+ rollupPluginAstroBuildCSS({
90
+ internals
91
+ }),
92
+ ...viteConfig.plugins || []
93
+ ],
94
+ publicDir: viteConfig.publicDir,
95
+ root: viteConfig.root,
96
+ envPrefix: "PUBLIC_",
97
+ server: viteConfig.server,
98
+ base: astroConfig.buildOptions.site ? new URL(astroConfig.buildOptions.site).pathname : "/"
99
+ });
100
+ }
101
+ async function generatePages(result, opts, internals, facadeIdToPageDataMap) {
102
+ debug(opts.logging, "generate", "End build step, now generating");
103
+ const generationPromises = [];
104
+ for (let output of result.output) {
105
+ if (output.type === "chunk" && output.facadeModuleId && output.facadeModuleId.endsWith(".astro")) {
106
+ generationPromises.push(generatePage(output, opts, internals, facadeIdToPageDataMap));
107
+ }
108
+ }
109
+ await Promise.all(generationPromises);
110
+ }
111
+ async function generatePage(output, opts, internals, facadeIdToPageDataMap) {
112
+ const { astroConfig } = opts;
113
+ let url = new URL("./" + output.fileName, astroConfig.dist);
114
+ const facadeId = output.facadeModuleId;
115
+ let pageData = facadeIdToPageDataMap.get(facadeId) || facadeIdToPageDataMap.get("/" + facadeId);
116
+ if (!pageData) {
117
+ throw new Error(`Unable to find a PageBuildData for the Astro page: ${facadeId}. There are the PageBuilDatas we have ${Array.from(facadeIdToPageDataMap.keys()).join(", ")}`);
118
+ }
119
+ let linkIds = internals.facadeIdToAssetsMap.get(facadeId) || [];
120
+ let compiledModule = await import(url.toString());
121
+ let Component = compiledModule.default;
122
+ const generationOptions = {
123
+ pageData,
124
+ internals,
125
+ linkIds,
126
+ Component
127
+ };
128
+ const renderPromises = pageData.paths.map((path) => {
129
+ return generatePath(path, opts, generationOptions);
130
+ });
131
+ return await Promise.all(renderPromises);
132
+ }
133
+ async function generatePath(pathname, opts, gopts) {
134
+ const { astroConfig, logging, origin, routeCache } = opts;
135
+ const { Component, internals, linkIds, pageData } = gopts;
136
+ const [renderers, mod] = pageData.preload;
137
+ try {
138
+ const [params, pageProps] = await getParamsAndProps({
139
+ route: pageData.route,
140
+ routeCache,
141
+ logging,
142
+ pathname,
143
+ mod
144
+ });
145
+ debug(logging, "generate", `Generating: ${pathname}`);
146
+ const result = createResult({ astroConfig, origin, params, pathname, renderers });
147
+ result.links = new Set(linkIds.map((href) => ({
148
+ props: {
149
+ rel: "stylesheet",
150
+ href
151
+ },
152
+ children: ""
153
+ })));
154
+ result.resolve = async (specifier) => {
155
+ const hashedFilePath = internals.entrySpecifierToBundleMap.get(specifier);
156
+ if (typeof hashedFilePath !== "string") {
157
+ throw new Error(`Cannot find the built path for ${specifier}`);
158
+ }
159
+ const relPath = npath.posix.relative(pathname, "/" + hashedFilePath);
160
+ const fullyRelativePath = relPath[0] === "." ? relPath : "./" + relPath;
161
+ return fullyRelativePath;
162
+ };
163
+ let html = await renderPage(result, Component, pageProps, null);
164
+ const outFolder = new URL("." + pathname + "/", astroConfig.dist);
165
+ const outFile = new URL("./index.html", outFolder);
166
+ await fs.promises.mkdir(outFolder, { recursive: true });
167
+ await fs.promises.writeFile(outFile, html, "utf-8");
168
+ } catch (err) {
169
+ error(opts.logging, "build", `Error rendering:`, err);
170
+ }
171
+ }
172
+ async function cleanSsrOutput(opts) {
173
+ const files = await glob("**/*.mjs", {
174
+ cwd: opts.astroConfig.dist.pathname
175
+ });
176
+ await Promise.all(files.map(async (filename) => {
177
+ const url = new URL(filename, opts.astroConfig.dist);
178
+ await fs.promises.rm(url);
179
+ }));
180
+ }
181
+ function vitePluginNewBuild(input, internals, ext) {
182
+ return {
183
+ name: "@astro/rollup-plugin-new-build",
184
+ configResolved(resolvedConfig) {
185
+ const plugins = resolvedConfig.plugins;
186
+ const viteAsset = plugins.find((p) => p.name === "vite:asset");
187
+ if (viteAsset) {
188
+ delete viteAsset.generateBundle;
189
+ }
190
+ },
191
+ outputOptions(outputOptions) {
192
+ Object.assign(outputOptions, {
193
+ entryFileNames(_chunk) {
194
+ return "assets/[name].[hash]." + ext;
195
+ },
196
+ chunkFileNames(_chunk) {
197
+ return "assets/[name].[hash]." + ext;
198
+ }
199
+ });
200
+ return outputOptions;
201
+ },
202
+ async generateBundle(_options, bundle) {
203
+ const promises = [];
204
+ const mapping = new Map();
205
+ for (const specifier of input) {
206
+ promises.push(this.resolve(specifier).then((result) => {
207
+ if (result) {
208
+ mapping.set(result.id, specifier);
209
+ }
210
+ }));
211
+ }
212
+ await Promise.all(promises);
213
+ for (const [, chunk] of Object.entries(bundle)) {
214
+ if (chunk.type === "chunk" && chunk.facadeModuleId && mapping.has(chunk.facadeModuleId)) {
215
+ const specifier = mapping.get(chunk.facadeModuleId);
216
+ internals.entrySpecifierToBundleMap.set(specifier, chunk.fileName);
217
+ }
218
+ }
219
+ }
220
+ };
221
+ }
222
+ export {
223
+ staticBuild,
224
+ vitePluginNewBuild
225
+ };
226
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvc3RhdGljLWJ1aWxkLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVdBLDJCQUFrQyxNQUEwQjtBQUMzRCxRQUFNLEVBQUUsVUFBVSxnQkFBZ0I7QUFHbEMsUUFBTSxZQUFZLElBQUk7QUFHdEIsUUFBTSxVQUFVLElBQUk7QUFJcEIsUUFBTSx3QkFBd0IsSUFBSTtBQUVsQyxhQUFXLENBQUMsV0FBVyxhQUFhLE9BQU8sUUFBUSxXQUFXO0FBQzdELFVBQU0sQ0FBQyxXQUFXLE9BQU8sU0FBUztBQUNsQyxVQUFNLFdBQVcsSUFBSTtBQUVyQixVQUFNLGtCQUFrQixJQUFJLElBQUk7QUFBQSxNQUUvQixHQUFHLFNBQVM7QUFBQSxNQUVaLEdBQUcsU0FBUztBQUFBLE1BRVosR0FBRyxVQUFVLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLFFBQVEsSUFBSSxDQUFDLGFBQWEsU0FBUztBQUFBO0FBR2pGLGVBQVcsYUFBYSxpQkFBaUI7QUFDeEMsY0FBUSxJQUFJO0FBQUE7QUFHYixRQUFJLGdCQUFnQixJQUFJLElBQUksT0FBTyxXQUFXLFlBQVksYUFBYTtBQUN2RSxjQUFVLElBQUk7QUFDZCwwQkFBc0IsSUFBSSxlQUFlO0FBQUE7QUFJMUMsUUFBTSxZQUFZO0FBR2xCLFFBQU0sQ0FBQyxhQUFjLE1BQU0sUUFBUSxJQUFJLENBQUMsU0FBUyxNQUFNLFdBQVcsWUFBWSxZQUFZLE1BQU0sV0FBVztBQUczRyxRQUFNLGNBQWMsV0FBVyxNQUFNLFdBQVc7QUFDaEQsUUFBTSxlQUFlO0FBQUE7QUFHdEIsd0JBQXdCLE1BQTBCLFdBQTJCLE9BQW9CO0FBQ2hHLFFBQU0sRUFBRSxhQUFhLGVBQWU7QUFFcEMsU0FBTyxNQUFNLEtBQUssTUFBTTtBQUFBLElBQ3ZCLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNO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
@@ -21,7 +21,8 @@ const AstroConfigSchema = z.object({
21
21
  buildOptions: z.object({
22
22
  site: z.string().optional(),
23
23
  sitemap: z.boolean().optional().default(true),
24
- pageUrlFormat: z.union([z.literal("file"), z.literal("directory")]).optional().default("directory")
24
+ pageUrlFormat: z.union([z.literal("file"), z.literal("directory")]).optional().default("directory"),
25
+ experimentalStaticBuild: z.boolean().optional().default(false)
25
26
  }).optional().default({}),
26
27
  devOptions: z.object({
27
28
  hostname: z.string().optional().default("localhost"),
@@ -70,4 +71,4 @@ export {
70
71
  loadConfig,
71
72
  validateConfig
72
73
  };
73
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvcmUvY29uZmlnLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsS0FBSyxJQUFJLENBQUM7QUFFSCxNQUFNLG9CQUFvQixFQUFFLE9BQU87QUFBQSxFQUN4QyxhQUFhLEVBQ1YsU0FDQSxXQUNBLFFBQVEsS0FDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM5QixLQUFLLEVBQ0YsU0FDQSxXQUNBLFFBQVEsU0FDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM5QixPQUFPLEVBQ0osU0FDQSxXQUNBLFFBQVEsZUFDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM5QixTQUFTLEVBQ04sU0FDQSxXQUNBLFFBQVEsaUJBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDOUIsUUFBUSxFQUNMLFNBQ0EsV0FDQSxRQUFRLFlBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDOUIsTUFBTSxFQUNILFNBQ0EsV0FDQSxRQUFRLFVBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDOUIsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLFdBQVcsUUFBUSxDQUFDLDRCQUE0Qix5QkFBeUIsMkJBQTJCO0FBQUEsRUFDbkksaUJBQWlCLEVBQ2QsT0FBTztBQUFBLElBQ04sV0FBVyxFQUFFLFVBQVU7QUFBQSxJQUN2QixLQUFLLEVBQUUsVUFBVTtBQUFBLElBQ2pCLFFBQVEsRUFBRSxNQUFNLFdBQVcsUUFBUSxDQUFDLDRCQUE0QjtBQUFBLEtBRWpFLFNBQ0EsV0FDQSxRQUFRO0FBQUEsRUFDWCxjQUFjLEVBQ1gsT0FBTztBQUFBLElBQ04sTUFBTSxFQUFFLFNBQVM7QUFBQSxJQUNqQixTQUFTLEVBQUUsVUFBVSxXQUFXLFFBQVE7QUFBQSxJQUN4QyxlQUFlLEVBQ1osTUFBTSxDQUFDLEVBQUUsUUFBUSxTQUFTLEVBQUUsUUFBUSxlQUNwQyxXQUNBLFFBQVE7QUFBQSxLQUVaLFdBQ0EsUUFBUTtBQUFBLEVBQ1gsWUFBWSxFQUNULE9BQU87QUFBQSxJQUNOLFVBQVUsRUFBRSxTQUFTLFdBQVcsUUFBUTtBQUFBLElBQ3hDLE1BQU0sRUFBRSxTQUFTLFdBQVcsUUFBUTtBQUFBLElBQ3BDLGVBQWUsRUFDWixNQUFNLENBQUMsRUFBRSxRQUFRLFdBQVcsRUFBRSxRQUFRLFVBQVUsRUFBRSxRQUFRLFlBQzFELFdBQ0EsUUFBUTtBQUFBLEtBRVosV0FDQSxRQUFRO0FBQUEsRUFDWCxNQUFNLEVBQUUsTUFBTSxXQUFXLFFBQVE7QUFBQTtBQUluQyw4QkFBcUMsWUFBaUIsTUFBb0M7QUFDeEYsUUFBTSxtQkFBbUIsY0FBYyxPQUFPLEtBQUs7QUFHbkQsUUFBTSw0QkFBNEIsa0JBQWtCLE9BQU87QUFBQSxJQUN6RCxhQUFhLEVBQ1YsU0FDQSxRQUFRLEtBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLGlCQUFpQixNQUFNO0FBQUEsSUFDckQsS0FBSyxFQUNGLFNBQ0EsUUFBUSxTQUNSLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxpQkFBaUIsTUFBTTtBQUFBLElBQ3JELE9BQU8sRUFDSixTQUNBLFFBQVEsZUFDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksaUJBQWlCLE1BQU07QUFBQSxJQUNyRCxTQUFTLEVBQ04sU0FDQSxRQUFRLGlCQUNSLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxpQkFBaUIsTUFBTTtBQUFBLElBQ3JELFFBQVEsRUFDTCxTQUNBLFFBQVEsWUFDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksaUJBQWlCLE1BQU07QUFBQSxJQUNyRCxNQUFNLEVBQ0gsU0FDQSxRQUFRLFVBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLGlCQUFpQixNQUFNO0FBQUE7QUFFdkQsU0FBTywwQkFBMEIsV0FBVztBQUFBO0FBSTlDLDBCQUEwQixLQUFxQjtBQUM3QyxTQUFPLElBQUksUUFBUSxRQUFRO0FBQUE7QUFTN0IsMEJBQWlDLFNBQWtEO0FBQ2pGLFFBQU0sT0FBTyxRQUFRLE1BQU0sS0FBSyxRQUFRLFFBQVEsT0FBTyxRQUFRO0FBQy9ELE1BQUksYUFBOEI7QUFDbEMsTUFBSTtBQUVKLE1BQUksUUFBUSxVQUFVO0FBQ3BCLHFCQUFpQixTQUFTLEtBQUssUUFBUSxZQUFZLFFBQVEsV0FBVyxLQUFLLFFBQVE7QUFDbkYscUJBQWlCLGNBQWMsSUFBSSxJQUFJLGdCQUFnQixVQUFVO0FBQUE7QUFJbkUsUUFBTSxTQUFTLE1BQU0sS0FBSyxTQUFTLEVBQUUsV0FBVyxPQUFPLEtBQUssTUFBTSxVQUFVO0FBQzVFLE1BQUksUUFBUTtBQUNWLGlCQUFhLE9BQU87QUFBQTtBQUd0QixTQUFPLGVBQWUsWUFBWTtBQUFBO0FBRzdCLDJCQUEyQixLQUFpQjtBQUNqRCxRQUFNLFlBQVksSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLLE1BQU0sS0FBSyxLQUFLLFVBQVUsT0FBTyxJQUFJLE1BQU0sVUFBVTtBQUNwSCxTQUFPLEdBQUcsT0FBTyxJQUFJO0FBQUEsRUFBOEQsVUFBVSxLQUFLO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
74
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvcmUvY29uZmlnLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsS0FBSyxJQUFJLENBQUM7QUFFSCxNQUFNLG9CQUFvQixFQUFFLE9BQU87QUFBQSxFQUN6QyxhQUFhLEVBQ1gsU0FDQSxXQUNBLFFBQVEsS0FDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM3QixLQUFLLEVBQ0gsU0FDQSxXQUNBLFFBQVEsU0FDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM3QixPQUFPLEVBQ0wsU0FDQSxXQUNBLFFBQVEsZUFDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUk7QUFBQSxFQUM3QixTQUFTLEVBQ1AsU0FDQSxXQUNBLFFBQVEsaUJBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDN0IsUUFBUSxFQUNOLFNBQ0EsV0FDQSxRQUFRLFlBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDN0IsTUFBTSxFQUNKLFNBQ0EsV0FDQSxRQUFRLFVBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJO0FBQUEsRUFDN0IsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLFdBQVcsUUFBUSxDQUFDLDRCQUE0Qix5QkFBeUIsMkJBQTJCO0FBQUEsRUFDbkksaUJBQWlCLEVBQ2YsT0FBTztBQUFBLElBQ1AsV0FBVyxFQUFFLFVBQVU7QUFBQSxJQUN2QixLQUFLLEVBQUUsVUFBVTtBQUFBLElBQ2pCLFFBQVEsRUFBRSxNQUFNLFdBQVcsUUFBUSxDQUFDLDRCQUE0QjtBQUFBLEtBRWhFLFNBQ0EsV0FDQSxRQUFRO0FBQUEsRUFDVixjQUFjLEVBQ1osT0FBTztBQUFBLElBQ1AsTUFBTSxFQUFFLFNBQVM7QUFBQSxJQUNqQixTQUFTLEVBQUUsVUFBVSxXQUFXLFFBQVE7QUFBQSxJQUN4QyxlQUFlLEVBQ2IsTUFBTSxDQUFDLEVBQUUsUUFBUSxTQUFTLEVBQUUsUUFBUSxlQUNwQyxXQUNBLFFBQVE7QUFBQSxJQUNWLHlCQUF5QixFQUFFLFVBQVUsV0FBVyxRQUFRO0FBQUEsS0FFeEQsV0FDQSxRQUFRO0FBQUEsRUFDVixZQUFZLEVBQ1YsT0FBTztBQUFBLElBQ1AsVUFBVSxFQUFFLFNBQVMsV0FBVyxRQUFRO0FBQUEsSUFDeEMsTUFBTSxFQUFFLFNBQVMsV0FBVyxRQUFRO0FBQUEsSUFDcEMsZUFBZSxFQUNiLE1BQU0sQ0FBQyxFQUFFLFFBQVEsV0FBVyxFQUFFLFFBQVEsVUFBVSxFQUFFLFFBQVEsWUFDMUQsV0FDQSxRQUFRO0FBQUEsS0FFVixXQUNBLFFBQVE7QUFBQSxFQUNWLE1BQU0sRUFBRSxNQUFNLFdBQVcsUUFBUTtBQUFBO0FBSWxDLDhCQUFxQyxZQUFpQixNQUFvQztBQUN6RixRQUFNLG1CQUFtQixjQUFjLE9BQU8sS0FBSztBQUduRCxRQUFNLDRCQUE0QixrQkFBa0IsT0FBTztBQUFBLElBQzFELGFBQWEsRUFDWCxTQUNBLFFBQVEsS0FDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksaUJBQWlCLE1BQU07QUFBQSxJQUNwRCxLQUFLLEVBQ0gsU0FDQSxRQUFRLFNBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLGlCQUFpQixNQUFNO0FBQUEsSUFDcEQsT0FBTyxFQUNMLFNBQ0EsUUFBUSxlQUNSLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxpQkFBaUIsTUFBTTtBQUFBLElBQ3BELFNBQVMsRUFDUCxTQUNBLFFBQVEsaUJBQ1IsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLGlCQUFpQixNQUFNO0FBQUEsSUFDcEQsUUFBUSxFQUNOLFNBQ0EsUUFBUSxZQUNSLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxpQkFBaUIsTUFBTTtBQUFBLElBQ3BELE1BQU0sRUFDSixTQUNBLFFBQVEsVUFDUixVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksaUJBQWlCLE1BQU07QUFBQTtBQUVyRCxTQUFPLDBCQUEwQixXQUFXO0FBQUE7QUFJN0MsMEJBQTBCLEtBQXFCO0FBQzlDLFNBQU8sSUFBSSxRQUFRLFFBQVE7QUFBQTtBQVM1QiwwQkFBaUMsU0FBa0Q7QUFDbEYsUUFBTSxPQUFPLFFBQVEsTUFBTSxLQUFLLFFBQVEsUUFBUSxPQUFPLFFBQVE7QUFDL0QsTUFBSSxhQUE4QjtBQUNsQyxNQUFJO0FBRUosTUFBSSxRQUFRLFVBQVU7QUFDckIscUJBQWlCLFNBQVMsS0FBSyxRQUFRLFlBQVksUUFBUSxXQUFXLEtBQUssUUFBUTtBQUNuRixxQkFBaUIsY0FBYyxJQUFJLElBQUksZ0JBQWdCLFVBQVU7QUFBQTtBQUlsRSxRQUFNLFNBQVMsTUFBTSxLQUFLLFNBQVMsRUFBRSxXQUFXLE9BQU8sS0FBSyxNQUFNLFVBQVU7QUFDNUUsTUFBSSxRQUFRO0FBQ1gsaUJBQWEsT0FBTztBQUFBO0FBR3JCLFNBQU8sZUFBZSxZQUFZO0FBQUE7QUFHNUIsMkJBQTJCLEtBQWlCO0FBQ2xELFFBQU0sWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUssTUFBTSxLQUFLLEtBQUssVUFBVSxPQUFPLElBQUksTUFBTSxVQUFVO0FBQ3BILFNBQU8sR0FBRyxPQUFPLElBQUk7QUFBQSxFQUE4RCxVQUFVLEtBQUs7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K