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

View File

@ -0,0 +1,26 @@
import { absolutePathToPage } from "../../../shared/lib/page-path/absolute-path-to-page";
/**
* Normalizes a given filename so that it's relative to the provided directory.
* It will also strip the extension (if provided) and the trailing `/index`.
*/ export class AbsoluteFilenameNormalizer {
/**
*
* @param dir the directory for which the files should be made relative to
* @param extensions the extensions the file could have
* @param keepIndex when `true` the trailing `/index` is _not_ removed
*/ constructor(dir, extensions, pagesType){
this.dir = dir;
this.extensions = extensions;
this.pagesType = pagesType;
}
normalize(filename) {
return absolutePathToPage(filename, {
extensions: this.extensions,
keepIndex: false,
dir: this.dir,
pagesType: this.pagesType
});
}
}
//# sourceMappingURL=absolute-filename-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/absolute-filename-normalizer.ts"],"names":["absolutePathToPage","AbsoluteFilenameNormalizer","constructor","dir","extensions","pagesType","normalize","filename","keepIndex"],"mappings":"AACA,SAASA,kBAAkB,QAAQ,sDAAqD;AAGxF;;;CAGC,GACD,OAAO,MAAMC;IACX;;;;;GAKC,GACDC,YACE,AAAiBC,GAAW,EAC5B,AAAiBC,UAAiC,EAClD,AAAiBC,SAAqB,CACtC;aAHiBF,MAAAA;aACAC,aAAAA;aACAC,YAAAA;IAChB;IAEIC,UAAUC,QAAgB,EAAU;QACzC,OAAOP,mBAAmBO,UAAU;YAClCH,YAAY,IAAI,CAACA,UAAU;YAC3BI,WAAW;YACXL,KAAK,IAAI,CAACA,GAAG;YACbE,WAAW,IAAI,CAACA,SAAS;QAC3B;IACF;AACF"}

View File

@ -0,0 +1,26 @@
import { Normalizers } from "../../normalizers";
import { PrefixingNormalizer } from "../../prefixing-normalizer";
import { normalizePagePath } from "../../../../../shared/lib/page-path/normalize-page-path";
export class AppBundlePathNormalizer extends PrefixingNormalizer {
constructor(){
super("app");
}
normalize(page) {
return super.normalize(normalizePagePath(page));
}
}
export class DevAppBundlePathNormalizer extends Normalizers {
constructor(pageNormalizer){
super([
// This should normalize the filename to a page.
pageNormalizer,
// Normalize the app page to a pathname.
new AppBundlePathNormalizer()
]);
}
normalize(filename) {
return super.normalize(filename);
}
}
//# sourceMappingURL=app-bundle-path-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/app/app-bundle-path-normalizer.ts"],"names":["Normalizers","PrefixingNormalizer","normalizePagePath","AppBundlePathNormalizer","constructor","normalize","page","DevAppBundlePathNormalizer","pageNormalizer","filename"],"mappings":"AAAA,SAASA,WAAW,QAAQ,oBAAmB;AAE/C,SAASC,mBAAmB,QAAQ,6BAA4B;AAChE,SAASC,iBAAiB,QAAQ,0DAAyD;AAE3F,OAAO,MAAMC,gCAAgCF;IAC3CG,aAAc;QACZ,KAAK,CAAC;IACR;IAEOC,UAAUC,IAAY,EAAU;QACrC,OAAO,KAAK,CAACD,UAAUH,kBAAkBI;IAC3C;AACF;AAEA,OAAO,MAAMC,mCAAmCP;IAC9CI,YAAYI,cAA0B,CAAE;QACtC,KAAK,CAAC;YACJ,gDAAgD;YAChDA;YACA,wCAAwC;YACxC,IAAIL;SACL;IACH;IAEOE,UAAUI,QAAgB,EAAU;QACzC,OAAO,KAAK,CAACJ,UAAUI;IACzB;AACF"}

View File

@ -0,0 +1,12 @@
import { SERVER_DIRECTORY } from "../../../../../shared/lib/constants";
import { PrefixingNormalizer } from "../../prefixing-normalizer";
export class AppFilenameNormalizer extends PrefixingNormalizer {
constructor(distDir){
super(distDir, SERVER_DIRECTORY);
}
normalize(manifestFilename) {
return super.normalize(manifestFilename);
}
}
//# sourceMappingURL=app-filename-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/app/app-filename-normalizer.ts"],"names":["SERVER_DIRECTORY","PrefixingNormalizer","AppFilenameNormalizer","constructor","distDir","normalize","manifestFilename"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,sCAAqC;AACtE,SAASC,mBAAmB,QAAQ,6BAA4B;AAEhE,OAAO,MAAMC,8BAA8BD;IACzCE,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA,SAASJ;IACjB;IAEOK,UAAUC,gBAAwB,EAAU;QACjD,OAAO,KAAK,CAACD,UAAUC;IACzB;AACF"}

