@demiurgejs/core 0.1.1 → 0.2.0-beta.1

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 (88) hide show
  1. package/README.md +3 -0
  2. package/bin/demiurge.mjs +51 -0
  3. package/dist/chunks/request-metadata-DwEO1EAS.js +477 -0
  4. package/dist/chunks/request-metadata-DwEO1EAS.js.map +1 -0
  5. package/dist/chunks/{streaming-DN1DnbRE.js → streaming-Ci6vf3BB.js} +117 -107
  6. package/dist/chunks/streaming-Ci6vf3BB.js.map +1 -0
  7. package/dist/chunks/{testing-DR3eQAvY.js → testing-DBjVCN5v.js} +2384 -1942
  8. package/dist/chunks/testing-DBjVCN5v.js.map +1 -0
  9. package/dist/cli.d.ts +42 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +164 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/document/index.d.ts +2 -2
  14. package/dist/document/index.d.ts.map +1 -1
  15. package/dist/document/render.d.ts +1 -1
  16. package/dist/document/render.d.ts.map +1 -1
  17. package/dist/document/scripts.d.ts +22 -0
  18. package/dist/document/scripts.d.ts.map +1 -1
  19. package/dist/index.d.ts +7 -7
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +817 -969
  22. package/dist/index.js.map +1 -1
  23. package/dist/internal/testing.js +15 -14
  24. package/dist/internal/testing.js.map +1 -1
  25. package/dist/node/index.js +3 -3
  26. package/dist/node/streaming.d.ts +2 -0
  27. package/dist/node/streaming.d.ts.map +1 -1
  28. package/dist/route/action.d.ts +11 -11
  29. package/dist/route/action.d.ts.map +1 -1
  30. package/dist/route/index.d.ts +2 -1
  31. package/dist/route/index.d.ts.map +1 -1
  32. package/dist/route/middleware.d.ts +7 -0
  33. package/dist/route/middleware.d.ts.map +1 -0
  34. package/dist/route/page.d.ts +2 -2
  35. package/dist/route/page.d.ts.map +1 -1
  36. package/dist/route/response.d.ts +19 -19
  37. package/dist/route/response.d.ts.map +1 -1
  38. package/dist/route/types.d.ts +55 -31
  39. package/dist/route/types.d.ts.map +1 -1
  40. package/dist/route/webhook.d.ts +1 -1
  41. package/dist/router/manifest.d.ts +1 -0
  42. package/dist/router/manifest.d.ts.map +1 -1
  43. package/dist/routing/generate.d.ts +2 -0
  44. package/dist/routing/generate.d.ts.map +1 -1
  45. package/dist/routing/index.d.ts +1 -1
  46. package/dist/routing/index.d.ts.map +1 -1
  47. package/dist/routing/types.d.ts +2 -0
  48. package/dist/routing/types.d.ts.map +1 -1
  49. package/dist/security/cors.d.ts.map +1 -1
  50. package/dist/security/index.d.ts +4 -2
  51. package/dist/security/index.d.ts.map +1 -1
  52. package/dist/security/policy.d.ts +31 -2
  53. package/dist/security/policy.d.ts.map +1 -1
  54. package/dist/security/types.d.ts +27 -13
  55. package/dist/security/types.d.ts.map +1 -1
  56. package/dist/security/verification.d.ts +8 -0
  57. package/dist/security/verification.d.ts.map +1 -0
  58. package/dist/server/errors.d.ts.map +1 -1
  59. package/dist/server/not-found.d.ts.map +1 -1
  60. package/dist/server/render-tree.d.ts +6 -1
  61. package/dist/server/render-tree.d.ts.map +1 -1
  62. package/dist/server/request-handler.d.ts +4 -1
  63. package/dist/server/request-handler.d.ts.map +1 -1
  64. package/dist/server/ssr.d.ts +1 -0
  65. package/dist/server/ssr.d.ts.map +1 -1
  66. package/dist/static/index.d.ts +10 -0
  67. package/dist/static/index.d.ts.map +1 -1
  68. package/dist/static/index.js +579 -139
  69. package/dist/static/index.js.map +1 -1
  70. package/dist/static/preview.d.ts +8 -0
  71. package/dist/static/preview.d.ts.map +1 -0
  72. package/dist/static/vercel.d.ts +31 -0
  73. package/dist/static/vercel.d.ts.map +1 -0
  74. package/dist/vite/index.d.ts +3 -2
  75. package/dist/vite/index.d.ts.map +1 -1
  76. package/dist/vite/index.js +754 -326
  77. package/dist/vite/index.js.map +1 -1
  78. package/dist/vite/plugin.d.ts +13 -0
  79. package/dist/vite/plugin.d.ts.map +1 -1
  80. package/dist/vite/policy-verification.d.ts +10 -0
  81. package/dist/vite/policy-verification.d.ts.map +1 -0
  82. package/package.json +6 -1
  83. package/dist/chunks/index-BnX9Qxbm.js +0 -44
  84. package/dist/chunks/index-BnX9Qxbm.js.map +0 -1
  85. package/dist/chunks/ssr-BJejKlkZ.js +0 -275
  86. package/dist/chunks/ssr-BJejKlkZ.js.map +0 -1
  87. package/dist/chunks/streaming-DN1DnbRE.js.map +0 -1
  88. package/dist/chunks/testing-DR3eQAvY.js.map +0 -1
