@nifrajs/web 4.0.2 → 5.1.0
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 +19 -0
- package/dist/build-vite.d.ts +19 -0
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js +31 -10
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +8 -10
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +90 -31
- package/dist/build.js.map +1 -1
- package/dist/cdn.d.ts +8 -0
- package/dist/cdn.d.ts.map +1 -1
- package/dist/cdn.js +14 -15
- package/dist/cdn.js.map +1 -1
- package/dist/client.d.ts +6 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +46 -18
- package/dist/client.js.map +1 -1
- package/dist/deferred.d.ts +2 -2
- package/dist/deferred.d.ts.map +1 -1
- package/dist/deferred.js +28 -7
- package/dist/deferred.js.map +1 -1
- package/dist/dev-feed.d.ts.map +1 -1
- package/dist/dev-feed.js +24 -5
- package/dist/dev-feed.js.map +1 -1
- package/dist/dev-port.d.ts +3 -2
- package/dist/dev-port.d.ts.map +1 -1
- package/dist/dev-port.js +2 -6
- package/dist/dev-port.js.map +1 -1
- package/dist/dev-session.d.ts.map +1 -1
- package/dist/dev-session.js +4 -14
- package/dist/dev-session.js.map +1 -1
- package/dist/dev.d.ts +7 -17
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +13 -1
- package/dist/dev.js.map +1 -1
- package/dist/draft.d.ts +8 -5
- package/dist/draft.d.ts.map +1 -1
- package/dist/draft.js +30 -13
- package/dist/draft.js.map +1 -1
- package/dist/fonts-google.d.ts.map +1 -1
- package/dist/fonts-google.js +7 -0
- package/dist/fonts-google.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/codegen.d.ts +1 -0
- package/dist/internal/codegen.d.ts.map +1 -1
- package/dist/internal/codegen.js +56 -29
- package/dist/internal/codegen.js.map +1 -1
- package/dist/internal/disposable-dir.d.ts +8 -0
- package/dist/internal/disposable-dir.d.ts.map +1 -0
- package/dist/internal/disposable-dir.js +25 -0
- package/dist/internal/disposable-dir.js.map +1 -0
- package/dist/internal/entry-chunks.d.ts +9 -0
- package/dist/internal/entry-chunks.d.ts.map +1 -0
- package/dist/internal/entry-chunks.js +15 -0
- package/dist/internal/entry-chunks.js.map +1 -0
- package/dist/internal/evidence-traversal.d.ts +12 -0
- package/dist/internal/evidence-traversal.d.ts.map +1 -0
- package/dist/internal/evidence-traversal.js +48 -0
- package/dist/internal/evidence-traversal.js.map +1 -0
- package/dist/internal/head-merge.d.ts +6 -0
- package/dist/internal/head-merge.d.ts.map +1 -1
- package/dist/internal/head-merge.js +9 -0
- package/dist/internal/head-merge.js.map +1 -1
- package/dist/internal/js-string.d.ts +2 -0
- package/dist/internal/js-string.d.ts.map +1 -1
- package/dist/internal/js-string.js +5 -1
- package/dist/internal/js-string.js.map +1 -1
- package/dist/internal/mount-shadow.js +1 -1
- package/dist/internal/mount-shadow.js.map +1 -1
- package/dist/internal/output-guard.d.ts +7 -0
- package/dist/internal/output-guard.d.ts.map +1 -1
- package/dist/internal/output-guard.js +80 -8
- package/dist/internal/output-guard.js.map +1 -1
- package/dist/internal/package-entries.d.ts +34 -0
- package/dist/internal/package-entries.d.ts.map +1 -0
- package/dist/internal/package-entries.js +324 -0
- package/dist/internal/package-entries.js.map +1 -0
- package/dist/internal/page-execution.d.ts +6 -0
- package/dist/internal/page-execution.d.ts.map +1 -1
- package/dist/internal/page-execution.js +437 -114
- package/dist/internal/page-execution.js.map +1 -1
- package/dist/internal/parity.d.ts.map +1 -1
- package/dist/internal/parity.js +15 -2
- package/dist/internal/parity.js.map +1 -1
- package/dist/internal/private-env.d.ts +8 -0
- package/dist/internal/private-env.d.ts.map +1 -1
- package/dist/internal/private-env.js +25 -10
- package/dist/internal/private-env.js.map +1 -1
- package/dist/internal/progressive-cookies.d.ts +14 -0
- package/dist/internal/progressive-cookies.d.ts.map +1 -0
- package/dist/internal/progressive-cookies.js +43 -0
- package/dist/internal/progressive-cookies.js.map +1 -0
- package/dist/internal/public-env.d.ts +2 -0
- package/dist/internal/public-env.d.ts.map +1 -0
- package/dist/internal/public-env.js +13 -0
- package/dist/internal/public-env.js.map +1 -0
- package/dist/internal/render-document.d.ts +5 -44
- package/dist/internal/render-document.d.ts.map +1 -1
- package/dist/internal/render-document.js +51 -63
- package/dist/internal/render-document.js.map +1 -1
- package/dist/internal/response-controls.d.ts +2 -0
- package/dist/internal/response-controls.d.ts.map +1 -1
- package/dist/internal/response-controls.js +26 -16
- package/dist/internal/response-controls.js.map +1 -1
- package/dist/internal/revive-dates.d.ts +16 -0
- package/dist/internal/revive-dates.d.ts.map +1 -0
- package/dist/internal/revive-dates.js +32 -0
- package/dist/internal/revive-dates.js.map +1 -0
- package/dist/internal/route-path.d.ts +14 -0
- package/dist/internal/route-path.d.ts.map +1 -0
- package/dist/internal/route-path.js +19 -0
- package/dist/internal/route-path.js.map +1 -0
- package/dist/internal/secret-scan.d.ts.map +1 -1
- package/dist/internal/secret-scan.js +190 -20
- package/dist/internal/secret-scan.js.map +1 -1
- package/dist/internal/server-boundary.d.ts.map +1 -1
- package/dist/internal/server-boundary.js +33 -5
- package/dist/internal/server-boundary.js.map +1 -1
- package/dist/internal/web-app.d.ts +25 -18
- package/dist/internal/web-app.d.ts.map +1 -1
- package/dist/internal/web-app.js +81 -24
- package/dist/internal/web-app.js.map +1 -1
- package/dist/internal/wire-date.d.ts +3 -0
- package/dist/internal/wire-date.d.ts.map +1 -0
- package/dist/internal/wire-date.js +14 -0
- package/dist/internal/wire-date.js.map +1 -0
- package/dist/internal/without-query.d.ts +4 -0
- package/dist/internal/without-query.d.ts.map +1 -0
- package/dist/internal/without-query.js +9 -0
- package/dist/internal/without-query.js.map +1 -0
- package/dist/internal/zone-graph.d.ts +4 -0
- package/dist/internal/zone-graph.d.ts.map +1 -1
- package/dist/internal/zone-graph.js +71 -20
- package/dist/internal/zone-graph.js.map +1 -1
- package/dist/isr.d.ts +59 -3
- package/dist/isr.d.ts.map +1 -1
- package/dist/isr.js +311 -41
- package/dist/isr.js.map +1 -1
- package/dist/llms-txt.d.ts +2 -0
- package/dist/llms-txt.d.ts.map +1 -1
- package/dist/llms-txt.js +29 -3
- package/dist/llms-txt.js.map +1 -1
- package/dist/manifest.d.ts +37 -4
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +4 -0
- package/dist/manifest.js.map +1 -1
- package/dist/open-resolved.d.ts +18 -0
- package/dist/open-resolved.d.ts.map +1 -0
- package/dist/open-resolved.js +62 -0
- package/dist/open-resolved.js.map +1 -0
- package/dist/plugins/kit.d.ts +1 -0
- package/dist/plugins/kit.d.ts.map +1 -1
- package/dist/plugins/kit.js +26 -11
- package/dist/plugins/kit.js.map +1 -1
- package/dist/plugins/vite-leak-guard.d.ts +9 -1
- package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
- package/dist/plugins/vite-leak-guard.js +84 -7
- package/dist/plugins/vite-leak-guard.js.map +1 -1
- package/dist/plugins/vite-zone-guard.d.ts.map +1 -1
- package/dist/plugins/vite-zone-guard.js +17 -21
- package/dist/plugins/vite-zone-guard.js.map +1 -1
- package/dist/plugins/zone-guard.d.ts.map +1 -1
- package/dist/plugins/zone-guard.js +44 -3
- package/dist/plugins/zone-guard.js.map +1 -1
- package/dist/prerender.d.ts +5 -1
- package/dist/prerender.d.ts.map +1 -1
- package/dist/prerender.js +41 -19
- package/dist/prerender.js.map +1 -1
- package/dist/public-dir.d.ts +8 -1
- package/dist/public-dir.d.ts.map +1 -1
- package/dist/public-dir.js +17 -6
- package/dist/public-dir.js.map +1 -1
- package/dist/query.d.ts +13 -4
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +89 -26
- package/dist/query.js.map +1 -1
- package/dist/render-seam.d.ts +25 -2
- package/dist/render-seam.d.ts.map +1 -1
- package/dist/render-seam.js +1 -0
- package/dist/render-seam.js.map +1 -1
- package/dist/route-types.d.ts.map +1 -1
- package/dist/route-types.js +20 -9
- package/dist/route-types.js.map +1 -1
- package/dist/router.d.ts +9 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +47 -50
- package/dist/router.js.map +1 -1
- package/dist/seo.d.ts +49 -0
- package/dist/seo.d.ts.map +1 -0
- package/dist/seo.js +48 -0
- package/dist/seo.js.map +1 -0
- package/dist/server-components/build-info.d.ts +3 -0
- package/dist/server-components/build-info.d.ts.map +1 -0
- package/dist/server-components/build-info.js +7 -0
- package/dist/server-components/build-info.js.map +1 -0
- package/dist/server-components/build-target.d.ts +12 -0
- package/dist/server-components/build-target.d.ts.map +1 -0
- package/dist/server-components/build-target.js +153 -0
- package/dist/server-components/build-target.js.map +1 -0
- package/dist/server-components/build.d.ts +24 -0
- package/dist/server-components/build.d.ts.map +1 -0
- package/dist/server-components/build.js +366 -0
- package/dist/server-components/build.js.map +1 -0
- package/dist/server-components/bundle-proof.d.ts +3 -0
- package/dist/server-components/bundle-proof.d.ts.map +1 -0
- package/dist/server-components/bundle-proof.js +23 -0
- package/dist/server-components/bundle-proof.js.map +1 -0
- package/dist/server-components/client.d.ts +46 -0
- package/dist/server-components/client.d.ts.map +1 -0
- package/dist/server-components/client.js +594 -0
- package/dist/server-components/client.js.map +1 -0
- package/dist/server-components/definition.d.ts +11 -0
- package/dist/server-components/definition.d.ts.map +1 -0
- package/dist/server-components/definition.js +94 -0
- package/dist/server-components/definition.js.map +1 -0
- package/dist/server-components/dev-http.d.ts +5 -0
- package/dist/server-components/dev-http.d.ts.map +1 -0
- package/dist/server-components/dev-http.js +71 -0
- package/dist/server-components/dev-http.js.map +1 -0
- package/dist/server-components/error.d.ts +9 -0
- package/dist/server-components/error.d.ts.map +1 -0
- package/dist/server-components/error.js +24 -0
- package/dist/server-components/error.js.map +1 -0
- package/dist/server-components/frames.d.ts +7 -0
- package/dist/server-components/frames.d.ts.map +1 -0
- package/dist/server-components/frames.js +169 -0
- package/dist/server-components/frames.js.map +1 -0
- package/dist/server-components/html-policy.d.ts +6 -0
- package/dist/server-components/html-policy.d.ts.map +1 -0
- package/dist/server-components/html-policy.js +75 -0
- package/dist/server-components/html-policy.js.map +1 -0
- package/dist/server-components/html.d.ts +4 -0
- package/dist/server-components/html.d.ts.map +1 -0
- package/dist/server-components/html.js +67 -0
- package/dist/server-components/html.js.map +1 -0
- package/dist/server-components/islands.d.ts +44 -0
- package/dist/server-components/islands.d.ts.map +1 -0
- package/dist/server-components/islands.js +42 -0
- package/dist/server-components/islands.js.map +1 -0
- package/dist/server-components/native.d.ts +4 -0
- package/dist/server-components/native.d.ts.map +1 -0
- package/dist/server-components/native.js +81 -0
- package/dist/server-components/native.js.map +1 -0
- package/dist/server-components/portal.d.ts +6 -0
- package/dist/server-components/portal.d.ts.map +1 -0
- package/dist/server-components/portal.js +35 -0
- package/dist/server-components/portal.js.map +1 -0
- package/dist/server-components/props.d.ts +3 -0
- package/dist/server-components/props.d.ts.map +1 -0
- package/dist/server-components/props.js +14 -0
- package/dist/server-components/props.js.map +1 -0
- package/dist/server-components/protocol.d.ts +44 -0
- package/dist/server-components/protocol.d.ts.map +1 -0
- package/dist/server-components/protocol.js +139 -0
- package/dist/server-components/protocol.js.map +1 -0
- package/dist/server-components/range.d.ts +24 -0
- package/dist/server-components/range.d.ts.map +1 -0
- package/dist/server-components/range.js +263 -0
- package/dist/server-components/range.js.map +1 -0
- package/dist/server-components/registry.d.ts +6 -0
- package/dist/server-components/registry.d.ts.map +1 -0
- package/dist/server-components/registry.js +30 -0
- package/dist/server-components/registry.js.map +1 -0
- package/dist/server-components/response.d.ts +4 -0
- package/dist/server-components/response.d.ts.map +1 -0
- package/dist/server-components/response.js +32 -0
- package/dist/server-components/response.js.map +1 -0
- package/dist/server-components/router-integration.d.ts +9 -0
- package/dist/server-components/router-integration.d.ts.map +1 -0
- package/dist/server-components/router-integration.js +29 -0
- package/dist/server-components/router-integration.js.map +1 -0
- package/dist/server-components/runtime.d.ts +14 -0
- package/dist/server-components/runtime.d.ts.map +1 -0
- package/dist/server-components/runtime.js +276 -0
- package/dist/server-components/runtime.js.map +1 -0
- package/dist/server-components/scheduler.d.ts +14 -0
- package/dist/server-components/scheduler.d.ts.map +1 -0
- package/dist/server-components/scheduler.js +74 -0
- package/dist/server-components/scheduler.js.map +1 -0
- package/dist/server-components/schema.d.ts +4 -0
- package/dist/server-components/schema.d.ts.map +1 -0
- package/dist/server-components/schema.js +77 -0
- package/dist/server-components/schema.js.map +1 -0
- package/dist/server-components/server-entry.d.ts +12 -0
- package/dist/server-components/server-entry.d.ts.map +1 -0
- package/dist/server-components/server-entry.js +90 -0
- package/dist/server-components/server-entry.js.map +1 -0
- package/dist/server-components/source.d.ts +15 -0
- package/dist/server-components/source.d.ts.map +1 -0
- package/dist/server-components/source.js +269 -0
- package/dist/server-components/source.js.map +1 -0
- package/dist/server-components/state.d.ts +4 -0
- package/dist/server-components/state.d.ts.map +1 -0
- package/dist/server-components/state.js +123 -0
- package/dist/server-components/state.js.map +1 -0
- package/dist/server-components/stream.d.ts +6 -0
- package/dist/server-components/stream.d.ts.map +1 -0
- package/dist/server-components/stream.js +70 -0
- package/dist/server-components/stream.js.map +1 -0
- package/dist/server-components/trusted-html.d.ts +3 -0
- package/dist/server-components/trusted-html.d.ts.map +1 -0
- package/dist/server-components/trusted-html.js +14 -0
- package/dist/server-components/trusted-html.js.map +1 -0
- package/dist/server-components/types.d.ts +107 -0
- package/dist/server-components/types.d.ts.map +1 -0
- package/dist/server-components/types.js +2 -0
- package/dist/server-components/types.js.map +1 -0
- package/dist/server-components/typescript.d.ts +11 -0
- package/dist/server-components/typescript.d.ts.map +1 -0
- package/dist/server-components/typescript.js +28 -0
- package/dist/server-components/typescript.js.map +1 -0
- package/dist/server-components/value.d.ts +5 -0
- package/dist/server-components/value.d.ts.map +1 -0
- package/dist/server-components/value.js +77 -0
- package/dist/server-components/value.js.map +1 -0
- package/dist/server-components/vite.d.ts +12 -0
- package/dist/server-components/vite.d.ts.map +1 -0
- package/dist/server-components/vite.js +197 -0
- package/dist/server-components/vite.js.map +1 -0
- package/dist/server-components.d.ts +5 -0
- package/dist/server-components.d.ts.map +1 -0
- package/dist/server-components.js +4 -0
- package/dist/server-components.js.map +1 -0
- package/dist/service-worker.d.ts +8 -1
- package/dist/service-worker.d.ts.map +1 -1
- package/dist/service-worker.js +20 -6
- package/dist/service-worker.js.map +1 -1
- package/dist/vite.d.ts +12 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +7 -1
- package/dist/vite.js.map +1 -1
- package/dist/zones.d.ts +64 -2
- package/dist/zones.d.ts.map +1 -1
- package/dist/zones.js +331 -28
- package/dist/zones.js.map +1 -1
- package/package.json +102 -4
- package/src/build-vite.ts +31 -9
- package/src/build.ts +109 -31
- package/src/cdn.ts +18 -12
- package/src/client.ts +48 -17
- package/src/deferred.ts +27 -9
- package/src/dev-feed.ts +24 -5
- package/src/dev-port.ts +4 -10
- package/src/dev-session.ts +4 -13
- package/src/dev.ts +29 -1
- package/src/draft.ts +35 -14
- package/src/fonts-google.ts +10 -0
- package/src/index.ts +5 -6
- package/src/internal/codegen.ts +60 -29
- package/src/internal/disposable-dir.ts +24 -0
- package/src/internal/entry-chunks.ts +18 -0
- package/src/internal/evidence-traversal.ts +57 -0
- package/src/internal/head-merge.ts +16 -0
- package/src/internal/js-string.ts +6 -1
- package/src/internal/mount-shadow.ts +1 -1
- package/src/internal/output-guard.ts +88 -7
- package/src/internal/package-entries.ts +331 -0
- package/src/internal/page-execution.ts +573 -114
- package/src/internal/parity.ts +15 -2
- package/src/internal/private-env.ts +27 -13
- package/src/internal/progressive-cookies.ts +60 -0
- package/src/internal/public-env.ts +14 -0
- package/src/internal/render-document.ts +66 -89
- package/src/internal/response-controls.ts +31 -14
- package/src/internal/revive-dates.ts +35 -0
- package/src/internal/route-path.ts +24 -0
- package/src/internal/secret-scan.ts +190 -18
- package/src/internal/server-boundary.ts +29 -5
- package/src/internal/web-app.ts +126 -42
- package/src/internal/wire-date.ts +16 -0
- package/src/internal/without-query.ts +8 -0
- package/src/internal/zone-graph.ts +78 -25
- package/src/isr.ts +364 -45
- package/src/llms-txt.ts +32 -3
- package/src/manifest.ts +38 -4
- package/src/open-resolved.ts +64 -0
- package/src/plugins/kit.ts +31 -11
- package/src/plugins/vite-leak-guard.ts +104 -8
- package/src/plugins/vite-zone-guard.ts +21 -19
- package/src/plugins/zone-guard.ts +41 -2
- package/src/prerender.ts +39 -18
- package/src/public-dir.ts +27 -8
- package/src/query.ts +107 -26
- package/src/render-seam.ts +30 -2
- package/src/route-types.ts +34 -7
- package/src/router.ts +66 -59
- package/src/seo.ts +68 -0
- package/src/server-components/build-info.ts +11 -0
- package/src/server-components/build-target.ts +194 -0
- package/src/server-components/build.ts +419 -0
- package/src/server-components/bundle-proof.ts +33 -0
- package/src/server-components/client.ts +663 -0
- package/src/server-components/definition.ts +125 -0
- package/src/server-components/dev-http.ts +75 -0
- package/src/server-components/error.ts +24 -0
- package/src/server-components/frames.ts +181 -0
- package/src/server-components/html-policy.ts +94 -0
- package/src/server-components/html.ts +81 -0
- package/src/server-components/islands.ts +111 -0
- package/src/server-components/native.ts +101 -0
- package/src/server-components/portal.ts +42 -0
- package/src/server-components/props.ts +19 -0
- package/src/server-components/protocol.ts +167 -0
- package/src/server-components/range.ts +313 -0
- package/src/server-components/registry.ts +34 -0
- package/src/server-components/response.ts +44 -0
- package/src/server-components/router-integration.ts +40 -0
- package/src/server-components/runtime.ts +376 -0
- package/src/server-components/scheduler.ts +84 -0
- package/src/server-components/schema.ts +69 -0
- package/src/server-components/server-entry.ts +98 -0
- package/src/server-components/source.ts +324 -0
- package/src/server-components/state.ts +143 -0
- package/src/server-components/stream.ts +71 -0
- package/src/server-components/trusted-html.ts +21 -0
- package/src/server-components/types.ts +138 -0
- package/src/server-components/typescript.ts +39 -0
- package/src/server-components/value.ts +82 -0
- package/src/server-components/vite.ts +242 -0
- package/src/server-components.ts +32 -0
- package/src/service-worker.ts +24 -7
- package/src/vite.ts +8 -1
- package/src/zones.ts +418 -32
package/dist/zones.js
CHANGED
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { closeSync, existsSync, openSync, readFileSync, readSync, realpathSync } from "node:fs";
|
|
13
13
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
14
|
+
import { entryKey, entryOwnership, parseEnvironment, } from "./internal/package-entries.js";
|
|
14
15
|
import { SERVER_FN_MODULE } from "./internal/server-boundary.js";
|
|
16
|
+
import { withoutQuery } from "./internal/without-query.js";
|
|
15
17
|
const PACKAGE_ENVIRONMENTS = new Set([
|
|
16
18
|
"frontend",
|
|
17
19
|
"backend",
|
|
@@ -77,12 +79,141 @@ const SOURCE = "(?:[cm]?[jt]sx?|svelte|vue|mdx)";
|
|
|
77
79
|
export const ROUTE_BACKEND_FILE = /\.backend\.(?:[cm]?[jt]s)$/;
|
|
78
80
|
const ZONE_SUFFIX = new RegExp(`\\.(frontend|backend|shared|fn)\\.${SOURCE}$`);
|
|
79
81
|
const LEGACY_SERVER_SUFFIX = new RegExp(`\\.server\\.${SOURCE}$`);
|
|
82
|
+
export const SERVER_COMPONENT_FILE = /\.component\.server\.[cm]?[jt]sx?$/;
|
|
80
83
|
const ZONE_FOLDERS = {
|
|
81
84
|
frontend: "frontend",
|
|
82
85
|
backend: "backend",
|
|
83
86
|
shared: "shared",
|
|
84
87
|
public: "frontend",
|
|
85
88
|
};
|
|
89
|
+
/** A `"nifra": { "zones": ... }` setting that cannot be applied. Thrown when a classifier is created. */
|
|
90
|
+
export class ZoneConfigError extends Error {
|
|
91
|
+
name = "ZoneConfigError";
|
|
92
|
+
/** The file holding the setting, as the caller named it. */
|
|
93
|
+
source;
|
|
94
|
+
constructor(source, problem) {
|
|
95
|
+
super(`[nifra] ${source} "nifra.zones": ${problem}`);
|
|
96
|
+
this.source = source;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const FOLDER_SIDES = ["backend", "frontend", "shared"];
|
|
100
|
+
const FOLDER_SIDE_NAMES = new Set(FOLDER_SIDES);
|
|
101
|
+
const isPackageEnvironment = (value) => typeof value === "string" && PACKAGE_ENVIRONMENTS.has(value);
|
|
102
|
+
const RESERVED_FOLDERS = new Set([
|
|
103
|
+
"routes",
|
|
104
|
+
"frontend",
|
|
105
|
+
"backend",
|
|
106
|
+
"shared",
|
|
107
|
+
"public",
|
|
108
|
+
"node_modules",
|
|
109
|
+
]);
|
|
110
|
+
const recordOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
|
|
111
|
+
? Object.fromEntries(Object.entries(value))
|
|
112
|
+
: undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Validate a `zones` setting. `source` names where it came from in the error. Folders and files are
|
|
115
|
+
* plain app-relative paths (a trailing `/**` is accepted and dropped); any other glob is refused, so
|
|
116
|
+
* a pattern can never match less than its author meant without saying so. One path under two sides
|
|
117
|
+
* is refused; a path nested in another's folder is not, since the most specific one decides.
|
|
118
|
+
*/
|
|
119
|
+
export function parseZoneConfig(value, source) {
|
|
120
|
+
const fail = (message) => {
|
|
121
|
+
throw new ZoneConfigError(source, message);
|
|
122
|
+
};
|
|
123
|
+
const record = recordOf(value) ?? fail("must be an object");
|
|
124
|
+
const config = {};
|
|
125
|
+
for (const key of Object.keys(record)) {
|
|
126
|
+
if (key !== "packages" && !FOLDER_SIDE_NAMES.has(key))
|
|
127
|
+
fail(`unknown key "${key}" (expected packages, backend, frontend or shared)`);
|
|
128
|
+
}
|
|
129
|
+
if (record.packages !== undefined) {
|
|
130
|
+
const packages = recordOf(record.packages) ?? fail('"packages" must be an object');
|
|
131
|
+
const parsed = {};
|
|
132
|
+
for (const [pattern, side] of Object.entries(packages)) {
|
|
133
|
+
if (pattern === "" || pattern.indexOf("*") !== pattern.lastIndexOf("*"))
|
|
134
|
+
fail(`package pattern "${pattern}" must be a name, or a name prefix ending in one "*"`);
|
|
135
|
+
if (pattern.includes("*") && !pattern.endsWith("*"))
|
|
136
|
+
fail(`package pattern "${pattern}" may use "*" only at its end`);
|
|
137
|
+
parsed[pattern] = isPackageEnvironment(side)
|
|
138
|
+
? side
|
|
139
|
+
: fail(`packages["${pattern}"] must be one of frontend, backend, shared, library`);
|
|
140
|
+
}
|
|
141
|
+
config.packages = parsed;
|
|
142
|
+
}
|
|
143
|
+
const owner = new Map();
|
|
144
|
+
for (const side of FOLDER_SIDES) {
|
|
145
|
+
const raw = record[side];
|
|
146
|
+
if (raw === undefined)
|
|
147
|
+
continue;
|
|
148
|
+
const entries = Array.isArray(raw)
|
|
149
|
+
? raw
|
|
150
|
+
: fail(`"${side}" must be an array of app-relative folders or files`);
|
|
151
|
+
const folders = [];
|
|
152
|
+
for (const entry of entries) {
|
|
153
|
+
const folder = (typeof entry === "string" ? entry : fail(`"${side}" must hold strings`))
|
|
154
|
+
.replaceAll("\\", "/")
|
|
155
|
+
.replace(/^\.\//, "")
|
|
156
|
+
.replace(/\/\*\*$/, "")
|
|
157
|
+
.replace(/\/+$/, "");
|
|
158
|
+
const top = folder.split("/")[0] ?? "";
|
|
159
|
+
if (folder === "" || folder.startsWith("/") || /^[a-z]:/i.test(folder))
|
|
160
|
+
fail(`"${side}" entry "${entry}" must be a folder or file relative to the app`);
|
|
161
|
+
if (folder.split("/").includes(".."))
|
|
162
|
+
fail(`"${side}" entry "${entry}" may not contain ".."`);
|
|
163
|
+
if (/[*?[\]{}!]/.test(folder))
|
|
164
|
+
fail(`"${side}" entry "${entry}" must be a plain path (a trailing "/**" is allowed)`);
|
|
165
|
+
if (RESERVED_FOLDERS.has(top) || top.startsWith(".nifra"))
|
|
166
|
+
fail(`"${side}" entry "${entry}" is inside ${top}/, which already has its own rules`);
|
|
167
|
+
const other = owner.get(folder);
|
|
168
|
+
if (other !== undefined && other !== side)
|
|
169
|
+
fail(`"${folder}" is listed as both ${other} and ${side}; a path has one side`);
|
|
170
|
+
owner.set(folder, side);
|
|
171
|
+
folders.push(folder);
|
|
172
|
+
}
|
|
173
|
+
config[side] = folders;
|
|
174
|
+
}
|
|
175
|
+
return config;
|
|
176
|
+
}
|
|
177
|
+
/** The `nifra.zones` of the nearest package.json at or above `appRoot`, validated. */
|
|
178
|
+
function appZoneConfig(appRoot) {
|
|
179
|
+
let dir = appRoot;
|
|
180
|
+
for (;;) {
|
|
181
|
+
const manifest = join(dir, "package.json");
|
|
182
|
+
if (existsSync(manifest)) {
|
|
183
|
+
let parsed;
|
|
184
|
+
try {
|
|
185
|
+
parsed = JSON.parse(readFileSync(manifest, "utf8"));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return {};
|
|
189
|
+
}
|
|
190
|
+
const zones = recordOf(recordOf(parsed)?.nifra)?.zones;
|
|
191
|
+
return zones === undefined ? {} : parseZoneConfig(zones, toPosix(manifest));
|
|
192
|
+
}
|
|
193
|
+
const parent = dirname(dir);
|
|
194
|
+
if (parent === dir)
|
|
195
|
+
return {};
|
|
196
|
+
dir = parent;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** The side `packages` gives `name`: the exact entry, else the longest matching prefix. */
|
|
200
|
+
function mappedSide(packages, name) {
|
|
201
|
+
if (packages === undefined || name === undefined)
|
|
202
|
+
return undefined;
|
|
203
|
+
const exact = packages[name];
|
|
204
|
+
if (exact !== undefined && Object.hasOwn(packages, name))
|
|
205
|
+
return exact;
|
|
206
|
+
let best;
|
|
207
|
+
for (const pattern of Object.keys(packages)) {
|
|
208
|
+
if (!pattern.endsWith("*") || !name.startsWith(pattern.slice(0, -1)))
|
|
209
|
+
continue;
|
|
210
|
+
if (best === undefined || pattern.length > best.length)
|
|
211
|
+
best = pattern;
|
|
212
|
+
}
|
|
213
|
+
return best === undefined ? undefined : packages[best];
|
|
214
|
+
}
|
|
215
|
+
/** How the `packages` setting would name `name`: its scope wildcard when it has a scope. */
|
|
216
|
+
const suggestedPattern = (name) => name.startsWith("@") && name.includes("/") ? `${name.slice(0, name.indexOf("/"))}/*` : name;
|
|
86
217
|
const toPosix = (path) => path.replaceAll("\\", "/");
|
|
87
218
|
// `generateServerManifest`'s first line. The manifest composes both halves of every route, so it
|
|
88
219
|
// imports frontend code from wherever the build wrote it - next to the server entry, often backend/.
|
|
@@ -131,6 +262,16 @@ function nodeModulesPackage(path) {
|
|
|
131
262
|
return undefined;
|
|
132
263
|
return first.startsWith("@") && parts[1] !== undefined ? `${first}/${parts[1]}` : first;
|
|
133
264
|
}
|
|
265
|
+
const DECLARATION_FILE = /\.d\.[cm]?ts$/;
|
|
266
|
+
/** The one side a file reached by several mapped entries takes: what each entry's importers may import. */
|
|
267
|
+
function ownersSide(owners) {
|
|
268
|
+
const [only] = owners;
|
|
269
|
+
if (owners.size === 1 && only !== undefined)
|
|
270
|
+
return only;
|
|
271
|
+
return owners.has("library") || (owners.has("frontend") && owners.has("backend"))
|
|
272
|
+
? "library"
|
|
273
|
+
: "shared";
|
|
274
|
+
}
|
|
134
275
|
/**
|
|
135
276
|
* Create a classifier for one app. Cheap to create; it caches per file and per package directory,
|
|
136
277
|
* so build plugins and dev servers keep one for the life of a build or a session.
|
|
@@ -139,6 +280,16 @@ export function createZoneClassifier(options) {
|
|
|
139
280
|
const appRoot = realFile(resolve(options.appRoot));
|
|
140
281
|
const routesDir = realFile(resolve(options.routesDir ?? join(options.appRoot, "routes")));
|
|
141
282
|
const generated = new Set((options.generatedFiles ?? []).map((file) => realFile(resolve(file))));
|
|
283
|
+
const zones = options.zones === undefined
|
|
284
|
+
? appZoneConfig(appRoot)
|
|
285
|
+
: parseZoneConfig(options.zones, "ZoneClassifierOptions");
|
|
286
|
+
const configuredFolders = [];
|
|
287
|
+
for (const side of FOLDER_SIDES)
|
|
288
|
+
for (const folder of zones[side] ?? [])
|
|
289
|
+
configuredFolders.push([folder, side]);
|
|
290
|
+
// Longest first, so the most specific entry covering a file decides its side.
|
|
291
|
+
configuredFolders.sort(([a], [b]) => b.length - a.length);
|
|
292
|
+
const configuredPath = (rel) => configuredFolders.find(([folder]) => rel === folder || rel.startsWith(`${folder}/`));
|
|
142
293
|
const cache = new Map();
|
|
143
294
|
const packages = new Map();
|
|
144
295
|
/** The nearest `package.json` at or above `dir`, cached by directory. */
|
|
@@ -157,7 +308,7 @@ export function createZoneClassifier(options) {
|
|
|
157
308
|
if (existsSync(manifest)) {
|
|
158
309
|
let parsed = {};
|
|
159
310
|
try {
|
|
160
|
-
parsed = JSON.parse(readFileSync(manifest, "utf8"));
|
|
311
|
+
parsed = recordOf(JSON.parse(readFileSync(manifest, "utf8"))) ?? {};
|
|
161
312
|
}
|
|
162
313
|
catch {
|
|
163
314
|
// An unreadable manifest declares nothing; the caller reports the missing declaration.
|
|
@@ -165,7 +316,8 @@ export function createZoneClassifier(options) {
|
|
|
165
316
|
const info = {
|
|
166
317
|
dir: current,
|
|
167
318
|
name: typeof parsed.name === "string" ? parsed.name : undefined,
|
|
168
|
-
|
|
319
|
+
declaration: parseEnvironment(recordOf(parsed.nifra)?.environment),
|
|
320
|
+
manifest: parsed,
|
|
169
321
|
};
|
|
170
322
|
for (const visited of seen)
|
|
171
323
|
packages.set(visited, info);
|
|
@@ -180,15 +332,80 @@ export function createZoneClassifier(options) {
|
|
|
180
332
|
current = parent;
|
|
181
333
|
}
|
|
182
334
|
};
|
|
335
|
+
const ownerships = new Map();
|
|
336
|
+
const ownershipOf = (info, entries) => {
|
|
337
|
+
let found = ownerships.get(info.dir);
|
|
338
|
+
if (found === undefined) {
|
|
339
|
+
found = entryOwnership(info.dir, info.manifest, entries);
|
|
340
|
+
ownerships.set(info.dir, found);
|
|
341
|
+
}
|
|
342
|
+
return found;
|
|
343
|
+
};
|
|
344
|
+
/** The package `file` is part of, when that package is not the app: installed, or a workspace sibling. */
|
|
345
|
+
const packageOf = (file) => {
|
|
346
|
+
const thirdParty = nodeModulesPackage(file);
|
|
347
|
+
if (thirdParty !== undefined) {
|
|
348
|
+
const at = file.lastIndexOf("/node_modules/") + "/node_modules/".length;
|
|
349
|
+
return packageFor(file.slice(0, at + thirdParty.length));
|
|
350
|
+
}
|
|
351
|
+
return isInside(file, appRoot) ? undefined : packageFor(toPosix(dirname(file)));
|
|
352
|
+
};
|
|
353
|
+
/** What a side declared for `file` (by its package, an entry of it, or the app) makes it. */
|
|
354
|
+
const declaredAs = (file, info, side, entry) => {
|
|
355
|
+
const thirdParty = nodeModulesPackage(file);
|
|
356
|
+
const named = entry === undefined || info?.name === undefined ? {} : { packageName: info.name };
|
|
357
|
+
const decided = entry === undefined ? {} : { entry };
|
|
358
|
+
if (thirdParty !== undefined) {
|
|
359
|
+
return {
|
|
360
|
+
zone: "library",
|
|
361
|
+
packageName: thirdParty,
|
|
362
|
+
modulePath: file.slice(file.lastIndexOf("/node_modules/") + "/node_modules/".length),
|
|
363
|
+
declared: side,
|
|
364
|
+
...decided,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
if (side !== "library")
|
|
368
|
+
return { zone: side, ...named, ...decided };
|
|
369
|
+
return {
|
|
370
|
+
zone: "library",
|
|
371
|
+
...(info?.name ? { packageName: info.name } : {}),
|
|
372
|
+
declared: "library",
|
|
373
|
+
...decided,
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
/** A file of a package that declares a side per entry, judged by the entries that reach it. */
|
|
377
|
+
const byOwners = (file, info, entries) => {
|
|
378
|
+
const ownership = ownershipOf(info, entries);
|
|
379
|
+
const owners = ownership.owners.get(file);
|
|
380
|
+
if (owners !== undefined)
|
|
381
|
+
return declaredAs(file, info, ownersSide(owners));
|
|
382
|
+
const shown = nodeModulesPackage(file) === undefined ? file : file.slice(info.dir.length + 1);
|
|
383
|
+
const left = ownership.unmapped.length === 0
|
|
384
|
+
? ""
|
|
385
|
+
: ` (the map leaves out ${ownership.unmapped.map((key) => `"${key}"`).join(", ")})`;
|
|
386
|
+
return {
|
|
387
|
+
zone: "error",
|
|
388
|
+
reason: `"${shown}" is in package "${info.name ?? info.dir}", whose "nifra.environment" gives each entry its own side, and no mapped entry reaches this file${left}. Import the package through a mapped entry`,
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
const invalidDeclaration = (info, problem) => {
|
|
392
|
+
const reason = `${info.dir}/package.json "nifra.environment": ${problem}`;
|
|
393
|
+
return info.name === undefined
|
|
394
|
+
? { zone: "error", reason }
|
|
395
|
+
: { zone: "error", reason, package: info.name };
|
|
396
|
+
};
|
|
183
397
|
const classifyUncached = (file) => {
|
|
184
398
|
if (generated.has(file))
|
|
185
399
|
return { zone: "generated" };
|
|
186
400
|
const thirdParty = nodeModulesPackage(file);
|
|
187
401
|
if (thirdParty !== undefined) {
|
|
188
|
-
const info =
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
402
|
+
const info = packageOf(file);
|
|
403
|
+
const declaration = info?.declaration ?? { kind: "none" };
|
|
404
|
+
if (info !== undefined && declaration.kind === "invalid")
|
|
405
|
+
return invalidDeclaration(info, declaration.problem);
|
|
406
|
+
if (info !== undefined && declaration.kind === "entries")
|
|
407
|
+
return byOwners(file, info, declaration.entries);
|
|
408
|
+
const declared = declaration.kind === "package" ? declaration.side : mappedSide(zones.packages, thirdParty);
|
|
192
409
|
return {
|
|
193
410
|
zone: "library",
|
|
194
411
|
packageName: thirdParty,
|
|
@@ -201,6 +418,10 @@ export function createZoneClassifier(options) {
|
|
|
201
418
|
if (SERVER_MANIFEST_FILE.test(base) && isGeneratedServerManifest(file)) {
|
|
202
419
|
return { zone: "generated" };
|
|
203
420
|
}
|
|
421
|
+
if (SERVER_COMPONENT_FILE.test(base))
|
|
422
|
+
return { zone: "component" };
|
|
423
|
+
if (/\.island\.[cm]?[jt]sx?$/.test(base))
|
|
424
|
+
return { zone: "frontend" };
|
|
204
425
|
if (LEGACY_SERVER_SUFFIX.test(base)) {
|
|
205
426
|
return {
|
|
206
427
|
zone: "error",
|
|
@@ -231,15 +452,21 @@ export function createZoneClassifier(options) {
|
|
|
231
452
|
return { zone: "shared" };
|
|
232
453
|
return { zone: "route-frontend" };
|
|
233
454
|
}
|
|
234
|
-
const
|
|
455
|
+
const configured = ZONE_FOLDERS[top] === undefined ? configuredPath(rel) : undefined;
|
|
456
|
+
const folder = ZONE_FOLDERS[top] ?? configured?.[1];
|
|
235
457
|
if (folder !== undefined) {
|
|
236
458
|
if (suffix === undefined || suffix === folder)
|
|
237
459
|
return { zone: folder };
|
|
238
460
|
if (suffix === "fn" && folder === "backend")
|
|
239
461
|
return { zone: "fn" };
|
|
462
|
+
const where = configured === undefined
|
|
463
|
+
? `sits in ${top}/`
|
|
464
|
+
: configured[0] === rel
|
|
465
|
+
? `is listed as ${folder} in "nifra.zones"`
|
|
466
|
+
: `sits in ${configured[0]}/, which "nifra.zones" lists as ${folder},`;
|
|
240
467
|
return {
|
|
241
468
|
zone: "error",
|
|
242
|
-
reason: `"${rel}"
|
|
469
|
+
reason: `"${rel}" ${where} but its ".${suffix}" suffix says otherwise. A file belongs to one side: move it, or drop the suffix`,
|
|
243
470
|
};
|
|
244
471
|
}
|
|
245
472
|
if (suffix !== undefined)
|
|
@@ -248,33 +475,80 @@ export function createZoneClassifier(options) {
|
|
|
248
475
|
}
|
|
249
476
|
// First-party code outside the app: a workspace package, or a relative import out of the app.
|
|
250
477
|
const info = packageFor(toPosix(dirname(file)));
|
|
251
|
-
const
|
|
252
|
-
if (
|
|
253
|
-
return
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
478
|
+
const declaration = info?.declaration ?? { kind: "none" };
|
|
479
|
+
if (info !== undefined && declaration.kind === "invalid")
|
|
480
|
+
return invalidDeclaration(info, declaration.problem);
|
|
481
|
+
if (info !== undefined && declaration.kind === "entries")
|
|
482
|
+
return byOwners(file, info, declaration.entries);
|
|
483
|
+
const environment = declaration.kind === "package" ? declaration.side : mappedSide(zones.packages, info?.name);
|
|
484
|
+
if (environment !== undefined)
|
|
485
|
+
return declaredAs(file, info, environment);
|
|
486
|
+
const declare = `"nifra": { "environment": "frontend" | "backend" | "shared" | "library" }`;
|
|
487
|
+
if (info?.name === undefined) {
|
|
488
|
+
return {
|
|
489
|
+
zone: "error",
|
|
490
|
+
reason: `"${file}" is first-party code outside the app and declares no side. Add ${declare} to ${info === undefined ? "a package.json above it" : `${info.dir}/package.json`}`,
|
|
491
|
+
};
|
|
260
492
|
}
|
|
261
|
-
|
|
493
|
+
// Named per package, not per file, so a build that reaches 50 files of it reports one fact once.
|
|
262
494
|
return {
|
|
263
495
|
zone: "error",
|
|
264
|
-
|
|
496
|
+
package: info.name,
|
|
497
|
+
reason: `package "${info.name}" is first-party code outside the app and declares no side. Add ${declare} to ${info.dir}/package.json, or give it a side from the app's package.json: "nifra": { "zones": { "packages": { "${suggestedPattern(info.name)}": "backend" } } } (or "library" if the browser may load it)`,
|
|
265
498
|
};
|
|
266
499
|
};
|
|
500
|
+
const byPath = (file) => {
|
|
501
|
+
const cached = cache.get(file);
|
|
502
|
+
if (cached !== undefined)
|
|
503
|
+
return cached;
|
|
504
|
+
const result = classifyUncached(file);
|
|
505
|
+
cache.set(file, result);
|
|
506
|
+
return result;
|
|
507
|
+
};
|
|
508
|
+
// Keyed by file and subpath: two entries may share one file and declare different sides.
|
|
509
|
+
const imports = new Map();
|
|
510
|
+
const byImport = (file, specifier) => {
|
|
511
|
+
const name = specifierPackage(specifier);
|
|
512
|
+
const info = name === undefined ? undefined : packageOf(file);
|
|
513
|
+
if (name === undefined || info?.name !== name || info.declaration.kind !== "entries")
|
|
514
|
+
return byPath(file);
|
|
515
|
+
const subpath = entrySubpath(specifier, name);
|
|
516
|
+
const cacheKey = `${file}\0${subpath}`;
|
|
517
|
+
const cached = imports.get(cacheKey);
|
|
518
|
+
if (cached !== undefined)
|
|
519
|
+
return cached;
|
|
520
|
+
const { entries } = info.declaration;
|
|
521
|
+
const key = entryKey(entries, subpath);
|
|
522
|
+
const side = key === undefined ? undefined : entries[key];
|
|
523
|
+
let result;
|
|
524
|
+
if (side === undefined) {
|
|
525
|
+
const mapped = Object.keys(entries)
|
|
526
|
+
.map((entry) => `"${entry}"`)
|
|
527
|
+
.join(", ");
|
|
528
|
+
result = {
|
|
529
|
+
zone: "error",
|
|
530
|
+
reason: `"${specifier}" names the "${subpath}" entry of package "${name}", whose "nifra.environment" map gives it no side (it maps ${mapped}). Map the entry, or import one that is mapped`,
|
|
531
|
+
entry: subpath,
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
// The resolver's pick must belong to the named entry; a file only other entries reach (an alias
|
|
536
|
+
// pointed at it) is judged by its path. A declaration file is types only and erased.
|
|
537
|
+
const owners = ownershipOf(info, entries).owners.get(file);
|
|
538
|
+
result =
|
|
539
|
+
owners !== undefined && !owners.has(side) && !DECLARATION_FILE.test(file)
|
|
540
|
+
? byPath(file)
|
|
541
|
+
: declaredAs(file, info, side, subpath);
|
|
542
|
+
}
|
|
543
|
+
imports.set(cacheKey, result);
|
|
544
|
+
return result;
|
|
545
|
+
};
|
|
267
546
|
return {
|
|
268
547
|
appRoot,
|
|
269
|
-
classify(input) {
|
|
548
|
+
classify(input, specifier) {
|
|
270
549
|
const absolute = isAbsolute(input) ? input : resolve(appRoot, input);
|
|
271
550
|
const file = realFile(absolute);
|
|
272
|
-
|
|
273
|
-
if (cached !== undefined)
|
|
274
|
-
return cached;
|
|
275
|
-
const result = classifyUncached(file);
|
|
276
|
-
cache.set(file, result);
|
|
277
|
-
return result;
|
|
551
|
+
return specifier === undefined ? byPath(file) : byImport(file, specifier);
|
|
278
552
|
},
|
|
279
553
|
};
|
|
280
554
|
}
|
|
@@ -302,6 +576,23 @@ export function specifierPackage(specifier) {
|
|
|
302
576
|
const parts = specifier.split("/");
|
|
303
577
|
return specifier.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
|
|
304
578
|
}
|
|
579
|
+
/** The export subpath (`"."`, `"./react"`) a bare specifier of package `name` names. */
|
|
580
|
+
const entrySubpath = (specifier, name) => `.${withoutQuery(specifier.slice(name.length))}`;
|
|
581
|
+
/**
|
|
582
|
+
* The side a package's `"nifra": { "environment": ... }` value gives the bare import `specifier` of it:
|
|
583
|
+
* the package-wide string, or the side of the entry it names - the map's exact subpath, else its most
|
|
584
|
+
* specific `*` pattern. `undefined` when it gives none, as a map that leaves the entry out does.
|
|
585
|
+
*/
|
|
586
|
+
export function declaredSide(environment, specifier) {
|
|
587
|
+
const declaration = parseEnvironment(environment);
|
|
588
|
+
if (declaration.kind === "package")
|
|
589
|
+
return declaration.side;
|
|
590
|
+
const name = specifierPackage(specifier);
|
|
591
|
+
if (declaration.kind !== "entries" || name === undefined)
|
|
592
|
+
return undefined;
|
|
593
|
+
const key = entryKey(declaration.entries, entrySubpath(specifier, name));
|
|
594
|
+
return key === undefined ? undefined : declaration.entries[key];
|
|
595
|
+
}
|
|
305
596
|
/**
|
|
306
597
|
* Why a classified file may not ship to a browser, or `undefined` when it may. A `drizzle-orm` driver
|
|
307
598
|
* entry is recognized by the import as written (`specifier`) or by the file's path in the package.
|
|
@@ -310,6 +601,8 @@ export function browserDenial(classification, specifier) {
|
|
|
310
601
|
if (classification.zone === "error")
|
|
311
602
|
return classification.reason;
|
|
312
603
|
if (!BROWSER_ZONES.has(classification.zone)) {
|
|
604
|
+
if (classification.entry !== undefined)
|
|
605
|
+
return `package "${classification.packageName}" declares its "${classification.entry}" entry ${classification.zone}-only`;
|
|
313
606
|
return classification.zone === "route-backend"
|
|
314
607
|
? "it is a route's backend half, which runs on the server only"
|
|
315
608
|
: "it is backend code";
|
|
@@ -317,8 +610,11 @@ export function browserDenial(classification, specifier) {
|
|
|
317
610
|
if (classification.zone !== "library")
|
|
318
611
|
return undefined;
|
|
319
612
|
const name = classification.packageName;
|
|
320
|
-
if (classification.declared === "backend")
|
|
321
|
-
return
|
|
613
|
+
if (classification.declared === "backend") {
|
|
614
|
+
return classification.entry === undefined
|
|
615
|
+
? `package "${name}" declares itself backend-only`
|
|
616
|
+
: `package "${name}" declares its "${classification.entry}" entry backend-only`;
|
|
617
|
+
}
|
|
322
618
|
if (name !== undefined && SERVER_PACKAGES.includes(name)) {
|
|
323
619
|
return `package "${name}" is server code (a driver, server SDK or credential helper)`;
|
|
324
620
|
}
|
|
@@ -330,8 +626,15 @@ export function browserDenial(classification, specifier) {
|
|
|
330
626
|
return `"${driver.replace(/\/$/, "")}" is a database driver entry`;
|
|
331
627
|
return undefined;
|
|
332
628
|
}
|
|
629
|
+
/** Whether a bare specifier names one of {@link SERVER_PACKAGES} or a database driver entry. */
|
|
630
|
+
export function isServerPackageSpecifier(specifier) {
|
|
631
|
+
const name = specifierPackage(specifier);
|
|
632
|
+
return (name !== undefined && SERVER_PACKAGES.includes(name)) || SERVER_SUBPATHS.test(specifier);
|
|
633
|
+
}
|
|
333
634
|
/** Whether a module in `from` may import (with a value import) a module in `to`. */
|
|
334
635
|
export function importAllowed(from, to) {
|
|
636
|
+
if (from === "component")
|
|
637
|
+
return true;
|
|
335
638
|
if (from === "generated" || from === "library")
|
|
336
639
|
return true;
|
|
337
640
|
if (to === "generated" || to === "library")
|
package/dist/zones.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zones.js","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AA8BhE,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;CACV,CAAC,CAAA;AAEF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,aAAa,GAAsB,IAAI,GAAG,CAAC;IACtD,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,WAAW;IACX,SAAS;CACV,CAAC,CAAA;AAEF,MAAM,YAAY,GAAsB,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;AACnF,MAAM,cAAc,GAAsB,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAA;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,gBAAgB;IAChB,0BAA0B;IAC1B,uBAAuB;IACvB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,IAAI;IACJ,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,WAAW;IACX,aAAa;IACb,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;CACV,CAAA;AAED,iGAAiG;AACjG,MAAM,eAAe,GACnB,wKAAwK,CAAA;AAE1K,wEAAwE;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAA;AAE9D,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAChD,wGAAwG;AACxG,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AAC9D,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,qCAAqC,MAAM,GAAG,CAAC,CAAA;AAC9E,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,eAAe,MAAM,GAAG,CAAC,CAAA;AAEjE,MAAM,YAAY,GAAmC;IACnD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,UAAU;CACnB,CAAA;AAiBD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAEpE,iGAAiG;AACjG,qGAAqG;AACrG,MAAM,yBAAyB,GAAG,qDAAqD,CAAA;AACvF,MAAM,oBAAoB,GAAG,+BAA+B,CAAA;AAE5D,SAAS,yBAAyB,CAAC,IAAY;IAC7C,IAAI,EAAsB,CAAA;IAC1B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,yBAAyB,CAAA;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,gGAAgG;QAChG,mGAAmG;QACnG,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;IACrE,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAc,EAAW,EAAE,CAC1D,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAA;AAEpF,+EAA+E;AAC/E,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAC7C,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IACzD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AACzF,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACzF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAChG,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAA;IAEtD,yEAAyE;IACzE,MAAM,UAAU,GAAG,CAAC,GAAW,EAA2B,EAAE;QAC1D,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,IAAI,OAAO,GAAG,GAAG,CAAA;QACjB,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,MAAM,OAAO,IAAI,IAAI;oBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACzD,OAAO,MAAM,IAAI,SAAS,CAAA;YAC5B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAI,MAAM,GAA0D,EAAE,CAAA;gBACtE,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAkB,CAAA;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACP,uFAAuF;gBACzF,CAAC;gBACD,MAAM,IAAI,GAAgB;oBACxB,GAAG,EAAE,OAAO;oBACZ,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBAC/D,WAAW,EACT,OAAO,MAAM,CAAC,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;iBACvF,CAAA;gBACD,KAAK,MAAM,OAAO,IAAI,IAAI;oBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACvD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;YACxC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,KAAK,MAAM,OAAO,IAAI,IAAI;oBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACvD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,GAAG,MAAM,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAkB,EAAE;QACxD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;QACrD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/C,MAAM,QAAQ,GACZ,IAAI,EAAE,WAAW,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC3E,CAAC,CAAE,IAAI,CAAC,WAAkC;gBAC1C,CAAC,CAAC,SAAS,CAAA;YACf,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBACpF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC,CAAA;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAClD,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;YAC9B,CAAC;YACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,wJAAwJ;iBAC9L,CAAA;YACH,CAAC;YACD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACrC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACnC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;YAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAK5B,CAAA;YACb,4FAA4F;YAC5F,0CAA0C;YAC1C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,IAAI,GAAG,8IAA8I;iBAC9J,CAAA;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC9B,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;gBACnE,IAAI,MAAM,KAAK,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1C,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;gBAC1D,IAAI,MAAM,KAAK,QAAQ;oBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;gBAClD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;YACnC,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;oBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;gBACtE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAClE,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,IAAI,GAAG,aAAa,GAAG,eAAe,MAAM,kFAAkF;iBACvI,CAAA;YACH,CAAC;YACD,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;YAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QACtD,CAAC;QACD,8FAA8F;QAC9F,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/C,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAA;QACrC,IAAI,WAAW,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvE,OAAO,WAAW,KAAK,SAAS;gBAC9B,CAAC,CAAC;oBACE,IAAI,EAAE,SAAS;oBACf,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,QAAQ,EAAE,SAAS;iBACpB;gBACH,CAAC,CAAC,EAAE,IAAI,EAAE,WAAmB,EAAE,CAAA;QACnC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;QACtD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,IAAI,0CAA0C,KAAK,4GAA4G,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,eAAe,EAAE;SAClP,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,OAAO;QACP,QAAQ,CAAC,KAAa;YACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAA;YACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACrC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACvB,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,kBAAkB,GAAqC;IAC3D,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,sBAAsB;CACvC,CAAA;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,GAAG,wBAAwB,KAAK,qCAAqC,CAAA;IAClF,CAAC;IACD,OAAO,IAAI,GAAG,+IAA+I,CAAA;AAC/J,CAAC;AAED;oDACoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAChE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACnF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,cAA8B,EAC9B,SAAkB;IAElB,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC,MAAM,CAAA;IACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,cAAc,CAAC,IAAI,KAAK,eAAe;YAC5C,CAAC,CAAC,6DAA6D;YAC/D,CAAC,CAAC,oBAAoB,CAAA;IAC1B,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACvD,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAA;IACvC,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,YAAY,IAAI,gCAAgC,CAAA;IAClG,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,OAAO,YAAY,IAAI,8DAA8D,CAAA;IACvF,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,SAAS,8BAA8B,CAAA;IACpD,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAA;IAC5F,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,EAAQ;IAChD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,CAAA;IAC7F,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1D,SAAS;IACT,OAAO,EAAE,KAAK,QAAQ,CAAA;AACxB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAU,EAAE,MAAc,EAAE,EAAQ;IACtF,MAAM,IAAI,GAAG,CAAC,IAAU,EAAU,EAAE,CAClC,IAAI,KAAK,gBAAgB;QACvB,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,IAAI,KAAK,eAAe;YACxB,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,IAAI,KAAK,IAAI;gBACb,CAAC,CAAC,0BAA0B;gBAC5B,CAAC,CAAC,GAAG,IAAI,OAAO,CAAA;IACxB,MAAM,IAAI,GACR,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC,4FAA4F;QAC9F,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,6EAA6E;YAC/E,CAAC,CAAC,8GAA8G,CAAA;IACtH,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,mDAAmD,CAAA;AAChI,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EACL,eAAe,EAMf,cAAc,GACf,MAAM,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"zones.js","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"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"}
|