Initial boiler plate project

This commit is contained in:
2024-09-24 03:52:46 +00:00
parent 6120b2d6c3
commit 154b93e267
10034 changed files with 2079352 additions and 2 deletions

64
node_modules/next/dist/server/base-http/index.d.ts generated vendored Normal file
View File

@ -0,0 +1,64 @@
/// <reference types="node" />
import type { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
import type { I18NConfig } from '../config-shared';
import type { NextApiRequestCookies } from '../api-utils';
export interface BaseNextRequestConfig {
basePath: string | undefined;
i18n?: I18NConfig;
trailingSlash?: boolean | undefined;
}
export type FetchMetric = {
url: string;
idx: number;
end: number;
start: number;
method: string;
status: number;
cacheReason: string;
cacheStatus: 'hit' | 'miss' | 'skip';
};
export type FetchMetrics = Array<FetchMetric>;
export declare abstract class BaseNextRequest<Body = any> {
method: string;
url: string;
body: Body;
protected _cookies: NextApiRequestCookies | undefined;
abstract headers: IncomingHttpHeaders;
abstract fetchMetrics?: FetchMetric[];
constructor(method: string, url: string, body: Body);
get cookies(): Partial<{
[key: string]: string;
}>;
}
export declare abstract class BaseNextResponse<Destination = any> {
destination: Destination;
abstract statusCode: number | undefined;
abstract statusMessage: string | undefined;
abstract get sent(): boolean;
constructor(destination: Destination);
/**
* Sets a value for the header overwriting existing values
*/
abstract setHeader(name: string, value: string | string[]): this;
/**
* Removes a header
*/
abstract removeHeader(name: string): this;
/**
* Appends value for the given header name
*/
abstract appendHeader(name: string, value: string): this;
/**
* Get all vaues for a header as an array or undefined if no value is present
*/
abstract getHeaderValues(name: string): string[] | undefined;
abstract hasHeader(name: string): boolean;
/**
* Get vaues for a header concatenated using `,` or undefined if no value is present
*/
abstract getHeader(name: string): string | undefined;
abstract getHeaders(): OutgoingHttpHeaders;
abstract body(value: string): this;
abstract send(): void;
redirect(destination: string, statusCode: number): this;
}

54
node_modules/next/dist/server/base-http/index.js generated vendored Normal file
View File

@ -0,0 +1,54 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
BaseNextRequest: null,
BaseNextResponse: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BaseNextRequest: function() {
return BaseNextRequest;
},
BaseNextResponse: function() {
return BaseNextResponse;
}
});
const _redirectstatuscode = require("../../client/components/redirect-status-code");
const _getcookieparser = require("../api-utils/get-cookie-parser");
class BaseNextRequest {
constructor(method, url, body){
this.method = method;
this.url = url;
this.body = body;
}
// Utils implemented using the abstract methods above
get cookies() {
if (this._cookies) return this._cookies;
return this._cookies = (0, _getcookieparser.getCookieParser)(this.headers)();
}
}
class BaseNextResponse {
constructor(destination){
this.destination = destination;
}
// Utils implemented using the abstract methods above
redirect(destination, statusCode) {
this.setHeader("Location", destination);
this.statusCode = statusCode;
// Since IE11 doesn't support the 308 header add backwards
// compatibility using refresh header
if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {
this.setHeader("Refresh", `0;url=${destination}`);
}
return this;
}
}
//# sourceMappingURL=index.js.map

