Version 1.0.2 mit node_modules Verzeichnis

This commit is contained in:
ISA
2024-10-02 07:58:24 +02:00
parent f353a06b1b
commit 62b6e55a0a
68228 changed files with 4548477 additions and 651 deletions

View File

@@ -0,0 +1,27 @@
import type webpack from 'webpack';
import type { SizeLimit } from '../../../../../types';
import type { PAGE_TYPES } from '../../../../lib/page-types';
export type EdgeSSRLoaderQuery = {
absolute500Path: string;
absoluteAppPath: string;
absoluteDocumentPath: string;
absoluteErrorPath: string;
absolutePagePath: string;
buildId: string;
dev: boolean;
isServerComponent: boolean;
page: string;
stringifiedConfig: string;
appDirLoader?: string;
pagesType: PAGE_TYPES;
sriEnabled: boolean;
cacheHandler?: string;
preferredRegion: string | string[] | undefined;
middlewareConfig: string;
serverActions?: {
bodySizeLimit?: SizeLimit;
allowedOrigins?: string[];
};
};
declare const edgeSSRLoader: webpack.LoaderDefinitionFunction<EdgeSSRLoaderQuery>;
export default edgeSSRLoader;

View File

@@ -0,0 +1,102 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _getmodulebuildinfo = require("../get-module-build-info");
const _constants = require("../../../../lib/constants");
const _routekind = require("../../../../server/future/route-kind");
const _normalizepagepath = require("../../../../shared/lib/page-path/normalize-page-path");
const _loadentrypoint = require("../../../load-entrypoint");
/*
For pages SSR'd at the edge, we bundle them with the ESM version of Next in order to
benefit from the better tree-shaking and thus, smaller bundle sizes.
The absolute paths for _app, _error and _document, used in this loader, link to the regular CJS modules.
They are generated in `createPagesMapping` where we don't have access to `isEdgeRuntime`,
so we have to do it here. It's not that bad because it keeps all references to ESM modules magic in this place.
*/ function swapDistFolderWithEsmDistFolder(path) {
return path.replace("next/dist/pages", "next/dist/esm/pages");
}
function getRouteModuleOptions(page) {
const options = {
definition: {
kind: _routekind.RouteKind.PAGES,
page: (0, _normalizepagepath.normalizePagePath)(page),
pathname: page,
// The following aren't used in production.
bundlePath: "",
filename: ""
}
};
return options;
}
const edgeSSRLoader = async function edgeSSRLoader() {
const { dev, page, buildId, absolutePagePath, absoluteAppPath, absoluteDocumentPath, absolute500Path, absoluteErrorPath, isServerComponent, stringifiedConfig: stringifiedConfigBase64, appDirLoader: appDirLoaderBase64, pagesType, sriEnabled, cacheHandler, preferredRegion, middlewareConfig: middlewareConfigBase64, serverActions } = this.getOptions();
const middlewareConfig = JSON.parse(Buffer.from(middlewareConfigBase64, "base64").toString());
const stringifiedConfig = Buffer.from(stringifiedConfigBase64 || "", "base64").toString();
const appDirLoader = Buffer.from(appDirLoaderBase64 || "", "base64").toString();
const isAppDir = pagesType === "app";
const buildInfo = (0, _getmodulebuildinfo.getModuleBuildInfo)(this._module);
buildInfo.nextEdgeSSR = {
isServerComponent,
page: page,
isAppDir
};
buildInfo.route = {
page,
absolutePagePath,
preferredRegion,
middlewareConfig
};
const pagePath = this.utils.contextify(this.context || this.rootContext, absolutePagePath);
const appPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteAppPath));
const errorPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteErrorPath));
const documentPath = this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absoluteDocumentPath));
const userland500Path = absolute500Path ? this.utils.contextify(this.context || this.rootContext, swapDistFolderWithEsmDistFolder(absolute500Path)) : null;
const stringifiedPagePath = JSON.stringify(pagePath);
const pageModPath = `${appDirLoader}${stringifiedPagePath.substring(1, stringifiedPagePath.length - 1)}${isAppDir ? `?${_constants.WEBPACK_RESOURCE_QUERIES.edgeSSREntry}` : ""}`;
if (isAppDir) {
return await (0, _loadentrypoint.loadEntrypoint)("edge-ssr-app", {
VAR_USERLAND: pageModPath,
VAR_PAGE: page,
VAR_BUILD_ID: buildId
}, {
sriEnabled: JSON.stringify(sriEnabled),
nextConfig: stringifiedConfig,
isServerComponent: JSON.stringify(isServerComponent),
dev: JSON.stringify(dev),
serverActions: typeof serverActions === "undefined" ? "undefined" : JSON.stringify(serverActions)
}, {
incrementalCacheHandler: cacheHandler ?? null
});
} else {
return await (0, _loadentrypoint.loadEntrypoint)("edge-ssr", {
VAR_USERLAND: pageModPath,
VAR_PAGE: page,
VAR_BUILD_ID: buildId,
VAR_MODULE_DOCUMENT: documentPath,
VAR_MODULE_APP: appPath,
VAR_MODULE_GLOBAL_ERROR: errorPath
}, {
pagesType: JSON.stringify(pagesType),
sriEnabled: JSON.stringify(sriEnabled),
nextConfig: stringifiedConfig,
dev: JSON.stringify(dev),
pageRouteModuleOptions: JSON.stringify(getRouteModuleOptions(page)),
errorRouteModuleOptions: JSON.stringify(getRouteModuleOptions("/_error")),
user500RouteModuleOptions: JSON.stringify(getRouteModuleOptions("/500"))
}, {
userland500Page: userland500Path,
incrementalCacheHandler: cacheHandler ?? null
});
}
};
const _default = edgeSSRLoader;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/build/webpack/loaders/next-edge-ssr-loader/index.ts"],"names":["swapDistFolderWithEsmDistFolder","path","replace","getRouteModuleOptions","page","options","definition","kind","RouteKind","PAGES","normalizePagePath","pathname","bundlePath","filename","edgeSSRLoader","dev","buildId","absolutePagePath","absoluteAppPath","absoluteDocumentPath","absolute500Path","absoluteErrorPath","isServerComponent","stringifiedConfig","stringifiedConfigBase64","appDirLoader","appDirLoaderBase64","pagesType","sriEnabled","cacheHandler","preferredRegion","middlewareConfig","middlewareConfigBase64","serverActions","getOptions","JSON","parse","Buffer","from","toString","isAppDir","buildInfo","getModuleBuildInfo","_module","nextEdgeSSR","route","pagePath","utils","contextify","context","rootContext","appPath","errorPath","documentPath","userland500Path","stringifiedPagePath","stringify","pageModPath","substring","length","WEBPACK_RESOURCE_QUERIES","edgeSSREntry","loadEntrypoint","VAR_USERLAND","VAR_PAGE","VAR_BUILD_ID","nextConfig","incrementalCacheHandler","VAR_MODULE_DOCUMENT","VAR_MODULE_APP","VAR_MODULE_GLOBAL_ERROR","pageRouteModuleOptions","errorRouteModuleOptions","user500RouteModuleOptions","userland500Page"],"mappings":"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"}

