create project

This commit is contained in:
ismailsosic
2022-12-27 12:05:56 +01:00
parent 2a33a2d3de
commit cd2143287c
16035 changed files with 2489703 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
/**
* A simple caching behavior.
* We cache the result based on the key `K`
* which uses referential equality, to avoid re-computing
* the result for the same key.
*/ export function cached(generate) {
let cache = undefined;
return (key)=>{
if ((cache == null ? void 0 : cache.key) !== key) {
cache = {
key,
value: generate(key)
};
}
return cache.value;
};
}
//# sourceMappingURL=cached.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/cached.ts"],"names":["cached","generate","cache","undefined","key","value"],"mappings":"AAAA;;;;;GAKG,CACH,OAAO,SAASA,MAAM,CAAOC,QAAuB,EAAE;IACpD,IAAIC,KAAK,GAAqCC,SAAS;IACvD,OAAO,CAACC,GAAM,GAAK;QACjB,IAAIF,CAAAA,KAAK,QAAK,GAAVA,KAAAA,CAAU,GAAVA,KAAK,CAAEE,GAAG,CAAA,KAAKA,GAAG,EAAE;YACtBF,KAAK,GAAG;gBAAEE,GAAG;gBAAEC,KAAK,EAAEJ,QAAQ,CAACG,GAAG,CAAC;aAAE;SACtC;QAED,OAAOF,KAAK,CAACG,KAAK,CAAA;KACnB,CAAA;CACF"}

View File

@@ -0,0 +1,4 @@
export { RequestCookies } from "./request-cookies";
export { ResponseCookies } from "./response-cookies";
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/index.ts"],"names":["RequestCookies","ResponseCookies"],"mappings":"AAEA,SAASA,cAAc,QAAQ,mBAAmB,CAAA;AAClD,SAASC,eAAe,QAAQ,oBAAoB,CAAA"}

View File

@@ -0,0 +1,77 @@
import { parseCookieString, serialize } from "./serialize";
/**
* A class for manipulating {@link Request} cookies (`Cookie` header).
*/ export class RequestCookies {
_parsed = new Map();
constructor(requestHeaders){
this._headers = requestHeaders;
const header = requestHeaders.get("cookie");
if (header) {
const parsed = parseCookieString(header);
for (const [name, value] of parsed){
this._parsed.set(name, {
name,
value
});
}
}
}
[Symbol.iterator]() {
return this._parsed[Symbol.iterator]();
}
/**
* The amount of cookies received from the client
*/ get size() {
return this._parsed.size;
}
get(...args) {
const name = typeof args[0] === "string" ? args[0] : args[0].name;
return this._parsed.get(name);
}
getAll(...args) {
var ref;
const all = Array.from(this._parsed);
if (!args.length) {
return all.map(([_, value])=>value);
}
const name = typeof args[0] === "string" ? args[0] : (ref = args[0]) == null ? void 0 : ref.name;
return all.filter(([n])=>n === name).map(([_, value])=>value);
}
has(name) {
return this._parsed.has(name);
}
set(...args) {
const [name, value] = args.length === 1 ? [
args[0].name,
args[0].value
] : args;
const map = this._parsed;
map.set(name, {
name,
value
});
this._headers.set("cookie", Array.from(map).map(([_, v])=>serialize(v)).join("; "));
return this;
}
/**
* Delete the cookies matching the passed name or names in the request.
*/ delete(/** Name or names of the cookies to be deleted */ names) {
const map = this._parsed;
const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name));
this._headers.set("cookie", Array.from(map).map(([_, value])=>serialize(value)).join("; "));
return result;
}
/**
* Delete all the cookies in the cookies in the request.
*/ clear() {
this.delete(Array.from(this._parsed.keys()));
return this;
}
/**
* Format the cookies in the request as a string for logging
*/ [Symbol.for("edge-runtime.inspect.custom")]() {
return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;
}
}
//# sourceMappingURL=request-cookies.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/request-cookies.ts"],"names":["parseCookieString","serialize","RequestCookies","_parsed","Map","constructor","requestHeaders","_headers","header","get","parsed","name","value","set","Symbol","iterator","size","args","getAll","all","Array","from","length","map","_","filter","n","has","v","join","delete","names","result","isArray","clear","keys","for","JSON","stringify","Object","fromEntries"],"mappings":"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"}