package/dist/cli.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import type { InlineConfig } from "vite";
2
+ import { type GenerateStaticOutputOptions, type StaticOutputManifest } from "./static";
3
+ type CliEnvironment = Record<string, string | undefined>;
4
+ export type CliOptions = {
5
+ command: "build" | "help" | "preview";
6
+ host: string;
7
+ origin?: string;
8
+ outDir: string;
9
+ port: number;
10
+ };
11
+ type StaticBuildRuntime = {
12
+ build: (config: InlineConfig) => Promise<unknown>;
13
+ generate: (options: GenerateStaticOutputOptions) => Promise<StaticOutputManifest>;
14
+ importModule: (specifier: string) => Promise<Record<string, unknown>>;
15
+ now: () => number;
16
+ readText: (file: string) => Promise<string>;
17
+ resolveConfig: () => Promise<{
18
+ plugins?: Array<{
19
+ api?: unknown;
20
+ name: string;
21
+ }>;
22
+ publicDir: false | string;
23
+ root: string;
24
+ }>;
25
+ };
26
+ export declare function parseCliArguments(arguments_: string[], environment?: CliEnvironment): CliOptions;
27
+ export declare const helpText = "Usage: demiurge <command> [options]\n\nCommands:\n build Build static production output\n preview Serve static output with its declared headers\n\nOptions:\n --host <host> Set the preview host (default: localhost)\n --origin <origin> Set the build origin (default: SITE_ORIGIN)\n --out-dir <directory> Set the output directory (default: dist)\n --port <port> Set the preview port (default: 4173)\n -h, --help Show this help";
28
+ export declare function buildStaticSite(options: CliOptions, runtime?: StaticBuildRuntime): Promise<{
29
+ deploymentOutDir: string | undefined;
30
+ manifest: StaticOutputManifest;
31
+ outDir: string;
32
+ }>;
33
+ export declare function resolvePreviewOutputDirectory(outDir: string, resolveConfig?: () => Promise<{
34
+ root: string;
35
+ }>): Promise<string>;
36
+ export declare function validateBuildOutputDirectory(root: string, outDir: string, publicDir: false | string, serverOutDir: string): Promise<void>;
37
+ export declare function parseClientManifest(source: string): {
38
+ clientEntry: string;
39
+ styles: string[];
40
+ };
41
+ export {};
42
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,EAGL,KAAK,2BAA2B,EAEhC,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAElB,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAIzD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,EAAE,CACR,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,MAAM,OAAO,CAAC;QAC3B,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,GAAG,CAAC,EAAE,OAAO,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,GAAE,cAAmB,GAC/B,UAAU,CA8CZ;AAED,eAAO,MAAM,QAAQ,gfAWkB,CAAC;AAExC,wBAAsB,eAAe,CACnC,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,kBAAkB;;;;GAwE7B;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,mBAMhD;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,GAAG,MAAM,EACzB,YAAY,EAAE,MAAM,iBAqCrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM;;;EAmBjD"}
package/dist/cli.js ADDED
@@ -0,0 +1,164 @@
1
+ import { readFile as b, readdir as E } from "node:fs/promises";
2
+ import { resolve as c, relative as p, sep as y, isAbsolute as g } from "node:path";
3
+ import { pathToFileURL as O } from "node:url";
4
+ import { generateStaticOutput as S, generateVercelStaticOutput as D } from "./static/index.js";
5
+ const T = /* @__PURE__ */ new Set(["--host", "--origin", "--out-dir", "--port"]);
6
+ function k(t, e = {}) {
7
+ const r = t[0];
8
+ if (!r || r === "--help" || r === "-h" || r === "help")
9
+ return {
10
+ command: "help",
11
+ host: "localhost",
12
+ outDir: "dist",
13
+ port: 4173
14
+ };
15
+ if (r !== "build" && r !== "preview")
16
+ throw new Error(`Unknown command: ${r}`);
17
+ const o = {
18
+ command: r,
19
+ host: "localhost",
20
+ origin: e.SITE_ORIGIN,
21
+ outDir: "dist",
22
+ port: 4173
23
+ };
24
+ for (let n = 1; n < t.length; n += 1) {
25
+ const i = t[n], [s, l] = i.split("=", 2);
26
+ if (!T.has(s))
27
+ throw new Error(`Unknown option: ${i}`);
28
+ const u = l ?? t[++n];
29
+ if (!u || u.startsWith("--"))
30
+ throw new Error(`Option ${s} requires a value.`);
31
+ if (s === "--host" && (o.host = u), s === "--origin" && (o.origin = u), s === "--out-dir" && (o.outDir = u), s === "--port") {
32
+ const a = Number(u);
33
+ if (!Number.isSafeInteger(a) || a < 0 || a > 65535)
34
+ throw new Error("Preview port must be an integer from 0 through 65535.");
35
+ o.port = a;
36
+ }
37
+ }
38
+ return o;
39
+ }
40
+ const M = `Usage: demiurge <command> [options]
41
+
42
+ Commands:
43
+ build Build static production output
44
+ preview Serve static output with its declared headers
45
+
46
+ Options:
47
+ --host <host> Set the preview host (default: localhost)
48
+ --origin <origin> Set the build origin (default: SITE_ORIGIN)
49
+ --out-dir <directory> Set the output directory (default: dist)
50
+ --port <port> Set the preview port (default: 4173)
51
+ -h, --help Show this help`;
52
+ async function B(t, e) {
53
+ const r = e ? void 0 : await import("vite"), o = e ? await e.resolveConfig() : await r.resolveConfig({}, "build", "production"), n = o.root, i = c(n, t.outDir), s = c(n, ".demiurge/server"), l = e?.build ?? r.build;
54
+ await j(
55
+ n,
56
+ i,
57
+ o.publicDir,
58
+ s
59
+ ), await l({
60
+ build: {
61
+ emptyOutDir: !0,
62
+ outDir: i,
63
+ rollupOptions: { input: "virtual:demiurge/client-entry" }
64
+ }
65
+ }), await l({
66
+ build: {
67
+ copyPublicDir: !1,
68
+ emptyOutDir: !0,
69
+ outDir: s,
70
+ rollupOptions: {
71
+ input: "virtual:demiurge/server-entry",
72
+ output: { entryFileNames: "server-entry.js" }
73
+ },
74
+ ssr: !0
75
+ }
76
+ });
77
+ const u = N(
78
+ e ? await e.readText(c(i, "demiurge-manifest.json")) : await b(c(i, "demiurge-manifest.json"), "utf8")
79
+ ), a = `${O(c(s, "server-entry.js")).href}?build=${e?.now() ?? Date.now()}`, d = e ? await e.importModule(a) : await import(a);
80
+ if (!A(d.routes))
81
+ throw new Error("The framework server bundle does not export routes.");
82
+ const f = await (e?.generate ?? S)({
83
+ origin: t.origin,
84
+ outDir: i,
85
+ routes: d.routes,
86
+ ssr: u,
87
+ staticFileHeaders: P(o.plugins)
88
+ }), h = I(o.plugins);
89
+ return { deploymentOutDir: h ? await D({
90
+ deployment: h,
91
+ manifest: f,
92
+ outDir: i,
93
+ projectRoot: process.cwd()
94
+ }) : void 0, manifest: f, outDir: i };
95
+ }
96
+ async function H(t, e) {
97
+ const r = e ? await e() : await (await import("vite")).resolveConfig({}, "serve", "production");
98
+ return c(r.root, t);
99
+ }
100
+ async function j(t, e, r, o) {
101
+ const n = p(t, e);
102
+ if (!n || n === ".." || n.startsWith(`..${y}`) || g(n))
103
+ throw new Error("The static output directory must be inside the Vite root.");
104
+ if (r && m(e, r))
105
+ throw new Error("The static output directory must not overlap the Vite public directory.");
106
+ if (m(e, o))
107
+ throw new Error("The static output directory must not overlap the framework server directory.");
108
+ let i;
109
+ try {
110
+ i = await E(e);
111
+ } catch (s) {
112
+ if (F(s)) return;
113
+ throw s;
114
+ }
115
+ if (i.length && !i.includes("demiurge-manifest.json") && !i.includes("demiurge-static-manifest.json"))
116
+ throw new Error(
117
+ "The static output directory contains files that a Demiurge build did not create."
118
+ );
119
+ }
120
+ function N(t) {
121
+ let e;
122
+ try {
123
+ e = JSON.parse(t);
124
+ } catch {
125
+ throw new Error("The client build manifest is not valid JSON.");
126
+ }
127
+ if (!e || typeof e != "object" || !("clientEntry" in e) || typeof e.clientEntry != "string" || !("styles" in e) || !Array.isArray(e.styles) || !e.styles.every((r) => typeof r == "string"))
128
+ throw new Error("The client build manifest has an unsupported format.");
129
+ return { clientEntry: e.clientEntry, styles: e.styles };
130
+ }
131
+ function A(t) {
132
+ return !t || typeof t != "object" || Array.isArray(t) ? !1 : Object.values(t).every((e) => typeof e == "function");
133
+ }
134
+ function I(t) {
135
+ return v(t)?.staticDeployment;
136
+ }
137
+ function P(t) {
138
+ return v(t)?.staticFileHeaders ?? [];
139
+ }
140
+ function v(t) {
141
+ return t?.filter((e) => e.name === "demiurge").map((e) => e.api).find(R);
142
+ }
143
+ function R(t) {
144
+ return !!t && t !== null && typeof t == "object" && "demiurge" in t && t.demiurge === !0;
145
+ }
146
+ function m(t, e) {
147
+ const r = p(t, e), o = p(e, t);
148
+ return w(r) || w(o);
149
+ }
150
+ function w(t) {
151
+ return !t || t !== ".." && !t.startsWith(`..${y}`) && !g(t);
152
+ }
153
+ function F(t) {
154
+ return t instanceof Error && "code" in t && t.code === "ENOENT";
155
+ }
156
+ export {
157
+ B as buildStaticSite,
158
+ M as helpText,
159
+ k as parseCliArguments,
160
+ N as parseClientManifest,
161
+ H as resolvePreviewOutputDirectory,
162
+ j as validateBuildOutputDirectory
163
+ };
164
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sources":["../src/cli.ts"],"sourcesContent":["import { readFile, readdir } from \"node:fs/promises\";\nimport { isAbsolute, relative, resolve, sep } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { InlineConfig } from \"vite\";\nimport type { RouteImporter } from \"./route\";\nimport {\n generateVercelStaticOutput,\n generateStaticOutput,\n type GenerateStaticOutputOptions,\n type StaticFileHeaderPatternRule,\n type StaticOutputManifest,\n type VercelStaticDeployment,\n} from \"./static\";\n\ntype CliEnvironment = Record<string, string | undefined>;\n\nconst cliOptionNames = new Set([\"--host\", \"--origin\", \"--out-dir\", \"--port\"]);\n\nexport type CliOptions = {\n command: \"build\" | \"help\" | \"preview\";\n host: string;\n origin?: string;\n outDir: string;\n port: number;\n};\n\ntype StaticBuildRuntime = {\n build: (config: InlineConfig) => Promise<unknown>;\n generate: (\n options: GenerateStaticOutputOptions,\n ) => Promise<StaticOutputManifest>;\n importModule: (specifier: string) => Promise<Record<string, unknown>>;\n now: () => number;\n readText: (file: string) => Promise<string>;\n resolveConfig: () => Promise<{\n plugins?: Array<{\n api?: unknown;\n name: string;\n }>;\n publicDir: false | string;\n root: string;\n }>;\n};\n\nexport function parseCliArguments(\n arguments_: string[],\n environment: CliEnvironment = {},\n): CliOptions {\n const command = arguments_[0];\n if (!command || command === \"--help\" || command === \"-h\" || command === \"help\") {\n return {\n command: \"help\",\n host: \"localhost\",\n outDir: \"dist\",\n port: 4173,\n };\n }\n if (command !== \"build\" && command !== \"preview\") {\n throw new Error(`Unknown command: ${command}`);\n }\n\n const options: CliOptions = {\n command,\n host: \"localhost\",\n origin: environment.SITE_ORIGIN,\n outDir: \"dist\",\n port: 4173,\n };\n\n for (let index = 1; index < arguments_.length; index += 1) {\n const argument = arguments_[index]!;\n const [name, inlineValue] = argument.split(\"=\", 2);\n if (!cliOptionNames.has(name!)) {\n throw new Error(`Unknown option: ${argument}`);\n }\n const value = inlineValue ?? arguments_[++index];\n if (!value || value.startsWith(\"--\")) {\n throw new Error(`Option ${name} requires a value.`);\n }\n\n if (name === \"--host\") options.host = value;\n if (name === \"--origin\") options.origin = value;\n if (name === \"--out-dir\") options.outDir = value;\n if (name === \"--port\") {\n const port = Number(value);\n if (!Number.isSafeInteger(port) || port < 0 || port > 65_535) {\n throw new Error(\"Preview port must be an integer from 0 through 65535.\");\n }\n options.port = port;\n }\n }\n\n return options;\n}\n\nexport const helpText = `Usage: demiurge <command> [options]\n\nCommands:\n build Build static production output\n preview Serve static output with its declared headers\n\nOptions:\n --host <host> Set the preview host (default: localhost)\n --origin <origin> Set the build origin (default: SITE_ORIGIN)\n --out-dir <directory> Set the output directory (default: dist)\n --port <port> Set the preview port (default: 4173)\n -h, --help Show this help`;\n\nexport async function buildStaticSite(\n options: CliOptions,\n runtime?: StaticBuildRuntime,\n) {\n const vite = runtime ? undefined : await import(\"vite\");\n const config = runtime\n ? await runtime.resolveConfig()\n : await vite!.resolveConfig({}, \"build\", \"production\");\n const root = config.root;\n const outDir = resolve(root, options.outDir);\n const serverOutDir = resolve(root, \".demiurge/server\");\n const build = runtime?.build ?? vite!.build;\n\n await validateBuildOutputDirectory(\n root,\n outDir,\n config.publicDir,\n serverOutDir,\n );\n\n await build({\n build: {\n emptyOutDir: true,\n outDir,\n rollupOptions: { input: \"virtual:demiurge/client-entry\" },\n },\n });\n await build({\n build: {\n copyPublicDir: false,\n emptyOutDir: true,\n outDir: serverOutDir,\n rollupOptions: {\n input: \"virtual:demiurge/server-entry\",\n output: { entryFileNames: \"server-entry.js\" },\n },\n ssr: true,\n },\n });\n\n const clientManifest = parseClientManifest(\n runtime\n ? await runtime.readText(resolve(outDir, \"demiurge-manifest.json\"))\n : await readFile(resolve(outDir, \"demiurge-manifest.json\"), \"utf8\"),\n );\n const serverEntryUrl = `${\n pathToFileURL(resolve(serverOutDir, \"server-entry.js\")).href\n }?build=${runtime?.now() ?? Date.now()}`;\n const serverEntry = runtime\n ? await runtime.importModule(serverEntryUrl)\n : await import(serverEntryUrl);\n if (!isRouteImporterRecord(serverEntry.routes)) {\n throw new Error(\"The framework server bundle does not export routes.\");\n }\n\n const manifest = await (runtime?.generate ?? generateStaticOutput)({\n origin: options.origin,\n outDir,\n routes: serverEntry.routes,\n ssr: clientManifest,\n staticFileHeaders: findStaticFileHeaderPatterns(config.plugins),\n });\n\n const deployment = findVercelStaticDeployment(config.plugins);\n const deploymentOutDir = deployment\n ? await generateVercelStaticOutput({\n deployment,\n manifest,\n outDir,\n projectRoot: process.cwd(),\n })\n : undefined;\n\n return { deploymentOutDir, manifest, outDir };\n}\n\nexport async function resolvePreviewOutputDirectory(\n outDir: string,\n resolveConfig?: () => Promise<{ root: string }>,\n) {\n const config = resolveConfig\n ? await resolveConfig()\n : await (await import(\"vite\")).resolveConfig({}, \"serve\", \"production\");\n return resolve(config.root, outDir);\n}\n\nexport async function validateBuildOutputDirectory(\n root: string,\n outDir: string,\n publicDir: false | string,\n serverOutDir: string,\n) {\n const pathFromRoot = relative(root, outDir);\n if (\n !pathFromRoot ||\n pathFromRoot === \"..\" ||\n pathFromRoot.startsWith(`..${sep}`) ||\n isAbsolute(pathFromRoot)\n ) {\n throw new Error(\"The static output directory must be inside the Vite root.\");\n }\n\n if (publicDir && pathsOverlap(outDir, publicDir)) {\n throw new Error(\"The static output directory must not overlap the Vite public directory.\");\n }\n\n if (pathsOverlap(outDir, serverOutDir)) {\n throw new Error(\"The static output directory must not overlap the framework server directory.\");\n }\n\n let entries: string[];\n try {\n entries = await readdir(outDir);\n } catch (error) {\n if (isMissingPath(error)) return;\n throw error;\n }\n\n if (\n entries.length &&\n !entries.includes(\"demiurge-manifest.json\") &&\n !entries.includes(\"demiurge-static-manifest.json\")\n ) {\n throw new Error(\n \"The static output directory contains files that a Demiurge build did not create.\",\n );\n }\n}\n\nexport function parseClientManifest(source: string) {\n let value: unknown;\n try {\n value = JSON.parse(source);\n } catch {\n throw new Error(\"The client build manifest is not valid JSON.\");\n }\n if (\n !value ||\n typeof value !== \"object\" ||\n !(\"clientEntry\" in value) ||\n typeof value.clientEntry !== \"string\" ||\n !(\"styles\" in value) ||\n !Array.isArray(value.styles) ||\n !value.styles.every((style) => typeof style === \"string\")\n ) {\n throw new Error(\"The client build manifest has an unsupported format.\");\n }\n return { clientEntry: value.clientEntry, styles: value.styles };\n}\n\nfunction isRouteImporterRecord(\n value: unknown,\n): value is Record<string, RouteImporter> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return false;\n }\n\n return Object.values(value).every((load) => typeof load === \"function\");\n}\n\nfunction findVercelStaticDeployment(\n plugins: ReadonlyArray<{ api?: unknown; name: string }> | undefined,\n): VercelStaticDeployment | undefined {\n return findDemiurgePluginApi(plugins)?.staticDeployment;\n}\n\nfunction findStaticFileHeaderPatterns(\n plugins: ReadonlyArray<{ api?: unknown; name: string }> | undefined,\n): readonly StaticFileHeaderPatternRule[] {\n return findDemiurgePluginApi(plugins)?.staticFileHeaders ?? [];\n}\n\nfunction findDemiurgePluginApi(\n plugins: ReadonlyArray<{ api?: unknown; name: string }> | undefined,\n) {\n return plugins\n ?.filter((plugin) => plugin.name === \"demiurge\")\n .map((plugin) => plugin.api)\n .find(isDemiurgePluginApi);\n}\n\nfunction isDemiurgePluginApi(value: unknown): value is {\n demiurge: true;\n staticDeployment?: VercelStaticDeployment;\n staticFileHeaders?: readonly StaticFileHeaderPatternRule[];\n} {\n return Boolean(value) &&\n value !== null &&\n typeof value === \"object\" &&\n \"demiurge\" in value &&\n value.demiurge === true;\n}\n\nfunction pathsOverlap(left: string, right: string) {\n const fromLeft = relative(left, right);\n const fromRight = relative(right, left);\n return isSameOrChildPath(fromLeft) || isSameOrChildPath(fromRight);\n}\n\nfunction isSameOrChildPath(pathname: string) {\n return !pathname ||\n (pathname !== \"..\" && !pathname.startsWith(`..${sep}`) &&\n !isAbsolute(pathname));\n}\n\nfunction isMissingPath(error: unknown) {\n return error instanceof Error && \"code\" in error && error.code === \"ENOENT\";\n}\n"],"names":["cliOptionNames","parseCliArguments","arguments_","environment","command","options","index","argument","name","inlineValue","value","port","helpText","buildStaticSite","runtime","vite","config","root","outDir","resolve","serverOutDir","build","validateBuildOutputDirectory","clientManifest","parseClientManifest","readFile","serverEntryUrl","pathToFileURL","serverEntry","isRouteImporterRecord","manifest","generateStaticOutput","findStaticFileHeaderPatterns","deployment","findVercelStaticDeployment","generateVercelStaticOutput","resolvePreviewOutputDirectory","resolveConfig","publicDir","pathFromRoot","relative","sep","isAbsolute","pathsOverlap","entries","readdir","error","isMissingPath","source","style","load","plugins","findDemiurgePluginApi","plugin","isDemiurgePluginApi","left","right","fromLeft","fromRight","isSameOrChildPath","pathname"],"mappings":"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"}
@@ -2,12 +2,12 @@ export { HYDRATION_DATA_ELEMENT_ID, HYDRATION_FALLBACK_ATTRIBUTE, HYDRATION_ROOT
2
2
  export { defineLinks, modulePreload, preconnect, preload, resolveLinks, } from "./links";
3
3
  export { defineMetadata, link, meta, resolveMetadata, structuredData, } from "./metadata";
4
4
  export { renderDocument, } from "./render";
5
- export { defineScripts, resolveScripts, script, } from "./scripts";
5
+ export { defineScripts, Script, resolveScripts, script, } from "./scripts";
6
6
  export { defineOgImage, defineRobots, defineSitemap, renderOgImageResponse, renderOgImageSvg, renderRobots, renderSitemap, } from "./seo";
7
7
  export type { InitialRouteData } from "./hydration";
8
8
  export type { LinkContribution, PreconnectOptions, PreloadOptions, } from "./links";
9
9
  export type { DocumentMetadataTag, LinkTag, Metadata, MetadataTitle, MetaTag, OpenGraphMetadata, ResolvedMetadata, RobotsMetadata, StructuredDataTag, StructuredDataValue, } from "./metadata";
10
10
  export type { DocumentBody, RenderDocumentOptions, } from "./render";
11
- export type { ScriptContribution, ScriptStrategy, ScriptTag, } from "./scripts";
11
+ export type { ScriptContribution, ScriptProps, ScriptStrategy, ScriptTag, } from "./scripts";
12
12
  export type { OgImage, Robots, RobotsDirective, Sitemap, SitemapAlternate, SitemapChangeFrequency, SitemapEntry, } from "./seo";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,aAAa,EACb,cAAc,EACd,MAAM,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,OAAO,EACP,MAAM,EACN,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,MAAM,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,OAAO,EACP,MAAM,EACN,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,OAAO,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { LinkTag, ResolvedMetadata } from "./metadata";
2
- import type { ScriptTag } from "./scripts";
2
+ import { type ScriptTag } from "./scripts";
3
3
  export declare const STRUCTURED_DATA_ATTRIBUTE = "data-demiurge-structured-data";
4
4
  export type DocumentBody = {
5
5
  data: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/document/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,OAAO,EACP,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,UAS5D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,IAAW,EACX,KAAU,EACV,QAAQ,EACR,KAAK,EACL,OAAY,EACZ,MAAW,EACX,KAAsB,GACvB,EAAE,0BAA0B;;;EAsB5B"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/document/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,OAAO,EACP,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,UAS5D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,IAAW,EACX,KAAU,EACV,QAAQ,EACR,KAAK,EACL,OAAY,EACZ,MAAW,EACX,KAAsB,GACvB,EAAE,0BAA0B;;;EAwB5B"}
@@ -1,5 +1,7 @@
1
+ import { type ReactNode } from "react";
1
2
  import type { HttpRouteContext, MaybePromise } from "../route";
2
3
  export type ScriptStrategy = "afterInteractive" | "beforeInteractive" | "module";
4
+ export declare const scriptPlacement: unique symbol;
3
5
  export type ScriptTag = {
4
6
  async?: boolean;
5
7
  dataApi?: string;
@@ -14,11 +16,31 @@ export type ScriptTag = {
14
16
  src: string;
15
17
  strategy: ScriptStrategy;
16
18
  type?: "module" | "text/javascript";
19
+ [scriptPlacement]?: "hoisted" | "in-place";
17
20
  };
18
21
  export type ScriptContribution = readonly ScriptTag[] | ((context: HttpRouteContext) => MaybePromise<readonly ScriptTag[]>);
22
+ export type ScriptProps = Omit<ScriptTag, "kind" | "nonce" | "strategy" | typeof scriptPlacement> & {
23
+ strategy?: ScriptStrategy;
24
+ };
25
+ export type ScriptRenderContext = {
26
+ dev: boolean;
27
+ headFlushed: boolean;
28
+ flushHead: () => void;
29
+ nonce?: string;
30
+ register: (scriptTag: ScriptTag) => "hoist" | "render" | "skip";
31
+ scripts: () => ScriptTag[];
32
+ };
33
+ export declare const ScriptContext: import("react").Context<ScriptRenderContext | undefined>;
34
+ export declare function createScriptRenderContext(options?: {
35
+ dev?: boolean;
36
+ nonce?: string;
37
+ scripts?: readonly ScriptTag[];
38
+ }): ScriptRenderContext;
39
+ export declare function Script(props: ScriptProps): ReactNode;
19
40
  export declare function defineScripts(contribution: ScriptContribution): ScriptContribution;
20
41
  export declare function script(options: Omit<ScriptTag, "kind" | "strategy"> & {
21
42
  strategy?: ScriptStrategy;
22
43
  }): ScriptTag;
44
+ export declare function withScriptContext(context: ScriptRenderContext, children: ReactNode): import("react").FunctionComponentElement<import("react").ProviderProps<ScriptRenderContext | undefined>>;
23
45
  export declare function resolveScripts(contributions: Array<ScriptContribution | false | undefined>, context: HttpRouteContext): Promise<ScriptTag[]>;
24
46
  //# sourceMappingURL=scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../src/document/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,CAAC;AAQb,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,SAAS,SAAS,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC;AAExE,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,sBAE7D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GAAG,SAAS,CAoBZ;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,GAAG,SAAS,CAAC,EAC5D,OAAO,EAAE,gBAAgB,wBAkB1B"}
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../src/document/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,CAAC;AAQb,eAAO,MAAM,eAAe,eAAqC,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IACpC,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,SAAS,SAAS,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,SAAS,EACT,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,eAAe,CACvD,GAAG;IACF,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChE,OAAO,EAAE,MAAM,SAAS,EAAE,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,aAAa,0DAEzB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,GAAE;IACjD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAC3B,GAAG,mBAAmB,CA6C3B;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CA+BpD;AAuCD,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,sBAE7D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GAAG,SAAS,CAoBZ;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,SAAS,4GAGpB;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,GAAG,SAAS,CAAC,EAC5D,OAAO,EAAE,gBAAgB,wBAkB1B"}
package/dist/index.d.ts CHANGED
@@ -1,23 +1,23 @@
1
1
  export { createFileRouter, hydrateFileRouter, Link } from "./browser";
2
2
  export { assertAdapterCapabilities, checkAdapterCapabilities, defineAdapter, } from "./adapter";
3
3
  export { createCache, createInvalidation, createMemoryIdempotencyStore, createMemoryCache, createMemoryCacheStore, defineTags, parseCacheDuration, query, runIdempotentMutation, serializeCacheKey, serializeCacheNamespace, serializeCacheTag, tag, } from "./data";
4
- export { defineLinks, defineMetadata, defineOgImage, defineRobots, defineScripts, defineSitemap, link, meta, modulePreload, preconnect, preload, resolveLinks, resolveMetadata, resolveScripts, renderOgImageResponse, renderOgImageSvg, renderRobots, renderSitemap, script, structuredData, } from "./document";
4
+ export { defineLinks, defineMetadata, defineOgImage, defineRobots, defineScripts, defineSitemap, link, meta, modulePreload, preconnect, preload, resolveLinks, resolveMetadata, resolveScripts, renderOgImageResponse, renderOgImageSvg, renderRobots, renderSitemap, script, Script, structuredData, } from "./document";
5
5
  export { href } from "./routing";
6
6
  export { analytics, defineFonts, defineInstrumentation, defineImages, font, fontPreloadLinks, isAllowedImageSource, planImageTransform, renderFontFaceCss, } from "./platform";
7
- export { auditScriptDependencies, createCorsHeaders, createCsrfCookie, createCsrfToken, createMemoryRateLimitStore, createSecurityAudit, createSecurityHeaders, createSecurityReportHandler, cspHash, EnvValidationError, checkWebSocketOrigin, defineRoutePolicy, defineEnvSchema, defineSecurityPolicy, env, enforceCsrfProtection, enforceAllowedMethods, enforceRateLimit, enforceRequestSecurity, enforceWebSocketOrigin, issueCsrfToken, mergeRoutePolicies, mergeRouteSecurityPolicies, mergeSecurityPolicies, parseCookieHeader, parseBodySize, parseRateLimitWindow, security, validateEnv, validateCorsPolicy, validateRateLimitPolicy, validateUploads, } from "./security";
7
+ export { auditScriptDependencies, createCorsHeaders, createCsrfCookie, createCsrfToken, createMemoryRateLimitStore, createSecurityAudit, createSecurityHeaders, createSecurityReportHandler, cspNonce, cspHash, EnvValidationError, checkWebSocketOrigin, defineRoutePolicy, defineEnvSchema, defineSecurityPolicy, env, enforceCsrfProtection, enforceAllowedMethods, enforceRateLimit, enforceRequestSecurity, enforceWebSocketOrigin, issueCsrfToken, mergeRoutePolicies, mergeRouteSecurityPolicies, mergeSecurityPolicies, parseCookieHeader, parseBodySize, parseRateLimitWindow, security, validateEnv, validateCorsPolicy, validateRateLimitPolicy, validateRouteModules, validateUploads, } from "./security";
8
8
  export { createRequestHandler, handleRequestWithManifest, renderPageResponse, } from "./server";
9
- export { action, actionInput, html, httpError, HttpError, HTTP_ERROR_STATUSES, isHttpError, json, jsonl, notFound, page, redirect, response, serverTiming, sse, stream, text, toResponse, webhook, } from "./route";
9
+ export { action, actionInput, defineMiddleware, html, httpError, HttpError, HTTP_ERROR_STATUSES, isHttpError, json, jsonl, notFound, page, redirect, response, serverTiming, sse, stream, text, toResponse, webhook, } from "./route";
10
10
  export type { Adapter, AdapterCapability, AdapterCapabilityCheck, AdapterCapabilityMap, AdapterDefinition, } from "./adapter";
11
11
  export type { ActionContext, ActionIdempotency, ActionInput, ActionOptions, HttpErrorDetails, HttpErrorInit, HttpErrorStatus, } from "./route";
12
12
  export type { RequestCacheStoreOptions } from "./server";
13
13
  export type { Cache, CacheDuration, CacheKey, CacheKeyPart, CacheRequest, CacheScope, CacheNamespace, CacheStore, CacheStoreEntry, CacheTag, CreateCacheOptions, Invalidation, InvalidationResult, IdempotencyRequest, IdempotencyResult, IdempotencyStore, Query, QueryDefinition, MemoryCacheOptions, MemoryCacheStoreOptions, MemoryIdempotencyStoreOptions, } from "./data";
14
- export type { DocumentMetadataTag, LinkTag, LinkContribution, Metadata, MetadataTitle, MetaTag, OgImage, OpenGraphMetadata, ResolvedMetadata, Robots, RobotsDirective, RobotsMetadata, PreconnectOptions, PreloadOptions, ScriptContribution, ScriptStrategy, ScriptTag, Sitemap, SitemapAlternate, SitemapChangeFrequency, SitemapEntry, StructuredDataTag, StructuredDataValue, } from "./document";
14
+ export type { DocumentMetadataTag, LinkTag, LinkContribution, Metadata, MetadataTitle, MetaTag, OgImage, OpenGraphMetadata, ResolvedMetadata, Robots, RobotsDirective, RobotsMetadata, PreconnectOptions, PreloadOptions, ScriptContribution, ScriptProps, ScriptStrategy, ScriptTag, Sitemap, SitemapAlternate, SitemapChangeFrequency, SitemapEntry, StructuredDataTag, StructuredDataValue, } from "./document";
15
15
  export type { AnalyticsConsent, FontContribution, FontDefinition, FontStyle, GoogleFontOptions, Instrumentation, InstrumentationEvent, InstrumentationHandler, InstrumentationOptions, ImageFormat, ImagePolicy, ImageTransformOptions, ImageTransformPlan, ImageVariant, LocalFontOptions, PlausibleAnalytics, PlausibleAnalyticsOptions, RemoteImagePattern, ObservabilityValue, RequestSignal, ServerStartSignal, TraceSignal, WebVitalName, WebVitalSignal, } from "./platform";
16
16
  export type { InitialRouteData } from "./router";
17
- export type { AppHref, AppPath, LinkTarget, LinkTo, PathValue, PathVarsFor, RouteParamsFor, RouteConcretePaths, RoutePathVars, } from "./routing";
17
+ export type { AppHref, AppPath, LinkTarget, LinkTo, PathValue, PathVarsFor, RouteParamsFor, RouteConcretePaths, RoutePathVars, RouteRequestContexts, } from "./routing";
18
18
  export type { HydrateFileRouterOptions } from "./browser";
19
19
  export type { SsrOptions, SsrRenderOptions } from "./server";
20
- export type { HtmlCapability, HttpMethod, HttpRouteContext, JsonCapability, JsonLinesCapability, JsonLinesSource, LayoutProps, MaybePromise, NotFoundCapability, NotFoundProps, PageDataContext, PageDataFunction, PageCapability, PageOptions, PageRenderMode, PageRenderOptions, PathVars, RawResponseCapability, RedirectCapability, ResponseOptions, ResponseCapability, RouteCapability, RouteContext, RouteErrorProps, RouteImporter, RouteDefaultComponent, RouteMiddleware, RouteMiddlewareNext, RouteModule, RouteProps, RouteValue, ServerSentEvent, ServerSentEventSource, ServerSentEventsCapability, ServerTimingInput, ServerTimingMetric, StaticPath, StaticPathsContext, StaticPathsFunction, StreamCapability, StreamChunk, StreamSource, TextCapability, WebhookHmacAlgorithm, WebhookHmacContext, WebhookHmacEncoding, WebhookHmacOptions, } from "./route";
21
- export type { ContentSecurityPolicy, CorsPolicy, CorsRequestContext, CorsResponseOptions, CsrfCookieOptions, CsrfPolicy, CspHashAlgorithm, CspDirectiveValue, CspSource, EnvSchema, EnvSource, EnvValidationIssue, EnvVariable, InferEnvSchema, IssuedCsrfToken, MemoryRateLimitStoreOptions, RateLimitKey, RateLimitPolicy, RateLimitResult, RateLimitStore, ReferrerPolicy, ReportingEndpointUrl, ReportingEndpoints, SecurityAudit, SecurityAuditFinding, SecurityAuditOptions, ScriptDependencyAuditOptions, SecurityReportContext, SecurityReportHandlerOptions, SecurityReportPayload, RequestSecurityPolicy, RoutePolicy, RouteSecurityPolicy, SecurityHeadersOptions, SecurityHeaderPolicy, SecurityPolicy, SecurityPreset, StrictTransportSecurityPolicy, TrustedTypesPolicy, UploadFilePolicy, UploadPolicy, UploadValidationIssue, UploadValidationResult, WebSocketOriginCheck, WebSocketOriginPolicy, } from "./security";
20
+ export type { HtmlCapability, HttpMethod, HttpRouteContext, JsonCapability, JsonLinesCapability, JsonLinesSource, LayoutProps, MaybePromise, NotFoundCapability, NotFoundProps, PageDataContext, PageDataFunction, PageCapability, PageOptions, PageRenderMode, PageRenderOptions, PathVars, RawResponseCapability, RedirectCapability, ResponseOptions, ResponseCapability, RouteCapability, RouteContext, RouteErrorProps, RouteImporter, RouteDefaultComponent, RouteMiddleware, RouteMiddlewareNext, MiddlewareContextContribution, MiddlewareContextOf, RouteRequestContextFor, RequestContext, RouteModule, RouteProps, RouteValue, ServerSentEvent, ServerSentEventSource, ServerSentEventsCapability, ServerTimingInput, ServerTimingMetric, StaticPath, StaticPathsContext, StaticPathsFunction, StreamCapability, StreamChunk, StreamSource, TextCapability, WebhookHmacAlgorithm, WebhookHmacContext, WebhookHmacEncoding, WebhookHmacOptions, } from "./route";
21
+ export type { ContentSecurityPolicy, CorsPolicy, CorsRequestContext, CorsResponseOptions, CsrfCookieOptions, CsrfPolicy, CspHashAlgorithm, CspDirectiveValue, CspDirectiveReplacement, CspSource, CspSourceDirective, EnvSchema, EnvSource, EnvValidationIssue, EnvVariable, InferEnvSchema, IssuedCsrfToken, MemoryRateLimitStoreOptions, RateLimitKey, RateLimitPolicy, RateLimitResult, RateLimitStore, ReferrerPolicy, ReportingEndpointUrl, ReportingEndpoints, SecurityAudit, SecurityAuditFinding, SecurityAuditOptions, ScriptDependencyAuditOptions, SecurityReportContext, SecurityReportHandlerOptions, SecurityReportPayload, RequestSecurityPolicy, RoutePolicy, RouteModuleVerificationOptions, RouteSecurityPolicy, SecurityHeadersOptions, SecurityHeaderPolicy, SecurityPolicy, SecurityPreset, StrictTransportSecurityPolicy, TrustedTypesPolicy, UploadFilePolicy, UploadPolicy, UploadValidationIssue, UploadValidationResult, WebSocketOriginCheck, WebSocketOriginPolicy, } from "./security";
22
22
  export type { PageRenderer, RequestHandler, RequestHandlerOptions, } from "./server";
23
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,GAAG,GACJ,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,MAAM,EACN,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,QAAQ,EACR,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,GAAG,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,GAAG,EACH,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EACV,KAAK,EACL,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC7D,YAAY,EACV,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,8BAA8B,EAC9B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAC"}