View File

@ -0,0 +1,12 @@
import { PAGE_TYPES } from "../../../../../lib/page-types";
import { AbsoluteFilenameNormalizer } from "../../absolute-filename-normalizer";
/**
* DevAppPageNormalizer is a normalizer that is used to normalize a pathname
* to a page in the `app` directory.
*/ export class DevAppPageNormalizer extends AbsoluteFilenameNormalizer {
constructor(appDir, extensions){
super(appDir, extensions, PAGE_TYPES.APP);
}
}
//# sourceMappingURL=app-page-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/app/app-page-normalizer.ts"],"names":["PAGE_TYPES","AbsoluteFilenameNormalizer","DevAppPageNormalizer","constructor","appDir","extensions","APP"],"mappings":"AAAA,SAASA,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,0BAA0B,QAAQ,qCAAoC;AAE/E;;;CAGC,GACD,OAAO,MAAMC,6BAA6BD;IACxCE,YAAYC,MAAc,EAAEC,UAAiC,CAAE;QAC7D,KAAK,CAACD,QAAQC,YAAYL,WAAWM,GAAG;IAC1C;AACF"}

View File

@ -0,0 +1,33 @@
import { normalizeAppPath } from "../../../../../shared/lib/router/utils/app-paths";
import { Normalizers } from "../../normalizers";
import { wrapNormalizerFn } from "../../wrap-normalizer-fn";
import { UnderscoreNormalizer } from "../../underscore-normalizer";
export class AppPathnameNormalizer extends Normalizers {
constructor(){
super([
// The pathname to match should have the trailing `/page` and other route
// group information stripped from it.
wrapNormalizerFn(normalizeAppPath),
// The page should have the `%5F` characters replaced with `_` characters.
new UnderscoreNormalizer()
]);
}
normalize(page) {
return super.normalize(page);
}
}
export class DevAppPathnameNormalizer extends Normalizers {
constructor(pageNormalizer){
super([
// This should normalize the filename to a page.
pageNormalizer,
// Normalize the app page to a pathname.
new AppPathnameNormalizer()
]);
}
normalize(filename) {
return super.normalize(filename);
}
}
//# sourceMappingURL=app-pathname-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/app/app-pathname-normalizer.ts"],"names":["normalizeAppPath","Normalizers","wrapNormalizerFn","UnderscoreNormalizer","AppPathnameNormalizer","constructor","normalize","page","DevAppPathnameNormalizer","pageNormalizer","filename"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,mDAAkD;AACnF,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,SAASC,oBAAoB,QAAQ,8BAA6B;AAGlE,OAAO,MAAMC,8BAA8BH;IACzCI,aAAc;QACZ,KAAK,CAAC;YACJ,yEAAyE;YACzE,sCAAsC;YACtCH,iBAAiBF;YACjB,0EAA0E;YAC1E,IAAIG;SACL;IACH;IAEOG,UAAUC,IAAY,EAAU;QACrC,OAAO,KAAK,CAACD,UAAUC;IACzB;AACF;AAEA,OAAO,MAAMC,iCAAiCP;IAC5CI,YAAYI,cAA0B,CAAE;QACtC,KAAK,CAAC;YACJ,gDAAgD;YAChDA;YACA,wCAAwC;YACxC,IAAIL;SACL;IACH;IAEOE,UAAUI,QAAgB,EAAU;QACzC,OAAO,KAAK,CAACJ,UAAUI;IACzB;AACF"}

View File

