|
|
|
@ -1,478 +0,0 @@
|
|
|
|
|
// _middleware.ts
|
|
|
|
|
var HOST = "snort.social";
|
|
|
|
|
var onRequest = async (context) => {
|
|
|
|
|
const u = new URL(context.request.url);
|
|
|
|
|
const prefixes = ["npub1", "nprofile1", "naddr1", "nevent1", "note1"];
|
|
|
|
|
const isEntityPath = prefixes.some(
|
|
|
|
|
(a) => u.pathname.startsWith(`/${a}`) || u.pathname.startsWith(`/e/${a}`) || u.pathname.startsWith(`/p/${a}`)
|
|
|
|
|
);
|
|
|
|
|
const nostrAddress = u.pathname.match(/^\/([a-zA-Z0-9_]+)$/i);
|
|
|
|
|
const next = await context.next();
|
|
|
|
|
if (u.pathname != "/" && (isEntityPath || nostrAddress)) {
|
|
|
|
|
try {
|
|
|
|
|
let id = u.pathname.split("/").at(-1);
|
|
|
|
|
if (!isEntityPath && nostrAddress) {
|
|
|
|
|
id = `${id}@${HOST}`;
|
|
|
|
|
}
|
|
|
|
|
const fetchApi = `https://nostr.api.v0l.io/api/v1/opengraph/${id}?canonical=${encodeURIComponent(
|
|
|
|
|
`https://${HOST}/%s`
|
|
|
|
|
)}`;
|
|
|
|
|
console.log("Fetching tags from: ", fetchApi);
|
|
|
|
|
const rsp = await fetch(fetchApi, {
|
|
|
|
|
method: "POST",
|
|
|
|
|
body: await next.arrayBuffer(),
|
|
|
|
|
headers: {
|
|
|
|
|
"user-agent": `SnortFunctions/1.0 (https://${HOST})`,
|
|
|
|
|
"content-type": "text/html",
|
|
|
|
|
accept: "text/html"
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if (rsp.ok) {
|
|
|
|
|
const body = await rsp.text();
|
|
|
|
|
if (body.length > 0) {
|
|
|
|
|
return new Response(body, {
|
|
|
|
|
headers: {
|
|
|
|
|
...Object.fromEntries(rsp.headers.entries()),
|
|
|
|
|
"cache-control": "public, max-age=60"
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return next;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ../.wrangler/tmp/pages-aYZOs0/functionsRoutes-0.08773921858373512.mjs
|
|
|
|
|
var routes = [
|
|
|
|
|
{
|
|
|
|
|
routePath: "/",
|
|
|
|
|
mountPath: "/",
|
|
|
|
|
method: "",
|
|
|
|
|
middlewares: [onRequest],
|
|
|
|
|
modules: []
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// ../../../.npm/_npx/32026684e21afda6/node_modules/path-to-regexp/dist.es2015/index.js
|
|
|
|
|
function lexer(str) {
|
|
|
|
|
var tokens = [];
|
|
|
|
|
var i = 0;
|
|
|
|
|
while (i < str.length) {
|
|
|
|
|
var char = str[i];
|
|
|
|
|
if (char === "*" || char === "+" || char === "?") {
|
|
|
|
|
tokens.push({ type: "MODIFIER", index: i, value: str[i++] });
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (char === "\\") {
|
|
|
|
|
tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] });
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (char === "{") {
|
|
|
|
|
tokens.push({ type: "OPEN", index: i, value: str[i++] });
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (char === "}") {
|
|
|
|
|
tokens.push({ type: "CLOSE", index: i, value: str[i++] });
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (char === ":") {
|
|
|
|
|
var name = "";
|
|
|
|
|
var j = i + 1;
|
|
|
|
|
while (j < str.length) {
|
|
|
|
|
var code = str.charCodeAt(j);
|
|
|
|
|
if (
|
|
|
|
|
// `0-9`
|
|
|
|
|
code >= 48 && code <= 57 || // `A-Z`
|
|
|
|
|
code >= 65 && code <= 90 || // `a-z`
|
|
|
|
|
code >= 97 && code <= 122 || // `_`
|
|
|
|
|
code === 95
|
|
|
|
|
) {
|
|
|
|
|
name += str[j++];
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (!name)
|
|
|
|
|
throw new TypeError("Missing parameter name at ".concat(i));
|
|
|
|
|
tokens.push({ type: "NAME", index: i, value: name });
|
|
|
|
|
i = j;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (char === "(") {
|
|
|
|
|
var count = 1;
|
|
|
|
|
var pattern = "";
|
|
|
|
|
var j = i + 1;
|
|
|
|
|
if (str[j] === "?") {
|
|
|
|
|
throw new TypeError('Pattern cannot start with "?" at '.concat(j));
|
|
|
|
|
}
|
|
|
|
|
while (j < str.length) {
|
|
|
|
|
if (str[j] === "\\") {
|
|
|
|
|
pattern += str[j++] + str[j++];
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (str[j] === ")") {
|
|
|
|
|
count--;
|
|
|
|
|
if (count === 0) {
|
|
|
|
|
j++;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else if (str[j] === "(") {
|
|
|
|
|
count++;
|
|
|
|
|
if (str[j + 1] !== "?") {
|
|
|
|
|
throw new TypeError("Capturing groups are not allowed at ".concat(j));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
pattern += str[j++];
|
|
|
|
|
}
|
|
|
|
|
if (count)
|
|
|
|
|
throw new TypeError("Unbalanced pattern at ".concat(i));
|
|
|
|
|
if (!pattern)
|
|
|
|
|
throw new TypeError("Missing pattern at ".concat(i));
|
|
|
|
|
tokens.push({ type: "PATTERN", index: i, value: pattern });
|
|
|
|
|
i = j;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
tokens.push({ type: "CHAR", index: i, value: str[i++] });
|
|
|
|
|
}
|
|
|
|
|
tokens.push({ type: "END", index: i, value: "" });
|
|
|
|
|
return tokens;
|
|
|
|
|
}
|
|
|
|
|
function parse(str, options) {
|
|
|
|
|
if (options === void 0) {
|
|
|
|
|
options = {};
|
|
|
|
|
}
|
|
|
|
|
var tokens = lexer(str);
|
|
|
|
|
var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a;
|
|
|
|
|
var defaultPattern = "[^".concat(escapeString(options.delimiter || "/#?"), "]+?");
|
|
|
|
|
var result = [];
|
|
|
|
|
var key = 0;
|
|
|
|
|
var i = 0;
|
|
|
|
|
var path = "";
|
|
|
|
|
var tryConsume = function(type) {
|
|
|
|
|
if (i < tokens.length && tokens[i].type === type)
|
|
|
|
|
return tokens[i++].value;
|
|
|
|
|
};
|
|
|
|
|
var mustConsume = function(type) {
|
|
|
|
|
var value2 = tryConsume(type);
|
|
|
|
|
if (value2 !== void 0)
|
|
|
|
|
return value2;
|
|
|
|
|
var _a2 = tokens[i], nextType = _a2.type, index = _a2.index;
|
|
|
|
|
throw new TypeError("Unexpected ".concat(nextType, " at ").concat(index, ", expected ").concat(type));
|
|
|
|
|
};
|
|
|
|
|
var consumeText = function() {
|
|
|
|
|
var result2 = "";
|
|
|
|
|
var value2;
|
|
|
|
|
while (value2 = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR")) {
|
|
|
|
|
result2 += value2;
|
|
|
|
|
}
|
|
|
|
|
return result2;
|
|
|
|
|
};
|
|
|
|
|
while (i < tokens.length) {
|
|
|
|
|
var char = tryConsume("CHAR");
|
|
|
|
|
var name = tryConsume("NAME");
|
|
|
|
|
var pattern = tryConsume("PATTERN");
|
|
|
|
|
if (name || pattern) {
|
|
|
|
|
var prefix = char || "";
|
|
|
|
|
if (prefixes.indexOf(prefix) === -1) {
|
|
|
|
|
path += prefix;
|
|
|
|
|
prefix = "";
|
|
|
|
|
}
|
|
|
|
|
if (path) {
|
|
|
|
|
result.push(path);
|
|
|
|
|
path = "";
|
|
|
|
|
}
|
|
|
|
|
result.push({
|
|
|
|
|
name: name || key++,
|
|
|
|
|
prefix,
|
|
|
|
|
suffix: "",
|
|
|
|
|
pattern: pattern || defaultPattern,
|
|
|
|
|
modifier: tryConsume("MODIFIER") || ""
|
|
|
|
|
});
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
var value = char || tryConsume("ESCAPED_CHAR");
|
|
|
|
|
if (value) {
|
|
|
|
|
path += value;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (path) {
|
|
|
|
|
result.push(path);
|
|
|
|
|
path = "";
|
|
|
|
|
}
|
|
|
|
|
var open = tryConsume("OPEN");
|
|
|
|
|
if (open) {
|
|
|
|
|
var prefix = consumeText();
|
|
|
|
|
var name_1 = tryConsume("NAME") || "";
|
|
|
|
|
var pattern_1 = tryConsume("PATTERN") || "";
|
|
|
|
|
var suffix = consumeText();
|
|
|
|
|
mustConsume("CLOSE");
|
|
|
|
|
result.push({
|
|
|
|
|
name: name_1 || (pattern_1 ? key++ : ""),
|
|
|
|
|
pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,
|
|
|
|
|
prefix,
|
|
|
|
|
suffix,
|
|
|
|
|
modifier: tryConsume("MODIFIER") || ""
|
|
|
|
|
});
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
mustConsume("END");
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
function match(str, options) {
|
|
|
|
|
var keys = [];
|
|
|
|
|
var re = pathToRegexp(str, keys, options);
|
|
|
|
|
return regexpToFunction(re, keys, options);
|
|
|
|
|
}
|
|
|
|
|
function regexpToFunction(re, keys, options) {
|
|
|
|
|
if (options === void 0) {
|
|
|
|
|
options = {};
|
|
|
|
|
}
|
|
|
|
|
var _a = options.decode, decode = _a === void 0 ? function(x) {
|
|
|
|
|
return x;
|
|
|
|
|
} : _a;
|
|
|
|
|
return function(pathname) {
|
|
|
|
|
var m = re.exec(pathname);
|
|
|
|
|
if (!m)
|
|
|
|
|
return false;
|
|
|
|
|
var path = m[0], index = m.index;
|
|
|
|
|
var params = /* @__PURE__ */ Object.create(null);
|
|
|
|
|
var _loop_1 = function(i2) {
|
|
|
|
|
if (m[i2] === void 0)
|
|
|
|
|
return "continue";
|
|
|
|
|
var key = keys[i2 - 1];
|
|
|
|
|
if (key.modifier === "*" || key.modifier === "+") {
|
|
|
|
|
params[key.name] = m[i2].split(key.prefix + key.suffix).map(function(value) {
|
|
|
|
|
return decode(value, key);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
params[key.name] = decode(m[i2], key);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
for (var i = 1; i < m.length; i++) {
|
|
|
|
|
_loop_1(i);
|
|
|
|
|
}
|
|
|
|
|
return { path, index, params };
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
function escapeString(str) {
|
|
|
|
|
return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
|
|
|
|
|
}
|
|
|
|
|
function flags(options) {
|
|
|
|
|
return options && options.sensitive ? "" : "i";
|
|
|
|
|
}
|
|
|
|
|
function regexpToRegexp(path, keys) {
|
|
|
|
|
if (!keys)
|
|
|
|
|
return path;
|
|
|
|
|
var groupsRegex = /\((?:\?<(.*?)>)?(?!\?)/g;
|
|
|
|
|
var index = 0;
|
|
|
|
|
var execResult = groupsRegex.exec(path.source);
|
|
|
|
|
while (execResult) {
|
|
|
|
|
keys.push({
|
|
|
|
|
// Use parenthesized substring match if available, index otherwise
|
|
|
|
|
name: execResult[1] || index++,
|
|
|
|
|
prefix: "",
|
|
|
|
|
suffix: "",
|
|
|
|
|
modifier: "",
|
|
|
|
|
pattern: ""
|
|
|
|
|
});
|
|
|
|
|
execResult = groupsRegex.exec(path.source);
|
|
|
|
|
}
|
|
|
|
|
return path;
|
|
|
|
|
}
|
|
|
|
|
function arrayToRegexp(paths, keys, options) {
|
|
|
|
|
var parts = paths.map(function(path) {
|
|
|
|
|
return pathToRegexp(path, keys, options).source;
|
|
|
|
|
});
|
|
|
|
|
return new RegExp("(?:".concat(parts.join("|"), ")"), flags(options));
|
|
|
|
|
}
|
|
|
|
|
function stringToRegexp(path, keys, options) {
|
|
|
|
|
return tokensToRegexp(parse(path, options), keys, options);
|
|
|
|
|
}
|
|
|
|
|
function tokensToRegexp(tokens, keys, options) {
|
|
|
|
|
if (options === void 0) {
|
|
|
|
|
options = {};
|
|
|
|
|
}
|
|
|
|
|
var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function(x) {
|
|
|
|
|
return x;
|
|
|
|
|
} : _d, _e = options.delimiter, delimiter = _e === void 0 ? "/#?" : _e, _f = options.endsWith, endsWith = _f === void 0 ? "" : _f;
|
|
|
|
|
var endsWithRe = "[".concat(escapeString(endsWith), "]|$");
|
|
|
|
|
var delimiterRe = "[".concat(escapeString(delimiter), "]");
|
|
|
|
|
var route = start ? "^" : "";
|
|
|
|
|
for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
|
|
|
|
|
var token = tokens_1[_i];
|
|
|
|
|
if (typeof token === "string") {
|
|
|
|
|
route += escapeString(encode(token));
|
|
|
|
|
} else {
|
|
|
|
|
var prefix = escapeString(encode(token.prefix));
|
|
|
|
|
var suffix = escapeString(encode(token.suffix));
|
|
|
|
|
if (token.pattern) {
|
|
|
|
|
if (keys)
|
|
|
|
|
keys.push(token);
|
|
|
|
|
if (prefix || suffix) {
|
|
|
|
|
if (token.modifier === "+" || token.modifier === "*") {
|
|
|
|
|
var mod = token.modifier === "*" ? "?" : "";
|
|
|
|
|
route += "(?:".concat(prefix, "((?:").concat(token.pattern, ")(?:").concat(suffix).concat(prefix, "(?:").concat(token.pattern, "))*)").concat(suffix, ")").concat(mod);
|
|
|
|
|
} else {
|
|
|
|
|
route += "(?:".concat(prefix, "(").concat(token.pattern, ")").concat(suffix, ")").concat(token.modifier);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (token.modifier === "+" || token.modifier === "*") {
|
|
|
|
|
route += "((?:".concat(token.pattern, ")").concat(token.modifier, ")");
|
|
|
|
|
} else {
|
|
|
|
|
route += "(".concat(token.pattern, ")").concat(token.modifier);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
route += "(?:".concat(prefix).concat(suffix, ")").concat(token.modifier);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (end) {
|
|
|
|
|
if (!strict)
|
|
|
|
|
route += "".concat(delimiterRe, "?");
|
|
|
|
|
route += !options.endsWith ? "$" : "(?=".concat(endsWithRe, ")");
|
|
|
|
|
} else {
|
|
|
|
|
var endToken = tokens[tokens.length - 1];
|
|
|
|
|
var isEndDelimited = typeof endToken === "string" ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1 : endToken === void 0;
|
|
|
|
|
if (!strict) {
|
|
|
|
|
route += "(?:".concat(delimiterRe, "(?=").concat(endsWithRe, "))?");
|
|
|
|
|
}
|
|
|
|
|
if (!isEndDelimited) {
|
|
|
|
|
route += "(?=".concat(delimiterRe, "|").concat(endsWithRe, ")");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new RegExp(route, flags(options));
|
|
|
|
|
}
|
|
|
|
|
function pathToRegexp(path, keys, options) {
|
|
|
|
|
if (path instanceof RegExp)
|
|
|
|
|
return regexpToRegexp(path, keys);
|
|
|
|
|
if (Array.isArray(path))
|
|
|
|
|
return arrayToRegexp(path, keys, options);
|
|
|
|
|
return stringToRegexp(path, keys, options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ../../../.npm/_npx/32026684e21afda6/node_modules/wrangler/templates/pages-template-worker.ts
|
|
|
|
|
var escapeRegex = /[.+?^${}()|[\]\\]/g;
|
|
|
|
|
function* executeRequest(request) {
|
|
|
|
|
const requestPath = new URL(request.url).pathname;
|
|
|
|
|
for (const route of [...routes].reverse()) {
|
|
|
|
|
if (route.method && route.method !== request.method) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
const routeMatcher = match(route.routePath.replace(escapeRegex, "\\$&"), {
|
|
|
|
|
end: false
|
|
|
|
|
});
|
|
|
|
|
const mountMatcher = match(route.mountPath.replace(escapeRegex, "\\$&"), {
|
|
|
|
|
end: false
|
|
|
|
|
});
|
|
|
|
|
const matchResult = routeMatcher(requestPath);
|
|
|
|
|
const mountMatchResult = mountMatcher(requestPath);
|
|
|
|
|
if (matchResult && mountMatchResult) {
|
|
|
|
|
for (const handler of route.middlewares.flat()) {
|
|
|
|
|
yield {
|
|
|
|
|
handler,
|
|
|
|
|
params: matchResult.params,
|
|
|
|
|
path: mountMatchResult.path
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (const route of routes) {
|
|
|
|
|
if (route.method && route.method !== request.method) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
const routeMatcher = match(route.routePath.replace(escapeRegex, "\\$&"), {
|
|
|
|
|
end: true
|
|
|
|
|
});
|
|
|
|
|
const mountMatcher = match(route.mountPath.replace(escapeRegex, "\\$&"), {
|
|
|
|
|
end: false
|
|
|
|
|
});
|
|
|
|
|
const matchResult = routeMatcher(requestPath);
|
|
|
|
|
const mountMatchResult = mountMatcher(requestPath);
|
|
|
|
|
if (matchResult && mountMatchResult && route.modules.length) {
|
|
|
|
|
for (const handler of route.modules.flat()) {
|
|
|
|
|
yield {
|
|
|
|
|
handler,
|
|
|
|
|
params: matchResult.params,
|
|
|
|
|
path: matchResult.path
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var pages_template_worker_default = {
|
|
|
|
|
async fetch(originalRequest, env, workerContext) {
|
|
|
|
|
let request = originalRequest;
|
|
|
|
|
const handlerIterator = executeRequest(request);
|
|
|
|
|
let data = {};
|
|
|
|
|
let isFailOpen = false;
|
|
|
|
|
const next = async (input, init) => {
|
|
|
|
|
if (input !== void 0) {
|
|
|
|
|
let url = input;
|
|
|
|
|
if (typeof input === "string") {
|
|
|
|
|
url = new URL(input, request.url).toString();
|
|
|
|
|
}
|
|
|
|
|
request = new Request(url, init);
|
|
|
|
|
}
|
|
|
|
|
const result = handlerIterator.next();
|
|
|
|
|
if (result.done === false) {
|
|
|
|
|
const { handler, params, path } = result.value;
|
|
|
|
|
const context = {
|
|
|
|
|
request: new Request(request.clone()),
|
|
|
|
|
functionPath: path,
|
|
|
|
|
next,
|
|
|
|
|
params,
|
|
|
|
|
get data() {
|
|
|
|
|
return data;
|
|
|
|
|
},
|
|
|
|
|
set data(value) {
|
|
|
|
|
if (typeof value !== "object" || value === null) {
|
|
|
|
|
throw new Error("context.data must be an object");
|
|
|
|
|
}
|
|
|
|
|
data = value;
|
|
|
|
|
},
|
|
|
|
|
env,
|
|
|
|
|
waitUntil: workerContext.waitUntil.bind(workerContext),
|
|
|
|
|
passThroughOnException: () => {
|
|
|
|
|
isFailOpen = true;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const response = await handler(context);
|
|
|
|
|
if (!(response instanceof Response)) {
|
|
|
|
|
throw new Error("Your Pages function should return a Response");
|
|
|
|
|
}
|
|
|
|
|
return cloneResponse(response);
|
|
|
|
|
} else if ("ASSETS") {
|
|
|
|
|
const response = await env["ASSETS"].fetch(request);
|
|
|
|
|
return cloneResponse(response);
|
|
|
|
|
} else {
|
|
|
|
|
const response = await fetch(request);
|
|
|
|
|
return cloneResponse(response);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
try {
|
|
|
|
|
return await next();
|
|
|
|
|
} catch (error) {
|
|
|
|
|
if (isFailOpen) {
|
|
|
|
|
const response = await env["ASSETS"].fetch(request);
|
|
|
|
|
return cloneResponse(response);
|
|
|
|
|
}
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var cloneResponse = (response) => (
|
|
|
|
|
// https://fetch.spec.whatwg.org/#null-body-status
|
|
|
|
|
new Response(
|
|
|
|
|
[101, 204, 205, 304].includes(response.status) ? null : response.body,
|
|
|
|
|
response
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
export {
|
|
|
|
|
pages_template_worker_default as default
|
|
|
|
|
};
|