@nifrajs/web 3.5.0 → 4.0.2
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/dist/backend-only.d.ts +15 -0
- package/dist/backend-only.d.ts.map +1 -0
- package/dist/backend-only.js +16 -0
- package/dist/backend-only.js.map +1 -0
- package/dist/boundary.d.ts +5 -0
- package/dist/boundary.d.ts.map +1 -1
- package/dist/boundary.js +11 -2
- package/dist/boundary.js.map +1 -1
- package/dist/build-plan.d.ts +18 -6
- package/dist/build-plan.d.ts.map +1 -1
- package/dist/build-plan.js +82 -34
- package/dist/build-plan.js.map +1 -1
- package/dist/build-vite.d.ts +4 -0
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js +68 -13
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +57 -23
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +356 -85
- package/dist/build.js.map +1 -1
- package/dist/bun-dev-entry.d.ts +1 -1
- package/dist/bun-dev-entry.js +1 -1
- package/dist/cdn.d.ts +74 -0
- package/dist/cdn.d.ts.map +1 -0
- package/dist/cdn.js +132 -0
- package/dist/cdn.js.map +1 -0
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +136 -35
- package/dist/client.js.map +1 -1
- package/dist/conformance.d.ts +4 -3
- package/dist/conformance.d.ts.map +1 -1
- package/dist/conformance.js +12 -3
- package/dist/conformance.js.map +1 -1
- package/dist/csp.d.ts +93 -0
- package/dist/csp.d.ts.map +1 -0
- package/dist/csp.js +122 -0
- package/dist/csp.js.map +1 -0
- package/dist/dev-client.d.ts +76 -0
- package/dist/dev-client.d.ts.map +1 -0
- package/dist/dev-client.js +280 -0
- package/dist/dev-client.js.map +1 -0
- package/dist/dev-diagnostics.d.ts +26 -2
- package/dist/dev-diagnostics.d.ts.map +1 -1
- package/dist/dev-diagnostics.js +38 -7
- package/dist/dev-diagnostics.js.map +1 -1
- package/dist/dev-error.d.ts +4 -13
- package/dist/dev-error.d.ts.map +1 -1
- package/dist/dev-error.js +46 -4
- package/dist/dev-error.js.map +1 -1
- package/dist/dev-feed.d.ts +298 -0
- package/dist/dev-feed.d.ts.map +1 -0
- package/dist/dev-feed.js +797 -0
- package/dist/dev-feed.js.map +1 -0
- package/dist/dev-indicator.d.ts +38 -0
- package/dist/dev-indicator.d.ts.map +1 -0
- package/dist/dev-indicator.js +93 -0
- package/dist/dev-indicator.js.map +1 -0
- package/dist/dev-session.d.ts +77 -0
- package/dist/dev-session.d.ts.map +1 -0
- package/dist/dev-session.js +580 -0
- package/dist/dev-session.js.map +1 -0
- package/dist/dev-sourcemap.d.ts +27 -0
- package/dist/dev-sourcemap.d.ts.map +1 -0
- package/dist/dev-sourcemap.js +235 -0
- package/dist/dev-sourcemap.js.map +1 -0
- package/dist/dev-ssr-graph.d.ts.map +1 -1
- package/dist/dev-ssr-graph.js +13 -5
- package/dist/dev-ssr-graph.js.map +1 -1
- package/dist/dev.d.ts +15 -2
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +69 -44
- package/dist/dev.js.map +1 -1
- package/dist/diagnostic-catalog.d.ts +35 -0
- package/dist/diagnostic-catalog.d.ts.map +1 -0
- package/dist/diagnostic-catalog.js +203 -0
- package/dist/diagnostic-catalog.js.map +1 -0
- package/dist/diagnostic-prompt.d.ts +49 -0
- package/dist/diagnostic-prompt.d.ts.map +1 -0
- package/dist/diagnostic-prompt.js +303 -0
- package/dist/diagnostic-prompt.js.map +1 -0
- package/dist/diagnostic.d.ts +17 -23
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +31 -39
- package/dist/diagnostic.js.map +1 -1
- package/dist/draft.d.ts.map +1 -1
- package/dist/draft.js +4 -1
- package/dist/draft.js.map +1 -1
- package/dist/fn.d.ts +5 -0
- package/dist/fn.d.ts.map +1 -1
- package/dist/fn.js +13 -3
- package/dist/fn.js.map +1 -1
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +4 -2
- package/dist/fs.js.map +1 -1
- package/dist/index.d.ts +13 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -12
- package/dist/index.js.map +1 -1
- package/dist/internal/cdn/cloudflare.d.ts +48 -0
- package/dist/internal/cdn/cloudflare.d.ts.map +1 -0
- package/dist/internal/cdn/cloudflare.js +94 -0
- package/dist/internal/cdn/cloudflare.js.map +1 -0
- package/dist/internal/cdn/core.d.ts +91 -0
- package/dist/internal/cdn/core.d.ts.map +1 -0
- package/dist/internal/cdn/core.js +220 -0
- package/dist/internal/cdn/core.js.map +1 -0
- package/dist/internal/cdn/fastly.d.ts +17 -0
- package/dist/internal/cdn/fastly.d.ts.map +1 -0
- package/dist/internal/cdn/fastly.js +43 -0
- package/dist/internal/cdn/fastly.js.map +1 -0
- package/dist/internal/cdn/vercel.d.ts +31 -0
- package/dist/internal/cdn/vercel.d.ts.map +1 -0
- package/dist/internal/cdn/vercel.js +56 -0
- package/dist/internal/cdn/vercel.js.map +1 -0
- package/dist/internal/code-unit-order.d.ts +4 -0
- package/dist/internal/code-unit-order.d.ts.map +1 -0
- package/dist/internal/code-unit-order.js +6 -0
- package/dist/internal/code-unit-order.js.map +1 -0
- package/dist/internal/codegen.d.ts.map +1 -1
- package/dist/internal/codegen.js +141 -25
- package/dist/internal/codegen.js.map +1 -1
- package/dist/internal/dev-csp.d.ts +24 -0
- package/dist/internal/dev-csp.d.ts.map +1 -0
- package/dist/internal/dev-csp.js +160 -0
- package/dist/internal/dev-csp.js.map +1 -0
- package/dist/internal/dev-reserved.d.ts +25 -0
- package/dist/internal/dev-reserved.d.ts.map +1 -0
- package/dist/internal/dev-reserved.js +39 -0
- package/dist/internal/dev-reserved.js.map +1 -0
- package/dist/internal/html-spans.d.ts +10 -0
- package/dist/internal/html-spans.d.ts.map +1 -0
- package/dist/internal/html-spans.js +46 -0
- package/dist/internal/html-spans.js.map +1 -0
- package/dist/internal/loading-runtime.d.ts +44 -0
- package/dist/internal/loading-runtime.d.ts.map +1 -0
- package/dist/internal/loading-runtime.js +206 -0
- package/dist/internal/loading-runtime.js.map +1 -0
- package/dist/internal/matches-runtime.d.ts +8 -0
- package/dist/internal/matches-runtime.d.ts.map +1 -0
- package/dist/internal/matches-runtime.js +61 -0
- package/dist/internal/matches-runtime.js.map +1 -0
- package/dist/internal/mount-shadow.d.ts +36 -0
- package/dist/internal/mount-shadow.d.ts.map +1 -0
- package/dist/internal/mount-shadow.js +65 -0
- package/dist/internal/mount-shadow.js.map +1 -0
- package/dist/internal/node-builtins.d.ts +3 -0
- package/dist/internal/node-builtins.d.ts.map +1 -0
- package/dist/internal/node-builtins.js +79 -0
- package/dist/internal/node-builtins.js.map +1 -0
- package/dist/internal/output-guard.d.ts +65 -0
- package/dist/internal/output-guard.d.ts.map +1 -0
- package/dist/internal/output-guard.js +630 -0
- package/dist/internal/output-guard.js.map +1 -0
- package/dist/internal/page-execution.d.ts +20 -8
- package/dist/internal/page-execution.d.ts.map +1 -1
- package/dist/internal/page-execution.js +571 -105
- package/dist/internal/page-execution.js.map +1 -1
- package/dist/internal/parity.d.ts +21 -0
- package/dist/internal/parity.d.ts.map +1 -1
- package/dist/internal/parity.js +104 -22
- package/dist/internal/parity.js.map +1 -1
- package/dist/internal/private-env.d.ts +12 -0
- package/dist/internal/private-env.d.ts.map +1 -0
- package/dist/internal/private-env.js +335 -0
- package/dist/internal/private-env.js.map +1 -0
- package/dist/internal/public-url.d.ts +3 -0
- package/dist/internal/public-url.d.ts.map +1 -0
- package/dist/internal/public-url.js +18 -0
- package/dist/internal/public-url.js.map +1 -0
- package/dist/internal/render-document.d.ts +25 -19
- package/dist/internal/render-document.d.ts.map +1 -1
- package/dist/internal/render-document.js +77 -61
- package/dist/internal/render-document.js.map +1 -1
- package/dist/internal/response-controls.d.ts +75 -0
- package/dist/internal/response-controls.d.ts.map +1 -0
- package/dist/internal/response-controls.js +256 -0
- package/dist/internal/response-controls.js.map +1 -0
- package/dist/internal/runtime-contract.d.ts +11 -16
- package/dist/internal/runtime-contract.d.ts.map +1 -1
- package/dist/internal/runtime-contract.js.map +1 -1
- package/dist/internal/secret-scan.d.ts +104 -0
- package/dist/internal/secret-scan.d.ts.map +1 -0
- package/dist/internal/secret-scan.js +503 -0
- package/dist/internal/secret-scan.js.map +1 -0
- package/dist/internal/server-boundary.d.ts +6 -29
- package/dist/internal/server-boundary.d.ts.map +1 -1
- package/dist/internal/server-boundary.js +6 -66
- package/dist/internal/server-boundary.js.map +1 -1
- package/dist/internal/source-map.d.ts +47 -0
- package/dist/internal/source-map.d.ts.map +1 -0
- package/dist/internal/source-map.js +225 -0
- package/dist/internal/source-map.js.map +1 -0
- package/dist/internal/target-compat.d.ts +27 -0
- package/dist/internal/target-compat.d.ts.map +1 -0
- package/dist/internal/target-compat.js +77 -0
- package/dist/internal/target-compat.js.map +1 -0
- package/dist/internal/timing-safe-equal.d.ts +6 -0
- package/dist/internal/timing-safe-equal.d.ts.map +1 -1
- package/dist/internal/timing-safe-equal.js +10 -0
- package/dist/internal/timing-safe-equal.js.map +1 -1
- package/dist/internal/vitals-runtime.d.ts +18 -0
- package/dist/internal/vitals-runtime.d.ts.map +1 -0
- package/dist/internal/vitals-runtime.js +38 -0
- package/dist/internal/vitals-runtime.js.map +1 -0
- package/dist/internal/web-app.d.ts +38 -9
- package/dist/internal/web-app.d.ts.map +1 -1
- package/dist/internal/web-app.js +199 -59
- package/dist/internal/web-app.js.map +1 -1
- package/dist/internal/zone-graph.d.ts +89 -0
- package/dist/internal/zone-graph.d.ts.map +1 -0
- package/dist/internal/zone-graph.js +492 -0
- package/dist/internal/zone-graph.js.map +1 -0
- package/dist/isr.d.ts +83 -6
- package/dist/isr.d.ts.map +1 -1
- package/dist/isr.js +263 -36
- package/dist/isr.js.map +1 -1
- package/dist/llms-txt.d.ts.map +1 -1
- package/dist/llms-txt.js +31 -6
- package/dist/llms-txt.js.map +1 -1
- package/dist/manifest.d.ts +220 -13
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +394 -9
- package/dist/manifest.js.map +1 -1
- package/dist/module-graph.d.ts +26 -5
- package/dist/module-graph.d.ts.map +1 -1
- package/dist/module-graph.js +17 -7
- package/dist/module-graph.js.map +1 -1
- package/dist/navigation.d.ts +17 -3
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +11 -5
- package/dist/navigation.js.map +1 -1
- package/dist/nonce.d.ts +47 -0
- package/dist/nonce.d.ts.map +1 -0
- package/dist/nonce.js +63 -0
- package/dist/nonce.js.map +1 -0
- package/dist/plugins/css-modules.d.ts.map +1 -1
- package/dist/plugins/css-modules.js +4 -3
- package/dist/plugins/css-modules.js.map +1 -1
- package/dist/plugins/kit.d.ts +9 -0
- package/dist/plugins/kit.d.ts.map +1 -1
- package/dist/plugins/kit.js +18 -0
- package/dist/plugins/kit.js.map +1 -1
- package/dist/plugins/svg.d.ts +22 -3
- package/dist/plugins/svg.d.ts.map +1 -1
- package/dist/plugins/svg.js +112 -1
- package/dist/plugins/svg.js.map +1 -1
- package/dist/plugins/vite-leak-guard.d.ts +107 -3
- package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
- package/dist/plugins/vite-leak-guard.js +378 -17
- package/dist/plugins/vite-leak-guard.js.map +1 -1
- package/dist/plugins/vite-zone-guard.d.ts +61 -0
- package/dist/plugins/vite-zone-guard.d.ts.map +1 -0
- package/dist/plugins/vite-zone-guard.js +208 -0
- package/dist/plugins/vite-zone-guard.js.map +1 -0
- package/dist/plugins/zone-guard.d.ts +27 -0
- package/dist/plugins/zone-guard.d.ts.map +1 -0
- package/dist/plugins/zone-guard.js +80 -0
- package/dist/plugins/zone-guard.js.map +1 -0
- package/dist/prerender.d.ts +10 -0
- package/dist/prerender.d.ts.map +1 -1
- package/dist/prerender.js +35 -3
- package/dist/prerender.js.map +1 -1
- package/dist/public-dir.d.ts +9 -0
- package/dist/public-dir.d.ts.map +1 -1
- package/dist/public-dir.js +67 -9
- package/dist/public-dir.js.map +1 -1
- package/dist/pwa-manifest.d.ts +68 -0
- package/dist/pwa-manifest.d.ts.map +1 -0
- package/dist/pwa-manifest.js +178 -0
- package/dist/pwa-manifest.js.map +1 -0
- package/dist/query.js +4 -4
- package/dist/query.js.map +1 -1
- package/dist/render-seam.d.ts +42 -2
- package/dist/render-seam.d.ts.map +1 -1
- package/dist/render-seam.js +6 -0
- package/dist/render-seam.js.map +1 -1
- package/dist/route-manifest.d.ts +3 -0
- package/dist/route-manifest.d.ts.map +1 -1
- package/dist/route-manifest.js +26 -3
- package/dist/route-manifest.js.map +1 -1
- package/dist/route-types.d.ts +24 -0
- package/dist/route-types.d.ts.map +1 -0
- package/dist/route-types.js +195 -0
- package/dist/route-types.js.map +1 -0
- package/dist/router.d.ts +28 -6
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +129 -40
- package/dist/router.js.map +1 -1
- package/dist/vitals.d.ts +33 -0
- package/dist/vitals.d.ts.map +1 -0
- package/dist/vitals.js +16 -0
- package/dist/vitals.js.map +1 -0
- package/dist/vite.d.ts +16 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +248 -43
- package/dist/vite.js.map +1 -1
- package/dist/zones.d.ts +70 -0
- package/dist/zones.d.ts.map +1 -0
- package/dist/zones.js +365 -0
- package/dist/zones.js.map +1 -0
- package/package.json +67 -14
- package/src/backend-only.ts +16 -0
- package/src/boundary.ts +18 -5
- package/src/build-plan.ts +90 -35
- package/src/build-vite.ts +77 -11
- package/src/build.ts +466 -96
- package/src/bun-dev-entry.ts +1 -1
- package/src/cdn.ts +216 -0
- package/src/client.ts +135 -36
- package/src/conformance.ts +16 -3
- package/src/csp.ts +194 -0
- package/src/dev-client.ts +349 -0
- package/src/dev-diagnostics.ts +60 -7
- package/src/dev-error.ts +49 -5
- package/src/dev-feed.ts +1140 -0
- package/src/dev-indicator.ts +113 -0
- package/src/dev-session.ts +729 -0
- package/src/dev-sourcemap.ts +281 -0
- package/src/dev-ssr-graph.ts +16 -5
- package/src/dev.ts +86 -43
- package/src/diagnostic-catalog.ts +243 -0
- package/src/diagnostic-prompt.ts +355 -0
- package/src/diagnostic.ts +63 -66
- package/src/draft.ts +4 -1
- package/src/fn.ts +19 -3
- package/src/fs.ts +13 -2
- package/src/index.ts +42 -10
- package/src/internal/cdn/cloudflare.ts +146 -0
- package/src/internal/cdn/core.ts +316 -0
- package/src/internal/cdn/fastly.ts +62 -0
- package/src/internal/cdn/vercel.ts +95 -0
- package/src/internal/code-unit-order.ts +5 -0
- package/src/internal/codegen.ts +161 -24
- package/src/internal/dev-csp.ts +176 -0
- package/src/internal/dev-reserved.ts +52 -0
- package/src/internal/html-spans.ts +50 -0
- package/src/internal/loading-runtime.ts +244 -0
- package/src/internal/matches-runtime.ts +62 -0
- package/src/internal/mount-shadow.ts +88 -0
- package/src/internal/node-builtins.ts +79 -0
- package/src/internal/output-guard.ts +701 -0
- package/src/internal/page-execution.ts +795 -185
- package/src/internal/parity.ts +150 -36
- package/src/internal/private-env.ts +334 -0
- package/src/internal/public-url.ts +22 -0
- package/src/internal/render-document.ts +114 -67
- package/src/internal/response-controls.ts +284 -0
- package/src/internal/runtime-contract.ts +10 -15
- package/src/internal/secret-scan.ts +638 -0
- package/src/internal/server-boundary.ts +6 -69
- package/src/internal/source-map.ts +256 -0
- package/src/internal/target-compat.ts +92 -0
- package/src/internal/timing-safe-equal.ts +13 -0
- package/src/internal/vitals-runtime.ts +53 -0
- package/src/internal/web-app.ts +262 -84
- package/src/internal/zone-graph.ts +593 -0
- package/src/isr.ts +325 -37
- package/src/llms-txt.ts +28 -4
- package/src/manifest.ts +682 -16
- package/src/module-graph.ts +53 -9
- package/src/navigation.ts +29 -6
- package/src/nonce.ts +104 -0
- package/src/plugins/css-modules.ts +5 -3
- package/src/plugins/kit.ts +24 -0
- package/src/plugins/svg.ts +135 -4
- package/src/plugins/vite-leak-guard.ts +529 -16
- package/src/plugins/vite-zone-guard.ts +263 -0
- package/src/plugins/zone-guard.ts +119 -0
- package/src/prerender.ts +49 -3
- package/src/public-dir.ts +69 -8
- package/src/pwa-manifest.ts +226 -0
- package/src/query.ts +4 -4
- package/src/render-seam.ts +46 -1
- package/src/route-manifest.ts +15 -3
- package/src/route-types.ts +264 -0
- package/src/router.ts +163 -63
- package/src/vitals.ts +44 -0
- package/src/vite.ts +257 -42
- package/src/zones.ts +430 -0
- package/dist/plugins/vite-server-only.d.ts +0 -49
- package/dist/plugins/vite-server-only.d.ts.map +0 -1
- package/dist/plugins/vite-server-only.js +0 -57
- package/dist/plugins/vite-server-only.js.map +0 -1
- package/dist/server-only.d.ts +0 -21
- package/dist/server-only.d.ts.map +0 -1
- package/dist/server-only.js +0 -25
- package/dist/server-only.js.map +0 -1
- package/src/plugins/vite-server-only.ts +0 -75
- package/src/server-only.ts +0 -25
package/dist/manifest.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route manifest - the fs-free heart of file-based routing. Maps route file paths to nifra
|
|
3
|
+
* router patterns + their nested layout chain. `discoverRoutes` (in `@nifrajs/web/fs`) scans
|
|
4
|
+
* the filesystem and feeds `buildManifest`; everything here is pure logic, so it stays
|
|
5
|
+
* portable (no fs, no DOM) and fully unit-testable. Edge deploys pre-build the manifest.
|
|
6
|
+
*/
|
|
7
|
+
import { routePatternOverlap } from "@nifrajs/core";
|
|
8
|
+
import { compareRoutePatternSpecificity, compileRoutePattern, paramConstraint, } from "@nifrajs/core/pattern";
|
|
9
|
+
import { guardChannel, outputGuard } from "./internal/output-guard.js";
|
|
1
10
|
// `.svelte` and `.vue` routes are supported too: their `default` export is the component and
|
|
2
11
|
// `loader`/`action`/`meta` come from a module-level script block (Svelte `<script module>`, Vue's plain
|
|
3
12
|
// `<script>`) as named ESM exports - the same RouteModule shape as `.tsx`. Both compile via their
|
|
@@ -15,11 +24,167 @@ const GROUP = /^\(.+\)$/;
|
|
|
15
24
|
// thing. Restricted to 3 digits so `_401k` or `_4` is treated as an ordinary underscore-prefixed
|
|
16
25
|
// file (ignored) rather than silently becoming a status page.
|
|
17
26
|
const STATUS_PAGE = /^_[1-5][0-9][0-9]$/;
|
|
27
|
+
// The retired `_middleware.ts`. Discovery still collects it, so that it fails loudly rather than
|
|
28
|
+
// silently stopping guarding anything.
|
|
29
|
+
const MIDDLEWARE_FILE = /^_middleware\.(?:ts|js)$/;
|
|
30
|
+
// A route's backend half: `x.backend.ts` beside `x.tsx`. Script extensions only - JSX renders, and
|
|
31
|
+
// rendering belongs to the frontend half.
|
|
32
|
+
const ROUTE_BACKEND = /\.backend\.(?:[cm]?[jt]s)$/;
|
|
33
|
+
// A zone or retired suffix on a route file (`x.backend.tsx`) would otherwise become a URL segment.
|
|
34
|
+
const SUFFIXED_ROUTE = /\.(?:backend|frontend|shared|fn|server)$/;
|
|
18
35
|
const stripExt = (file) => file.replace(ROUTE_EXT, "");
|
|
19
36
|
const baseName = (file) => file.slice(file.lastIndexOf("/") + 1);
|
|
37
|
+
/** Whether a routes-relative path is a retired `_middleware` module. Discovery collects it only so
|
|
38
|
+
* that {@link buildManifest} can refuse it with the migration. */
|
|
39
|
+
export const isMiddlewareFile = (file) => MIDDLEWARE_FILE.test(baseName(file));
|
|
40
|
+
/** Whether a routes-relative path is a route's backend half (`x.backend.ts`). */
|
|
41
|
+
export const isRouteBackendFile = (file) => ROUTE_BACKEND.test(baseName(file));
|
|
42
|
+
/** The backend half a frontend route file pairs with: `blog/[slug].tsx` -> `blog/[slug].backend.ts`. */
|
|
43
|
+
export const backendFileFor = (file) => `${stripExt(file)}.backend.ts`;
|
|
44
|
+
/** Exports the browser runs or reads. They live in a route's frontend file, which ships whole. */
|
|
45
|
+
export const FRONTEND_ROUTE_EXPORTS = new Set([
|
|
46
|
+
"default",
|
|
47
|
+
"meta",
|
|
48
|
+
"handle",
|
|
49
|
+
"HydrateFallback",
|
|
50
|
+
"searchSchema",
|
|
51
|
+
"searchClientKeys",
|
|
52
|
+
"clientLoader",
|
|
53
|
+
"clientAction",
|
|
54
|
+
"boundaries",
|
|
55
|
+
"ssr",
|
|
56
|
+
]);
|
|
57
|
+
/** Exports only the server or the build reads. They live in the route's `x.backend.ts`. */
|
|
58
|
+
export const BACKEND_ROUTE_EXPORTS = new Set([
|
|
59
|
+
"loader",
|
|
60
|
+
"action",
|
|
61
|
+
"loaderOutput",
|
|
62
|
+
"actionOutput",
|
|
63
|
+
"boundaryLoaders",
|
|
64
|
+
"getStaticPaths",
|
|
65
|
+
"prerender",
|
|
66
|
+
"revalidate",
|
|
67
|
+
"revalidateTags",
|
|
68
|
+
"hydrate",
|
|
69
|
+
"islandScripts",
|
|
70
|
+
"middleware",
|
|
71
|
+
"gate",
|
|
72
|
+
"shouldRevalidate",
|
|
73
|
+
]);
|
|
74
|
+
const routeError = (message) => new Error(`[nifra/web] ${message}`);
|
|
75
|
+
/** The frontend export names a backend-only name was found under, for the move-it message. */
|
|
76
|
+
function assertFrontendHalf(file, front) {
|
|
77
|
+
for (const name of Object.keys(front)) {
|
|
78
|
+
if (BACKEND_ROUTE_EXPORTS.has(name)) {
|
|
79
|
+
throw routeError(`"${file}" exports "${name}", which runs on the server only. Move it to "${backendFileFor(file)}": a route's frontend file ships to the browser whole (\`nifra migrate layout\` splits every route of an app)`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const boundaries = front.boundaries;
|
|
83
|
+
if (Array.isArray(boundaries)) {
|
|
84
|
+
for (const boundary of boundaries) {
|
|
85
|
+
if (boundary?.load !== undefined) {
|
|
86
|
+
throw routeError(`boundary "${String(boundary.name)}" in "${file}" declares its load function in the frontend file. Move it to boundaryLoaders["${String(boundary.name)}"].load in "${backendFileFor(file)}"`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function assertBackendHalf(file, backend, back, allowMiddleware) {
|
|
92
|
+
for (const name of Object.keys(back)) {
|
|
93
|
+
if (name === "middleware" && !allowMiddleware) {
|
|
94
|
+
throw routeError(`"${backend}" exports "middleware", which only a directory's _layout.backend.ts may export`);
|
|
95
|
+
}
|
|
96
|
+
if (BACKEND_ROUTE_EXPORTS.has(name))
|
|
97
|
+
continue;
|
|
98
|
+
throw routeError(FRONTEND_ROUTE_EXPORTS.has(name)
|
|
99
|
+
? `"${backend}" exports "${name}", which the browser needs. Move it to "${file}"`
|
|
100
|
+
: `"${backend}" exports "${name}", which nifra does not read from a backend half. It may export only: ${[...BACKEND_ROUTE_EXPORTS].join(", ")}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// One merged module per (frontend namespace, backend namespace) pair. A runtime caches each module,
|
|
104
|
+
// so a page served many times merges once; a dev re-import yields new namespaces and a fresh merge.
|
|
105
|
+
const mergedHalves = new WeakMap();
|
|
106
|
+
/**
|
|
107
|
+
* Merge a route's two halves into the one {@link RouteModule} the server runs, refusing any export on
|
|
108
|
+
* the wrong side. The checks run on every server, dev and production alike, so a misplaced `loader`
|
|
109
|
+
* fails the first request to its route even before a client build has looked at it.
|
|
110
|
+
*/
|
|
111
|
+
export function mergeRouteHalves(file, front, backend, back) {
|
|
112
|
+
const cached = mergedHalves.get(front);
|
|
113
|
+
if (cached !== undefined && cached.back === back)
|
|
114
|
+
return cached.module;
|
|
115
|
+
assertFrontendHalf(file, front);
|
|
116
|
+
if (back === undefined || backend === undefined) {
|
|
117
|
+
mergedHalves.set(front, { back, module: front });
|
|
118
|
+
return front;
|
|
119
|
+
}
|
|
120
|
+
assertBackendHalf(file, backend, back, stripExt(baseName(file)) === "_layout");
|
|
121
|
+
const { middleware: _middleware, boundaryLoaders, loader, action, loaderOutput, actionOutput, ...server } = back;
|
|
122
|
+
const guarded = {};
|
|
123
|
+
for (const [name, fn, schema, schemaName] of [
|
|
124
|
+
["loader", loader, loaderOutput, "loaderOutput"],
|
|
125
|
+
["action", action, actionOutput, "actionOutput"],
|
|
126
|
+
]) {
|
|
127
|
+
if (fn === undefined) {
|
|
128
|
+
if (schema !== undefined) {
|
|
129
|
+
throw routeError(`"${backend}" exports ${schemaName} but no ${name} for it to describe`);
|
|
130
|
+
}
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
if (typeof fn !== "function")
|
|
134
|
+
throw routeError(`"${backend}" exports a ${name} that is not a function`);
|
|
135
|
+
guarded[name] = guardChannel(fn, {
|
|
136
|
+
label: `the ${name} of "${file}"`,
|
|
137
|
+
guard: schema === undefined ? undefined : outputGuard(schema, `"${backend}"`, schemaName),
|
|
138
|
+
missing: `export const ${schemaName} = t.object({ ... }) from "${backend}"`,
|
|
139
|
+
revalidate: name === "action",
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
let boundaries = front.boundaries;
|
|
143
|
+
if (boundaryLoaders !== undefined) {
|
|
144
|
+
if (typeof boundaryLoaders !== "object" || boundaryLoaders === null) {
|
|
145
|
+
throw routeError(`"${backend}" exports boundaryLoaders that is not an object of loaders`);
|
|
146
|
+
}
|
|
147
|
+
const loaders = boundaryLoaders;
|
|
148
|
+
const declared = new Set((front.boundaries ?? []).map((boundary) => boundary.name));
|
|
149
|
+
for (const [name, entry] of Object.entries(loaders)) {
|
|
150
|
+
if (!declared.has(name)) {
|
|
151
|
+
throw routeError(`"${backend}" has boundaryLoaders["${name}"], but "${file}" declares no boundary named "${name}"`);
|
|
152
|
+
}
|
|
153
|
+
if (typeof entry?.load !== "function") {
|
|
154
|
+
throw routeError(`boundaryLoaders["${name}"].load in "${backend}" must be a function`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
boundaries = front.boundaries?.map((boundary) => {
|
|
158
|
+
const entry = loaders[boundary.name];
|
|
159
|
+
if (entry === undefined)
|
|
160
|
+
return boundary;
|
|
161
|
+
const key = `boundaryLoaders["${boundary.name}"]`;
|
|
162
|
+
const load = guardChannel(entry.load, {
|
|
163
|
+
label: `${key} of "${backend}"`,
|
|
164
|
+
guard: entry.output === undefined
|
|
165
|
+
? undefined
|
|
166
|
+
: outputGuard(entry.output, `"${backend}"`, `${key}.output`),
|
|
167
|
+
missing: `${key}.output in "${backend}"`,
|
|
168
|
+
});
|
|
169
|
+
return { ...boundary, load };
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
const module = {
|
|
173
|
+
...front,
|
|
174
|
+
...server,
|
|
175
|
+
...guarded,
|
|
176
|
+
...(boundaries === undefined ? {} : { boundaries }),
|
|
177
|
+
};
|
|
178
|
+
mergedHalves.set(front, { back, module });
|
|
179
|
+
return module;
|
|
180
|
+
}
|
|
20
181
|
const dirOf = (file) => file.includes("/") ? file.slice(0, file.lastIndexOf("/")) : "";
|
|
21
182
|
const layoutIdFor = (dir) => (dir === "" ? "_layout" : `${dir}/_layout`);
|
|
22
183
|
const errorIdFor = (dir) => (dir === "" ? "_error" : `${dir}/_error`);
|
|
184
|
+
const notFoundIdFor = (dir) => `${dir}/_404`;
|
|
185
|
+
const loadingIdFor = (dir) => (dir === "" ? "_loading" : `${dir}/_loading`);
|
|
186
|
+
const middlewareIdFor = (dir) => (dir === "" ? "_middleware" : `${dir}/_middleware`);
|
|
187
|
+
const isDirAtOrAbove = (dir, other) => dir === "" || dir === other || other.startsWith(`${dir}/`);
|
|
23
188
|
/**
|
|
24
189
|
* Derive **every** nifra router pattern a route file maps to (relative to the routes dir):
|
|
25
190
|
* `index` → the parent path, `[id]` → `:id`, `[...slug]` → `*slug` (catch-all, captures the rest of
|
|
@@ -43,6 +208,9 @@ const FILE_PARAM_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
|
43
208
|
* `stripExt` already reduces `[inKey].txt.tsx` to `[inKey].txt` - `robots.txt.tsx` proves literal
|
|
44
209
|
* dots survive into a segment, so this was only ever a parser gap.
|
|
45
210
|
*
|
|
211
|
+
* A `{...}` group straight after a marker that the router would read as a param constraint
|
|
212
|
+
* (`[id]{a|b}`) is rejected too: see the check below.
|
|
213
|
+
*
|
|
46
214
|
* `[[optional]]` and `[...catchAll]` are **rejected** inside a mixed segment rather than given a
|
|
47
215
|
* meaning. There is no sensible absent form for `/[[locale]]-feed.xml` - `/-feed.xml` and dropping
|
|
48
216
|
* the segment are both surprising - and a catch-all captures the remaining path verbatim, which
|
|
@@ -73,6 +241,11 @@ function mixedFileSegment(seg, file) {
|
|
|
73
241
|
}
|
|
74
242
|
pattern += `${seg.slice(cursor, marker.index)}:${inner}`;
|
|
75
243
|
cursor = (marker.index ?? 0) + marker[0].length;
|
|
244
|
+
// The router reads `:name{...}` as a constraint on the param. A file name is not the place for
|
|
245
|
+
// one: links, prerendered paths and hydration all rebuild a URL from the pattern by name.
|
|
246
|
+
if (paramConstraint(seg.slice(cursor)) !== undefined) {
|
|
247
|
+
throw new Error(`[nifra/web] a param constraint cannot be written in a route file name: "${file}" (segment "${seg}"). Check the value in the route's loader instead, or rename the file so "[${inner}]" is not followed by a "{...}" group.`);
|
|
248
|
+
}
|
|
76
249
|
}
|
|
77
250
|
return pattern + seg.slice(cursor);
|
|
78
251
|
}
|
|
@@ -179,6 +352,8 @@ function paramsInPrefix(pattern, count) {
|
|
|
179
352
|
}
|
|
180
353
|
return names;
|
|
181
354
|
}
|
|
355
|
+
/** The params each directory in `dirs` owns on one expanded pattern - see {@link paramsInPrefix}. */
|
|
356
|
+
const paramsOwnedBy = (dirs, pattern, depths) => dirs.map((dir) => paramsInPrefix(pattern, depths[dir === "" ? 0 : dir.split("/").length] ?? 0));
|
|
182
357
|
const ancestorDirs = (file) => {
|
|
183
358
|
const dirs = [""];
|
|
184
359
|
const dir = dirOf(file);
|
|
@@ -194,8 +369,8 @@ const ancestorDirs = (file) => {
|
|
|
194
369
|
/**
|
|
195
370
|
* Build a manifest from route file paths (relative to the routes dir) + an `importer` that
|
|
196
371
|
* turns a path into a lazy module loader. Pure - no fs. Throws at boot (the loud-and-early
|
|
197
|
-
* RouteConfigError ethos) on duplicate patterns. `_layout`/`_404`/`_error`
|
|
198
|
-
* `_`-prefixed files are ignored (private/colocated, never routed).
|
|
372
|
+
* RouteConfigError ethos) on duplicate patterns. `_layout`/`_404`/`_error`/`_loading`/`_middleware`
|
|
373
|
+
* files are special; other `_`-prefixed files are ignored (private/colocated, never routed).
|
|
199
374
|
*/
|
|
200
375
|
export function buildManifest(files, importer) {
|
|
201
376
|
const layoutDirs = new Set();
|
|
@@ -203,28 +378,91 @@ export function buildManifest(files, importer) {
|
|
|
203
378
|
const errorDirs = new Set();
|
|
204
379
|
const errors = {};
|
|
205
380
|
let notFound;
|
|
381
|
+
const notFoundFiles = new Map();
|
|
206
382
|
const statusPages = {};
|
|
383
|
+
const loadingFiles = new Map();
|
|
384
|
+
const middlewareFiles = new Map();
|
|
207
385
|
const routeFiles = [];
|
|
386
|
+
// Pair each frontend file with its `x.backend.ts`. A backend half is never a route of its own.
|
|
387
|
+
const backendByStem = new Map();
|
|
388
|
+
const frontendFiles = [];
|
|
208
389
|
for (const file of files) {
|
|
390
|
+
if (isMiddlewareFile(file)) {
|
|
391
|
+
throw routeError(`"${file}" is retired: export \`middleware\` from "${dirOf(file) === "" ? "" : `${dirOf(file)}/`}_layout.backend.ts" instead (\`nifra migrate layout\` moves it)`);
|
|
392
|
+
}
|
|
393
|
+
if (!isRouteBackendFile(file)) {
|
|
394
|
+
frontendFiles.push(file);
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
const stem = file.replace(ROUTE_BACKEND, "");
|
|
398
|
+
const other = backendByStem.get(stem);
|
|
399
|
+
if (other !== undefined) {
|
|
400
|
+
throw routeError(`two backend halves for one route: "${other}" and "${file}"; keep one`);
|
|
401
|
+
}
|
|
402
|
+
backendByStem.set(stem, file);
|
|
403
|
+
}
|
|
404
|
+
const pairedBackends = new Set();
|
|
405
|
+
const frontendStems = new Map();
|
|
406
|
+
const halves = (file) => {
|
|
407
|
+
const backend = backendByStem.get(stripExt(file));
|
|
408
|
+
const loadFront = importer(file);
|
|
409
|
+
if (backend === undefined) {
|
|
410
|
+
return {
|
|
411
|
+
load: () => loadFront().then((front) => mergeRouteHalves(file, front, undefined, undefined)),
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
pairedBackends.add(backend);
|
|
415
|
+
const loadBack = importer(backend);
|
|
416
|
+
return {
|
|
417
|
+
backend,
|
|
418
|
+
load: () => Promise.all([loadFront(), loadBack()]).then(([front, back]) => mergeRouteHalves(file, front, backend, back)),
|
|
419
|
+
};
|
|
420
|
+
};
|
|
421
|
+
// Every `_layout.backend.ts` is a middleware candidate for its directory, with or without a
|
|
422
|
+
// frontend layout beside it; one exporting no `middleware` resolves to `undefined` and is skipped.
|
|
423
|
+
for (const [stem, backend] of backendByStem) {
|
|
424
|
+
if (baseName(stem) !== "_layout")
|
|
425
|
+
continue;
|
|
426
|
+
middlewareFiles.set(dirOf(backend), backend);
|
|
427
|
+
pairedBackends.add(backend);
|
|
428
|
+
}
|
|
429
|
+
for (const file of frontendFiles) {
|
|
209
430
|
const stem = stripExt(baseName(file));
|
|
431
|
+
const twin = frontendStems.get(stripExt(file));
|
|
432
|
+
if (twin !== undefined) {
|
|
433
|
+
throw routeError(`two frontend files for one route: "${twin}" and "${file}"; keep one`);
|
|
434
|
+
}
|
|
435
|
+
frontendStems.set(stripExt(file), file);
|
|
436
|
+
if (SUFFIXED_ROUTE.test(stem)) {
|
|
437
|
+
throw routeError(`"${file}" is a route file with a zone suffix. A route's backend half is a script file ("${stem}.ts"), and other zoned code belongs outside routes/`);
|
|
438
|
+
}
|
|
439
|
+
if (stem === "_middleware") {
|
|
440
|
+
throw routeError(`"${file}" is retired: export \`middleware\` from "${dirOf(file) === "" ? "" : `${dirOf(file)}/`}_layout.backend.ts" instead (\`nifra migrate layout\` moves it)`);
|
|
441
|
+
}
|
|
210
442
|
if (stem === "_layout") {
|
|
211
443
|
const dir = dirOf(file);
|
|
212
444
|
layoutDirs.add(dir);
|
|
213
|
-
layouts[layoutIdFor(dir)] = { file,
|
|
445
|
+
layouts[layoutIdFor(dir)] = { file, ...halves(file) };
|
|
214
446
|
}
|
|
215
447
|
else if (stem === "_error") {
|
|
216
448
|
const dir = dirOf(file);
|
|
217
449
|
errorDirs.add(dir);
|
|
218
|
-
errors[errorIdFor(dir)] = { file,
|
|
450
|
+
errors[errorIdFor(dir)] = { file, ...halves(file) };
|
|
219
451
|
}
|
|
220
452
|
else if (stem === "_404") {
|
|
221
|
-
|
|
453
|
+
const dir = dirOf(file);
|
|
454
|
+
notFoundFiles.set(dir, file);
|
|
455
|
+
if (dir === "")
|
|
456
|
+
notFound = { file, ...halves(file) };
|
|
457
|
+
}
|
|
458
|
+
else if (stem === "_loading") {
|
|
459
|
+
loadingFiles.set(dirOf(file), file);
|
|
222
460
|
}
|
|
223
461
|
else if (STATUS_PAGE.test(stem) && dirOf(file) === "") {
|
|
224
462
|
// `_410.tsx`, `_451.tsx`, … at the routes root. Root-only: unlike `_error`, these are not
|
|
225
463
|
// resolved per segment - a terminal status is a property of the outcome, not of where in the
|
|
226
464
|
// tree the route lives, and a per-segment variant would need a precedence rule nobody asked for.
|
|
227
|
-
statusPages[stem.slice(1)] = { file,
|
|
465
|
+
statusPages[stem.slice(1)] = { file, ...halves(file) };
|
|
228
466
|
}
|
|
229
467
|
else if (!stem.startsWith("_")) {
|
|
230
468
|
routeFiles.push(file);
|
|
@@ -232,13 +470,21 @@ export function buildManifest(files, importer) {
|
|
|
232
470
|
}
|
|
233
471
|
const byPattern = new Map();
|
|
234
472
|
const routes = [];
|
|
473
|
+
const shapes = [];
|
|
235
474
|
for (const file of routeFiles) {
|
|
236
475
|
const dirs = ancestorDirs(file);
|
|
237
476
|
const layoutDirsForFile = dirs.filter((dir) => layoutDirs.has(dir));
|
|
238
477
|
const layoutIds = layoutDirsForFile.map(layoutIdFor);
|
|
239
478
|
const errorIds = dirs.filter((dir) => errorDirs.has(dir)).map(errorIdFor);
|
|
479
|
+
const notFoundIds = dirs
|
|
480
|
+
.filter((dir) => dir !== "" && notFoundFiles.has(dir))
|
|
481
|
+
.map(notFoundIdFor);
|
|
482
|
+
const loadingIds = dirs.filter((dir) => loadingFiles.has(dir)).map(loadingIdFor);
|
|
483
|
+
const middlewareDirsForFile = dirs.filter((dir) => middlewareFiles.has(dir));
|
|
484
|
+
const middlewareIds = middlewareDirsForFile.map(middlewareIdFor);
|
|
240
485
|
const id = stripExt(file);
|
|
241
|
-
|
|
486
|
+
// One lazy loader per file, shared by its (possibly expanded) patterns.
|
|
487
|
+
const { backend, load } = halves(file);
|
|
242
488
|
// An optional `[[x]]` segment expands a file into multiple patterns, all pointing at the same
|
|
243
489
|
// module (same id/load/layout chain). Distinct patterns ⇒ no match ambiguity (different lengths).
|
|
244
490
|
for (const { pattern, depths } of filePathToRoutes(file)) {
|
|
@@ -246,16 +492,155 @@ export function buildManifest(files, importer) {
|
|
|
246
492
|
if (existing !== undefined) {
|
|
247
493
|
throw new Error(`[nifra/web] duplicate route: "${file}" and "${existing}" both map to "${pattern}"`);
|
|
248
494
|
}
|
|
495
|
+
// A path two shapes share goes to the more specific one (static > mixed > param > wildcard,
|
|
496
|
+
// segment by segment - the router's own order), and each keeps paths of its own, so
|
|
497
|
+
// `users/me.tsx` beside `users/[id].tsx` is ordinary. Only one shape twice is ambiguous.
|
|
498
|
+
const shape = compileRoutePattern(pattern);
|
|
499
|
+
for (const previous of shapes) {
|
|
500
|
+
if (compareRoutePatternSpecificity(previous.shape, shape) !== 0)
|
|
501
|
+
continue;
|
|
502
|
+
const witness = routePatternOverlap(previous.pattern, pattern);
|
|
503
|
+
if (witness !== undefined) {
|
|
504
|
+
throw new Error(`[nifra/web] overlapping routes: "${previous.file}" (${previous.pattern}) and "${file}" (${pattern}) both match "${witness}" with the same shape, so one of them could never be served; make the patterns disjoint or remove one route`);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
shapes.push({ file, pattern, shape });
|
|
249
508
|
byPattern.set(pattern, file);
|
|
250
|
-
|
|
251
|
-
|
|
509
|
+
routes.push({
|
|
510
|
+
id,
|
|
511
|
+
pattern,
|
|
512
|
+
layoutIds,
|
|
513
|
+
layoutParams: paramsOwnedBy(layoutDirsForFile, pattern, depths),
|
|
514
|
+
...(middlewareIds.length > 0
|
|
515
|
+
? {
|
|
516
|
+
middlewareIds,
|
|
517
|
+
middlewareParams: paramsOwnedBy(middlewareDirsForFile, pattern, depths),
|
|
518
|
+
}
|
|
519
|
+
: {}),
|
|
520
|
+
errorIds,
|
|
521
|
+
...(notFoundIds.length > 0 ? { notFoundIds } : {}),
|
|
522
|
+
...(loadingIds.length > 0 ? { loadingIds } : {}),
|
|
523
|
+
file,
|
|
524
|
+
...(backend === undefined ? {} : { backend }),
|
|
525
|
+
load,
|
|
526
|
+
});
|
|
252
527
|
}
|
|
253
528
|
}
|
|
529
|
+
// Nested `_404` pages. Each answers the unmatched URLs under its directory's URL prefix; when two
|
|
530
|
+
// directories share a prefix (a route group adds no segment), the one that contains the others
|
|
531
|
+
// answers, and with no such directory the choice would be arbitrary - so it is a boot error.
|
|
532
|
+
const scopeOwners = new Map();
|
|
533
|
+
const scopesByDir = new Map();
|
|
534
|
+
for (const dir of notFoundFiles.keys()) {
|
|
535
|
+
const layoutDirsForDir = ancestorDirs(`${dir}/_404`).filter((d) => layoutDirs.has(d));
|
|
536
|
+
const middlewareDirsForDir = ancestorDirs(`${dir}/_404`).filter((d) => middlewareFiles.has(d));
|
|
537
|
+
const scopes = [];
|
|
538
|
+
const forms = dir === "" ? [{ pattern: "/", depths: [0] }] : filePathToRoutes(`${dir}/index.tsx`);
|
|
539
|
+
for (const { pattern: prefix, depths } of forms) {
|
|
540
|
+
// A catch-all directory already matches everything beneath it: nothing there is unmatched.
|
|
541
|
+
if (/(?:^|\/)\*[^/]*$/.test(prefix))
|
|
542
|
+
continue;
|
|
543
|
+
const layoutParams = paramsOwnedBy(layoutDirsForDir, prefix, depths);
|
|
544
|
+
const middlewareParams = middlewareDirsForDir.length === 0
|
|
545
|
+
? undefined
|
|
546
|
+
: paramsOwnedBy(middlewareDirsForDir, prefix, depths);
|
|
547
|
+
for (const pattern of prefix === "/" ? ["/*"] : [prefix, `${prefix}/*`]) {
|
|
548
|
+
// Two directories answer the same URLs when their patterns differ only in param names.
|
|
549
|
+
const shape = pattern.replace(/([:*])[A-Za-z_][A-Za-z0-9_]*/g, "$1");
|
|
550
|
+
if (scopes.some((scope) => scope.shape === shape))
|
|
551
|
+
continue;
|
|
552
|
+
scopes.push({
|
|
553
|
+
pattern,
|
|
554
|
+
layoutParams,
|
|
555
|
+
...(middlewareParams === undefined ? {} : { middlewareParams }),
|
|
556
|
+
shape,
|
|
557
|
+
});
|
|
558
|
+
const owners = scopeOwners.get(shape);
|
|
559
|
+
if (owners === undefined)
|
|
560
|
+
scopeOwners.set(shape, [dir]);
|
|
561
|
+
else
|
|
562
|
+
owners.push(dir);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
scopesByDir.set(dir, scopes);
|
|
566
|
+
}
|
|
567
|
+
const ownerOf = new Map();
|
|
568
|
+
for (const [shape, dirs] of scopeOwners) {
|
|
569
|
+
const owner = dirs.find((dir) => dirs.every((other) => isDirAtOrAbove(dir, other)));
|
|
570
|
+
if (owner === undefined) {
|
|
571
|
+
const [first, second] = dirs;
|
|
572
|
+
throw new Error(`[nifra/web] ambiguous _404: "${notFoundFiles.get(first)}" and "${notFoundFiles.get(second)}" both answer unmatched URLs under "${shape.replace(/\/?\*$/, "") || "/"}"; keep one, or add a _404 in a directory that contains both`);
|
|
573
|
+
}
|
|
574
|
+
ownerOf.set(shape, owner);
|
|
575
|
+
}
|
|
576
|
+
const notFounds = {};
|
|
577
|
+
for (const [dir, file] of notFoundFiles) {
|
|
578
|
+
if (dir === "")
|
|
579
|
+
continue;
|
|
580
|
+
const dirs = ancestorDirs(file);
|
|
581
|
+
const middlewareIds = dirs.filter((d) => middlewareFiles.has(d)).map(middlewareIdFor);
|
|
582
|
+
notFounds[notFoundIdFor(dir)] = {
|
|
583
|
+
file,
|
|
584
|
+
...halves(file),
|
|
585
|
+
layoutIds: dirs.filter((d) => layoutDirs.has(d)).map(layoutIdFor),
|
|
586
|
+
errorIds: dirs.filter((d) => errorDirs.has(d)).map(errorIdFor),
|
|
587
|
+
...(middlewareIds.length > 0 ? { middlewareIds } : {}),
|
|
588
|
+
scopes: (scopesByDir.get(dir) ?? [])
|
|
589
|
+
.filter((scope) => ownerOf.get(scope.shape) === dir)
|
|
590
|
+
.map(({ pattern, layoutParams, middlewareParams }) => ({
|
|
591
|
+
pattern,
|
|
592
|
+
layoutParams,
|
|
593
|
+
...(middlewareParams === undefined ? {} : { middlewareParams }),
|
|
594
|
+
})),
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
const loadings = {};
|
|
598
|
+
for (const [dir, file] of loadingFiles) {
|
|
599
|
+
const backend = backendByStem.get(stripExt(file));
|
|
600
|
+
if (backend !== undefined) {
|
|
601
|
+
throw routeError(`"${backend}" pairs with a _loading page, which renders in the browser only and has no backend half`);
|
|
602
|
+
}
|
|
603
|
+
loadings[loadingIdFor(dir)] = {
|
|
604
|
+
file,
|
|
605
|
+
load: () => importer(file)().then((front) => mergeRouteHalves(file, front, undefined, undefined)),
|
|
606
|
+
layoutIds: ancestorDirs(file)
|
|
607
|
+
.filter((d) => layoutDirs.has(d))
|
|
608
|
+
.map(layoutIdFor),
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
const middlewares = {};
|
|
612
|
+
for (const [dir, backend] of middlewareFiles) {
|
|
613
|
+
const loadBack = importer(backend);
|
|
614
|
+
const layout = layoutDirs.has(dir) ? layouts[layoutIdFor(dir)]?.file : undefined;
|
|
615
|
+
middlewares[middlewareIdFor(dir)] = {
|
|
616
|
+
file: backend,
|
|
617
|
+
load: () => loadBack().then((module) => {
|
|
618
|
+
const back = module;
|
|
619
|
+
// Without a frontend layout there is no layout data to load: middleware is all it may hold.
|
|
620
|
+
if (layout === undefined) {
|
|
621
|
+
for (const name of Object.keys(back)) {
|
|
622
|
+
if (name !== "middleware") {
|
|
623
|
+
throw routeError(`"${backend}" exports "${name}", but its directory has no _layout frontend file, so it may export only middleware`);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
return { default: back.middleware };
|
|
628
|
+
}),
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
for (const backend of backendByStem.values()) {
|
|
632
|
+
if (pairedBackends.has(backend))
|
|
633
|
+
continue;
|
|
634
|
+
throw routeError(`"${backend}" has no frontend half. A backend half pairs with the file that renders its page ("${backend.replace(ROUTE_BACKEND, "")}.tsx" or another route extension); an endpoint with no page is a route in backend/app.ts`);
|
|
635
|
+
}
|
|
254
636
|
const base = {
|
|
255
637
|
routes,
|
|
256
638
|
layouts,
|
|
257
639
|
errors,
|
|
640
|
+
...(Object.keys(notFounds).length > 0 ? { notFounds } : {}),
|
|
258
641
|
...(Object.keys(statusPages).length > 0 ? { statusPages } : {}),
|
|
642
|
+
...(Object.keys(loadings).length > 0 ? { loadings } : {}),
|
|
643
|
+
...(Object.keys(middlewares).length > 0 ? { middlewares } : {}),
|
|
259
644
|
};
|
|
260
645
|
return notFound === undefined ? base : { ...base, notFound };
|
|
261
646
|
}
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|