View File

@@ -0,0 +1,87 @@
import { parseSetCookieString, serialize } from "./serialize";
function replace(bag, headers) {
headers.delete("set-cookie");
for (const [, value] of bag){
const serialized = serialize(value);
headers.append("set-cookie", serialized);
}
}
function normalizeCookie(cookie = {
name: "",
value: ""
}) {
if (cookie.maxAge) {
cookie.expires = new Date(Date.now() + cookie.maxAge * 1000);
}
if (cookie.path === null || cookie.path === undefined) {
cookie.path = "/";
}
return cookie;
}
/**
* A class for manipulating {@link Response} cookies (`Set-Cookie` header).
* Loose implementation of the experimental [Cookie Store API](https://wicg.github.io/cookie-store/#dictdef-cookie)
* The main difference is `ResponseCookies` methods do not return a Promise.
*/ export class ResponseCookies {
_parsed = new Map();
constructor(responseHeaders){
this._headers = responseHeaders;
// @ts-expect-error See https://github.com/whatwg/fetch/issues/973
const headers = this._headers.getAll("set-cookie");
for (const header of headers){
const parsed = parseSetCookieString(header);
if (parsed) {
this._parsed.set(parsed.name, parsed);
}
}
}
/**
* {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.
*/ get(...args) {
const key = typeof args[0] === "string" ? args[0] : args[0].name;
return this._parsed.get(key);
}
/**
* {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.
*/ getAll(...args) {
var ref;
const all = Array.from(this._parsed.values());
if (!args.length) {
return all;
}
const key = typeof args[0] === "string" ? args[0] : (ref = args[0]) == null ? void 0 : ref.name;
return all.filter((c)=>c.name === key);
}
/**
* {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.
*/ set(...args) {
const [name, value, cookie] = args.length === 1 ? [
args[0].name,
args[0].value,
args[0]
] : args;
const map = this._parsed;
map.set(name, normalizeCookie({
name,
value,
...cookie
}));
replace(map, this._headers);
return this;
}
/**
* {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.
*/ delete(...args) {
const name = typeof args[0] === "string" ? args[0] : args[0].name;
return this.set({
name,
value: "",
expires: new Date(0)
});
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;
}
}
//# sourceMappingURL=response-cookies.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/response-cookies.ts"],"names":["parseSetCookieString","serialize","replace","bag","headers","delete","value","serialized","append","normalizeCookie","cookie","name","maxAge","expires","Date","now","path","undefined","ResponseCookies","_parsed","Map","constructor","responseHeaders","_headers","getAll","header","parsed","set","get","args","key","all","Array","from","values","length","filter","c","map","Symbol","for","JSON","stringify","Object","fromEntries"],"mappings":"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"}

View File