View File

@@ -0,0 +1,37 @@
import type { NextConfigComplete } from '../../../../server/config-shared';
import type { DocumentType } from '../../../../shared/lib/utils';
import type { BuildManifest } from '../../../../server/get-page-files';
import type { ReactLoadableManifest } from '../../../../server/load-components';
import type { ClientReferenceManifest } from '../../plugins/flight-manifest-plugin';
import type { NextFontManifest } from '../../plugins/next-font-manifest-plugin';
import type { NextFetchEvent } from '../../../../server/web/spec-extension/fetch-event';
import type { ManifestRewriteRoute, PrerenderManifest } from '../../..';
import type { SizeLimit } from '../../../../../types';
import type { PAGE_TYPES } from '../../../../lib/page-types';
import type { NextRequestHint } from '../../../../server/web/adapter';
export declare function getRender({ dev, page, appMod, pageMod, errorMod, error500Mod, pagesType, Document, buildManifest, prerenderManifest, reactLoadableManifest, interceptionRouteRewrites, renderToHTML, clientReferenceManifest, subresourceIntegrityManifest, serverActionsManifest, serverActions, config, buildId, nextFontManifest, incrementalCacheHandler, }: {
pagesType: PAGE_TYPES;
dev: boolean;
page: string;
appMod: any;
pageMod: any;
errorMod: any;
error500Mod: any;
renderToHTML?: any;
Document: DocumentType;
buildManifest: BuildManifest;
prerenderManifest: PrerenderManifest;
reactLoadableManifest: ReactLoadableManifest;
subresourceIntegrityManifest?: Record<string, string>;
interceptionRouteRewrites?: ManifestRewriteRoute[];
clientReferenceManifest?: ClientReferenceManifest;
serverActionsManifest?: any;
serverActions?: {
bodySizeLimit?: SizeLimit;
allowedOrigins?: string[];
};
config: NextConfigComplete;
buildId: string;
nextFontManifest: NextFontManifest;
incrementalCacheHandler?: any;
}): (request: NextRequestHint, event?: NextFetchEvent) => Promise<Response>;

View File