@ -0,0 +1,20 @@
import { AppBundlePathNormalizer, DevAppBundlePathNormalizer } from "./app-bundle-path-normalizer";
import { AppFilenameNormalizer } from "./app-filename-normalizer";
import { DevAppPageNormalizer } from "./app-page-normalizer";
import { AppPathnameNormalizer, DevAppPathnameNormalizer } from "./app-pathname-normalizer";
export class AppNormalizers {
constructor(distDir){
this.filename = new AppFilenameNormalizer(distDir);
this.pathname = new AppPathnameNormalizer();
this.bundlePath = new AppBundlePathNormalizer();
}
}
export class DevAppNormalizers {
constructor(appDir, extensions){
this.page = new DevAppPageNormalizer(appDir, extensions);
this.pathname = new DevAppPathnameNormalizer(this.page);
this.bundlePath = new DevAppBundlePathNormalizer(this.page);
}
}
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/app/index.ts"],"names":["AppBundlePathNormalizer","DevAppBundlePathNormalizer","AppFilenameNormalizer","DevAppPageNormalizer","AppPathnameNormalizer","DevAppPathnameNormalizer","AppNormalizers","constructor","distDir","filename","pathname","bundlePath","DevAppNormalizers","appDir","extensions","page"],"mappings":"AAAA,SACEA,uBAAuB,EACvBC,0BAA0B,QACrB,+BAA8B;AACrC,SAASC,qBAAqB,QAAQ,4BAA2B;AACjE,SAASC,oBAAoB,QAAQ,wBAAuB;AAC5D,SACEC,qBAAqB,EACrBC,wBAAwB,QACnB,4BAA2B;AAElC,OAAO,MAAMC;IAKXC,YAAYC,OAAe,CAAE;QAC3B,IAAI,CAACC,QAAQ,GAAG,IAAIP,sBAAsBM;QAC1C,IAAI,CAACE,QAAQ,GAAG,IAAIN;QACpB,IAAI,CAACO,UAAU,GAAG,IAAIX;IACxB;AACF;AAEA,OAAO,MAAMY;IAKXL,YAAYM,MAAc,EAAEC,UAAiC,CAAE;QAC7D,IAAI,CAACC,IAAI,GAAG,IAAIZ,qBAAqBU,QAAQC;QAC7C,IAAI,CAACJ,QAAQ,GAAG,IAAIL,yBAAyB,IAAI,CAACU,IAAI;QACtD,IAAI,CAACJ,UAAU,GAAG,IAAIV,2BAA2B,IAAI,CAACc,IAAI;IAC5D;AACF"}

View File

@ -0,0 +1,22 @@
import { DevPagesBundlePathNormalizer, PagesBundlePathNormalizer } from "./pages-bundle-path-normalizer";
import { PagesFilenameNormalizer } from "./pages-filename-normalizer";
import { DevPagesPageNormalizer } from "./pages-page-normalizer";
import { DevPagesPathnameNormalizer } from "./pages-pathname-normalizer";
export class PagesNormalizers {
constructor(distDir){
this.filename = new PagesFilenameNormalizer(distDir);
this.bundlePath = new PagesBundlePathNormalizer();
// You'd think that we'd require a `pathname` normalizer here, but for
// `/pages` we have to handle i18n routes, which means that we need to
// analyze the page path to determine the locale prefix and it's locale.
}
}
export class DevPagesNormalizers {
constructor(pagesDir, extensions){
this.page = new DevPagesPageNormalizer(pagesDir, extensions);
this.pathname = new DevPagesPathnameNormalizer(pagesDir, extensions);
this.bundlePath = new DevPagesBundlePathNormalizer(this.page);
}
}
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/pages/index.ts"],"names":["DevPagesBundlePathNormalizer","PagesBundlePathNormalizer","PagesFilenameNormalizer","DevPagesPageNormalizer","DevPagesPathnameNormalizer","PagesNormalizers","constructor","distDir","filename","bundlePath","DevPagesNormalizers","pagesDir","extensions","page","pathname"],"mappings":"AAAA,SACEA,4BAA4B,EAC5BC,yBAAyB,QACpB,iCAAgC;AACvC,SAASC,uBAAuB,QAAQ,8BAA6B;AACrE,SAASC,sBAAsB,QAAQ,0BAAyB;AAChE,SAASC,0BAA0B,QAAQ,8BAA6B;AAExE,OAAO,MAAMC;IAIXC,YAAYC,OAAe,CAAE;QAC3B,IAAI,CAACC,QAAQ,GAAG,IAAIN,wBAAwBK;QAC5C,IAAI,CAACE,UAAU,GAAG,IAAIR;IAEtB,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IAC1E;AACF;AAEA,OAAO,MAAMS;IAKXJ,YAAYK,QAAgB,EAAEC,UAAiC,CAAE;QAC/D,IAAI,CAACC,IAAI,GAAG,IAAIV,uBAAuBQ,UAAUC;QACjD,IAAI,CAACE,QAAQ,GAAG,IAAIV,2BAA2BO,UAAUC;QACzD,IAAI,CAACH,UAAU,GAAG,IAAIT,6BAA6B,IAAI,CAACa,IAAI;IAC9D;AACF"}