@@ -0,0 +1,77 @@
const SAME_SITE = [
"strict",
"lax",
"none"
];
function parseSameSite(string) {
string = string.toLowerCase();
return SAME_SITE.includes(string) ? string : undefined;
}
function compact(t) {
const newT = {};
for(const key in t){
if (t[key]) {
newT[key] = t[key];
}
}
return newT;
}
export function serialize(c) {
const attrs = [
"path" in c && c.path && `Path=${c.path}`,
"expires" in c && c.expires && `Expires=${c.expires.toUTCString()}`,
"maxAge" in c && c.maxAge && `Max-Age=${c.maxAge}`,
"domain" in c && c.domain && `Domain=${c.domain}`,
"secure" in c && c.secure && "Secure",
"httpOnly" in c && c.httpOnly && "HttpOnly",
"sameSite" in c && c.sameSite && `SameSite=${c.sameSite}`,
].filter(Boolean);
return `${c.name}=${encodeURIComponent(c.value ?? "")}; ${attrs.join("; ")}`;
}
/**
* Parse a `Cookie` or `Set-Cookie header value
*/ export function parseCookieString(cookie) {
const map = new Map();
for (const pair of cookie.split(/; */)){
if (!pair) continue;
const [key, value] = pair.split("=", 2);
map.set(key, decodeURIComponent(value ?? "true"));
}
return map;
}
/**
* Parse a `Set-Cookie` header value
*/ export function parseSetCookieString(setCookie) {
if (!setCookie) {
return undefined;
}
const [[name, value], ...attributes] = parseCookieString(setCookie);
const { domain , expires , httponly , maxage , path , samesite , secure } = Object.fromEntries(attributes.map(([key, v])=>[
key.toLowerCase(),
v
]));
const cookie = {
name,
value: decodeURIComponent(value),
domain,
...expires && {
expires: new Date(expires)
},
...httponly && {
httpOnly: true
},
...typeof maxage === "string" && {
maxAge: Number(maxage)
},
path,
...samesite && {
sameSite: parseSameSite(samesite)
},
...secure && {
secure: true
}
};
return compact(cookie);
}
//# sourceMappingURL=serialize.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/serialize.ts"],"names":["SAME_SITE","parseSameSite","string","toLowerCase","includes","undefined","compact","t","newT","key","serialize","c","attrs","path","expires","toUTCString","maxAge","domain","secure","httpOnly","sameSite","filter","Boolean","name","encodeURIComponent","value","join","parseCookieString","cookie","map","Map","pair","split","set","decodeURIComponent","parseSetCookieString","setCookie","attributes","httponly","maxage","samesite","Object","fromEntries","v","Date","Number"],"mappings":"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"}

View File

@@ -0,0 +1,3 @@
export { };
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../server/web/spec-extension/cookies/types.ts"],"names":[],"mappings":"AAAA,WAgHkE"}

View File

@@ -0,0 +1,47 @@
import { PageSignatureError } from "../error";
const responseSymbol = Symbol("response");
const passThroughSymbol = Symbol("passThrough");
export const waitUntilSymbol = Symbol("waitUntil");
class FetchEvent {
[waitUntilSymbol] = [];
[passThroughSymbol] = false;
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
constructor(_request){}
respondWith(response) {
if (!this[responseSymbol]) {
this[responseSymbol] = Promise.resolve(response);
}
}
passThroughOnException() {
this[passThroughSymbol] = true;
}
waitUntil(promise) {
this[waitUntilSymbol].push(promise);
}
}
export class NextFetchEvent extends FetchEvent {
constructor(params){
super(params.request);
this.sourcePage = params.page;
}
/**
* @deprecated The `request` is now the first parameter and the API is now async.
*
* Read more: https://nextjs.org/docs/messages/middleware-new-signature
*/ get request() {
throw new PageSignatureError({
page: this.sourcePage
});
}
/**
* @deprecated Using `respondWith` is no longer needed.
*
* Read more: https://nextjs.org/docs/messages/middleware-new-signature
*/ respondWith() {
throw new PageSignatureError({
page: this.sourcePage
});
}
}
//# sourceMappingURL=fetch-event.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../server/web/spec-extension/fetch-event.ts"],"names":["PageSignatureError","responseSymbol","Symbol","passThroughSymbol","waitUntilSymbol","FetchEvent","constructor","_request","respondWith","response","Promise","resolve","passThroughOnException","waitUntil","promise","push","NextFetchEvent","params","request","sourcePage","page"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,UAAU,CAAA;AAG7C,MAAMC,cAAc,GAAGC,MAAM,CAAC,UAAU,CAAC;AACzC,MAAMC,iBAAiB,GAAGD,MAAM,CAAC,aAAa,CAAC;AAC/C,OAAO,MAAME,eAAe,GAAGF,MAAM,CAAC,WAAW,CAAC,CAAA;AAElD,MAAMG,UAAU;IACL,CAACD,eAAe,CAAC,GAAmB,EAAE,CAAC;IAEhD,CAACD,iBAAiB,CAAC,GAAG,KAAK,CAAA;IAE3B,qEAAqE;IACrEG,YAAYC,QAAiB,CAAE,EAAE;IAEjCC,WAAW,CAACC,QAAsC,EAAQ;QACxD,IAAI,CAAC,IAAI,CAACR,cAAc,CAAC,EAAE;YACzB,IAAI,CAACA,cAAc,CAAC,GAAGS,OAAO,CAACC,OAAO,CAACF,QAAQ,CAAC;SACjD;KACF;IAEDG,sBAAsB,GAAS;QAC7B,IAAI,CAACT,iBAAiB,CAAC,GAAG,IAAI;KAC/B;IAEDU,SAAS,CAACC,OAAqB,EAAQ;QACrC,IAAI,CAACV,eAAe,CAAC,CAACW,IAAI,CAACD,OAAO,CAAC;KACpC;CACF;AAED,OAAO,MAAME,cAAc,SAASX,UAAU;IAG5CC,YAAYW,MAA8C,CAAE;QAC1D,KAAK,CAACA,MAAM,CAACC,OAAO,CAAC;QACrB,IAAI,CAACC,UAAU,GAAGF,MAAM,CAACG,IAAI;KAC9B;IAED;;;;KAIG,CACH,IAAIF,OAAO,GAAG;QACZ,MAAM,IAAIlB,kBAAkB,CAAC;YAC3BoB,IAAI,EAAE,IAAI,CAACD,UAAU;SACtB,CAAC,CAAA;KACH;IAED;;;;KAIG,CACHX,WAAW,GAAG;QACZ,MAAM,IAAIR,kBAAkB,CAAC;YAC3BoB,IAAI,EAAE,IAAI,CAACD,UAAU;SACtB,CAAC,CAAA;KACH;CACF"}