1
node_modules/next/dist/server/base-http/index.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../src/server/base-http/index.ts"],"names":["BaseNextRequest","BaseNextResponse","constructor","method","url","body","cookies","_cookies","getCookieParser","headers","destination","redirect","statusCode","setHeader","RedirectStatusCode","PermanentRedirect"],"mappings":";;;;;;;;;;;;;;;IA0BsBA,eAAe;eAAfA;;IAeAC,gBAAgB;eAAhBA;;;oCAtCa;iCAEH;AAqBzB,MAAeD;IAKpBE,YAAY,AAAOC,MAAc,EAAE,AAAOC,GAAW,EAAE,AAAOC,IAAU,CAAE;aAAvDF,SAAAA;aAAuBC,MAAAA;aAAoBC,OAAAA;IAAa;IAE3E,qDAAqD;IAErD,IAAWC,UAAU;QACnB,IAAI,IAAI,CAACC,QAAQ,EAAE,OAAO,IAAI,CAACA,QAAQ;QACvC,OAAQ,IAAI,CAACA,QAAQ,GAAGC,IAAAA,gCAAe,EAAC,IAAI,CAACC,OAAO;IACtD;AACF;AAEO,MAAeR;IAKpBC,YAAY,AAAOQ,WAAwB,CAAE;aAA1BA,cAAAA;IAA2B;IAmC9C,qDAAqD;IAErDC,SAASD,WAAmB,EAAEE,UAAkB,EAAE;QAChD,IAAI,CAACC,SAAS,CAAC,YAAYH;QAC3B,IAAI,CAACE,UAAU,GAAGA;QAElB,0DAA0D;QAC1D,qCAAqC;QACrC,IAAIA,eAAeE,sCAAkB,CAACC,iBAAiB,EAAE;YACvD,IAAI,CAACF,SAAS,CAAC,WAAW,CAAC,MAAM,EAAEH,YAAY,CAAC;QAClD;QACA,OAAO,IAAI;IACb;AACF"}

50
node_modules/next/dist/server/base-http/node.d.ts generated vendored Normal file
View File

@ -0,0 +1,50 @@
/// <reference types="node" />
/// <reference types="node" />
import type { ServerResponse, IncomingMessage } from 'http';
import type { Writable, Readable } from 'stream';
import { SYMBOL_CLEARED_COOKIES } from '../api-utils';
import type { NextApiRequestCookies } from '../api-utils';
import { NEXT_REQUEST_META } from '../request-meta';
import type { RequestMeta } from '../request-meta';
import { BaseNextRequest, BaseNextResponse, type FetchMetric } from './index';
import type { OutgoingHttpHeaders } from 'node:http';
type Req = IncomingMessage & {
[NEXT_REQUEST_META]?: RequestMeta;
cookies?: NextApiRequestCookies;
fetchMetrics?: FetchMetric[];
};
export declare class NodeNextRequest extends BaseNextRequest<Readable> {
private _req;
headers: import("http").IncomingHttpHeaders;
fetchMetrics?: FetchMetric[];
[NEXT_REQUEST_META]: RequestMeta;
get originalRequest(): Req;
set originalRequest(value: Req);
constructor(_req: Req);
}
export declare class NodeNextResponse extends BaseNextResponse<Writable> {
private _res;
private textBody;
[SYMBOL_CLEARED_COOKIES]?: boolean;
get originalResponse(): ServerResponse<IncomingMessage> & {
[SYMBOL_CLEARED_COOKIES]?: boolean | undefined;
};
constructor(_res: ServerResponse & {
[SYMBOL_CLEARED_COOKIES]?: boolean;
});
get sent(): boolean;
get statusCode(): number;
set statusCode(value: number);
get statusMessage(): string;
set statusMessage(value: string);
setHeader(name: string, value: string | string[]): this;
removeHeader(name: string): this;
getHeaderValues(name: string): string[] | undefined;
hasHeader(name: string): boolean;
getHeader(name: string): string | undefined;
getHeaders(): OutgoingHttpHeaders;
appendHeader(name: string, value: string): this;
body(value: string): this;
send(): void;
}
export {};

119
node_modules/next/dist/server/base-http/node.js generated vendored Normal file
View File