View File

@ -0,0 +1,33 @@
import { normalizePagePath } from "../../../../../shared/lib/page-path/normalize-page-path";
import { Normalizers } from "../../normalizers";
import { PrefixingNormalizer } from "../../prefixing-normalizer";
import { wrapNormalizerFn } from "../../wrap-normalizer-fn";
export class PagesBundlePathNormalizer extends Normalizers {
constructor(){
super([
// The bundle path should have the trailing `/index` stripped from
// it.
wrapNormalizerFn(normalizePagePath),
// The page should prefixed with `pages/`.
new PrefixingNormalizer("pages")
]);
}
normalize(page) {
return super.normalize(page);
}
}
export class DevPagesBundlePathNormalizer extends Normalizers {
constructor(pagesNormalizer){
super([
// This should normalize the filename to a page.
pagesNormalizer,
// Normalize the app page to a pathname.
new PagesBundlePathNormalizer()
]);
}
normalize(filename) {
return super.normalize(filename);
}
}
//# sourceMappingURL=pages-bundle-path-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/pages/pages-bundle-path-normalizer.ts"],"names":["normalizePagePath","Normalizers","PrefixingNormalizer","wrapNormalizerFn","PagesBundlePathNormalizer","constructor","normalize","page","DevPagesBundlePathNormalizer","pagesNormalizer","filename"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,0DAAyD;AAE3F,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,mBAAmB,QAAQ,6BAA4B;AAChE,SAASC,gBAAgB,QAAQ,2BAA0B;AAE3D,OAAO,MAAMC,kCAAkCH;IAC7CI,aAAc;QACZ,KAAK,CAAC;YACJ,kEAAkE;YAClE,MAAM;YACNF,iBAAiBH;YACjB,0CAA0C;YAC1C,IAAIE,oBAAoB;SACzB;IACH;IAEOI,UAAUC,IAAY,EAAU;QACrC,OAAO,KAAK,CAACD,UAAUC;IACzB;AACF;AAEA,OAAO,MAAMC,qCAAqCP;IAChDI,YAAYI,eAA2B,CAAE;QACvC,KAAK,CAAC;YACJ,gDAAgD;YAChDA;YACA,wCAAwC;YACxC,IAAIL;SACL;IACH;IAEOE,UAAUI,QAAgB,EAAU;QACzC,OAAO,KAAK,CAACJ,UAAUI;IACzB;AACF"}

View File

@ -0,0 +1,12 @@
import { SERVER_DIRECTORY } from "../../../../../shared/lib/constants";
import { PrefixingNormalizer } from "../../prefixing-normalizer";
export class PagesFilenameNormalizer extends PrefixingNormalizer {
constructor(distDir){
super(distDir, SERVER_DIRECTORY);
}
normalize(manifestFilename) {
return super.normalize(manifestFilename);
}
}
//# sourceMappingURL=pages-filename-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/pages/pages-filename-normalizer.ts"],"names":["SERVER_DIRECTORY","PrefixingNormalizer","PagesFilenameNormalizer","constructor","distDir","normalize","manifestFilename"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,sCAAqC;AACtE,SAASC,mBAAmB,QAAQ,6BAA4B;AAEhE,OAAO,MAAMC,gCAAgCD;IAC3CE,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA,SAASJ;IACjB;IAEOK,UAAUC,gBAAwB,EAAU;QACjD,OAAO,KAAK,CAACD,UAAUC;IACzB;AACF"}

View File

@ -0,0 +1,9 @@
import { PAGE_TYPES } from "../../../../../lib/page-types";
import { AbsoluteFilenameNormalizer } from "../../absolute-filename-normalizer";
export class DevPagesPageNormalizer extends AbsoluteFilenameNormalizer {
constructor(pagesDir, extensions){
super(pagesDir, extensions, PAGE_TYPES.PAGES);
}
}
//# sourceMappingURL=pages-page-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/pages/pages-page-normalizer.ts"],"names":["PAGE_TYPES","AbsoluteFilenameNormalizer","DevPagesPageNormalizer","constructor","pagesDir","extensions","PAGES"],"mappings":"AAAA,SAASA,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,0BAA0B,QAAQ,qCAAoC;AAE/E,OAAO,MAAMC,+BAA+BD;IAC1CE,YAAYC,QAAgB,EAAEC,UAAiC,CAAE;QAC/D,KAAK,CAACD,UAAUC,YAAYL,WAAWM,KAAK;IAC9C;AACF"}

