@nifrajs/web 3.3.0 → 4.0.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/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 +35 -6
- package/dist/build-plan.d.ts.map +1 -1
- package/dist/build-plan.js +89 -35
- package/dist/build-plan.js.map +1 -1
- package/dist/build-vite.d.ts +18 -0
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js +97 -17
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +72 -23
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +411 -98
- 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 +21 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +226 -15
- 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/css-contract.d.ts +21 -0
- package/dist/css-contract.d.ts.map +1 -0
- package/dist/css-contract.js +28 -0
- package/dist/css-contract.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 +15 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -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 +3 -0
- package/dist/internal/codegen.d.ts.map +1 -1
- package/dist/internal/codegen.js +151 -30
- 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 +69 -0
- package/dist/internal/page-execution.d.ts.map +1 -0
- package/dist/internal/page-execution.js +1021 -0
- package/dist/internal/page-execution.js.map +1 -0
- 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 +37 -21
- package/dist/internal/render-document.d.ts.map +1 -1
- package/dist/internal/render-document.js +104 -65
- package/dist/internal/render-document.js.map +1 -1
- package/dist/internal/request-url.d.ts +3 -0
- package/dist/internal/request-url.d.ts.map +1 -0
- package/dist/internal/request-url.js +14 -0
- package/dist/internal/request-url.js.map +1 -0
- 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 +485 -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 +56 -8
- package/dist/internal/web-app.d.ts.map +1 -1
- package/dist/internal/web-app.js +215 -772
- 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 +301 -39
- package/dist/isr.js.map +1 -1
- package/dist/llms-txt.d.ts +3 -0
- package/dist/llms-txt.d.ts.map +1 -1
- package/dist/llms-txt.js +37 -9
- package/dist/llms-txt.js.map +1 -1
- package/dist/manifest.d.ts +221 -14
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +386 -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 +72 -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 +131 -48
- 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/trusted-html.d.ts +34 -0
- package/dist/trusted-html.d.ts.map +1 -0
- package/dist/trusted-html.js +35 -0
- package/dist/trusted-html.js.map +1 -0
- 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 +187 -36
- 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 +113 -36
- package/src/build-vite.ts +124 -15
- package/src/build.ts +535 -102
- package/src/bun-dev-entry.ts +1 -1
- package/src/cdn.ts +216 -0
- package/src/client.ts +251 -18
- package/src/conformance.ts +16 -3
- package/src/csp.ts +194 -0
- package/src/css-contract.ts +44 -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 +57 -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 +180 -29
- 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 +1371 -0
- 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 +153 -73
- package/src/internal/request-url.ts +14 -0
- package/src/internal/response-controls.ts +284 -0
- package/src/internal/runtime-contract.ts +10 -15
- package/src/internal/secret-scan.ts +623 -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 +290 -879
- package/src/internal/zone-graph.ts +593 -0
- package/src/isr.ts +366 -39
- package/src/llms-txt.ts +44 -8
- package/src/manifest.ts +671 -17
- 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 +110 -0
- package/src/prerender.ts +49 -3
- package/src/public-dir.ts +135 -49
- 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/trusted-html.ts +44 -0
- package/src/vitals.ts +44 -0
- package/src/vite.ts +207 -36
- 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/isr.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* This module is the store primitive; the SWR wrapper (`withISR`) builds on it next.
|
|
8
8
|
*/
|
|
9
9
|
import { isDraftEnabled } from "./draft.js";
|
|
10
|
-
import { timingSafeEqual } from "./internal/timing-safe-equal.js";
|
|
10
|
+
import { assertTokenSecret, timingSafeEqual } from "./internal/timing-safe-equal.js";
|
|
11
11
|
const ISR_TAG_PATTERN = /^[A-Za-z][A-Za-z0-9._:/-]{0,127}$/;
|
|
12
12
|
const MAX_ISR_TAGS = 32;
|
|
13
13
|
function normalizeTag(tag) {
|
|
@@ -16,7 +16,7 @@ function normalizeTag(tag) {
|
|
|
16
16
|
}
|
|
17
17
|
return tag;
|
|
18
18
|
}
|
|
19
|
-
function normalizeTags(tags) {
|
|
19
|
+
export function normalizeTags(tags) {
|
|
20
20
|
if (tags === undefined)
|
|
21
21
|
return [];
|
|
22
22
|
if (!Array.isArray(tags) || tags.length > MAX_ISR_TAGS) {
|
|
@@ -27,7 +27,8 @@ function normalizeTags(tags) {
|
|
|
27
27
|
unique.add(normalizeTag(tag));
|
|
28
28
|
return Object.freeze([...unique]);
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
/** The route tags a response carries on {@link ISR_REVALIDATE_TAGS_HEADER}; malformed means none. */
|
|
31
|
+
export function tagsFromHeader(value) {
|
|
31
32
|
if (value === null || value.trim() === "")
|
|
32
33
|
return [];
|
|
33
34
|
try {
|
|
@@ -44,6 +45,32 @@ export function serializeISRTags(tags) {
|
|
|
44
45
|
const normalized = normalizeTags(tags);
|
|
45
46
|
return normalized.length === 0 ? undefined : normalized.join(",");
|
|
46
47
|
}
|
|
48
|
+
const warnedTagRoutes = new Set();
|
|
49
|
+
/**
|
|
50
|
+
* The tags `declared` gives this request. A fixed list is returned as declared (it is validated when
|
|
51
|
+
* the header is written). A function's result keeps its valid, distinct tags, at most 32; anything
|
|
52
|
+
* else is dropped with one warning per route, naming the route but never the tag.
|
|
53
|
+
*/
|
|
54
|
+
export function routeTags(declared, input, routeId) {
|
|
55
|
+
if (typeof declared !== "function")
|
|
56
|
+
return declared;
|
|
57
|
+
const result = declared(input);
|
|
58
|
+
const listed = Array.isArray(result) ? result : [];
|
|
59
|
+
const kept = new Set();
|
|
60
|
+
let dropped = 0;
|
|
61
|
+
for (const tag of listed) {
|
|
62
|
+
if (typeof tag === "string" && ISR_TAG_PATTERN.test(tag) && kept.size < MAX_ISR_TAGS) {
|
|
63
|
+
kept.add(tag);
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
dropped++;
|
|
67
|
+
}
|
|
68
|
+
if ((dropped > 0 || !Array.isArray(result)) && !warnedTagRoutes.has(routeId)) {
|
|
69
|
+
warnedTagRoutes.add(routeId);
|
|
70
|
+
console.warn(`[nifra/web] NIFRA_CDN_TAG_INVALID: revalidateTags of route "${routeId}" returned ${Array.isArray(result) ? `${dropped} tag(s) that are not a letter followed by up to 127 of A-Z a-z 0-9 . _ : / -, or past the first 32` : "something other than an array"}; those were dropped.`);
|
|
71
|
+
}
|
|
72
|
+
return [...kept];
|
|
73
|
+
}
|
|
47
74
|
/**
|
|
48
75
|
* In-process ISR cache. Refuses to run in production unless explicitly allowed (mirrors the
|
|
49
76
|
* rate-limit `MemoryStore` - a per-instance cache is unsafe across instances). Bounded **LRU**: a
|
|
@@ -269,10 +296,68 @@ export const ISR_REVALIDATE_TAGS_HEADER = "x-nifra-isr-tags";
|
|
|
269
296
|
* refetch): this one is an integer TTL the *wrapper* reads, so the two channels never alias.
|
|
270
297
|
*/
|
|
271
298
|
export const ISR_REVALIDATE_HEADER = "x-nifra-isr-revalidate";
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
299
|
+
/** A `createWebApp` app answers this with a function that turns its ISR headers on. A wrapper that
|
|
300
|
+
* reads them calls it, so an app nothing caches never sends a route's freshness or tags. */
|
|
301
|
+
export const CACHE_CHANNEL = Symbol.for("nifra.web.cacheChannel");
|
|
302
|
+
/** Ask `app` to emit its ISR headers; an app without the channel emits whatever it emits. */
|
|
303
|
+
export function openCacheChannel(app) {
|
|
304
|
+
const open = Reflect.get(app, CACHE_CHANNEL);
|
|
305
|
+
if (typeof open === "function")
|
|
306
|
+
open();
|
|
307
|
+
}
|
|
308
|
+
/** Drop the ISR headers from a response that leaves the cache layer. */
|
|
309
|
+
export function withoutCacheChannel(res) {
|
|
310
|
+
if (!res.headers.has(ISR_REVALIDATE_HEADER) && !res.headers.has(ISR_REVALIDATE_TAGS_HEADER)) {
|
|
311
|
+
return res;
|
|
312
|
+
}
|
|
313
|
+
try {
|
|
314
|
+
res.headers.delete(ISR_REVALIDATE_HEADER);
|
|
315
|
+
res.headers.delete(ISR_REVALIDATE_TAGS_HEADER);
|
|
316
|
+
return res;
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
// A `fetch()` response has immutable headers: rebuild it around the same body instead.
|
|
320
|
+
const headers = new Headers(res.headers);
|
|
321
|
+
headers.delete(ISR_REVALIDATE_HEADER);
|
|
322
|
+
headers.delete(ISR_REVALIDATE_TAGS_HEADER);
|
|
323
|
+
return new Response(res.body, { status: res.status, statusText: res.statusText, headers });
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/** `createWebApp`'s marker for how its documents meet a CSP (see `DOCUMENT_POLICY` in ./csp.ts). Read
|
|
327
|
+
* through the global symbol registry so a cache wrapper never imports the CSP module. */
|
|
328
|
+
const DOCUMENT_POLICY = Symbol.for("nifra.web.documentPolicy");
|
|
329
|
+
/** Remembered `no-store` keys per `withISR` wrapper. */
|
|
330
|
+
const MAX_UNCACHEABLE_KEYS = 1024;
|
|
331
|
+
/** The default key for a URL under a `query` policy, or `null` when the URL must bypass the cache. */
|
|
332
|
+
export const urlKeyOf = (query = "bypass") => {
|
|
333
|
+
if (query === "all")
|
|
334
|
+
return (url) => url.origin + url.pathname + url.search;
|
|
335
|
+
if (query !== "bypass" && !Array.isArray(query)) {
|
|
336
|
+
throw new TypeError('[nifra/web] ISR query must be "bypass", "all", or a list of parameter names');
|
|
337
|
+
}
|
|
338
|
+
const allowed = new Set(query === "bypass" ? [] : query);
|
|
339
|
+
for (const name of allowed) {
|
|
340
|
+
if (typeof name !== "string" || name === "") {
|
|
341
|
+
throw new TypeError("[nifra/web] ISR query parameter names must be non-empty strings");
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return (url) => {
|
|
345
|
+
if (url.search === "")
|
|
346
|
+
return url.origin + url.pathname;
|
|
347
|
+
if (allowed.size === 0)
|
|
348
|
+
return null;
|
|
349
|
+
const entries = [];
|
|
350
|
+
for (const entry of url.searchParams) {
|
|
351
|
+
if (!allowed.has(entry[0]))
|
|
352
|
+
return null;
|
|
353
|
+
entries.push(entry);
|
|
354
|
+
}
|
|
355
|
+
// Stable by name, so a repeated name keeps its value order (`getAll` can tell them apart).
|
|
356
|
+
entries.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0));
|
|
357
|
+
return `${url.origin}${url.pathname}?${new URLSearchParams(entries)}`;
|
|
358
|
+
};
|
|
275
359
|
};
|
|
360
|
+
const requestKeyOf = (urlKey) => (req) => urlKey(new URL(req.url));
|
|
276
361
|
function assertRevalidate(value, name) {
|
|
277
362
|
if (!Number.isFinite(value) || value < 0) {
|
|
278
363
|
throw new RangeError(`[nifra/web] ${name} must be a finite non-negative number`);
|
|
@@ -293,7 +378,26 @@ const cacheControlHas = (headers, names) => {
|
|
|
293
378
|
const hasSetCookie = (headers) => headers.has("set-cookie") || (headers.getSetCookie?.().length ?? 0) > 0;
|
|
294
379
|
const requestCarriesPrivateState = (req) => req.headers.has("authorization") || req.headers.has("cookie");
|
|
295
380
|
const responseIsExplicitlyPublic = (res) => cacheControlHas(res.headers, ["public"]);
|
|
296
|
-
|
|
381
|
+
// `x-nifra-data` alone is not a variation the URL key misses: a navigation data request never reads
|
|
382
|
+
// or writes the store, so every stored entry is the document.
|
|
383
|
+
const responseDeclaresVary = (res) => {
|
|
384
|
+
const value = res.headers.get("vary");
|
|
385
|
+
if (value === null)
|
|
386
|
+
return false;
|
|
387
|
+
for (const part of value.split(",")) {
|
|
388
|
+
const name = part.trim().toLowerCase();
|
|
389
|
+
if (name !== "" && name !== "x-nifra-data")
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
return false;
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* Whether `res` may be stored by a shared cache and served to anyone requesting `req`'s URL: a
|
|
396
|
+
* full-document `GET` 200 `text/html` with no Set-Cookie, no `private`/`no-store`, no `Vary` beyond
|
|
397
|
+
* the data header, and, for a request carrying a cookie or Authorization, an explicit `public`.
|
|
398
|
+
* The one rule both `withISR` and `@nifrajs/web/cdn` cache by.
|
|
399
|
+
*/
|
|
400
|
+
export const isCacheablePage = (req, res) => {
|
|
297
401
|
if (req.method !== "GET")
|
|
298
402
|
return false;
|
|
299
403
|
if (req.headers.get("x-nifra-data") !== null)
|
|
@@ -304,6 +408,11 @@ const isCacheablePage = (req, res) => {
|
|
|
304
408
|
return false;
|
|
305
409
|
if (hasSetCookie(res.headers))
|
|
306
410
|
return false;
|
|
411
|
+
// The default ISR key is URL-only. A response that varies on request headers must either use a
|
|
412
|
+
// caller-supplied key that includes those headers or bypass ISR; otherwise one language/tenant
|
|
413
|
+
// representation can be served to every request for the URL.
|
|
414
|
+
if (responseDeclaresVary(res))
|
|
415
|
+
return false;
|
|
307
416
|
if (cacheControlHas(res.headers, ["private", "no-store"]))
|
|
308
417
|
return false;
|
|
309
418
|
// Cookie/Authorization requests often personalize HTML without setting a new cookie. Cache them only
|
|
@@ -312,19 +421,40 @@ const isCacheablePage = (req, res) => {
|
|
|
312
421
|
return false;
|
|
313
422
|
return true;
|
|
314
423
|
};
|
|
424
|
+
// Keep representation and security policy headers, plus `Vary` for legacy entries. Transport,
|
|
425
|
+
// request-specific, framework-control, and unknown internal headers stay out of the shared cache.
|
|
315
426
|
const CACHEABLE_RESPONSE_HEADERS = new Set([
|
|
316
427
|
"cache-control",
|
|
317
428
|
"content-language",
|
|
429
|
+
"content-security-policy",
|
|
318
430
|
"content-type",
|
|
431
|
+
"cross-origin-embedder-policy",
|
|
432
|
+
"cross-origin-opener-policy",
|
|
433
|
+
"cross-origin-resource-policy",
|
|
319
434
|
"etag",
|
|
320
435
|
"last-modified",
|
|
321
436
|
"link",
|
|
437
|
+
"origin-agent-cluster",
|
|
438
|
+
"permissions-policy",
|
|
439
|
+
"referrer-policy",
|
|
440
|
+
"strict-transport-security",
|
|
441
|
+
"vary",
|
|
442
|
+
"x-content-type-options",
|
|
443
|
+
"x-frame-options",
|
|
444
|
+
"x-robots-tag",
|
|
322
445
|
]);
|
|
446
|
+
const isCacheableResponseHeader = (key) => {
|
|
447
|
+
const normalized = key.toLowerCase();
|
|
448
|
+
return (CACHEABLE_RESPONSE_HEADERS.has(normalized) ||
|
|
449
|
+
normalized.startsWith("content-security-policy-") ||
|
|
450
|
+
normalized.startsWith("cross-origin-") ||
|
|
451
|
+
normalized.startsWith("permissions-policy-"));
|
|
452
|
+
};
|
|
323
453
|
const tagsOf = (res) => tagsFromHeader(res.headers.get(ISR_REVALIDATE_TAGS_HEADER));
|
|
324
454
|
const headersOf = (res) => {
|
|
325
455
|
const out = {};
|
|
326
456
|
res.headers.forEach((value, key) => {
|
|
327
|
-
if (
|
|
457
|
+
if (isCacheableResponseHeader(key))
|
|
328
458
|
out[key] = value;
|
|
329
459
|
});
|
|
330
460
|
return out;
|
|
@@ -336,12 +466,12 @@ const responseFrom = (entry, status) => new Response(entry.body, {
|
|
|
336
466
|
function sanitizeCachedHeaders(headers) {
|
|
337
467
|
const out = {};
|
|
338
468
|
for (const [key, value] of Object.entries(headers)) {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
out[normalized] = value;
|
|
469
|
+
if (isCacheableResponseHeader(key))
|
|
470
|
+
out[key.toLowerCase()] = value;
|
|
342
471
|
}
|
|
343
472
|
return out;
|
|
344
473
|
}
|
|
474
|
+
const isInvalidationResponse = (res) => res.status === 404 || res.status === 410 || (res.status >= 300 && res.status < 400);
|
|
345
475
|
/**
|
|
346
476
|
* Wrap a nifra app with **Incremental Static Regeneration**: a cacheable page is served from
|
|
347
477
|
* {@link CacheStore} when fresh, served **stale while a fresh copy regenerates in the background**
|
|
@@ -356,9 +486,44 @@ function sanitizeCachedHeaders(headers) {
|
|
|
356
486
|
export function withISR(app, options) {
|
|
357
487
|
const { store, now } = options;
|
|
358
488
|
assertRevalidate(options.revalidate, "revalidate");
|
|
359
|
-
const keyOf = options.key ??
|
|
489
|
+
const keyOf = options.key ?? requestKeyOf(urlKeyOf(options.query));
|
|
360
490
|
const draftSecret = options.draftSecret;
|
|
361
491
|
const regenerating = new Set();
|
|
492
|
+
openCacheChannel(app);
|
|
493
|
+
// An outer cache layer (`withCdn`) opens this wrapper's own channel: cached responses then carry how
|
|
494
|
+
// much freshness they have left and their tags, so the CDN never holds a page longer than ISR would.
|
|
495
|
+
let channelOpen = false;
|
|
496
|
+
const advertise = (headers, remainingMs, tags) => {
|
|
497
|
+
if (!channelOpen)
|
|
498
|
+
return;
|
|
499
|
+
headers.set(ISR_REVALIDATE_HEADER, String(Math.max(0, Math.floor(remainingMs / 1000))));
|
|
500
|
+
const serialized = tags.length === 0 ? undefined : tags.join(",");
|
|
501
|
+
if (serialized !== undefined)
|
|
502
|
+
headers.set(ISR_REVALIDATE_TAGS_HEADER, serialized);
|
|
503
|
+
};
|
|
504
|
+
const served = (entry, status) => {
|
|
505
|
+
const res = responseFrom(entry, status);
|
|
506
|
+
advertise(res.headers, status === "stale" ? 0 : entry.revalidate - (now() - entry.storedAt), entry.tags ?? []);
|
|
507
|
+
return res;
|
|
508
|
+
};
|
|
509
|
+
if (app[DOCUMENT_POLICY] === "nonce") {
|
|
510
|
+
console.warn("[nifra/web] withISR wraps an app whose every document carries a CSP nonce. Such documents are " +
|
|
511
|
+
"`private, no-store`, so this cache will never store a page. Use " +
|
|
512
|
+
"`createWebApp({ csp: createCspPolicy(...) })` instead of `nonce` to cache pages under a CSP.");
|
|
513
|
+
}
|
|
514
|
+
// Keys whose last render declared itself `private` or `no-store`, with when that memo expires. A
|
|
515
|
+
// remembered key skips the store lookup (a network round trip on a shared store) and renders fresh;
|
|
516
|
+
// a render that turns out cacheable is stored and forgets the key. So the memo can only cost a cache
|
|
517
|
+
// hit, never serve the wrong page. Bounded, oldest first, so a URL flood cannot grow it.
|
|
518
|
+
const uncacheable = new Map();
|
|
519
|
+
const rememberUncacheable = (key, res) => {
|
|
520
|
+
if (options.revalidate === 0 || !cacheControlHas(res.headers, ["private", "no-store"]))
|
|
521
|
+
return;
|
|
522
|
+
if (uncacheable.size >= MAX_UNCACHEABLE_KEYS) {
|
|
523
|
+
uncacheable.delete(uncacheable.keys().next().value);
|
|
524
|
+
}
|
|
525
|
+
uncacheable.set(key, now() + options.revalidate * 1000);
|
|
526
|
+
};
|
|
362
527
|
// Per-page TTL (ms): the app's `x-nifra-isr-revalidate` header (seconds) if present, else the default.
|
|
363
528
|
const ttlMs = (res) => {
|
|
364
529
|
const header = res.headers.get(ISR_REVALIDATE_HEADER);
|
|
@@ -368,8 +533,11 @@ export function withISR(app, options) {
|
|
|
368
533
|
};
|
|
369
534
|
const render = async (req, platform, key) => {
|
|
370
535
|
const res = await app.fetch(req, platform);
|
|
371
|
-
if (!isCacheablePage(req, res))
|
|
372
|
-
|
|
536
|
+
if (!isCacheablePage(req, res)) {
|
|
537
|
+
rememberUncacheable(key, res);
|
|
538
|
+
return withoutCacheChannel(res);
|
|
539
|
+
}
|
|
540
|
+
uncacheable.delete(key);
|
|
373
541
|
const body = await res.text();
|
|
374
542
|
const tags = tagsOf(res);
|
|
375
543
|
const entry = {
|
|
@@ -381,10 +549,12 @@ export function withISR(app, options) {
|
|
|
381
549
|
...(tags.length === 0 ? {} : { tags }),
|
|
382
550
|
};
|
|
383
551
|
await store.set(key, entry);
|
|
384
|
-
|
|
552
|
+
const fresh = new Response(body, {
|
|
385
553
|
status: res.status,
|
|
386
554
|
headers: { ...entry.headers, [ISR_STATUS_HEADER]: "miss" },
|
|
387
555
|
});
|
|
556
|
+
advertise(fresh.headers, entry.revalidate, tags);
|
|
557
|
+
return fresh;
|
|
388
558
|
};
|
|
389
559
|
// Background regeneration (single-flight per key) - a failed regen keeps the stale entry; the next
|
|
390
560
|
// stale hit retries. Never throws (it runs detached / under waitUntil).
|
|
@@ -405,6 +575,12 @@ export function withISR(app, options) {
|
|
|
405
575
|
...(tags.length === 0 ? {} : { tags }),
|
|
406
576
|
});
|
|
407
577
|
}
|
|
578
|
+
else if (isInvalidationResponse(res)) {
|
|
579
|
+
// A successful deletion or redirect is authoritative. Keeping the old entry would make a
|
|
580
|
+
// withdrawn page stay publicly visible forever because every stale request would retry the same
|
|
581
|
+
// non-cacheable response while continuing to serve the old body.
|
|
582
|
+
await store.delete(key);
|
|
583
|
+
}
|
|
408
584
|
else {
|
|
409
585
|
await res.body?.cancel();
|
|
410
586
|
}
|
|
@@ -416,46 +592,75 @@ export function withISR(app, options) {
|
|
|
416
592
|
regenerating.delete(key);
|
|
417
593
|
}
|
|
418
594
|
};
|
|
419
|
-
|
|
595
|
+
const handler = async (req, platform) => {
|
|
420
596
|
// A data-mode soft-nav GET bypasses the cache entirely: entries are full HTML documents keyed
|
|
421
597
|
// by URL, and serving one to a loader-data fetch would hand the client HTML where it expects
|
|
422
598
|
// the loader payload. (The write path already refuses to cache data-mode responses.)
|
|
423
599
|
const key = req.method === "GET" && req.headers.get("x-nifra-data") === null ? keyOf(req) : null;
|
|
424
600
|
if (key === null)
|
|
425
|
-
return app.fetch(req, platform);
|
|
601
|
+
return withoutCacheChannel(await app.fetch(req, platform));
|
|
426
602
|
// Draft/preview: an editor (valid signed cookie) always renders fresh and is never cached, so
|
|
427
603
|
// unpublished content can't leak into the public cache (and the editor isn't served a stale page).
|
|
428
604
|
if (draftSecret !== undefined && (await isDraftEnabled(req, draftSecret))) {
|
|
429
|
-
return app.fetch(req, platform);
|
|
605
|
+
return withoutCacheChannel(await app.fetch(req, platform));
|
|
606
|
+
}
|
|
607
|
+
const until = uncacheable.get(key);
|
|
608
|
+
if (until !== undefined) {
|
|
609
|
+
if (now() < until)
|
|
610
|
+
return render(req, platform, key);
|
|
611
|
+
uncacheable.delete(key);
|
|
430
612
|
}
|
|
431
613
|
const hit = await store.get(key);
|
|
432
614
|
if (hit !== undefined) {
|
|
433
615
|
if (now() - hit.storedAt < hit.revalidate)
|
|
434
|
-
return
|
|
616
|
+
return served(hit, "hit");
|
|
435
617
|
// Stale: serve it now, regenerate behind it (waitUntil keeps the edge worker alive for the regen).
|
|
436
618
|
const task = regenerate(req, platform, key);
|
|
437
619
|
if (typeof platform?.waitUntil === "function")
|
|
438
620
|
platform.waitUntil(task);
|
|
439
621
|
else
|
|
440
622
|
void task.catch(() => { });
|
|
441
|
-
return
|
|
623
|
+
return served(hit, "stale");
|
|
442
624
|
}
|
|
443
625
|
return render(req, platform, key);
|
|
444
626
|
};
|
|
627
|
+
Object.defineProperty(handler, CACHE_CHANNEL, {
|
|
628
|
+
value: () => {
|
|
629
|
+
channelOpen = true;
|
|
630
|
+
},
|
|
631
|
+
});
|
|
632
|
+
return handler;
|
|
445
633
|
}
|
|
446
634
|
const jsonError = (status, error) => Response.json({ ok: false, error }, { status });
|
|
635
|
+
/** Most paths and tags one revalidation request may name, so a leaked token cannot fan out. */
|
|
636
|
+
export const MAX_REVALIDATE_PATHS = 100;
|
|
637
|
+
export const MAX_REVALIDATE_TAGS = MAX_ISR_TAGS;
|
|
638
|
+
const stringList = (value) => {
|
|
639
|
+
if (value === undefined)
|
|
640
|
+
return undefined;
|
|
641
|
+
if (!Array.isArray(value) || !value.every((item) => typeof item === "string"))
|
|
642
|
+
return null;
|
|
643
|
+
return value;
|
|
644
|
+
};
|
|
447
645
|
/**
|
|
448
|
-
* An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops
|
|
646
|
+
* An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops cached pages by path
|
|
449
647
|
* or invalidates every entry carrying a tag. `POST` with the secret in the token header and either
|
|
450
|
-
* `?path=/blog/x`, `?tag=products`,
|
|
648
|
+
* `?path=/blog/x`, `?tag=products`, a JSON `{ "path": "/blog/x" }` / `{ "tag": "products" }` body, or a
|
|
649
|
+
* batch `{ "paths": [...], "tags": [...] }` of at most 100 paths and 32 tags.
|
|
451
650
|
* The token is checked in **constant time** (wrong/missing → `401`); malformed targets → `400`;
|
|
452
651
|
* non-POST → `405`. A store without tag support returns `501` for tag requests. Mount it on a nifra route, e.g.
|
|
453
652
|
* `app.post("/__nifra/revalidate", (c) => handler(c.req))`.
|
|
454
653
|
*/
|
|
455
654
|
export function revalidateEndpoint(options) {
|
|
655
|
+
// An empty secret matches a request that omits the header (`"" === ""`), so an unset env var passed
|
|
656
|
+
// through `?? ""` would open the purge to anyone. Refuse it at construction instead.
|
|
657
|
+
assertTokenSecret(options.secret, "revalidateEndpoint");
|
|
456
658
|
const tokenHeader = options.tokenHeader ?? "x-nifra-revalidate-token";
|
|
457
|
-
const
|
|
458
|
-
|
|
659
|
+
const urlKey = options.key === undefined ? urlKeyOf(options.query) : undefined;
|
|
660
|
+
// Joined as text, never resolved against the origin: `//host/x` must stay a path on this origin.
|
|
661
|
+
const keyOf = options.key ??
|
|
662
|
+
((path, req) => urlKey?.(new URL(new URL(req.url).origin + path)) ?? null);
|
|
663
|
+
return async (req, platform) => {
|
|
459
664
|
if (req.method !== "POST")
|
|
460
665
|
return jsonError(405, "method_not_allowed");
|
|
461
666
|
if (!timingSafeEqual(req.headers.get(tokenHeader) ?? "", options.secret)) {
|
|
@@ -464,33 +669,90 @@ export function revalidateEndpoint(options) {
|
|
|
464
669
|
const url = new URL(req.url);
|
|
465
670
|
let path = url.searchParams.get("path");
|
|
466
671
|
let tag = url.searchParams.get("tag");
|
|
672
|
+
let batch;
|
|
467
673
|
if (path === null && tag === null) {
|
|
468
674
|
const body = await req.json().catch(() => null);
|
|
469
675
|
if (typeof body === "object" && body !== null) {
|
|
470
676
|
const candidate = body;
|
|
471
|
-
|
|
472
|
-
|
|
677
|
+
if (candidate.paths !== undefined || candidate.tags !== undefined) {
|
|
678
|
+
const paths = stringList(candidate.paths);
|
|
679
|
+
const tags = stringList(candidate.tags);
|
|
680
|
+
if (paths === null || tags === null)
|
|
681
|
+
return jsonError(400, "invalid_batch");
|
|
682
|
+
if ((paths?.length ?? 0) > MAX_REVALIDATE_PATHS)
|
|
683
|
+
return jsonError(400, "too_many_paths");
|
|
684
|
+
if ((tags?.length ?? 0) > MAX_REVALIDATE_TAGS)
|
|
685
|
+
return jsonError(400, "too_many_tags");
|
|
686
|
+
batch = { paths: paths ?? [], tags: tags ?? [] };
|
|
687
|
+
if (batch.paths.length + batch.tags.length === 0)
|
|
688
|
+
return jsonError(400, "empty_batch");
|
|
689
|
+
}
|
|
690
|
+
else {
|
|
691
|
+
path = typeof candidate.path === "string" ? candidate.path : null;
|
|
692
|
+
tag = typeof candidate.tag === "string" ? candidate.tag : null;
|
|
693
|
+
}
|
|
473
694
|
}
|
|
474
695
|
}
|
|
475
|
-
if (
|
|
476
|
-
|
|
477
|
-
|
|
696
|
+
if (batch === undefined) {
|
|
697
|
+
if (path !== null && tag !== null)
|
|
698
|
+
return jsonError(400, "choose_path_or_tag");
|
|
699
|
+
if (path === null && tag === null)
|
|
700
|
+
return jsonError(400, "invalid_path");
|
|
701
|
+
batch = { paths: path === null ? [] : [path], tags: tag === null ? [] : [tag] };
|
|
702
|
+
}
|
|
703
|
+
const tags = [...new Set(batch.tags)];
|
|
704
|
+
for (const candidate of tags) {
|
|
478
705
|
try {
|
|
479
|
-
normalizeTag(
|
|
706
|
+
normalizeTag(candidate);
|
|
480
707
|
}
|
|
481
708
|
catch {
|
|
482
709
|
return jsonError(400, "invalid_tag");
|
|
483
710
|
}
|
|
484
|
-
if (options.store.invalidateTag === undefined) {
|
|
485
|
-
return jsonError(501, "tag_invalidation_not_supported");
|
|
486
|
-
}
|
|
487
|
-
await options.store.invalidateTag(tag);
|
|
488
|
-
return Response.json({ revalidatedTag: tag });
|
|
489
711
|
}
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
712
|
+
const paths = [...new Set(batch.paths)];
|
|
713
|
+
const keys = [];
|
|
714
|
+
for (const candidate of paths) {
|
|
715
|
+
if (!candidate.startsWith("/"))
|
|
716
|
+
return jsonError(400, "invalid_path");
|
|
717
|
+
const key = keyOf(candidate, req);
|
|
718
|
+
if (key === null)
|
|
719
|
+
return jsonError(400, "uncached_query");
|
|
720
|
+
keys.push(key);
|
|
721
|
+
}
|
|
722
|
+
const invalidateTag = options.store.invalidateTag;
|
|
723
|
+
if (tags.length > 0 && invalidateTag === undefined) {
|
|
724
|
+
return jsonError(501, "tag_invalidation_not_supported");
|
|
725
|
+
}
|
|
726
|
+
for (const key of keys)
|
|
727
|
+
await options.store.delete(key);
|
|
728
|
+
for (const candidate of tags)
|
|
729
|
+
await invalidateTag?.call(options.store, candidate);
|
|
730
|
+
const done = path !== null
|
|
731
|
+
? { revalidated: path }
|
|
732
|
+
: tag !== null
|
|
733
|
+
? { revalidatedTag: tag }
|
|
734
|
+
: { revalidated: paths, revalidatedTags: tags };
|
|
735
|
+
if (options.cdn === undefined)
|
|
736
|
+
return Response.json(done);
|
|
737
|
+
let outcome;
|
|
738
|
+
try {
|
|
739
|
+
outcome = await options.cdn.purge({ tags, paths }, platform);
|
|
740
|
+
}
|
|
741
|
+
catch {
|
|
742
|
+
outcome = { cdn: "failed", retryable: true, error: "cdn_purge_threw" };
|
|
743
|
+
}
|
|
744
|
+
if (outcome.cdn === "failed") {
|
|
745
|
+
const failure = {
|
|
746
|
+
ok: false,
|
|
747
|
+
error: "cdn_purge_failed",
|
|
748
|
+
origin: "done",
|
|
749
|
+
retryable: outcome.retryable,
|
|
750
|
+
};
|
|
751
|
+
if (outcome.error !== undefined)
|
|
752
|
+
failure.reason = outcome.error;
|
|
753
|
+
return Response.json(failure, { status: 502 });
|
|
754
|
+
}
|
|
755
|
+
return Response.json({ ...done, cdn: outcome.cdn }, { status: outcome.cdn === "queued" ? 202 : 200 });
|
|
494
756
|
};
|
|
495
757
|
}
|
|
496
758
|
//# sourceMappingURL=isr.js.map
|
package/dist/isr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
|
package/dist/llms-txt.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { type ProjectEvidenceSnapshot } from "@nifrajs/core/evidence";
|
|
1
2
|
export declare function generateLlmsTxt(full: boolean, pageRoutes: ReadonlyArray<{
|
|
2
3
|
readonly pattern: string;
|
|
3
4
|
readonly id: string;
|
|
4
5
|
}>, backend: unknown, options?: {
|
|
5
6
|
readonly includeLocalGuidelines?: boolean;
|
|
7
|
+
/** Reuse the project's canonical route-evidence pass when one is already available. */
|
|
8
|
+
readonly evidence?: ProjectEvidenceSnapshot;
|
|
6
9
|
}): Promise<string>;
|
|
7
10
|
//# sourceMappingURL=llms-txt.d.ts.map
|
package/dist/llms-txt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,wBAAwB,CAAA;AA4H/B,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CACvC,GACL,OAAO,CAAC,MAAM,CAAC,CAgEjB"}
|