@reckona/mreact-router 0.0.97 → 0.0.98
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.
- package/README.md +4 -0
- package/dist/actions.d.ts +7 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +26 -2
- package/dist/actions.js.map +1 -1
- package/dist/adapters/aws-lambda.d.ts.map +1 -1
- package/dist/adapters/aws-lambda.js +10 -7
- package/dist/adapters/aws-lambda.js.map +1 -1
- package/dist/build.d.ts +38 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +1087 -304
- package/dist/build.js.map +1 -1
- package/dist/bundle-pipeline.d.ts +7 -0
- package/dist/bundle-pipeline.d.ts.map +1 -1
- package/dist/bundle-pipeline.js +121 -87
- package/dist/bundle-pipeline.js.map +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +10 -8
- package/dist/cache.js.map +1 -1
- package/dist/cli-options.d.ts +1 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +16 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +113 -8
- package/dist/client.js.map +1 -1
- package/dist/csrf.d.ts.map +1 -1
- package/dist/csrf.js +7 -3
- package/dist/csrf.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +18 -1
- package/dist/http.js.map +1 -1
- package/dist/import-policy.d.ts.map +1 -1
- package/dist/import-policy.js +7 -3
- package/dist/import-policy.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/link.d.ts +5 -3
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +92 -3
- package/dist/link.js.map +1 -1
- package/dist/logger.d.ts +7 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/module-runner.d.ts +2 -0
- package/dist/module-runner.d.ts.map +1 -1
- package/dist/module-runner.js +1 -0
- package/dist/module-runner.js.map +1 -1
- package/dist/native-route-matcher.d.ts +2 -1
- package/dist/native-route-matcher.d.ts.map +1 -1
- package/dist/native-route-matcher.js +13 -2
- package/dist/native-route-matcher.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +117 -2
- package/dist/render.js.map +1 -1
- package/dist/route-source.d.ts +4 -4
- package/dist/route-source.d.ts.map +1 -1
- package/dist/route-source.js +8 -8
- package/dist/route-source.js.map +1 -1
- package/dist/route-styles.d.ts +6 -0
- package/dist/route-styles.d.ts.map +1 -1
- package/dist/route-styles.js +10 -1
- package/dist/route-styles.js.map +1 -1
- package/dist/serve.d.ts +5 -0
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +7 -4
- package/dist/serve.js.map +1 -1
- package/package.json +11 -11
- package/src/actions.ts +42 -2
- package/src/adapters/aws-lambda.ts +33 -16
- package/src/build.ts +1578 -397
- package/src/bundle-pipeline.ts +136 -88
- package/src/cache.ts +13 -8
- package/src/cli-options.ts +20 -0
- package/src/cli.ts +1 -0
- package/src/client.ts +145 -14
- package/src/csrf.ts +8 -3
- package/src/http.ts +21 -1
- package/src/import-policy.ts +8 -3
- package/src/index.ts +5 -0
- package/src/link.ts +135 -8
- package/src/logger.ts +9 -1
- package/src/module-runner.ts +4 -0
- package/src/native-route-matcher.ts +13 -2
- package/src/render.ts +177 -2
- package/src/route-source.ts +8 -8
- package/src/route-styles.ts +17 -1
- package/src/serve.ts +11 -6
package/dist/route-source.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare function stripRouteRequestOnlyExports(code: string, filename?: st
|
|
|
13
13
|
export declare function stripRouteLoaderOnlyExports(code: string, filename?: string | undefined): string;
|
|
14
14
|
export declare function stripRouteMetadataOnlyExports(code: string, filename?: string | undefined): string;
|
|
15
15
|
export declare function stripRouteConfigExports(code: string, filename?: string | undefined): string;
|
|
16
|
-
export declare function isStreamRouteSource(code: string): boolean;
|
|
16
|
+
export declare function isStreamRouteSource(code: string, filename?: string | undefined): boolean;
|
|
17
17
|
export declare function mayUseAwaitBoundarySource(code: string): boolean;
|
|
18
18
|
export declare function routeClosureMayUseAwaitBoundary(options: {
|
|
19
19
|
filename: string;
|
|
@@ -22,7 +22,7 @@ export declare function routeClosureMayUseAwaitBoundary(options: {
|
|
|
22
22
|
seen?: Set<string> | undefined;
|
|
23
23
|
source: string;
|
|
24
24
|
}): boolean;
|
|
25
|
-
export declare function hasPrerenderExport(code: string): boolean;
|
|
26
|
-
export declare function hasGenerateStaticParamsExport(code: string): boolean;
|
|
27
|
-
export declare function hasLoaderExport(code: string): boolean;
|
|
25
|
+
export declare function hasPrerenderExport(code: string, filename?: string | undefined): boolean;
|
|
26
|
+
export declare function hasGenerateStaticParamsExport(code: string, filename?: string | undefined): boolean;
|
|
27
|
+
export declare function hasLoaderExport(code: string, filename?: string | undefined): boolean;
|
|
28
28
|
//# sourceMappingURL=route-source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-source.d.ts","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"AAuCA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM3F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa/F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,MAAM,CAKT;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,MAAM,CAST;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUhG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU/F;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUjG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM3F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"route-source.d.ts","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"AAuCA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM3F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa/F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,MAAM,CAKT;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,MAAM,CAST;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUhG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU/F;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUjG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM3F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAExF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CA0DV;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEpF"}
|
package/dist/route-source.js
CHANGED
|
@@ -86,8 +86,8 @@ export function stripRouteConfigExports(code, filename) {
|
|
|
86
86
|
names: ["auth", "prerender", "revalidate", "stream"],
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
|
-
export function isStreamRouteSource(code) {
|
|
90
|
-
return hasTopLevelExportDeclaration({ code, names: ["stream"] });
|
|
89
|
+
export function isStreamRouteSource(code, filename) {
|
|
90
|
+
return hasTopLevelExportDeclaration({ code, filename, names: ["stream"] });
|
|
91
91
|
}
|
|
92
92
|
export function mayUseAwaitBoundarySource(code) {
|
|
93
93
|
return collectJsxComponentRootNames({ code }).includes("Await");
|
|
@@ -137,14 +137,14 @@ export function routeClosureMayUseAwaitBoundary(options) {
|
|
|
137
137
|
seen.delete(options.filename);
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
export function hasPrerenderExport(code) {
|
|
141
|
-
return hasTopLevelExportDeclaration({ code, names: ["prerender"] });
|
|
140
|
+
export function hasPrerenderExport(code, filename) {
|
|
141
|
+
return hasTopLevelExportDeclaration({ code, filename, names: ["prerender"] });
|
|
142
142
|
}
|
|
143
|
-
export function hasGenerateStaticParamsExport(code) {
|
|
144
|
-
return hasTopLevelExportDeclaration({ code, names: ["generateStaticParams"] });
|
|
143
|
+
export function hasGenerateStaticParamsExport(code, filename) {
|
|
144
|
+
return hasTopLevelExportDeclaration({ code, filename, names: ["generateStaticParams"] });
|
|
145
145
|
}
|
|
146
|
-
export function hasLoaderExport(code) {
|
|
147
|
-
return hasTopLevelExportDeclaration({ code, names: ["loader"] });
|
|
146
|
+
export function hasLoaderExport(code, filename) {
|
|
147
|
+
return hasTopLevelExportDeclaration({ code, filename, names: ["loader"] });
|
|
148
148
|
}
|
|
149
149
|
function demoteRouteHelperExports(code, preservedExportNames = routeRenderExportNames, filename) {
|
|
150
150
|
const helperNames = collectTopLevelValueExportNames({ code, filename })
|
package/dist/route-source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-source.js","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, isAbsolute, join } from \"node:path\";\nimport {\n collectFormActionExpressionReferences,\n collectTopLevelValueExportNames,\n collectJsxComponentRootNames,\n collectStaticImportReferences,\n demoteTopLevelExportDeclarations,\n hasModuleDirective,\n hasTopLevelExportDeclaration,\n stripTopLevelExportDeclarations,\n stripUnusedStaticValueImports,\n} from \"@reckona/mreact-compiler\";\nimport type { StaticImportReference } from \"@reckona/mreact-compiler\";\nimport { sourceModuleCandidates } from \"./source-modules.js\";\n\nconst routeModuleExportNames = [\n \"auth\",\n \"generateStaticParams\",\n \"loader\",\n \"middleware\",\n \"prerender\",\n \"revalidate\",\n \"stream\",\n] as const;\nconst routeClientOnlyExportNames = [\n ...routeModuleExportNames,\n \"generateMetadata\",\n \"metadata\",\n] as const;\nconst routeRequestRenderExportNames = [\"default\", \"slots\"] as const;\nconst routeRenderExportNames = new Set<string>([\"default\", \"slots\"]);\nconst routeRequestExportNames = new Set<string>([\n ...routeClientOnlyExportNames,\n \"generateMetadata\",\n \"metadata\",\n]);\nconst routeLoaderOnlyExportNames = new Set<string>([\"loader\"]);\nconst routeMetadataOnlyExportNames = new Set<string>([\"generateMetadata\", \"metadata\"]);\n\nexport function stripRouteModuleExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeModuleExportNames,\n }), routeRenderExportNames, filename);\n}\n\nexport function stripRouteClientOnlyExports(code: string, filename?: string | undefined): string {\n return stripUnusedStaticValueImports({\n code: demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeClientOnlyExportNames,\n }),\n routeRenderExportNames,\n filename,\n ),\n filename,\n });\n}\n\nexport function stripRouteClientSource(input: {\n code: string;\n filename?: string | undefined;\n}): string {\n return stripRouteClientFormActionExpressions({\n code: stripRouteClientOnlyExports(input.code, input.filename),\n filename: input.filename,\n });\n}\n\nexport function stripRouteClientFormActionExpressions(input: {\n code: string;\n filename?: string | undefined;\n}): string {\n const references = collectFormActionExpressionReferences(input);\n let code = input.code;\n\n for (const reference of [...references].reverse()) {\n code = `${code.slice(0, reference.expressionStart)}undefined${code.slice(reference.expressionEnd)}`;\n }\n\n return code;\n}\n\nexport function stripRouteBuildExports(code: string, filename?: string | undefined): string {\n return stripRouteClientOnlyExports(code, filename);\n}\n\nexport function stripRouteRequestOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeRequestRenderExportNames,\n }),\n routeRequestExportNames,\n filename,\n );\n}\n\nexport function stripRouteLoaderOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"default\", \"generateMetadata\", \"generateStaticParams\", \"metadata\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeLoaderOnlyExportNames,\n filename,\n );\n}\n\nexport function stripRouteMetadataOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"default\", \"generateStaticParams\", \"loader\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeMetadataOnlyExportNames,\n filename,\n );\n}\n\nexport function stripRouteConfigExports(code: string, filename?: string | undefined): string {\n return stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"prerender\", \"revalidate\", \"stream\"],\n });\n}\n\nexport function isStreamRouteSource(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"stream\"] });\n}\n\nexport function mayUseAwaitBoundarySource(code: string): boolean {\n return collectJsxComponentRootNames({ code }).includes(\"Await\");\n}\n\nexport function routeClosureMayUseAwaitBoundary(options: {\n filename: string;\n files: Record<string, string>;\n projectRoot: string;\n seen?: Set<string> | undefined;\n source: string;\n}): boolean {\n const seen = options.seen ?? new Set<string>();\n if (\n seen.has(options.filename) ||\n hasModuleDirective({ code: options.source, directive: \"use client\" })\n ) {\n return false;\n }\n\n seen.add(options.filename);\n\n try {\n if (mayUseAwaitBoundarySource(options.source)) {\n return true;\n }\n\n const sourceFilename = sourceFilenameForCompiler(options.projectRoot, options.filename);\n const jsxComponentRoots = new Set(\n collectJsxComponentRootNames({\n code: options.source,\n filename: sourceFilename,\n }),\n );\n\n for (const reference of collectStaticImportReferences({\n code: options.source,\n filename: sourceFilename,\n })) {\n if (!isRenderedStaticImportReference(reference, jsxComponentRoots)) {\n continue;\n }\n\n const resolved = resolveLocalSourceImport(options.files, options.filename, reference.source);\n\n if (resolved === undefined) {\n continue;\n }\n\n const importedSource = options.files[resolved];\n\n if (\n importedSource !== undefined &&\n routeClosureMayUseAwaitBoundary({\n filename: resolved,\n files: options.files,\n projectRoot: options.projectRoot,\n seen,\n source: importedSource,\n })\n ) {\n return true;\n }\n }\n\n return false;\n } finally {\n seen.delete(options.filename);\n }\n}\n\nexport function hasPrerenderExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"prerender\"] });\n}\n\nexport function hasGenerateStaticParamsExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"generateStaticParams\"] });\n}\n\nexport function hasLoaderExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"loader\"] });\n}\n\nfunction demoteRouteHelperExports(\n code: string,\n preservedExportNames: ReadonlySet<string> = routeRenderExportNames,\n filename?: string | undefined,\n): string {\n const helperNames = collectTopLevelValueExportNames({ code, filename })\n .filter((name) => !preservedExportNames.has(name) && startsLowercase(name));\n\n return helperNames.length === 0\n ? code\n : demoteTopLevelExportDeclarations({ code, filename, names: helperNames });\n}\n\nfunction startsLowercase(value: string): boolean {\n return /^[a-z]/.test(value);\n}\n\nfunction isRenderedStaticImportReference(\n reference: StaticImportReference,\n jsxComponentRoots: ReadonlySet<string>,\n): boolean {\n return reference.localNames.some((localName) => jsxComponentRoots.has(localName));\n}\n\nfunction resolveLocalSourceImport(\n files: Record<string, string>,\n importer: string,\n specifier: string,\n): string | undefined {\n if (!specifier.startsWith(\".\")) {\n return undefined;\n }\n\n const base = join(dirname(importer), specifier);\n\n for (const candidate of sourceModuleCandidates(base)) {\n if (files[candidate] !== undefined) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction sourceFilenameForCompiler(projectRoot: string, filename: string): string {\n return isAbsolute(filename) ? filename : join(projectRoot, filename);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"route-source.js","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, isAbsolute, join } from \"node:path\";\nimport {\n collectFormActionExpressionReferences,\n collectTopLevelValueExportNames,\n collectJsxComponentRootNames,\n collectStaticImportReferences,\n demoteTopLevelExportDeclarations,\n hasModuleDirective,\n hasTopLevelExportDeclaration,\n stripTopLevelExportDeclarations,\n stripUnusedStaticValueImports,\n} from \"@reckona/mreact-compiler\";\nimport type { StaticImportReference } from \"@reckona/mreact-compiler\";\nimport { sourceModuleCandidates } from \"./source-modules.js\";\n\nconst routeModuleExportNames = [\n \"auth\",\n \"generateStaticParams\",\n \"loader\",\n \"middleware\",\n \"prerender\",\n \"revalidate\",\n \"stream\",\n] as const;\nconst routeClientOnlyExportNames = [\n ...routeModuleExportNames,\n \"generateMetadata\",\n \"metadata\",\n] as const;\nconst routeRequestRenderExportNames = [\"default\", \"slots\"] as const;\nconst routeRenderExportNames = new Set<string>([\"default\", \"slots\"]);\nconst routeRequestExportNames = new Set<string>([\n ...routeClientOnlyExportNames,\n \"generateMetadata\",\n \"metadata\",\n]);\nconst routeLoaderOnlyExportNames = new Set<string>([\"loader\"]);\nconst routeMetadataOnlyExportNames = new Set<string>([\"generateMetadata\", \"metadata\"]);\n\nexport function stripRouteModuleExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeModuleExportNames,\n }), routeRenderExportNames, filename);\n}\n\nexport function stripRouteClientOnlyExports(code: string, filename?: string | undefined): string {\n return stripUnusedStaticValueImports({\n code: demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeClientOnlyExportNames,\n }),\n routeRenderExportNames,\n filename,\n ),\n filename,\n });\n}\n\nexport function stripRouteClientSource(input: {\n code: string;\n filename?: string | undefined;\n}): string {\n return stripRouteClientFormActionExpressions({\n code: stripRouteClientOnlyExports(input.code, input.filename),\n filename: input.filename,\n });\n}\n\nexport function stripRouteClientFormActionExpressions(input: {\n code: string;\n filename?: string | undefined;\n}): string {\n const references = collectFormActionExpressionReferences(input);\n let code = input.code;\n\n for (const reference of [...references].reverse()) {\n code = `${code.slice(0, reference.expressionStart)}undefined${code.slice(reference.expressionEnd)}`;\n }\n\n return code;\n}\n\nexport function stripRouteBuildExports(code: string, filename?: string | undefined): string {\n return stripRouteClientOnlyExports(code, filename);\n}\n\nexport function stripRouteRequestOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: routeRequestRenderExportNames,\n }),\n routeRequestExportNames,\n filename,\n );\n}\n\nexport function stripRouteLoaderOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"default\", \"generateMetadata\", \"generateStaticParams\", \"metadata\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeLoaderOnlyExportNames,\n filename,\n );\n}\n\nexport function stripRouteMetadataOnlyExports(code: string, filename?: string | undefined): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"default\", \"generateStaticParams\", \"loader\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeMetadataOnlyExportNames,\n filename,\n );\n}\n\nexport function stripRouteConfigExports(code: string, filename?: string | undefined): string {\n return stripTopLevelExportDeclarations({\n code,\n filename,\n names: [\"auth\", \"prerender\", \"revalidate\", \"stream\"],\n });\n}\n\nexport function isStreamRouteSource(code: string, filename?: string | undefined): boolean {\n return hasTopLevelExportDeclaration({ code, filename, names: [\"stream\"] });\n}\n\nexport function mayUseAwaitBoundarySource(code: string): boolean {\n return collectJsxComponentRootNames({ code }).includes(\"Await\");\n}\n\nexport function routeClosureMayUseAwaitBoundary(options: {\n filename: string;\n files: Record<string, string>;\n projectRoot: string;\n seen?: Set<string> | undefined;\n source: string;\n}): boolean {\n const seen = options.seen ?? new Set<string>();\n if (\n seen.has(options.filename) ||\n hasModuleDirective({ code: options.source, directive: \"use client\" })\n ) {\n return false;\n }\n\n seen.add(options.filename);\n\n try {\n if (mayUseAwaitBoundarySource(options.source)) {\n return true;\n }\n\n const sourceFilename = sourceFilenameForCompiler(options.projectRoot, options.filename);\n const jsxComponentRoots = new Set(\n collectJsxComponentRootNames({\n code: options.source,\n filename: sourceFilename,\n }),\n );\n\n for (const reference of collectStaticImportReferences({\n code: options.source,\n filename: sourceFilename,\n })) {\n if (!isRenderedStaticImportReference(reference, jsxComponentRoots)) {\n continue;\n }\n\n const resolved = resolveLocalSourceImport(options.files, options.filename, reference.source);\n\n if (resolved === undefined) {\n continue;\n }\n\n const importedSource = options.files[resolved];\n\n if (\n importedSource !== undefined &&\n routeClosureMayUseAwaitBoundary({\n filename: resolved,\n files: options.files,\n projectRoot: options.projectRoot,\n seen,\n source: importedSource,\n })\n ) {\n return true;\n }\n }\n\n return false;\n } finally {\n seen.delete(options.filename);\n }\n}\n\nexport function hasPrerenderExport(code: string, filename?: string | undefined): boolean {\n return hasTopLevelExportDeclaration({ code, filename, names: [\"prerender\"] });\n}\n\nexport function hasGenerateStaticParamsExport(code: string, filename?: string | undefined): boolean {\n return hasTopLevelExportDeclaration({ code, filename, names: [\"generateStaticParams\"] });\n}\n\nexport function hasLoaderExport(code: string, filename?: string | undefined): boolean {\n return hasTopLevelExportDeclaration({ code, filename, names: [\"loader\"] });\n}\n\nfunction demoteRouteHelperExports(\n code: string,\n preservedExportNames: ReadonlySet<string> = routeRenderExportNames,\n filename?: string | undefined,\n): string {\n const helperNames = collectTopLevelValueExportNames({ code, filename })\n .filter((name) => !preservedExportNames.has(name) && startsLowercase(name));\n\n return helperNames.length === 0\n ? code\n : demoteTopLevelExportDeclarations({ code, filename, names: helperNames });\n}\n\nfunction startsLowercase(value: string): boolean {\n return /^[a-z]/.test(value);\n}\n\nfunction isRenderedStaticImportReference(\n reference: StaticImportReference,\n jsxComponentRoots: ReadonlySet<string>,\n): boolean {\n return reference.localNames.some((localName) => jsxComponentRoots.has(localName));\n}\n\nfunction resolveLocalSourceImport(\n files: Record<string, string>,\n importer: string,\n specifier: string,\n): string | undefined {\n if (!specifier.startsWith(\".\")) {\n return undefined;\n }\n\n const base = join(dirname(importer), specifier);\n\n for (const candidate of sourceModuleCandidates(base)) {\n if (files[candidate] !== undefined) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction sourceFilenameForCompiler(projectRoot: string, filename: string): string {\n return isAbsolute(filename) ? filename : join(projectRoot, filename);\n}\n"]}
|
package/dist/route-styles.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ export declare function collectRouteCssFiles(options: {
|
|
|
3
3
|
pageFile: string;
|
|
4
4
|
projectRoot: string;
|
|
5
5
|
}): Promise<string[]>;
|
|
6
|
+
export declare function collectRouteCssFilesFromSources(options: {
|
|
7
|
+
appDir: string;
|
|
8
|
+
pageFile: string;
|
|
9
|
+
projectRoot: string;
|
|
10
|
+
readSource: (file: string) => Promise<string | undefined> | string | undefined;
|
|
11
|
+
}): Promise<string[]>;
|
|
6
12
|
export declare function collectRouteCssHrefs(options: {
|
|
7
13
|
appDir: string;
|
|
8
14
|
hrefPrefix?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-styles.d.ts","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"route-styles.d.ts","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKpB;AAED,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CAChF,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BpB;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMpB"}
|
package/dist/route-styles.js
CHANGED
|
@@ -3,13 +3,22 @@ import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
|
3
3
|
import { collectStaticImportReferences } from "@reckona/mreact-compiler";
|
|
4
4
|
import { existingRouteShellCandidates } from "./route-shells.js";
|
|
5
5
|
export async function collectRouteCssFiles(options) {
|
|
6
|
+
return await collectRouteCssFilesFromSources({
|
|
7
|
+
...options,
|
|
8
|
+
readSource: (file) => readFile(file, "utf8"),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export async function collectRouteCssFilesFromSources(options) {
|
|
6
12
|
const shellFiles = (await existingRouteShellCandidates(options.appDir, options.pageFile, isFile))
|
|
7
13
|
.map((candidate) => candidate.file);
|
|
8
14
|
const files = [...shellFiles, options.pageFile];
|
|
9
15
|
const seen = new Set();
|
|
10
16
|
const cssFiles = [];
|
|
11
17
|
for (const file of files) {
|
|
12
|
-
const source = await
|
|
18
|
+
const source = await options.readSource(file);
|
|
19
|
+
if (source === undefined) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
13
22
|
for (const reference of collectStaticImportReferences({ code: source, filename: file })) {
|
|
14
23
|
const cssFile = resolveCssImport({
|
|
15
24
|
importer: file,
|
package/dist/route-styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-styles.js","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAI1C;IACC,MAAM,UAAU,GAAG,CAAC,MAAM,4BAA4B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC9F,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"route-styles.js","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { access, readFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, relative, resolve, sep } from \"node:path\";\nimport { collectStaticImportReferences } from \"@reckona/mreact-compiler\";\nimport { existingRouteShellCandidates } from \"./route-shells.js\";\n\nexport async function collectRouteCssFiles(options: {\n appDir: string;\n pageFile: string;\n projectRoot: string;\n}): Promise<string[]> {\n return await collectRouteCssFilesFromSources({\n ...options,\n readSource: (file) => readFile(file, \"utf8\"),\n });\n}\n\nexport async function collectRouteCssFilesFromSources(options: {\n appDir: string;\n pageFile: string;\n projectRoot: string;\n readSource: (file: string) => Promise<string | undefined> | string | undefined;\n}): Promise<string[]> {\n const shellFiles = (await existingRouteShellCandidates(options.appDir, options.pageFile, isFile))\n .map((candidate) => candidate.file);\n const files = [...shellFiles, options.pageFile];\n const seen = new Set<string>();\n const cssFiles: string[] = [];\n\n for (const file of files) {\n const source = await options.readSource(file);\n\n if (source === undefined) {\n continue;\n }\n\n for (const reference of collectStaticImportReferences({ code: source, filename: file })) {\n const cssFile = resolveCssImport({\n importer: file,\n projectRoot: options.projectRoot,\n source: reference.source,\n });\n\n if (cssFile === undefined || seen.has(cssFile)) {\n continue;\n }\n\n seen.add(cssFile);\n cssFiles.push(cssFile);\n }\n }\n\n return cssFiles;\n}\n\nexport async function collectRouteCssHrefs(options: {\n appDir: string;\n hrefPrefix?: string | undefined;\n pageFile: string;\n projectRoot: string;\n}): Promise<string[]> {\n return (await collectRouteCssFiles(options)).map((file) => {\n const href = `/${relative(options.projectRoot, file).split(sep).join(\"/\")}`;\n\n return options.hrefPrefix === undefined ? href : `${options.hrefPrefix}${href.slice(1)}`;\n });\n}\n\nfunction resolveCssImport(options: {\n importer: string;\n projectRoot: string;\n source: string;\n}): string | undefined {\n if (!isCssSource(options.source)) {\n return undefined;\n }\n\n const resolved = isAbsolute(options.source)\n ? normalizeInsideProject(options.projectRoot, options.source)\n : options.source.startsWith(\".\")\n ? normalizeInsideProject(options.projectRoot, resolve(dirname(options.importer), options.source))\n : undefined;\n\n return resolved;\n}\n\nfunction normalizeInsideProject(projectRoot: string, file: string): string | undefined {\n const normalized = resolve(file);\n const root = resolve(projectRoot);\n const relativePath = relative(root, normalized);\n\n return relativePath === \"\" || relativePath.startsWith(\"..\") || isAbsolute(relativePath)\n ? undefined\n : normalized;\n}\n\nfunction isCssSource(source: string): boolean {\n return /\\.(?:css|pcss|postcss|scss|sass|less|styl|stylus)$/u.test(source);\n}\n\nasync function isFile(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\n"]}
|
package/dist/serve.d.ts
CHANGED
|
@@ -103,4 +103,9 @@ export declare function startServer(options: StartServerOptions): Promise<{
|
|
|
103
103
|
server: Server;
|
|
104
104
|
url: string;
|
|
105
105
|
}>;
|
|
106
|
+
declare function readBuiltPublicAsset(outDir: string, pathname: string): Promise<Response | undefined>;
|
|
107
|
+
export declare const __readBuiltPublicAssetForTest: typeof readBuiltPublicAsset;
|
|
108
|
+
export declare function __clearBuiltPublicAssetCacheForTest(): void;
|
|
109
|
+
export declare function __getBuiltPublicAssetCacheSizeForTest(): number;
|
|
110
|
+
export {};
|
|
106
111
|
//# sourceMappingURL=serve.d.ts.map
|
package/dist/serve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
|
package/dist/serve.js
CHANGED
|
@@ -367,9 +367,6 @@ async function readBuiltPublicAsset(outDir, pathname) {
|
|
|
367
367
|
try {
|
|
368
368
|
const cacheKey = `${outDir}\0${normalized}`;
|
|
369
369
|
const cached = builtPublicAssetCache.get(cacheKey);
|
|
370
|
-
if (cached === null) {
|
|
371
|
-
return undefined;
|
|
372
|
-
}
|
|
373
370
|
if (cached !== undefined) {
|
|
374
371
|
return bytesResponse(cached.bytes, {
|
|
375
372
|
headers: cached.headers,
|
|
@@ -384,10 +381,16 @@ async function readBuiltPublicAsset(outDir, pathname) {
|
|
|
384
381
|
return bytesResponse(bytes, { headers });
|
|
385
382
|
}
|
|
386
383
|
catch {
|
|
387
|
-
builtPublicAssetCache.set(`${outDir}\0${normalized}`, null);
|
|
388
384
|
return undefined;
|
|
389
385
|
}
|
|
390
386
|
}
|
|
387
|
+
export const __readBuiltPublicAssetForTest = readBuiltPublicAsset;
|
|
388
|
+
export function __clearBuiltPublicAssetCacheForTest() {
|
|
389
|
+
builtPublicAssetCache.clear();
|
|
390
|
+
}
|
|
391
|
+
export function __getBuiltPublicAssetCacheSizeForTest() {
|
|
392
|
+
return builtPublicAssetCache.size;
|
|
393
|
+
}
|
|
391
394
|
async function readBuiltRuntime(options) {
|
|
392
395
|
const outDir = options.outDir;
|
|
393
396
|
const runtimeDir = options.runtimeDir ?? join(outDir, "server", "runtime");
|