View File

@ -0,0 +1,9 @@
import { PAGE_TYPES } from "../../../../../lib/page-types";
import { AbsoluteFilenameNormalizer } from "../../absolute-filename-normalizer";
export class DevPagesPathnameNormalizer extends AbsoluteFilenameNormalizer {
constructor(pagesDir, extensions){
super(pagesDir, extensions, PAGE_TYPES.PAGES);
}
}
//# sourceMappingURL=pages-pathname-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../../src/server/future/normalizers/built/pages/pages-pathname-normalizer.ts"],"names":["PAGE_TYPES","AbsoluteFilenameNormalizer","DevPagesPathnameNormalizer","constructor","pagesDir","extensions","PAGES"],"mappings":"AAAA,SAASA,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,0BAA0B,QAAQ,qCAAoC;AAE/E,OAAO,MAAMC,mCAAmCD;IAC9CE,YAAYC,QAAgB,EAAEC,UAAiC,CAAE;QAC/D,KAAK,CAACD,UAAUC,YAAYL,WAAWM,KAAK;IAC9C;AACF"}

View File

@ -0,0 +1,18 @@
/**
* Normalizes the pathname by removing the locale prefix if any.
*/ export class LocaleRouteNormalizer {
constructor(provider){
this.provider = provider;
}
/**
* Normalizes the pathname by removing the locale prefix if any.
*
* @param pathname The pathname to normalize.
* @returns The pathname without the locale prefix (if any).
*/ normalize(pathname) {
const match = this.provider.analyze(pathname);
return match.pathname;
}
}
//# sourceMappingURL=locale-route-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/locale-route-normalizer.ts"],"names":["LocaleRouteNormalizer","constructor","provider","normalize","pathname","match","analyze"],"mappings":"AAGA;;CAEC,GACD,OAAO,MAAMA;IACXC,YAAY,AAAiBC,QAAsB,CAAE;aAAxBA,WAAAA;IAAyB;IAEtD;;;;;GAKC,GACD,AAAOC,UAAUC,QAAgB,EAAU;QACzC,MAAMC,QAAQ,IAAI,CAACH,QAAQ,CAACI,OAAO,CAACF;QACpC,OAAOC,MAAMD,QAAQ;IACvB;AACF"}

View File

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

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/normalizer.ts"],"names":[],"mappings":"AAAA,WAEC"}

View File

@ -0,0 +1,16 @@
/**
* Normalizers combines many normalizers into a single normalizer interface that
* will normalize the inputted pathname with each normalizer in order.
*/ export class Normalizers {
constructor(normalizers = []){
this.normalizers = normalizers;
}
push(normalizer) {
this.normalizers.push(normalizer);
}
normalize(pathname) {
return this.normalizers.reduce((normalized, normalizer)=>normalizer.normalize(normalized), pathname);
}
}
//# sourceMappingURL=normalizers.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/normalizers.ts"],"names":["Normalizers","constructor","normalizers","push","normalizer","normalize","pathname","reduce","normalized"],"mappings":"AAEA;;;CAGC,GACD,OAAO,MAAMA;IACXC,YAAY,AAAiBC,cAAiC,EAAE,CAAE;aAArCA,cAAAA;IAAsC;IAE5DC,KAAKC,UAAsB,EAAE;QAClC,IAAI,CAACF,WAAW,CAACC,IAAI,CAACC;IACxB;IAEOC,UAAUC,QAAgB,EAAU;QACzC,OAAO,IAAI,CAACJ,WAAW,CAACK,MAAM,CAC5B,CAACC,YAAYJ,aAAeA,WAAWC,SAAS,CAACG,aACjDF;IAEJ;AACF"}

View File