@ -0,0 +1,119 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
NodeNextRequest: null,
NodeNextResponse: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
NodeNextRequest: function() {
return NodeNextRequest;
},
NodeNextResponse: function() {
return NodeNextResponse;
}
});
const _apiutils = require("../api-utils");
const _requestmeta = require("../request-meta");
const _index = require("./index");
let _NEXT_REQUEST_META = _requestmeta.NEXT_REQUEST_META;
class NodeNextRequest extends _index.BaseNextRequest {
get originalRequest() {
// Need to mimic these changes to the original req object for places where we use it:
// render.tsx, api/ssg requests
this._req[_requestmeta.NEXT_REQUEST_META] = this[_requestmeta.NEXT_REQUEST_META];
this._req.url = this.url;
this._req.cookies = this.cookies;
return this._req;
}
set originalRequest(value) {
this._req = value;
}
constructor(_req){
var _this__req;
super(_req.method.toUpperCase(), _req.url, _req);
this._req = _req;
this.headers = this._req.headers;
this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics;
this[_NEXT_REQUEST_META] = this._req[_requestmeta.NEXT_REQUEST_META] || {};
}
}
class NodeNextResponse extends _index.BaseNextResponse {
get originalResponse() {
if (_apiutils.SYMBOL_CLEARED_COOKIES in this) {
this._res[_apiutils.SYMBOL_CLEARED_COOKIES] = this[_apiutils.SYMBOL_CLEARED_COOKIES];
}
return this._res;
}
constructor(_res){
super(_res);
this._res = _res;
this.textBody = undefined;
}
get sent() {
return this._res.finished || this._res.headersSent;
}
get statusCode() {
return this._res.statusCode;
}
set statusCode(value) {
this._res.statusCode = value;
}
get statusMessage() {
return this._res.statusMessage;
}
set statusMessage(value) {
this._res.statusMessage = value;
}
setHeader(name, value) {
this._res.setHeader(name, value);
return this;
}
removeHeader(name) {
this._res.removeHeader(name);
return this;
}
getHeaderValues(name) {
const values = this._res.getHeader(name);
if (values === undefined) return undefined;
return (Array.isArray(values) ? values : [
values
]).map((value)=>value.toString());
}
hasHeader(name) {
return this._res.hasHeader(name);
}
getHeader(name) {
const values = this.getHeaderValues(name);
return Array.isArray(values) ? values.join(",") : undefined;
}
getHeaders() {
return this._res.getHeaders();
}
appendHeader(name, value) {
const currentValues = this.getHeaderValues(name) ?? [];
if (!currentValues.includes(value)) {
this._res.setHeader(name, [
...currentValues,
value
]);
}
return this;
}
body(value) {
this.textBody = value;
return this;
}
send() {
this._res.end(this.textBody);
}
}
//# sourceMappingURL=node.js.map

1
node_modules/next/dist/server/base-http/node.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../src/server/base-http/node.ts"],"names":["NodeNextRequest","NodeNextResponse","NEXT_REQUEST_META","BaseNextRequest","originalRequest","_req","url","cookies","value","constructor","method","toUpperCase","headers","fetchMetrics","BaseNextResponse","originalResponse","SYMBOL_CLEARED_COOKIES","_res","textBody","undefined","sent","finished","headersSent","statusCode","statusMessage","setHeader","name","removeHeader","getHeaderValues","values","getHeader","Array","isArray","map","toString","hasHeader","join","getHeaders","appendHeader","currentValues","includes","body","send","end"],"mappings":"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"}

33
node_modules/next/dist/server/base-http/web.d.ts generated vendored Normal file
View File

