@bleedingdev/modern-js-renderer-core 0.0.0-bootstrap → 3.9.3-ultramodern.1
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/LICENSE +21 -0
- package/dist/cjs/abort.js +65 -0
- package/dist/cjs/adapter.js +62 -0
- package/dist/cjs/data/body.js +78 -0
- package/dist/cjs/data/client.js +409 -0
- package/dist/cjs/data/codec.js +168 -0
- package/dist/cjs/data/index.js +125 -0
- package/dist/cjs/data/private.js +77 -0
- package/dist/cjs/data/routes.js +149 -0
- package/dist/cjs/data/server.js +791 -0
- package/dist/cjs/data/static.js +110 -0
- package/dist/cjs/data/tree.js +231 -0
- package/dist/cjs/data/types.js +56 -0
- package/dist/cjs/document.js +184 -0
- package/dist/cjs/entry-client.js +142 -0
- package/dist/cjs/entry-server.js +253 -0
- package/dist/cjs/federation.js +80 -0
- package/dist/cjs/identity.js +120 -0
- package/dist/cjs/index.js +46 -0
- package/dist/cjs/localization.js +48 -0
- package/dist/cjs/router.js +293 -0
- package/dist/cjs/server/assets.js +56 -0
- package/dist/cjs/server/dispatch.js +351 -0
- package/dist/cjs/server/index.js +57 -0
- package/dist/cjs/server/types.js +18 -0
- package/dist/cjs/server/worker.js +73 -0
- package/dist/cjs/session/cache.js +172 -0
- package/dist/cjs/session/index.js +63 -0
- package/dist/cjs/session/request.js +269 -0
- package/dist/cjs/session/types.js +18 -0
- package/dist/esm/abort.mjs +27 -0
- package/dist/esm/adapter.mjs +21 -0
- package/dist/esm/data/body.mjs +40 -0
- package/dist/esm/data/client.mjs +368 -0
- package/dist/esm/data/codec.mjs +112 -0
- package/dist/esm/data/index.mjs +7 -0
- package/dist/esm/data/private.mjs +39 -0
- package/dist/esm/data/routes.mjs +108 -0
- package/dist/esm/data/server.mjs +723 -0
- package/dist/esm/data/static.mjs +51 -0
- package/dist/esm/data/tree.mjs +193 -0
- package/dist/esm/data/types.mjs +6 -0
- package/dist/esm/document.mjs +131 -0
- package/dist/esm/entry-client.mjs +104 -0
- package/dist/esm/entry-server.mjs +215 -0
- package/dist/esm/federation.mjs +36 -0
- package/dist/esm/identity.mjs +63 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/localization.mjs +10 -0
- package/dist/esm/router.mjs +225 -0
- package/dist/esm/server/assets.mjs +15 -0
- package/dist/esm/server/dispatch.mjs +307 -0
- package/dist/esm/server/index.mjs +3 -0
- package/dist/esm/server/types.mjs +0 -0
- package/dist/esm/server/worker.mjs +35 -0
- package/dist/esm/session/cache.mjs +116 -0
- package/dist/esm/session/index.mjs +3 -0
- package/dist/esm/session/request.mjs +231 -0
- package/dist/esm/session/types.mjs +0 -0
- package/dist/esm-node/abort.mjs +28 -0
- package/dist/esm-node/adapter.mjs +22 -0
- package/dist/esm-node/data/body.mjs +41 -0
- package/dist/esm-node/data/client.mjs +369 -0
- package/dist/esm-node/data/codec.mjs +113 -0
- package/dist/esm-node/data/index.mjs +8 -0
- package/dist/esm-node/data/private.mjs +40 -0
- package/dist/esm-node/data/routes.mjs +109 -0
- package/dist/esm-node/data/server.mjs +724 -0
- package/dist/esm-node/data/static.mjs +52 -0
- package/dist/esm-node/data/tree.mjs +194 -0
- package/dist/esm-node/data/types.mjs +7 -0
- package/dist/esm-node/document.mjs +132 -0
- package/dist/esm-node/entry-client.mjs +105 -0
- package/dist/esm-node/entry-server.mjs +216 -0
- package/dist/esm-node/federation.mjs +37 -0
- package/dist/esm-node/identity.mjs +64 -0
- package/dist/esm-node/index.mjs +2 -0
- package/dist/esm-node/localization.mjs +11 -0
- package/dist/esm-node/router.mjs +226 -0
- package/dist/esm-node/server/assets.mjs +16 -0
- package/dist/esm-node/server/dispatch.mjs +308 -0
- package/dist/esm-node/server/index.mjs +4 -0
- package/dist/esm-node/server/types.mjs +1 -0
- package/dist/esm-node/server/worker.mjs +36 -0
- package/dist/esm-node/session/cache.mjs +117 -0
- package/dist/esm-node/session/index.mjs +4 -0
- package/dist/esm-node/session/request.mjs +232 -0
- package/dist/esm-node/session/types.mjs +1 -0
- package/dist/types/abort.d.ts +6 -0
- package/dist/types/adapter.d.ts +195 -0
- package/dist/types/data/body.d.ts +2 -0
- package/dist/types/data/client.d.ts +17 -0
- package/dist/types/data/codec.d.ts +14 -0
- package/dist/types/data/index.d.ts +8 -0
- package/dist/types/data/private.d.ts +6 -0
- package/dist/types/data/routes.d.ts +28 -0
- package/dist/types/data/server.d.ts +59 -0
- package/dist/types/data/static.d.ts +31 -0
- package/dist/types/data/tree.d.ts +3 -0
- package/dist/types/data/types.d.ts +104 -0
- package/dist/types/document.d.ts +76 -0
- package/dist/types/entry-client.d.ts +53 -0
- package/dist/types/entry-server.d.ts +63 -0
- package/dist/types/federation.d.ts +56 -0
- package/dist/types/identity.d.ts +27 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/localization.d.ts +58 -0
- package/dist/types/router.d.ts +201 -0
- package/dist/types/server/assets.d.ts +14 -0
- package/dist/types/server/dispatch.d.ts +11 -0
- package/dist/types/server/index.d.ts +4 -0
- package/dist/types/server/types.d.ts +64 -0
- package/dist/types/server/worker.d.ts +25 -0
- package/dist/types/session/cache.d.ts +25 -0
- package/dist/types/session/index.d.ts +4 -0
- package/dist/types/session/request.d.ts +8 -0
- package/dist/types/session/types.d.ts +48 -0
- package/package.json +159 -4
- package/src/abort.ts +40 -0
- package/src/adapter.ts +255 -0
- package/src/data/body.ts +43 -0
- package/src/data/client.ts +501 -0
- package/src/data/codec.ts +247 -0
- package/src/data/index.ts +8 -0
- package/src/data/private.ts +68 -0
- package/src/data/routes.ts +201 -0
- package/src/data/server.ts +977 -0
- package/src/data/static.ts +105 -0
- package/src/data/tree.ts +244 -0
- package/src/data/types.ts +98 -0
- package/src/document.ts +338 -0
- package/src/entry-client.ts +236 -0
- package/src/entry-server.ts +393 -0
- package/src/federation.ts +111 -0
- package/src/identity.ts +128 -0
- package/src/index.ts +7 -0
- package/src/localization.ts +77 -0
- package/src/router.ts +475 -0
- package/src/server/assets.ts +60 -0
- package/src/server/dispatch.ts +523 -0
- package/src/server/index.ts +16 -0
- package/src/server/types.ts +94 -0
- package/src/server/worker.ts +94 -0
- package/src/session/cache.ts +177 -0
- package/src/session/index.ts +11 -0
- package/src/session/request.ts +324 -0
- package/src/session/types.ts +60 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
dispatchNativeNodeRequest: ()=>dispatchNativeNodeRequest,
|
|
32
|
+
dispatchNativeRequest: ()=>dispatchNativeRequest,
|
|
33
|
+
rejectNativeRscRequest: ()=>rejectNativeRscRequest
|
|
34
|
+
});
|
|
35
|
+
const external_abort_js_namespaceObject = require("../abort.js");
|
|
36
|
+
const external_identity_js_namespaceObject = require("../identity.js");
|
|
37
|
+
const index_js_namespaceObject = require("../session/index.js");
|
|
38
|
+
function rejectNativeRscRequest(request) {
|
|
39
|
+
if (request.headers.has('x-rsc-tree') || request.headers.has('x-rsc-action')) return Response.json({
|
|
40
|
+
code: 'unsupported-renderer-capability',
|
|
41
|
+
capability: 'rsc'
|
|
42
|
+
}, {
|
|
43
|
+
status: 400,
|
|
44
|
+
headers: {
|
|
45
|
+
'cache-control': 'no-store'
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function permitsCacheLookup(request) {
|
|
50
|
+
const url = new URL(request.url);
|
|
51
|
+
const cacheControl = request.headers.get('cache-control') ?? '';
|
|
52
|
+
return 'GET' === request.method && !request.headers.has('authorization') && !request.headers.has('cookie') && !request.headers.has('range') && !request.headers.has('if-none-match') && !request.headers.has('if-modified-since') && !request.headers.has('if-match') && !request.headers.has('if-unmodified-since') && !/(?:^|,)\s*(?:private|no-store|no-cache)(?:\s|,|=|$)/i.test(cacheControl) && !/(?:^|,)\s*max-age\s*=\s*(?:0+|"0+")\s*(?:,|$)/i.test(cacheControl) && !/(?:^|,)\s*min-fresh(?:\s|,|=|$)/i.test(cacheControl) && (cacheControl.match(/(?:^|,)\s*max-age\s*=/gi)?.length ?? 0) <= 1 && !request.headers.get('pragma')?.split(',').some((directive)=>'no-cache' === directive.trim().toLowerCase()) && !url.searchParams.has('__loader') && !url.searchParams.has('__ssrDirect');
|
|
53
|
+
}
|
|
54
|
+
function requestMaxAgeSeconds(request) {
|
|
55
|
+
const match = /(?:^|,)\s*max-age\s*=\s*(?:(\d+)|"(\d+)")\s*(?:,|$)/i.exec(request.headers.get('cache-control') ?? '');
|
|
56
|
+
return match ? Number(match[1] ?? match[2]) : void 0;
|
|
57
|
+
}
|
|
58
|
+
function documentAgeSeconds(document) {
|
|
59
|
+
return Math.floor((Date.now() - document.storedAt) / 1000);
|
|
60
|
+
}
|
|
61
|
+
function isReusableDocument(document, key, maxAgeSeconds) {
|
|
62
|
+
return document.identityKey === key && Number.isFinite(document.storedAt) && document.storedAt <= Date.now() && (void 0 === maxAgeSeconds || Date.now() - document.storedAt < 1000 * maxAgeSeconds) && document.expiresAt > Date.now() && 200 === document.status && document.bytes instanceof Uint8Array && (0, index_js_namespaceObject.permitsDocumentCache)({
|
|
63
|
+
kind: 'document',
|
|
64
|
+
status: document.status,
|
|
65
|
+
headers: document.headers,
|
|
66
|
+
cache: {
|
|
67
|
+
mode: 'public',
|
|
68
|
+
maxAgeSeconds: 1
|
|
69
|
+
}
|
|
70
|
+
}) && !(0, index_js_namespaceObject.policyHeaders)(document.headers).has('vary');
|
|
71
|
+
}
|
|
72
|
+
function defaultStatusText(status) {
|
|
73
|
+
return new Response(null, {
|
|
74
|
+
status
|
|
75
|
+
}).statusText;
|
|
76
|
+
}
|
|
77
|
+
function normalizeTerminalResponse(response, session) {
|
|
78
|
+
if (session.committedPolicy) {
|
|
79
|
+
if (response.status !== session.committedPolicy.status) throw new Error('Native handler changed HTTP status after committing its response policy.');
|
|
80
|
+
if (response.statusText !== (session.committedPolicy.statusText ?? defaultStatusText(session.committedPolicy.status))) throw new Error('Native handler changed HTTP status text after committing its response policy.');
|
|
81
|
+
if (!session.ownsResponseBody(response)) throw new Error('Native handler returned a body outside its committed request session.');
|
|
82
|
+
return response;
|
|
83
|
+
}
|
|
84
|
+
session.resolveResponse({
|
|
85
|
+
kind: 'terminal',
|
|
86
|
+
status: response.status,
|
|
87
|
+
statusText: response.statusText,
|
|
88
|
+
headers: (0, index_js_namespaceObject.responseHeaders)(response.headers),
|
|
89
|
+
cache: {
|
|
90
|
+
mode: 'no-store'
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return session.respond(response.body);
|
|
94
|
+
}
|
|
95
|
+
async function chooseCSR(request, manifest, context) {
|
|
96
|
+
const url = new URL(request.url);
|
|
97
|
+
if ('GET' !== request.method && 'HEAD' !== request.method || url.searchParams.has('__loader') || url.searchParams.has('__ssrDirect')) return false;
|
|
98
|
+
const config = context.serverConfig;
|
|
99
|
+
if (config?.ssr === false || config?.forceCSR) return true;
|
|
100
|
+
const selectedIds = config?.ssrByRouteIds;
|
|
101
|
+
if (!selectedIds?.length) return false;
|
|
102
|
+
if (!manifest.nativeMatchRouteIds) throw new Error('unsupported-renderer-capability: ssrByRouteIds requires native route matching.');
|
|
103
|
+
const matchedIds = await (0, external_abort_js_namespaceObject.untilAborted)(manifest.nativeMatchRouteIds(request, context), context.session.signal);
|
|
104
|
+
const leafId = matchedIds.at(-1);
|
|
105
|
+
return !leafId || !selectedIds.includes(leafId);
|
|
106
|
+
}
|
|
107
|
+
function captureDocument(response, session, options, key, identityKey) {
|
|
108
|
+
if (!response.body || !options.cache) return response;
|
|
109
|
+
const reader = response.body.getReader();
|
|
110
|
+
const chunks = [];
|
|
111
|
+
const maximum = options.maxCacheBytes ?? 2097152;
|
|
112
|
+
let total = 0;
|
|
113
|
+
let canCapture = Number.isSafeInteger(maximum) && maximum > 0;
|
|
114
|
+
let delivered;
|
|
115
|
+
const nativeHeaders = (0, index_js_namespaceObject.responseHeaders)(response.headers);
|
|
116
|
+
const body = new ReadableStream({
|
|
117
|
+
async pull (controller) {
|
|
118
|
+
try {
|
|
119
|
+
const part = await reader.read();
|
|
120
|
+
if (!part.done) {
|
|
121
|
+
if (canCapture) {
|
|
122
|
+
total += part.value.byteLength;
|
|
123
|
+
if (total <= maximum) chunks.push(part.value.slice());
|
|
124
|
+
else {
|
|
125
|
+
canCapture = false;
|
|
126
|
+
chunks.length = 0;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
controller.enqueue(part.value);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
reader.releaseLock();
|
|
133
|
+
const completion = await session.completion;
|
|
134
|
+
const policy = session.committedPolicy;
|
|
135
|
+
if (canCapture && completion.cacheEligible && policy?.cache.mode === 'public' && policy.cache.maxAgeSeconds > 0 && 200 === delivered.status && !delivered.headers.has('vary') && (0, index_js_namespaceObject.permitsDocumentCache)({
|
|
136
|
+
...policy,
|
|
137
|
+
status: delivered.status,
|
|
138
|
+
headers: (0, index_js_namespaceObject.responseHeaders)(delivered.headers)
|
|
139
|
+
})) {
|
|
140
|
+
const maxAgeSeconds = policy.cache.maxAgeSeconds;
|
|
141
|
+
const bytes = new Uint8Array(total);
|
|
142
|
+
let offset = 0;
|
|
143
|
+
for (const chunk of chunks){
|
|
144
|
+
bytes.set(chunk, offset);
|
|
145
|
+
offset += chunk.byteLength;
|
|
146
|
+
}
|
|
147
|
+
const commit = async (headers)=>{
|
|
148
|
+
if (!headers || headers.has('vary') || !(0, index_js_namespaceObject.permitsDocumentCache)({
|
|
149
|
+
...policy,
|
|
150
|
+
status: delivered.status,
|
|
151
|
+
headers: (0, index_js_namespaceObject.responseHeaders)(headers)
|
|
152
|
+
})) return;
|
|
153
|
+
const lifetimeSeconds = Math.min(maxAgeSeconds, ...(0, index_js_namespaceObject.headerMaxAgeSeconds)(headers));
|
|
154
|
+
const age = headers.get('age')?.trim() ?? '0';
|
|
155
|
+
const date = Date.parse(headers.get('date') ?? '');
|
|
156
|
+
const ageSeconds = Math.max(/^\d+$/u.test(age) ? Number(age) : 0, Number.isFinite(date) ? Math.floor((Date.now() - date) / 1000) : 0);
|
|
157
|
+
if (lifetimeSeconds - ageSeconds <= 0) return;
|
|
158
|
+
try {
|
|
159
|
+
const storedAt = Date.now() - 1000 * ageSeconds;
|
|
160
|
+
await options.cache?.set(key, {
|
|
161
|
+
identityKey,
|
|
162
|
+
storedAt,
|
|
163
|
+
expiresAt: storedAt + 1000 * lifetimeSeconds,
|
|
164
|
+
status: 200,
|
|
165
|
+
statusText: delivered.statusText,
|
|
166
|
+
headers: nativeHeaders,
|
|
167
|
+
bytes
|
|
168
|
+
});
|
|
169
|
+
} catch (error) {
|
|
170
|
+
options.onCacheError?.(error);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (options.confirmDelivery) {
|
|
174
|
+
chunks.length = 0;
|
|
175
|
+
controller.close();
|
|
176
|
+
options.confirmDelivery(delivered).then(commit).catch((error)=>{
|
|
177
|
+
options.onCacheError?.(error);
|
|
178
|
+
});
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
commit(delivered.headers).catch((error)=>{
|
|
182
|
+
options.onCacheError?.(error);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
chunks.length = 0;
|
|
186
|
+
controller.close();
|
|
187
|
+
} catch (error) {
|
|
188
|
+
chunks.length = 0;
|
|
189
|
+
session.fail(error);
|
|
190
|
+
await session.completion;
|
|
191
|
+
controller.error(error);
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
async cancel (reason) {
|
|
195
|
+
chunks.length = 0;
|
|
196
|
+
reader.cancel(reason).catch(()=>void 0);
|
|
197
|
+
session.abort(reason);
|
|
198
|
+
await session.completion;
|
|
199
|
+
reader.releaseLock();
|
|
200
|
+
}
|
|
201
|
+
}, {
|
|
202
|
+
highWaterMark: 0
|
|
203
|
+
});
|
|
204
|
+
delivered = new Response(body, {
|
|
205
|
+
status: response.status,
|
|
206
|
+
statusText: response.statusText,
|
|
207
|
+
headers: response.headers
|
|
208
|
+
});
|
|
209
|
+
return delivered;
|
|
210
|
+
}
|
|
211
|
+
function openSession(request, options) {
|
|
212
|
+
const session = (0, index_js_namespaceObject.createRequestSession)({
|
|
213
|
+
request,
|
|
214
|
+
identity: options.identity,
|
|
215
|
+
platform: {
|
|
216
|
+
kind: options.platform ?? 'node',
|
|
217
|
+
bindings: options.context.bindings
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
options.executionContext?.waitUntil(session.completion);
|
|
221
|
+
return session;
|
|
222
|
+
}
|
|
223
|
+
async function dispatchNativeRequest(request, options) {
|
|
224
|
+
const rscRejection = rejectNativeRscRequest(request);
|
|
225
|
+
if (rscRejection) return rscRejection;
|
|
226
|
+
const identityKey = (0, external_identity_js_namespaceObject.identityCacheKey)(options.identity);
|
|
227
|
+
if ('react' === options.identity.renderer) throw new Error('Native dispatch requires Solid or Octane.');
|
|
228
|
+
let session = openSession(request, options);
|
|
229
|
+
const { bindings: _bindings, ...renderContext } = options.context;
|
|
230
|
+
let context = {
|
|
231
|
+
...renderContext,
|
|
232
|
+
session,
|
|
233
|
+
entry: session.identity
|
|
234
|
+
};
|
|
235
|
+
let handlerStarted = false;
|
|
236
|
+
try {
|
|
237
|
+
session.signal.throwIfAborted();
|
|
238
|
+
const manifest = await (0, external_abort_js_namespaceObject.untilAborted)(options.loadManifest(), session.signal);
|
|
239
|
+
(0, external_identity_js_namespaceObject.assertRendererIdentity)(manifest.rendererIdentity, options.identity);
|
|
240
|
+
if ('function' != typeof manifest.nativeRequestHandler) throw new Error('Native renderer manifest has no request handler.');
|
|
241
|
+
const csr = await chooseCSR(request, manifest, context);
|
|
242
|
+
session.signal.throwIfAborted();
|
|
243
|
+
if (csr && !manifest.nativeCSRRequestHandler) throw new Error('unsupported-renderer-capability: selected CSR requires a native document handler.');
|
|
244
|
+
if (csr) session.markFallback();
|
|
245
|
+
if (void 0 !== options.hydrationBuildId && ('string' != typeof options.hydrationBuildId || !options.hydrationBuildId.trim())) throw new Error('Native hydration cache identity requires a nonempty build ID.');
|
|
246
|
+
const cacheKey = (0, index_js_namespaceObject.documentCacheKey)(options.identity, JSON.stringify([
|
|
247
|
+
request.url,
|
|
248
|
+
options.hydrationBuildId ?? options.identity.buildId,
|
|
249
|
+
options.context.assets ?? [],
|
|
250
|
+
options.context.nonce ?? null
|
|
251
|
+
]));
|
|
252
|
+
const cacheAllowed = !csr && permitsCacheLookup(request);
|
|
253
|
+
if (cacheAllowed && options.cache) try {
|
|
254
|
+
const cached = await (0, external_abort_js_namespaceObject.untilAborted)(options.cache.get(cacheKey), session.signal);
|
|
255
|
+
if (cached && isReusableDocument(cached, identityKey, requestMaxAgeSeconds(request))) {
|
|
256
|
+
const age = documentAgeSeconds(cached);
|
|
257
|
+
session.resolveResponse({
|
|
258
|
+
kind: 'terminal',
|
|
259
|
+
status: cached.status,
|
|
260
|
+
statusText: cached.statusText,
|
|
261
|
+
headers: [
|
|
262
|
+
...cached.headers.filter(([name])=>'age' !== name.toLowerCase()),
|
|
263
|
+
[
|
|
264
|
+
'age',
|
|
265
|
+
String(age)
|
|
266
|
+
]
|
|
267
|
+
],
|
|
268
|
+
cache: {
|
|
269
|
+
mode: 'no-store'
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
return session.respond(new ReadableStream({
|
|
273
|
+
start (controller) {
|
|
274
|
+
controller.enqueue(cached.bytes.slice());
|
|
275
|
+
controller.close();
|
|
276
|
+
}
|
|
277
|
+
}));
|
|
278
|
+
}
|
|
279
|
+
} catch (error) {
|
|
280
|
+
if (session.signal.aborted) throw error;
|
|
281
|
+
options.onCacheError?.(error);
|
|
282
|
+
}
|
|
283
|
+
session.signal.throwIfAborted();
|
|
284
|
+
handlerStarted = true;
|
|
285
|
+
let response = await (0, external_abort_js_namespaceObject.untilAborted)((csr ? manifest.nativeCSRRequestHandler : manifest.nativeRequestHandler)(request, context), session.signal);
|
|
286
|
+
if (!(response instanceof Response)) throw new TypeError('Native renderer handler must return a Fetch Response.');
|
|
287
|
+
response = normalizeTerminalResponse(response, session);
|
|
288
|
+
if ('HEAD' === request.method && response.body) {
|
|
289
|
+
response.body.cancel().catch(()=>{});
|
|
290
|
+
return new Response(null, {
|
|
291
|
+
status: response.status,
|
|
292
|
+
statusText: response.statusText,
|
|
293
|
+
headers: response.headers
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
return cacheAllowed ? captureDocument(response, session, options, cacheKey, identityKey) : response;
|
|
297
|
+
} catch (error) {
|
|
298
|
+
const committed = void 0 !== session.committedPolicy;
|
|
299
|
+
session.fail(error);
|
|
300
|
+
await session.completion;
|
|
301
|
+
if (!handlerStarted || committed || request.signal.aborted || !options.onError) throw error;
|
|
302
|
+
session = openSession(request, options);
|
|
303
|
+
session.markFallback();
|
|
304
|
+
context = {
|
|
305
|
+
...context,
|
|
306
|
+
session
|
|
307
|
+
};
|
|
308
|
+
try {
|
|
309
|
+
const response = await (0, external_abort_js_namespaceObject.untilAborted)(options.onError(error, request, context), session.signal);
|
|
310
|
+
if (!(response instanceof Response)) throw new TypeError('Native fallback must return a Fetch Response.');
|
|
311
|
+
const owned = normalizeTerminalResponse(response, session);
|
|
312
|
+
if ('HEAD' === request.method && owned.body) {
|
|
313
|
+
owned.body.cancel().catch(()=>{});
|
|
314
|
+
return new Response(null, {
|
|
315
|
+
status: owned.status,
|
|
316
|
+
statusText: owned.statusText,
|
|
317
|
+
headers: owned.headers
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
return owned;
|
|
321
|
+
} catch (fallbackError) {
|
|
322
|
+
session.fail(fallbackError);
|
|
323
|
+
await session.completion;
|
|
324
|
+
throw fallbackError;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
function dispatchNativeNodeRequest(request, options) {
|
|
329
|
+
const fetchRequest = null === request.body ? request : new Request(request.url, {
|
|
330
|
+
method: request.method,
|
|
331
|
+
headers: request.headers,
|
|
332
|
+
body: request.body,
|
|
333
|
+
signal: request.signal,
|
|
334
|
+
duplex: 'half'
|
|
335
|
+
});
|
|
336
|
+
return dispatchNativeRequest(fetchRequest, {
|
|
337
|
+
...options,
|
|
338
|
+
platform: 'node'
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
exports.dispatchNativeNodeRequest = __webpack_exports__.dispatchNativeNodeRequest;
|
|
342
|
+
exports.dispatchNativeRequest = __webpack_exports__.dispatchNativeRequest;
|
|
343
|
+
exports.rejectNativeRscRequest = __webpack_exports__.rejectNativeRscRequest;
|
|
344
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
345
|
+
"dispatchNativeNodeRequest",
|
|
346
|
+
"dispatchNativeRequest",
|
|
347
|
+
"rejectNativeRscRequest"
|
|
348
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
349
|
+
Object.defineProperty(exports, '__esModule', {
|
|
350
|
+
value: true
|
|
351
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
RENDERER_ASSET_MANIFEST_FILE: ()=>external_assets_js_namespaceObject.RENDERER_ASSET_MANIFEST_FILE,
|
|
32
|
+
dispatchNativeNodeRequest: ()=>external_dispatch_js_namespaceObject.dispatchNativeNodeRequest,
|
|
33
|
+
dispatchNativeRequest: ()=>external_dispatch_js_namespaceObject.dispatchNativeRequest,
|
|
34
|
+
dispatchNativeWorkerRequest: ()=>external_worker_js_namespaceObject.dispatchNativeWorkerRequest,
|
|
35
|
+
rejectNativeRscRequest: ()=>external_dispatch_js_namespaceObject.rejectNativeRscRequest,
|
|
36
|
+
validateNativeClientAssetManifest: ()=>external_assets_js_namespaceObject.validateNativeClientAssetManifest
|
|
37
|
+
});
|
|
38
|
+
const external_assets_js_namespaceObject = require("./assets.js");
|
|
39
|
+
const external_dispatch_js_namespaceObject = require("./dispatch.js");
|
|
40
|
+
const external_worker_js_namespaceObject = require("./worker.js");
|
|
41
|
+
exports.RENDERER_ASSET_MANIFEST_FILE = __webpack_exports__.RENDERER_ASSET_MANIFEST_FILE;
|
|
42
|
+
exports.dispatchNativeNodeRequest = __webpack_exports__.dispatchNativeNodeRequest;
|
|
43
|
+
exports.dispatchNativeRequest = __webpack_exports__.dispatchNativeRequest;
|
|
44
|
+
exports.dispatchNativeWorkerRequest = __webpack_exports__.dispatchNativeWorkerRequest;
|
|
45
|
+
exports.rejectNativeRscRequest = __webpack_exports__.rejectNativeRscRequest;
|
|
46
|
+
exports.validateNativeClientAssetManifest = __webpack_exports__.validateNativeClientAssetManifest;
|
|
47
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
48
|
+
"RENDERER_ASSET_MANIFEST_FILE",
|
|
49
|
+
"dispatchNativeNodeRequest",
|
|
50
|
+
"dispatchNativeRequest",
|
|
51
|
+
"dispatchNativeWorkerRequest",
|
|
52
|
+
"rejectNativeRscRequest",
|
|
53
|
+
"validateNativeClientAssetManifest"
|
|
54
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
55
|
+
Object.defineProperty(exports, '__esModule', {
|
|
56
|
+
value: true
|
|
57
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.r = (exports1)=>{
|
|
5
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
6
|
+
value: 'Module'
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
})();
|
|
13
|
+
var __webpack_exports__ = {};
|
|
14
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
16
|
+
Object.defineProperty(exports, '__esModule', {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
dispatchNativeWorkerRequest: ()=>dispatchNativeWorkerRequest
|
|
32
|
+
});
|
|
33
|
+
const external_document_js_namespaceObject = require("../document.js");
|
|
34
|
+
const external_identity_js_namespaceObject = require("../identity.js");
|
|
35
|
+
const external_dispatch_js_namespaceObject = require("./dispatch.js");
|
|
36
|
+
function workerManifest(bundle, identity) {
|
|
37
|
+
const candidate = bundle && 'object' == typeof bundle && !('rendererIdentity' in bundle) && 'default' in bundle ? bundle.default : bundle;
|
|
38
|
+
if (!candidate || 'object' != typeof candidate && 'function' != typeof candidate || !('rendererIdentity' in candidate) || !('nativeRequestHandler' in candidate) || 'function' != typeof candidate.nativeRequestHandler) throw new Error('Native worker bundle requires its renderer identity and request handler.');
|
|
39
|
+
(0, external_identity_js_namespaceObject.assertRendererIdentity)(candidate.rendererIdentity, identity);
|
|
40
|
+
return candidate;
|
|
41
|
+
}
|
|
42
|
+
function dispatchNativeWorkerRequest(request, options) {
|
|
43
|
+
const rejection = (0, external_dispatch_js_namespaceObject.rejectNativeRscRequest)(request);
|
|
44
|
+
if (rejection) return Promise.resolve(rejection);
|
|
45
|
+
const { resources } = options;
|
|
46
|
+
const query = new URL(request.url).searchParams;
|
|
47
|
+
const forceCSR = Boolean(resources.csrFallbackHeader && (query.get('csr') || request.headers.get(resources.csrFallbackHeader)));
|
|
48
|
+
const bindings = null !== options.bindings && 'object' == typeof options.bindings ? options.bindings : {};
|
|
49
|
+
return (0, external_dispatch_js_namespaceObject.dispatchNativeRequest)(request, {
|
|
50
|
+
identity: options.identity,
|
|
51
|
+
platform: 'worker',
|
|
52
|
+
executionContext: options.executionContext,
|
|
53
|
+
hydrationBuildId: resources.hydrationBuildId,
|
|
54
|
+
loadManifest: ()=>workerManifest(options.bundle, options.identity),
|
|
55
|
+
context: {
|
|
56
|
+
assets: (0, external_document_js_namespaceObject.collectDocumentAssets)(resources.assets),
|
|
57
|
+
nativeManifest: resources.nativeManifest,
|
|
58
|
+
bindings,
|
|
59
|
+
serverConfig: {
|
|
60
|
+
...resources.serverConfig,
|
|
61
|
+
forceCSR
|
|
62
|
+
},
|
|
63
|
+
nonce: resources.nonce
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.dispatchNativeWorkerRequest = __webpack_exports__.dispatchNativeWorkerRequest;
|
|
68
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
69
|
+
"dispatchNativeWorkerRequest"
|
|
70
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
71
|
+
Object.defineProperty(exports, '__esModule', {
|
|
72
|
+
value: true
|
|
73
|
+
});
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
documentCacheKey: ()=>documentCacheKey,
|
|
32
|
+
headerMaxAgeSeconds: ()=>headerMaxAgeSeconds,
|
|
33
|
+
parseCacheControl: ()=>parseCacheControl,
|
|
34
|
+
permitsDocumentCache: ()=>permitsDocumentCache,
|
|
35
|
+
policyHeaders: ()=>policyHeaders,
|
|
36
|
+
responseHeaders: ()=>responseHeaders,
|
|
37
|
+
restrictDocumentCache: ()=>restrictDocumentCache
|
|
38
|
+
});
|
|
39
|
+
const external_identity_js_namespaceObject = require("../identity.js");
|
|
40
|
+
function documentCacheKey(identity, requestKey) {
|
|
41
|
+
if ('string' != typeof requestKey || 0 === requestKey.length) throw new TypeError('A document cache request key must be nonempty.');
|
|
42
|
+
return JSON.stringify([
|
|
43
|
+
(0, external_identity_js_namespaceObject.identityCacheKey)(identity),
|
|
44
|
+
requestKey
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
function responseHeaders(headers) {
|
|
48
|
+
const fields = [];
|
|
49
|
+
headers.forEach((value, name)=>{
|
|
50
|
+
if ('set-cookie' !== name) fields.push([
|
|
51
|
+
name,
|
|
52
|
+
value
|
|
53
|
+
]);
|
|
54
|
+
});
|
|
55
|
+
for (const cookie of headers.getSetCookie())fields.push([
|
|
56
|
+
'set-cookie',
|
|
57
|
+
cookie
|
|
58
|
+
]);
|
|
59
|
+
return fields;
|
|
60
|
+
}
|
|
61
|
+
function policyHeaders(headers) {
|
|
62
|
+
const result = new Headers();
|
|
63
|
+
for (const [name, value] of headers)result.append(name, value);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
const NO_STORE = {
|
|
67
|
+
mode: 'no-store',
|
|
68
|
+
ages: []
|
|
69
|
+
};
|
|
70
|
+
const CACHE_DIRECTIVE = /\s*([!#$%&'*+.^_`|~\w-]+)\s*(?:=\s*([!#$%&'*+.^_`|~\w-]+|"(?:[^"\\]|\\.)*"))?\s*(?:,|$)/uy;
|
|
71
|
+
function parseCacheControl(value) {
|
|
72
|
+
const directives = [];
|
|
73
|
+
let index = 0;
|
|
74
|
+
while(index < value.length){
|
|
75
|
+
CACHE_DIRECTIVE.lastIndex = index;
|
|
76
|
+
const match = CACHE_DIRECTIVE.exec(value);
|
|
77
|
+
if (!match || CACHE_DIRECTIVE.lastIndex === index) return;
|
|
78
|
+
directives.push({
|
|
79
|
+
name: match[1].toLowerCase(),
|
|
80
|
+
value: match[2]
|
|
81
|
+
});
|
|
82
|
+
index = CACHE_DIRECTIVE.lastIndex;
|
|
83
|
+
}
|
|
84
|
+
return directives;
|
|
85
|
+
}
|
|
86
|
+
function cacheDirectives(value) {
|
|
87
|
+
let mode = 'public';
|
|
88
|
+
const ages = [];
|
|
89
|
+
const ageNames = new Set();
|
|
90
|
+
const parsed = parseCacheControl(value ?? '');
|
|
91
|
+
if (!parsed) return NO_STORE;
|
|
92
|
+
for (const { name, value: raw } of parsed){
|
|
93
|
+
if ('no-store' === name || 'no-cache' === name) mode = 'no-store';
|
|
94
|
+
else if ('private' === name && 'no-store' !== mode) mode = 'private';
|
|
95
|
+
if ('max-age' === name || 's-maxage' === name) {
|
|
96
|
+
const age = Number(raw);
|
|
97
|
+
if (ageNames.has(name) || !/^\d+$/u.test(raw ?? '') || !Number.isSafeInteger(age)) return NO_STORE;
|
|
98
|
+
ageNames.add(name);
|
|
99
|
+
ages.push(age);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
mode,
|
|
104
|
+
ages
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function headerMaxAgeSeconds(headers) {
|
|
108
|
+
return cacheDirectives(headers.get('cache-control')).ages;
|
|
109
|
+
}
|
|
110
|
+
function headerCacheMode(headers, ages) {
|
|
111
|
+
const control = cacheDirectives(headers.get('cache-control'));
|
|
112
|
+
ages.push(...control.ages);
|
|
113
|
+
if (headers.has('set-cookie') || headers.get('vary')?.split(',').some((value)=>'*' === value.trim())) return 'no-store';
|
|
114
|
+
return control.mode;
|
|
115
|
+
}
|
|
116
|
+
function isSingleHtmlContentType(headers) {
|
|
117
|
+
const type = headers.get('content-type');
|
|
118
|
+
return !type?.includes(',') && type?.split(';')[0].trim().toLowerCase() === 'text/html';
|
|
119
|
+
}
|
|
120
|
+
function permitsDocumentCache(policy) {
|
|
121
|
+
if ('document' !== policy.kind || 200 !== policy.status || 'public' !== policy.cache.mode) return false;
|
|
122
|
+
const headers = policyHeaders(policy.headers);
|
|
123
|
+
return 'public' === headerCacheMode(headers, []) && isSingleHtmlContentType(headers);
|
|
124
|
+
}
|
|
125
|
+
function restrictDocumentCache(policy, sources, outgoing) {
|
|
126
|
+
const original = policyHeaders(policy.headers);
|
|
127
|
+
let mode = policy.cache.mode;
|
|
128
|
+
const ages = 'public' === policy.cache.mode ? [
|
|
129
|
+
policy.cache.maxAgeSeconds
|
|
130
|
+
] : [];
|
|
131
|
+
for (const headers of [
|
|
132
|
+
original,
|
|
133
|
+
...sources,
|
|
134
|
+
outgoing
|
|
135
|
+
]){
|
|
136
|
+
const restricted = headerCacheMode(headers, ages);
|
|
137
|
+
if ('no-store' === restricted) mode = 'no-store';
|
|
138
|
+
else if ('private' === restricted && 'public' === mode) mode = 'private';
|
|
139
|
+
}
|
|
140
|
+
if ('document' !== policy.kind || 200 !== policy.status || !isSingleHtmlContentType(original) || !isSingleHtmlContentType(outgoing)) mode = 'no-store';
|
|
141
|
+
if ('public' === mode) {
|
|
142
|
+
const maxAgeSeconds = Math.min(...ages);
|
|
143
|
+
outgoing.set('cache-control', `public, max-age=${maxAgeSeconds}, s-maxage=${maxAgeSeconds}, must-revalidate`);
|
|
144
|
+
return {
|
|
145
|
+
mode,
|
|
146
|
+
maxAgeSeconds
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
outgoing.set('cache-control', 'private' === mode ? 'private, max-age=0, must-revalidate' : 'no-store');
|
|
150
|
+
return {
|
|
151
|
+
mode
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
exports.documentCacheKey = __webpack_exports__.documentCacheKey;
|
|
155
|
+
exports.headerMaxAgeSeconds = __webpack_exports__.headerMaxAgeSeconds;
|
|
156
|
+
exports.parseCacheControl = __webpack_exports__.parseCacheControl;
|
|
157
|
+
exports.permitsDocumentCache = __webpack_exports__.permitsDocumentCache;
|
|
158
|
+
exports.policyHeaders = __webpack_exports__.policyHeaders;
|
|
159
|
+
exports.responseHeaders = __webpack_exports__.responseHeaders;
|
|
160
|
+
exports.restrictDocumentCache = __webpack_exports__.restrictDocumentCache;
|
|
161
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
162
|
+
"documentCacheKey",
|
|
163
|
+
"headerMaxAgeSeconds",
|
|
164
|
+
"parseCacheControl",
|
|
165
|
+
"permitsDocumentCache",
|
|
166
|
+
"policyHeaders",
|
|
167
|
+
"responseHeaders",
|
|
168
|
+
"restrictDocumentCache"
|
|
169
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
170
|
+
Object.defineProperty(exports, '__esModule', {
|
|
171
|
+
value: true
|
|
172
|
+
});
|