@ -0,0 +1,11 @@
import path from "../../../shared/lib/isomorphic/path";
export class PrefixingNormalizer {
constructor(...prefixes){
this.prefix = path.posix.join(...prefixes);
}
normalize(pathname) {
return path.posix.join(this.prefix, pathname);
}
}
//# sourceMappingURL=prefixing-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/prefixing-normalizer.ts"],"names":["path","PrefixingNormalizer","constructor","prefixes","prefix","posix","join","normalize","pathname"],"mappings":"AAAA,OAAOA,UAAU,sCAAqC;AAGtD,OAAO,MAAMC;IAGXC,YAAY,GAAGC,QAA+B,CAAE;QAC9C,IAAI,CAACC,MAAM,GAAGJ,KAAKK,KAAK,CAACC,IAAI,IAAIH;IACnC;IAEOI,UAAUC,QAAgB,EAAU;QACzC,OAAOR,KAAKK,KAAK,CAACC,IAAI,CAAC,IAAI,CAACF,MAAM,EAAEI;IACtC;AACF"}

View File

@ -0,0 +1,9 @@
import { ACTION_SUFFIX } from "../../../../lib/constants";
import { SuffixPathnameNormalizer } from "./suffix";
export class ActionPathnameNormalizer extends SuffixPathnameNormalizer {
constructor(){
super(ACTION_SUFFIX);
}
}
//# sourceMappingURL=action.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/action.ts"],"names":["ACTION_SUFFIX","SuffixPathnameNormalizer","ActionPathnameNormalizer","constructor"],"mappings":"AAEA,SAASA,aAAa,QAAQ,4BAA2B;AACzD,SAASC,wBAAwB,QAAQ,WAAU;AAEnD,OAAO,MAAMC,iCACHD;IAGRE,aAAc;QACZ,KAAK,CAACH;IACR;AACF"}

View File

@ -0,0 +1,11 @@
import { PrefixPathnameNormalizer } from "./prefix";
export class BasePathPathnameNormalizer extends PrefixPathnameNormalizer {
constructor(basePath){
if (!basePath || basePath === "/") {
throw new Error('Invariant: basePath must be set and cannot be "/"');
}
super(basePath);
}
}
//# sourceMappingURL=base-path.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/base-path.ts"],"names":["PrefixPathnameNormalizer","BasePathPathnameNormalizer","constructor","basePath","Error"],"mappings":"AAEA,SAASA,wBAAwB,QAAQ,WAAU;AAEnD,OAAO,MAAMC,mCACHD;IAGRE,YAAYC,QAAgB,CAAE;QAC5B,IAAI,CAACA,YAAYA,aAAa,KAAK;YACjC,MAAM,IAAIC,MAAM;QAClB;QAEA,KAAK,CAACD;IACR;AACF"}

View File

@ -0,0 +1,24 @@
import { denormalizePagePath } from "../../../../shared/lib/page-path/denormalize-page-path";
import { PrefixPathnameNormalizer } from "./prefix";
import { SuffixPathnameNormalizer } from "./suffix";
export class NextDataPathnameNormalizer {
constructor(buildID){
this.suffix = new SuffixPathnameNormalizer(".json");
if (!buildID) {
throw new Error("Invariant: buildID is required");
}
this.prefix = new PrefixPathnameNormalizer(`/_next/data/${buildID}`);
}
match(pathname) {
return this.prefix.match(pathname) && this.suffix.match(pathname);
}
normalize(pathname, matched) {
// If we're not matched and we don't match, we don't need to normalize.
if (!matched && !this.match(pathname)) return pathname;
pathname = this.prefix.normalize(pathname, true);
pathname = this.suffix.normalize(pathname, true);
return denormalizePagePath(pathname);
}
}
//# sourceMappingURL=next-data.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/next-data.ts"],"names":["denormalizePagePath","PrefixPathnameNormalizer","SuffixPathnameNormalizer","NextDataPathnameNormalizer","constructor","buildID","suffix","Error","prefix","match","pathname","normalize","matched"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,yDAAwD;AAC5F,SAASC,wBAAwB,QAAQ,WAAU;AACnD,SAASC,wBAAwB,QAAQ,WAAU;AAEnD,OAAO,MAAMC;IAGXC,YAAYC,OAAe,CAAE;aADZC,SAAS,IAAIJ,yBAAyB;QAErD,IAAI,CAACG,SAAS;YACZ,MAAM,IAAIE,MAAM;QAClB;QAEA,IAAI,CAACC,MAAM,GAAG,IAAIP,yBAAyB,CAAC,YAAY,EAAEI,QAAQ,CAAC;IACrE;IAEOI,MAAMC,QAAgB,EAAE;QAC7B,OAAO,IAAI,CAACF,MAAM,CAACC,KAAK,CAACC,aAAa,IAAI,CAACJ,MAAM,CAACG,KAAK,CAACC;IAC1D;IAEOC,UAAUD,QAAgB,EAAEE,OAAiB,EAAU;QAC5D,uEAAuE;QACvE,IAAI,CAACA,WAAW,CAAC,IAAI,CAACH,KAAK,CAACC,WAAW,OAAOA;QAE9CA,WAAW,IAAI,CAACF,MAAM,CAACG,SAAS,CAACD,UAAU;QAC3CA,WAAW,IAAI,CAACJ,MAAM,CAACK,SAAS,CAACD,UAAU;QAE3C,OAAOV,oBAAoBU;IAC7B;AACF"}

