@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/plugins/svg.js
CHANGED
|
@@ -77,10 +77,121 @@ export function stripSvgPreamble(xml) {
|
|
|
77
77
|
parts.push(xml.slice(keepFrom));
|
|
78
78
|
return parts.join("").trim();
|
|
79
79
|
}
|
|
80
|
+
const svgMarkupError = (detail) => new Error(`[nifra/web] an SVG component must be plain SVG markup: ${detail}`);
|
|
81
|
+
const TAG_NAME = /[A-Za-z_:][\w:.-]*/y;
|
|
82
|
+
const SPACE = /\s*/y;
|
|
83
|
+
/**
|
|
84
|
+
* An SVG file's markup rewritten for a framework template: one `<svg>` root, its text and attribute
|
|
85
|
+
* values put through `rules` so none of it reads as template syntax. Markup a well-formed SVG cannot
|
|
86
|
+
* hold is refused rather than passed on - a brace, a bare name or an unquoted value in a tag, content
|
|
87
|
+
* after the root - since each is a way for the file to reach the template as code.
|
|
88
|
+
*/
|
|
89
|
+
export function svgTemplateMarkup(xml, rules) {
|
|
90
|
+
const svg = stripSvgPreamble(xml);
|
|
91
|
+
if (!/^<svg[\s/>]/.test(svg))
|
|
92
|
+
throw svgMarkupError("it does not start with an <svg> element");
|
|
93
|
+
let out = "";
|
|
94
|
+
let depth = 0;
|
|
95
|
+
let i = 0;
|
|
96
|
+
while (i < svg.length) {
|
|
97
|
+
if (svg.startsWith("<![CDATA[", i)) {
|
|
98
|
+
const close = svg.indexOf("]]>", i + 9);
|
|
99
|
+
if (close === -1)
|
|
100
|
+
throw svgMarkupError("a CDATA section is not closed");
|
|
101
|
+
out += rules.text(svg.slice(i + 9, close), true);
|
|
102
|
+
i = close + 3;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (svg[i] !== "<") {
|
|
106
|
+
const next = svg.indexOf("<", i);
|
|
107
|
+
const end = next === -1 ? svg.length : next;
|
|
108
|
+
out += rules.text(svg.slice(i, end), false);
|
|
109
|
+
i = end;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const tag = readSvgTag(svg, i, rules);
|
|
113
|
+
out += tag.markup;
|
|
114
|
+
i = tag.end;
|
|
115
|
+
if (tag.closing)
|
|
116
|
+
depth--;
|
|
117
|
+
else if (!tag.selfClosing) {
|
|
118
|
+
depth++;
|
|
119
|
+
if (rules.rawText?.has(tag.name) === true) {
|
|
120
|
+
// Wherever the template's own reading ends this element, in any case, raw text ends here too.
|
|
121
|
+
const close = svg.toLowerCase().indexOf(`</${tag.name.toLowerCase()}`, i);
|
|
122
|
+
const end = close === -1 ? svg.length : close;
|
|
123
|
+
out += svg.slice(i, end);
|
|
124
|
+
i = end;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (depth === 0) {
|
|
128
|
+
if (svg.slice(i).trim() !== "")
|
|
129
|
+
throw svgMarkupError("there is content after the root </svg>");
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
throw svgMarkupError("the root <svg> element is not closed");
|
|
134
|
+
}
|
|
135
|
+
/** One tag of {@link svgTemplateMarkup}'s input, rebuilt with each attribute value through `rules`. */
|
|
136
|
+
function readSvgTag(svg, start, rules) {
|
|
137
|
+
const closing = svg[start + 1] === "/";
|
|
138
|
+
let i = start + (closing ? 2 : 1);
|
|
139
|
+
TAG_NAME.lastIndex = i;
|
|
140
|
+
const name = TAG_NAME.exec(svg)?.[0];
|
|
141
|
+
if (name === undefined)
|
|
142
|
+
throw svgMarkupError(`a "<" at offset ${start} opens no tag`);
|
|
143
|
+
const refused = rules.refuse?.(name, "element");
|
|
144
|
+
if (refused !== undefined)
|
|
145
|
+
throw svgMarkupError(refused);
|
|
146
|
+
i += name.length;
|
|
147
|
+
let markup = `<${closing ? "/" : ""}${name}`;
|
|
148
|
+
for (;;) {
|
|
149
|
+
SPACE.lastIndex = i;
|
|
150
|
+
const space = SPACE.exec(svg)?.[0] ?? "";
|
|
151
|
+
i += space.length;
|
|
152
|
+
if (svg[i] === ">")
|
|
153
|
+
return { markup: `${markup}>`, end: i + 1, name, closing, selfClosing: false };
|
|
154
|
+
if (!closing && svg.startsWith("/>", i)) {
|
|
155
|
+
return { markup: `${markup}/>`, end: i + 2, name, closing, selfClosing: true };
|
|
156
|
+
}
|
|
157
|
+
if (i >= svg.length)
|
|
158
|
+
throw svgMarkupError(`the tag <${name}> is not closed`);
|
|
159
|
+
TAG_NAME.lastIndex = i;
|
|
160
|
+
const attribute = closing || space === "" ? undefined : TAG_NAME.exec(svg)?.[0];
|
|
161
|
+
if (attribute === undefined) {
|
|
162
|
+
throw svgMarkupError(`<${name}> holds ${JSON.stringify(svg[i])} where an attribute belongs`);
|
|
163
|
+
}
|
|
164
|
+
const refusedAttribute = rules.refuse?.(attribute, "attribute");
|
|
165
|
+
if (refusedAttribute !== undefined)
|
|
166
|
+
throw svgMarkupError(refusedAttribute);
|
|
167
|
+
i += attribute.length;
|
|
168
|
+
SPACE.lastIndex = i;
|
|
169
|
+
i += SPACE.exec(svg)?.[0].length ?? 0;
|
|
170
|
+
if (svg[i] !== "=")
|
|
171
|
+
throw svgMarkupError(`the attribute ${attribute} on <${name}> has no value`);
|
|
172
|
+
SPACE.lastIndex = i + 1;
|
|
173
|
+
i += 1 + (SPACE.exec(svg)?.[0].length ?? 0);
|
|
174
|
+
const quote = svg[i];
|
|
175
|
+
const close = quote === '"' || quote === "'" ? svg.indexOf(quote, i + 1) : -1;
|
|
176
|
+
if (close === -1) {
|
|
177
|
+
throw svgMarkupError(`the value of ${attribute} on <${name}> is not a quoted string`);
|
|
178
|
+
}
|
|
179
|
+
const value = svg.slice(i + 1, close);
|
|
180
|
+
markup += ` ${attribute}=${quote}${rules.attributeValue?.(value) ?? value}${quote}`;
|
|
181
|
+
i = close + 1;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/** Text as JSX text: a brace, `>` or `=` as a character reference, so none of it is an expression. */
|
|
185
|
+
const jsxText = (text, cdata) => (cdata ? text.replaceAll("&", "&").replaceAll("<", "<") : text).replace(/[{}>=]/g, (char) => `&#${char.charCodeAt(0)};`);
|
|
186
|
+
/** JSX reads `<a.b>` and `<Name>` as a value in scope, called as a component - never an SVG element. */
|
|
187
|
+
const jsxRefuse = (name, kind) => kind === "element" && (name.includes(".") || /^[A-Z]/.test(name))
|
|
188
|
+
? `JSX reads the element <${name}> as a value in scope, not an SVG element`
|
|
189
|
+
: undefined;
|
|
80
190
|
/** Convert an SVG XML string into a JSX-safe `<svg>…</svg>` element with `{...props}` spread on the root. */
|
|
81
191
|
export function svgToJsx(xml, options = {}) {
|
|
82
192
|
const classProp = options.classProp ?? "className";
|
|
83
|
-
|
|
193
|
+
// Text is escaped first, `=` included, so the attribute rewrites below match inside tags only.
|
|
194
|
+
let out = svgTemplateMarkup(xml, { text: jsxText, refuse: jsxRefuse });
|
|
84
195
|
// Namespaced attributes → camelCase (xlink:href → xlinkHref, xmlns:xlink → xmlnsXlink).
|
|
85
196
|
out = out.replace(/\b([a-z]+):([a-z]+)=/gi, (_m, ns, name) => {
|
|
86
197
|
return `${ns.toLowerCase()}${name.charAt(0).toUpperCase()}${name.slice(1)}=`;
|
package/dist/plugins/svg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/plugins/svg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/plugins/svg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SecretExemption } from "../internal/secret-scan.js";
|
|
1
2
|
import { type RollupBundleLike } from "../module-graph.js";
|
|
2
3
|
/**
|
|
3
4
|
* The Rollup plugin-context slice this uses: `getModuleInfo` for a module's resolved imports, and `error`
|
|
@@ -7,7 +8,10 @@ interface RollupPluginContext {
|
|
|
7
8
|
getModuleInfo(id: string): {
|
|
8
9
|
readonly importedIds?: readonly string[];
|
|
9
10
|
readonly dynamicallyImportedIds?: readonly string[];
|
|
11
|
+
readonly isExternal?: boolean;
|
|
10
12
|
} | null;
|
|
13
|
+
/** Every module the build loaded, including ones tree-shaking left out of every chunk. */
|
|
14
|
+
getModuleIds?(): Iterable<string>;
|
|
11
15
|
/**
|
|
12
16
|
* Takes an `Error`, never a string.
|
|
13
17
|
*
|
|
@@ -19,6 +23,33 @@ interface RollupPluginContext {
|
|
|
19
23
|
*/
|
|
20
24
|
error(error: Error): never;
|
|
21
25
|
}
|
|
26
|
+
export interface LeakGuardOptions {
|
|
27
|
+
/** The app root: the directory holding `routes/`, `frontend/`, `backend/` and `shared/` (default
|
|
28
|
+
* the working directory). */
|
|
29
|
+
readonly appRoot?: string;
|
|
30
|
+
/** The routes directory (default `<appRoot>/routes`). */
|
|
31
|
+
readonly routesDir?: string;
|
|
32
|
+
/** Vite's `root`, which emitted asset names are relative to (default `appRoot`). */
|
|
33
|
+
readonly root?: string;
|
|
34
|
+
/** Where the bundle is written; source map paths resolve against it (default `<root>/dist`). */
|
|
35
|
+
readonly outDir?: string;
|
|
36
|
+
/** The build's own generated entry modules. */
|
|
37
|
+
readonly generatedFiles?: readonly string[];
|
|
38
|
+
/** Output files another guarded build already verified (a worker sub-build's chunks). */
|
|
39
|
+
readonly verified?: Set<string>;
|
|
40
|
+
/** The public-env prefix browser code may read (default `"PUBLIC_"`; `""` exposes nothing). */
|
|
41
|
+
readonly publicEnvPrefix?: string;
|
|
42
|
+
/** The secret scan of what the bundle publishes. */
|
|
43
|
+
readonly secrets?: LeakGuardSecretOptions;
|
|
44
|
+
}
|
|
45
|
+
export interface LeakGuardSecretOptions {
|
|
46
|
+
/** The build environment whose non-public values must not ship (default `process.env`). */
|
|
47
|
+
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
48
|
+
/** Reviewed false positives; each names its rule, its file (or env variable) and a reason. */
|
|
49
|
+
readonly exemptions?: readonly SecretExemption[];
|
|
50
|
+
/** A `public/` directory whose files ship beside the bundle, scanned with it. */
|
|
51
|
+
readonly publicDir?: string;
|
|
52
|
+
}
|
|
22
53
|
/** The minimal Rollup plugin shape this returns - `generateBundle` bound to the plugin context. */
|
|
23
54
|
export interface LeakGuardPlugin {
|
|
24
55
|
readonly name: string;
|
|
@@ -37,9 +68,82 @@ export interface LeakGuardPlugin {
|
|
|
37
68
|
generateBundle(this: RollupPluginContext, options: unknown, bundle: RollupBundleLike): void;
|
|
38
69
|
}
|
|
39
70
|
/**
|
|
40
|
-
* A Vite/Rollup plugin that fails the build when
|
|
41
|
-
* bundle
|
|
71
|
+
* A Vite/Rollup plugin that fails the build when anything the zones keep on the server reaches the client
|
|
72
|
+
* bundle, with the same checks and messages as nifra's Bun build: every module classified, the graph
|
|
73
|
+
* evidence complete, every emitted file traced back to it, and the `node:` and `backend-only` guards.
|
|
74
|
+
* It runs in `generateBundle`, before Rollup writes a byte.
|
|
75
|
+
*/
|
|
76
|
+
export declare function viteLeakGuard(options?: LeakGuardOptions): LeakGuardPlugin;
|
|
77
|
+
/** What {@link viteServerZoneGuard} needs: the zones of the app, nothing about the output. */
|
|
78
|
+
export type ServerZoneGuardOptions = Pick<LeakGuardOptions, "appRoot" | "routesDir" | "generatedFiles" | "publicEnvPrefix">;
|
|
79
|
+
/**
|
|
80
|
+
* The server build's half of the zone rules, with the same checks and message as nifra's Bun server
|
|
81
|
+
* build: every first-party module zoned, backend code never importing frontend code, shared code
|
|
82
|
+
* importing only shared code. It records the refusal in `leak` for the same reason the client guard
|
|
83
|
+
* does.
|
|
84
|
+
*/
|
|
85
|
+
export declare function viteServerZoneGuard(options?: ServerZoneGuardOptions): LeakGuardPlugin;
|
|
86
|
+
/** The resolve-hook context slice {@link viteBareBuiltinExternal} uses. */
|
|
87
|
+
interface ResolveContext {
|
|
88
|
+
resolve(source: string, importer: string | undefined, options: {
|
|
89
|
+
readonly skipSelf: boolean;
|
|
90
|
+
}): Promise<{
|
|
91
|
+
readonly id: string;
|
|
92
|
+
} | null>;
|
|
93
|
+
}
|
|
94
|
+
/** The minimal Vite plugin shape {@link viteBareBuiltinExternal} returns. */
|
|
95
|
+
export interface BareBuiltinPlugin {
|
|
96
|
+
readonly name: string;
|
|
97
|
+
readonly enforce: "pre";
|
|
98
|
+
resolveId(this: ResolveContext, source: string, importer: string | undefined): Promise<{
|
|
99
|
+
readonly id: string;
|
|
100
|
+
readonly external?: boolean;
|
|
101
|
+
} | null>;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Keep a bare Node built-in (`fs/promises`, `path`) visible to {@link viteLeakGuard}. Vite resolves a
|
|
105
|
+
* bare built-in that is not an installed package to one shared `__vite-browser-external` stub: the
|
|
106
|
+
* import builds, does nothing in the browser, and no longer names the module. This plugin externalizes
|
|
107
|
+
* it as `node:<name>` instead, so the guard fails the build naming it, as the Bun build does. A package
|
|
108
|
+
* of the same name the app installed (`events`, `buffer`) still resolves to that package.
|
|
109
|
+
*/
|
|
110
|
+
export declare function viteBareBuiltinExternal(): BareBuiltinPlugin;
|
|
111
|
+
/** The plugin-context slice {@link viteAssetUrlGuard} uses. */
|
|
112
|
+
interface TransformContext extends ResolveContext {
|
|
113
|
+
parse(code: string): unknown;
|
|
114
|
+
error(error: Error): never;
|
|
115
|
+
}
|
|
116
|
+
type InlineLimit = number | ((file: string, content: Uint8Array) => boolean | undefined);
|
|
117
|
+
/** The minimal Vite plugin shape {@link viteAssetUrlGuard} returns. */
|
|
118
|
+
export interface AssetUrlGuardPlugin {
|
|
119
|
+
readonly name: string;
|
|
120
|
+
readonly apply: "build";
|
|
121
|
+
/** The refusal that failed the build, recorded for the reason {@link LeakGuardPlugin.leak} gives. */
|
|
122
|
+
leak?: string;
|
|
123
|
+
config(config: {
|
|
124
|
+
readonly build?: {
|
|
125
|
+
readonly assetsInlineLimit?: InlineLimit;
|
|
126
|
+
};
|
|
127
|
+
}): {
|
|
128
|
+
readonly build: {
|
|
129
|
+
readonly assetsInlineLimit: InlineLimit;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
transform(this: TransformContext, code: string, id: string, options?: {
|
|
133
|
+
readonly ssr?: boolean;
|
|
134
|
+
}): Promise<null>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Keep server files out of a Vite client build's assets. A `new URL("./x", import.meta.url)` makes
|
|
138
|
+
* Vite copy the file it names into the output, or inline it into the chunk as a `data:` URL when it is
|
|
139
|
+
* small - no module and no import edge, so {@link viteLeakGuard}'s graph never sees it. This refuses a
|
|
140
|
+
* reference whose file the zones keep off the browser (backend code, a route's backend half, a server
|
|
141
|
+
* function's source, a file in no zone), and stops Vite inlining such a file anywhere else (a
|
|
142
|
+
* stylesheet's `url()`), so it is emitted where the leak guard's output accounting names it.
|
|
143
|
+
*
|
|
144
|
+
* Add it to the top-level `plugins`, after any framework plugin: it reads each module once that
|
|
145
|
+
* module is JavaScript, before Vite resolves the references.
|
|
42
146
|
*/
|
|
43
|
-
export declare function
|
|
147
|
+
export declare function viteAssetUrlGuard(options?: ServerZoneGuardOptions): AssetUrlGuardPlugin;
|
|
44
148
|
export {};
|
|
45
149
|
//# sourceMappingURL=vite-leak-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-leak-guard.d.ts","sourceRoot":"","sources":["../../src/plugins/vite-leak-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vite-leak-guard.d.ts","sourceRoot":"","sources":["../../src/plugins/vite-leak-guard.ts"],"names":[],"mappings":"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"}
|