View File

@@ -0,0 +1,75 @@
import { NextURL } from "../next-url";
import { toNodeHeaders, validateURL } from "../utils";
import { RemovedUAError, RemovedPageError } from "../error";
import { RequestCookies } from "./cookies";
export const INTERNALS = Symbol("internal request");
export class NextRequest extends Request {
constructor(input, init = {}){
const url = typeof input !== "string" && "url" in input ? input.url : String(input);
validateURL(url);
super(url, init);
this[INTERNALS] = {
cookies: new RequestCookies(this.headers),
geo: init.geo || {},
ip: init.ip,
url: new NextURL(url, {
headers: toNodeHeaders(this.headers),
nextConfig: init.nextConfig
})
};
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return {
cookies: this.cookies,
geo: this.geo,
ip: this.ip,
nextUrl: this.nextUrl,
url: this.url,
// rest of props come from Request
bodyUsed: this.bodyUsed,
cache: this.cache,
credentials: this.credentials,
destination: this.destination,
headers: Object.fromEntries(this.headers),
integrity: this.integrity,
keepalive: this.keepalive,
method: this.method,
mode: this.mode,
redirect: this.redirect,
referrer: this.referrer,
referrerPolicy: this.referrerPolicy,
signal: this.signal
};
}
get cookies() {
return this[INTERNALS].cookies;
}
get geo() {
return this[INTERNALS].geo;
}
get ip() {
return this[INTERNALS].ip;
}
get nextUrl() {
return this[INTERNALS].url;
}
/**
* @deprecated
* `page` has been deprecated in favour of `URLPattern`.
* Read more: https://nextjs.org/docs/messages/middleware-request-page
*/ get page() {
throw new RemovedPageError();
}
/**
* @deprecated
* `ua` has been removed in favour of \`userAgent\` function.
* Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
*/ get ua() {
throw new RemovedUAError();
}
get url() {
return this[INTERNALS].url.toString();
}
}
//# sourceMappingURL=request.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../server/web/spec-extension/request.ts"],"names":["NextURL","toNodeHeaders","validateURL","RemovedUAError","RemovedPageError","RequestCookies","INTERNALS","Symbol","NextRequest","Request","constructor","input","init","url","String","cookies","headers","geo","ip","nextConfig","for","nextUrl","bodyUsed","cache","credentials","destination","Object","fromEntries","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","page","ua","toString"],"mappings":"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"}

View File