View File

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

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/pathname-normalizer.ts"],"names":[],"mappings":"AAEA,WAGC"}

View File

@ -0,0 +1,17 @@
import { denormalizePagePath } from "../../../../shared/lib/page-path/denormalize-page-path";
import { PrefixPathnameNormalizer } from "./prefix";
const prefix = "/_next/postponed/resume";
export class PostponedPathnameNormalizer extends PrefixPathnameNormalizer {
constructor(){
super(prefix);
}
normalize(pathname, matched) {
// If we're not matched and we don't match, we don't need to normalize.
if (!matched && !this.match(pathname)) return pathname;
// Remove the prefix.
pathname = super.normalize(pathname, true);
return denormalizePagePath(pathname);
}
}
//# sourceMappingURL=postponed.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/postponed.ts"],"names":["denormalizePagePath","PrefixPathnameNormalizer","prefix","PostponedPathnameNormalizer","constructor","normalize","pathname","matched","match"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,yDAAwD;AAG5F,SAASC,wBAAwB,QAAQ,WAAU;AAEnD,MAAMC,SAAS;AAEf,OAAO,MAAMC,oCACHF;IAGRG,aAAc;QACZ,KAAK,CAACF;IACR;IAEOG,UAAUC,QAAgB,EAAEC,OAAiB,EAAU;QAC5D,uEAAuE;QACvE,IAAI,CAACA,WAAW,CAAC,IAAI,CAACC,KAAK,CAACF,WAAW,OAAOA;QAE9C,qBAAqB;QACrBA,WAAW,KAAK,CAACD,UAAUC,UAAU;QAErC,OAAON,oBAAoBM;IAC7B;AACF"}

View File

@ -0,0 +1,9 @@
import { RSC_PREFETCH_SUFFIX } from "../../../../lib/constants";
import { SuffixPathnameNormalizer } from "./suffix";
export class PrefetchRSCPathnameNormalizer extends SuffixPathnameNormalizer {
constructor(){
super(RSC_PREFETCH_SUFFIX);
}
}
//# sourceMappingURL=prefetch-rsc.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/prefetch-rsc.ts"],"names":["RSC_PREFETCH_SUFFIX","SuffixPathnameNormalizer","PrefetchRSCPathnameNormalizer","constructor"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,wBAAwB,QAAQ,WAAU;AAEnD,OAAO,MAAMC,sCACHD;IAGRE,aAAc;QACZ,KAAK,CAACH;IACR;AACF"}

View File

@ -0,0 +1,25 @@
export class PrefixPathnameNormalizer {
constructor(prefix){
this.prefix = prefix;
if (prefix.endsWith("/")) {
throw new Error(`PrefixPathnameNormalizer: prefix "${prefix}" should not end with a slash`);
}
}
match(pathname) {
// If the pathname doesn't start with the prefix, we don't match.
if (pathname !== this.prefix && !pathname.startsWith(this.prefix + "/")) {
return false;
}
return true;
}
normalize(pathname, matched) {
// If we're not matched and we don't match, we don't need to normalize.
if (!matched && !this.match(pathname)) return pathname;
if (pathname.length === this.prefix.length) {
return "/";
}
return pathname.substring(this.prefix.length);
}
}
//# sourceMappingURL=prefix.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/prefix.ts"],"names":["PrefixPathnameNormalizer","constructor","prefix","endsWith","Error","match","pathname","startsWith","normalize","matched","length","substring"],"mappings":"AAEA,OAAO,MAAMA;IACXC,YAAY,AAAiBC,MAAc,CAAE;aAAhBA,SAAAA;QAC3B,IAAIA,OAAOC,QAAQ,CAAC,MAAM;YACxB,MAAM,IAAIC,MACR,CAAC,kCAAkC,EAAEF,OAAO,6BAA6B,CAAC;QAE9E;IACF;IAEOG,MAAMC,QAAgB,EAAE;QAC7B,iEAAiE;QACjE,IAAIA,aAAa,IAAI,CAACJ,MAAM,IAAI,CAACI,SAASC,UAAU,CAAC,IAAI,CAACL,MAAM,GAAG,MAAM;YACvE,OAAO;QACT;QAEA,OAAO;IACT;IAEOM,UAAUF,QAAgB,EAAEG,OAAiB,EAAU;QAC5D,uEAAuE;QACvE,IAAI,CAACA,WAAW,CAAC,IAAI,CAACJ,KAAK,CAACC,WAAW,OAAOA;QAE9C,IAAIA,SAASI,MAAM,KAAK,IAAI,CAACR,MAAM,CAACQ,MAAM,EAAE;YAC1C,OAAO;QACT;QAEA,OAAOJ,SAASK,SAAS,CAAC,IAAI,CAACT,MAAM,CAACQ,MAAM;IAC9C;AACF"}