@ -0,0 +1,33 @@
/// <reference types="node" />
import type { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
import type { FetchMetrics } from './index';
import { BaseNextRequest, BaseNextResponse } from './index';
import type { NextRequestHint } from '../web/adapter';
export declare class WebNextRequest extends BaseNextRequest<ReadableStream | null> {
request: Request;
headers: IncomingHttpHeaders;
fetchMetrics?: FetchMetrics;
constructor(request: NextRequestHint);
parseBody(_limit: string | number): Promise<any>;
}
export declare class WebNextResponse extends BaseNextResponse<WritableStream> {
transformStream: TransformStream<any, any>;
private headers;
private textBody;
statusCode: number | undefined;
statusMessage: string | undefined;
constructor(transformStream?: TransformStream<any, any>);
setHeader(name: string, value: string | string[]): this;
removeHeader(name: string): this;
getHeaderValues(name: string): string[] | undefined;
getHeader(name: string): string | undefined;
getHeaders(): OutgoingHttpHeaders;
hasHeader(name: string): boolean;
appendHeader(name: string, value: string): this;
body(value: string): this;
private readonly sendPromise;
private _sent;
send(): void;
get sent(): boolean;
toResponse(): Promise<Response>;
}

103
node_modules/next/dist/server/base-http/web.js generated vendored Normal file
View File

@ -0,0 +1,103 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
WebNextRequest: null,
WebNextResponse: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
WebNextRequest: function() {
return WebNextRequest;
},
WebNextResponse: function() {
return WebNextResponse;
}
});
const _utils = require("../web/utils");
const _index = require("./index");
const _detachedpromise = require("../../lib/detached-promise");
class WebNextRequest extends _index.BaseNextRequest {
constructor(request){
const url = new URL(request.url);
super(request.method, url.href.slice(url.origin.length), request.clone().body);
this.request = request;
this.fetchMetrics = request.fetchMetrics;
this.headers = {};
for (const [name, value] of request.headers.entries()){
this.headers[name] = value;
}
}
async parseBody(_limit) {
throw new Error("parseBody is not implemented in the web runtime");
}
}
class WebNextResponse extends _index.BaseNextResponse {
constructor(transformStream = new TransformStream()){
super(transformStream.writable);
this.transformStream = transformStream;
this.headers = new Headers();
this.textBody = undefined;
this.sendPromise = new _detachedpromise.DetachedPromise();
this._sent = false;
}
setHeader(name, value) {
this.headers.delete(name);
for (const val of Array.isArray(value) ? value : [
value
]){
this.headers.append(name, val);
}
return this;
}
removeHeader(name) {
this.headers.delete(name);
return this;
}
getHeaderValues(name) {
var _this_getHeader;
// https://developer.mozilla.org/docs/Web/API/Headers/get#example
return (_this_getHeader = this.getHeader(name)) == null ? void 0 : _this_getHeader.split(",").map((v)=>v.trimStart());
}
getHeader(name) {
return this.headers.get(name) ?? undefined;
}
getHeaders() {
return (0, _utils.toNodeOutgoingHttpHeaders)(this.headers);
}
hasHeader(name) {
return this.headers.has(name);
}
appendHeader(name, value) {
this.headers.append(name, value);
return this;
}
body(value) {
this.textBody = value;
return this;
}
send() {
this.sendPromise.resolve();
this._sent = true;
}
get sent() {
return this._sent;
}
async toResponse() {
// If we haven't called `send` yet, wait for it to be called.
if (!this.sent) await this.sendPromise.promise;
return new Response(this.textBody ?? this.transformStream.readable, {
headers: this.headers,
status: this.statusCode,
statusText: this.statusMessage
});
}
}
//# sourceMappingURL=web.js.map

1
node_modules/next/dist/server/base-http/web.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../src/server/base-http/web.ts"],"names":["WebNextRequest","WebNextResponse","BaseNextRequest","constructor","request","url","URL","method","href","slice","origin","length","clone","body","fetchMetrics","headers","name","value","entries","parseBody","_limit","Error","BaseNextResponse","transformStream","TransformStream","writable","Headers","textBody","undefined","sendPromise","DetachedPromise","_sent","setHeader","delete","val","Array","isArray","append","removeHeader","getHeaderValues","getHeader","split","map","v","trimStart","get","getHeaders","toNodeOutgoingHttpHeaders","hasHeader","has","appendHeader","send","resolve","sent","toResponse","promise","Response","readable","status","statusCode","statusText","statusMessage"],"mappings":"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"}