@@ -0,0 +1,115 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "getRender", {
enumerable: true,
get: function() {
return getRender;
}
});
const _webserver = /*#__PURE__*/ _interop_require_default(require("../../../../server/web-server"));
const _web = require("../../../../server/base-http/web");
const _constants = require("../../../../lib/constants");
const _apppaths = require("../../../../shared/lib/router/utils/app-paths");
const _internaledgewaituntil = require("../../../../server/web/internal-edge-wait-until");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function getRender({ dev, page, appMod, pageMod, errorMod, error500Mod, pagesType, Document, buildManifest, prerenderManifest, reactLoadableManifest, interceptionRouteRewrites, renderToHTML, clientReferenceManifest, subresourceIntegrityManifest, serverActionsManifest, serverActions, config, buildId, nextFontManifest, incrementalCacheHandler }) {
const isAppPath = pagesType === "app";
const baseLoadComponentResult = {
dev,
buildManifest,
reactLoadableManifest,
subresourceIntegrityManifest,
Document,
App: appMod == null ? void 0 : appMod.default,
clientReferenceManifest
};
const server = new _webserver.default({
dev,
conf: config,
minimalMode: true,
webServerConfig: {
page,
pathname: isAppPath ? (0, _apppaths.normalizeAppPath)(page) : page,
pagesType,
prerenderManifest,
interceptionRouteRewrites,
extendRenderOpts: {
buildId,
runtime: _constants.SERVER_RUNTIME.experimentalEdge,
supportsDynamicHTML: true,
disableOptimizedLoading: true,
serverActionsManifest,
serverActions,
nextFontManifest
},
renderToHTML,
incrementalCacheHandler,
loadComponent: async (inputPage)=>{
if (inputPage === page) {
return {
...baseLoadComponentResult,
Component: pageMod.default,
pageConfig: pageMod.config || {},
getStaticProps: pageMod.getStaticProps,
getServerSideProps: pageMod.getServerSideProps,
getStaticPaths: pageMod.getStaticPaths,
ComponentMod: pageMod,
isAppPath: !!pageMod.__next_app__,
page: inputPage,
routeModule: pageMod.routeModule
};
}
// If there is a custom 500 page, we need to handle it separately.
if (inputPage === "/500" && error500Mod) {
return {
...baseLoadComponentResult,
Component: error500Mod.default,
pageConfig: error500Mod.config || {},
getStaticProps: error500Mod.getStaticProps,
getServerSideProps: error500Mod.getServerSideProps,
getStaticPaths: error500Mod.getStaticPaths,
ComponentMod: error500Mod,
page: inputPage,
routeModule: error500Mod.routeModule
};
}
if (inputPage === "/_error") {
return {
...baseLoadComponentResult,
Component: errorMod.default,
pageConfig: errorMod.config || {},
getStaticProps: errorMod.getStaticProps,
getServerSideProps: errorMod.getServerSideProps,
getStaticPaths: errorMod.getStaticPaths,
ComponentMod: errorMod,
page: inputPage,
routeModule: errorMod.routeModule
};
}
return null;
}
}
});
const handler = server.getRequestHandler();
return async function render(request, event) {
const extendedReq = new _web.WebNextRequest(request);
const extendedRes = new _web.WebNextResponse();
handler(extendedReq, extendedRes);
const result = await extendedRes.toResponse();
if (event == null ? void 0 : event.waitUntil) {
const waitUntilPromise = (0, _internaledgewaituntil.internal_getCurrentFunctionWaitUntil)();
if (waitUntilPromise) {
event.waitUntil(waitUntilPromise);
}
}
return result;
};
}
//# sourceMappingURL=render.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/build/webpack/loaders/next-edge-ssr-loader/render.ts"],"names":["getRender","dev","page","appMod","pageMod","errorMod","error500Mod","pagesType","Document","buildManifest","prerenderManifest","reactLoadableManifest","interceptionRouteRewrites","renderToHTML","clientReferenceManifest","subresourceIntegrityManifest","serverActionsManifest","serverActions","config","buildId","nextFontManifest","incrementalCacheHandler","isAppPath","baseLoadComponentResult","App","default","server","WebServer","conf","minimalMode","webServerConfig","pathname","normalizeAppPath","extendRenderOpts","runtime","SERVER_RUNTIME","experimentalEdge","supportsDynamicHTML","disableOptimizedLoading","loadComponent","inputPage","Component","pageConfig","getStaticProps","getServerSideProps","getStaticPaths","ComponentMod","__next_app__","routeModule","handler","getRequestHandler","render","request","event","extendedReq","WebNextRequest","extendedRes","WebNextResponse","result","toResponse","waitUntil","waitUntilPromise","internal_getCurrentFunctionWaitUntil"],"mappings":"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"}