View File

@ -0,0 +1,9 @@
import { RSC_SUFFIX } from "../../../../lib/constants";
import { SuffixPathnameNormalizer } from "./suffix";
export class RSCPathnameNormalizer extends SuffixPathnameNormalizer {
constructor(){
super(RSC_SUFFIX);
}
}
//# sourceMappingURL=rsc.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/rsc.ts"],"names":["RSC_SUFFIX","SuffixPathnameNormalizer","RSCPathnameNormalizer","constructor"],"mappings":"AAEA,SAASA,UAAU,QAAQ,4BAA2B;AACtD,SAASC,wBAAwB,QAAQ,WAAU;AAEnD,OAAO,MAAMC,8BACHD;IAGRE,aAAc;QACZ,KAAK,CAACH;IACR;AACF"}

View File

@ -0,0 +1,17 @@
export class SuffixPathnameNormalizer {
constructor(suffix){
this.suffix = suffix;
}
match(pathname) {
// If the pathname doesn't end in the suffix, we don't match.
if (!pathname.endsWith(this.suffix)) return false;
return true;
}
normalize(pathname, matched) {
// If we're not matched and we don't match, we don't need to normalize.
if (!matched && !this.match(pathname)) return pathname;
return pathname.substring(0, pathname.length - this.suffix.length);
}
}
//# sourceMappingURL=suffix.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/server/future/normalizers/request/suffix.ts"],"names":["SuffixPathnameNormalizer","constructor","suffix","match","pathname","endsWith","normalize","matched","substring","length"],"mappings":"AAEA,OAAO,MAAMA;IACXC,YAAY,AAAiBC,MAAc,CAAE;aAAhBA,SAAAA;IAAiB;IAEvCC,MAAMC,QAAgB,EAAE;QAC7B,6DAA6D;QAC7D,IAAI,CAACA,SAASC,QAAQ,CAAC,IAAI,CAACH,MAAM,GAAG,OAAO;QAE5C,OAAO;IACT;IAEOI,UAAUF,QAAgB,EAAEG,OAAiB,EAAU;QAC5D,uEAAuE;QACvE,IAAI,CAACA,WAAW,CAAC,IAAI,CAACJ,KAAK,CAACC,WAAW,OAAOA;QAE9C,OAAOA,SAASI,SAAS,CAAC,GAAGJ,SAASK,MAAM,GAAG,IAAI,CAACP,MAAM,CAACO,MAAM;IACnE;AACF"}

View File

@ -0,0 +1,9 @@
/**
* UnderscoreNormalizer replaces all instances of %5F with _.
*/ export class UnderscoreNormalizer {
normalize(pathname) {
return pathname.replace(/%5F/g, "_");
}
}
//# sourceMappingURL=underscore-normalizer.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/underscore-normalizer.ts"],"names":["UnderscoreNormalizer","normalize","pathname","replace"],"mappings":"AAEA;;CAEC,GACD,OAAO,MAAMA;IACJC,UAAUC,QAAgB,EAAU;QACzC,OAAOA,SAASC,OAAO,CAAC,QAAQ;IAClC;AACF"}

View File

@ -0,0 +1,7 @@
export function wrapNormalizerFn(fn) {
return {
normalize: fn
};
}
//# sourceMappingURL=wrap-normalizer-fn.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/normalizers/wrap-normalizer-fn.ts"],"names":["wrapNormalizerFn","fn","normalize"],"mappings":"AAEA,OAAO,SAASA,iBAAiBC,EAAgC;IAC/D,OAAO;QAAEC,WAAWD;IAAG;AACzB"}