@@ -0,0 +1,94 @@
import { NextURL } from "../next-url";
import { toNodeHeaders, validateURL } from "../utils";
import { ResponseCookies } from "./cookies";
const INTERNALS = Symbol("internal response");
const REDIRECTS = new Set([
301,
302,
303,
307,
308
]);
function handleMiddlewareField(init, headers) {
var ref;
if (init == null ? void 0 : (ref = init.request) == null ? void 0 : ref.headers) {
if (!(init.request.headers instanceof Headers)) {
throw new Error("request.headers must be an instance of Headers");
}
const keys = [];
for (const [key, value] of init.request.headers){
headers.set("x-middleware-request-" + key, value);
keys.push(key);
}
headers.set("x-middleware-override-headers", keys.join(","));
}
}
export class NextResponse extends Response {
constructor(body, init = {}){
super(body, init);
this[INTERNALS] = {
cookies: new ResponseCookies(this.headers),
url: init.url ? new NextURL(init.url, {
headers: toNodeHeaders(this.headers),
nextConfig: init.nextConfig
}) : undefined
};
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return {
cookies: this.cookies,
url: this.url,
// rest of props come from Response
body: this.body,
bodyUsed: this.bodyUsed,
headers: Object.fromEntries(this.headers),
ok: this.ok,
redirected: this.redirected,
status: this.status,
statusText: this.statusText,
type: this.type
};
}
get cookies() {
return this[INTERNALS].cookies;
}
static json(body, init) {
// @ts-expect-error This is not in lib/dom right now, and we can't augment it.
const response = Response.json(body, init);
return new NextResponse(response.body, response);
}
static redirect(url, init) {
const status = typeof init === "number" ? init : (init == null ? void 0 : init.status) ?? 307;
if (!REDIRECTS.has(status)) {
throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');
}
const initObj = typeof init === "object" ? init : {};
const headers = new Headers(initObj == null ? void 0 : initObj.headers);
headers.set("Location", validateURL(url));
return new NextResponse(null, {
...initObj,
headers,
status
});
}
static rewrite(destination, init) {
const headers = new Headers(init == null ? void 0 : init.headers);
headers.set("x-middleware-rewrite", validateURL(destination));
handleMiddlewareField(init, headers);
return new NextResponse(null, {
...init,
headers
});
}
static next(init) {
const headers = new Headers(init == null ? void 0 : init.headers);
headers.set("x-middleware-next", "1");
handleMiddlewareField(init, headers);
return new NextResponse(null, {
...init,
headers
});
}
}
//# sourceMappingURL=response.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../server/web/spec-extension/response.ts"],"names":["NextURL","toNodeHeaders","validateURL","ResponseCookies","INTERNALS","Symbol","REDIRECTS","Set","handleMiddlewareField","init","headers","request","Headers","Error","keys","key","value","set","push","join","NextResponse","Response","constructor","body","cookies","url","nextConfig","undefined","for","bodyUsed","Object","fromEntries","ok","redirected","status","statusText","type","json","response","redirect","has","RangeError","initObj","rewrite","destination","next"],"mappings":"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"}

View File

@@ -0,0 +1,15 @@
import parseua from "next/dist/compiled/ua-parser-js";
export function isBot(input) {
return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);
}
export function userAgentFromString(input) {
return {
...parseua(input),
isBot: input === undefined ? false : isBot(input)
};
}
export function userAgent({ headers }) {
return userAgentFromString(headers.get("user-agent") || undefined);
}
//# sourceMappingURL=user-agent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../server/web/spec-extension/user-agent.ts"],"names":["parseua","isBot","input","test","userAgentFromString","undefined","userAgent","headers","get"],"mappings":"AAAA,OAAOA,OAAO,MAAM,iCAAiC,CAAA;AA2BrD,OAAO,SAASC,KAAK,CAACC,KAAa,EAAW;IAC5C,OAAO,oVAAoVC,IAAI,CAC7VD,KAAK,CACN,CAAA;CACF;AAED,OAAO,SAASE,mBAAmB,CAACF,KAAyB,EAAa;IACxE,OAAO;QACL,GAAGF,OAAO,CAACE,KAAK,CAAC;QACjBD,KAAK,EAAEC,KAAK,KAAKG,SAAS,GAAG,KAAK,GAAGJ,KAAK,CAACC,KAAK,CAAC;KAClD,CAAA;CACF;AAED,OAAO,SAASI,SAAS,CAAC,EAAEC,OAAO,CAAA,EAAwB,EAAa;IACtE,OAAOH,mBAAmB,CAACG,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC,IAAIH,SAAS,CAAC,CAAA;CACnE"}