198 lines
6.2 KiB
JavaScript
198 lines
6.2 KiB
JavaScript
/*
|
|
* Extracted from browser-delivered Turbopack chunk: 5d5b47876e53e564.da1ba52a93.js
|
|
* Module id: 947
|
|
* For reading/searching only; this factory depends on the original Turbopack runtime.
|
|
*/
|
|
|
|
const moduleFactory = (e, t, r) => {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", { value: !0 });
|
|
var n = {
|
|
compileNonPath: function () {
|
|
return f;
|
|
},
|
|
matchHas: function () {
|
|
return d;
|
|
},
|
|
parseDestination: function () {
|
|
return m;
|
|
},
|
|
prepareDestination: function () {
|
|
return p;
|
|
},
|
|
};
|
|
for (var o in n) Object.defineProperty(r, o, { enumerable: !0, get: n[o] });
|
|
let a = e.r(205240),
|
|
i = e.r(39517),
|
|
l = e.r(617286),
|
|
s = e.r(106491),
|
|
c = e.r(349005);
|
|
function u(e) {
|
|
return e.replace(/__ESC_COLON_/gi, ":");
|
|
}
|
|
function d(e, t, r = [], n = []) {
|
|
let o = {},
|
|
a = (r) => {
|
|
let n,
|
|
a = r.key;
|
|
switch (r.type) {
|
|
case "header":
|
|
(a = a.toLowerCase()), (n = e.headers[a]);
|
|
break;
|
|
case "cookie":
|
|
n =
|
|
"cookies" in e
|
|
? e.cookies[r.key]
|
|
: (0, s.getCookieParser)(e.headers)()[r.key];
|
|
break;
|
|
case "query":
|
|
n = t[a];
|
|
break;
|
|
case "host": {
|
|
let { host: t } = e?.headers || {};
|
|
n = t?.split(":", 1)[0].toLowerCase();
|
|
}
|
|
}
|
|
if (!r.value && n)
|
|
return (
|
|
(o[
|
|
(function (e) {
|
|
let t = "";
|
|
for (let r = 0; r < e.length; r++) {
|
|
let n = e.charCodeAt(r);
|
|
((n > 64 && n < 91) || (n > 96 && n < 123)) && (t += e[r]);
|
|
}
|
|
return t;
|
|
})(a)
|
|
] = n),
|
|
!0
|
|
);
|
|
if (n) {
|
|
let e = RegExp(`^${r.value}$`),
|
|
t = Array.isArray(n) ? n.slice(-1)[0].match(e) : n.match(e);
|
|
if (t)
|
|
return (
|
|
Array.isArray(t) &&
|
|
(t.groups
|
|
? Object.keys(t.groups).forEach((e) => {
|
|
o[e] = t.groups[e];
|
|
})
|
|
: "host" === r.type && t[0] && (o.host = t[0])),
|
|
!0
|
|
);
|
|
}
|
|
return !1;
|
|
};
|
|
return !(!r.every((e) => a(e)) || n.some((e) => a(e))) && o;
|
|
}
|
|
function f(e, t) {
|
|
if (!e.includes(":")) return e;
|
|
for (let r of Object.keys(t))
|
|
e.includes(`:${r}`) &&
|
|
(e = e
|
|
.replace(RegExp(`:${r}\\*`, "g"), `:${r}--ESCAPED_PARAM_ASTERISKS`)
|
|
.replace(RegExp(`:${r}\\?`, "g"), `:${r}--ESCAPED_PARAM_QUESTION`)
|
|
.replace(RegExp(`:${r}\\+`, "g"), `:${r}--ESCAPED_PARAM_PLUS`)
|
|
.replace(RegExp(`:${r}(?!\\w)`, "g"), `--ESCAPED_PARAM_COLON${r}`));
|
|
return (
|
|
(e = e
|
|
.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g, "\\$1")
|
|
.replace(/--ESCAPED_PARAM_PLUS/g, "+")
|
|
.replace(/--ESCAPED_PARAM_COLON/g, ":")
|
|
.replace(/--ESCAPED_PARAM_QUESTION/g, "?")
|
|
.replace(/--ESCAPED_PARAM_ASTERISKS/g, "*")),
|
|
(0, c.safeCompile)(`/${e}`, { validate: !1 })(t).slice(1)
|
|
);
|
|
}
|
|
function m(e) {
|
|
let t = e.destination;
|
|
for (let r of Object.keys({ ...e.params, ...e.query }))
|
|
r &&
|
|
(t = t.replace(
|
|
RegExp(`:${(0, a.escapeStringRegexp)(r)}`, "g"),
|
|
`__ESC_COLON_${r}`,
|
|
));
|
|
let r = (0, i.parseUrl)(t),
|
|
n = r.pathname;
|
|
n && (n = u(n));
|
|
let o = r.href;
|
|
o && (o = u(o));
|
|
let l = r.hostname;
|
|
l && (l = u(l));
|
|
let s = r.hash;
|
|
s && (s = u(s));
|
|
let c = r.search;
|
|
c && (c = u(c));
|
|
let d = r.origin;
|
|
return (
|
|
d && (d = u(d)),
|
|
{
|
|
...r,
|
|
pathname: n,
|
|
hostname: l,
|
|
href: o,
|
|
hash: s,
|
|
search: c,
|
|
origin: d,
|
|
}
|
|
);
|
|
}
|
|
function p(e) {
|
|
let t,
|
|
r,
|
|
n = m(e),
|
|
{ hostname: o, query: a, search: i } = n,
|
|
s = n.pathname;
|
|
n.hash && (s = `${s}${n.hash}`);
|
|
let d = [],
|
|
p = [];
|
|
for (let e of ((0, c.safePathToRegexp)(s, p), p)) d.push(e.name);
|
|
if (o) {
|
|
let e = [];
|
|
for (let t of ((0, c.safePathToRegexp)(o, e), e)) d.push(t.name);
|
|
}
|
|
let h = (0, c.safeCompile)(s, { validate: !1 });
|
|
for (let [r, n] of (o && (t = (0, c.safeCompile)(o, { validate: !1 })),
|
|
Object.entries(a)))
|
|
Array.isArray(n)
|
|
? (a[r] = n.map((t) => f(u(t), e.params)))
|
|
: "string" == typeof n && (a[r] = f(u(n), e.params));
|
|
let g = Object.keys(e.params).filter((e) => "nextInternalLocale" !== e);
|
|
if (e.appendParamsToQuery && !g.some((e) => d.includes(e)))
|
|
for (let t of g) t in a || (a[t] = e.params[t]);
|
|
if ((0, l.isInterceptionRouteAppPath)(s))
|
|
for (let t of s.split("/")) {
|
|
let r = l.INTERCEPTION_ROUTE_MARKERS.find((e) => t.startsWith(e));
|
|
if (r) {
|
|
"(..)(..)" === r
|
|
? ((e.params["0"] = "(..)"), (e.params["1"] = "(..)"))
|
|
: (e.params["0"] = r);
|
|
break;
|
|
}
|
|
}
|
|
try {
|
|
let [o, a] = (r = h(e.params)).split("#", 2);
|
|
t && (n.hostname = t(e.params)),
|
|
(n.pathname = o),
|
|
(n.hash = `${a ? "#" : ""}${a || ""}`),
|
|
(n.search = i ? f(i, e.params) : "");
|
|
} catch (e) {
|
|
if (e.message.match(/Expected .*? to not repeat, but got an array/))
|
|
throw Object.defineProperty(
|
|
Error(
|
|
"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match",
|
|
),
|
|
"__NEXT_ERROR_CODE",
|
|
{ value: "E329", enumerable: !1, configurable: !0 },
|
|
);
|
|
throw e;
|
|
}
|
|
return (
|
|
(n.query = { ...e.query, ...n.query }),
|
|
{ newUrl: r, destQuery: a, parsedDestination: n }
|
|
);
|
|
}
|
|
};
|
|
|
|
export default moduleFactory;
|