main repo

This commit is contained in:
Basilosaurusrex
2025-11-24 18:09:40 +01:00
parent b636ee5e70
commit f027651f9b
34146 changed files with 4436636 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
import type { CollectingMetadata } from './types';
import { MetadataResolver } from '../next-app-loader';
export declare function createStaticMetadataFromRoute(resolvedDir: string, { segment, metadataResolver, isRootLayoutOrRootPage, pageExtensions, basePath, }: {
segment: string;
metadataResolver: MetadataResolver;
isRootLayoutOrRootPage: boolean;
pageExtensions: string[];
basePath: string;
}): Promise<CollectingMetadata | null>;
export declare function createMetadataExportsCode(metadata: Awaited<ReturnType<typeof createStaticMetadataFromRoute>>): string;

View File

@@ -0,0 +1,119 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
createStaticMetadataFromRoute: null,
createMetadataExportsCode: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
createStaticMetadataFromRoute: function() {
return createStaticMetadataFromRoute;
},
createMetadataExportsCode: function() {
return createMetadataExportsCode;
}
});
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
const _querystring = require("querystring");
const _ismetadataroute = require("../../../../lib/metadata/is-metadata-route");
const _constants = require("../../../../lib/constants");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const METADATA_TYPE = "metadata";
// Produce all compositions with filename (icon, apple-icon, etc.) with extensions (png, jpg, etc.)
async function enumMetadataFiles(dir, filename, extensions, { metadataResolver, // When set to true, possible filename without extension could: icon, icon0, ..., icon9
numericSuffix }) {
const collectedFiles = [];
const possibleFileNames = [
filename
].concat(numericSuffix ? Array(10).fill(0).map((_, index)=>filename + index) : []);
for (const name of possibleFileNames){
const resolved = await metadataResolver(dir, name, extensions);
if (resolved) {
collectedFiles.push(resolved);
}
}
return collectedFiles;
}
async function createStaticMetadataFromRoute(resolvedDir, { segment, metadataResolver, isRootLayoutOrRootPage, pageExtensions, basePath }) {
let hasStaticMetadataFiles = false;
const staticImagesMetadata = {
icon: [],
apple: [],
twitter: [],
openGraph: [],
manifest: undefined
};
async function collectIconModuleIfExists(type) {
if (type === "manifest") {
const staticManifestExtension = [
"webmanifest",
"json"
];
const manifestFile = await enumMetadataFiles(resolvedDir, "manifest", staticManifestExtension.concat(pageExtensions), {
metadataResolver,
numericSuffix: false
});
if (manifestFile.length > 0) {
hasStaticMetadataFiles = true;
const { name, ext } = _path.default.parse(manifestFile[0]);
const extension = staticManifestExtension.includes(ext.slice(1)) ? ext.slice(1) : "webmanifest";
staticImagesMetadata.manifest = JSON.stringify(`/${name}.${extension}`);
}
return;
}
const resolvedMetadataFiles = await enumMetadataFiles(resolvedDir, _ismetadataroute.STATIC_METADATA_IMAGES[type].filename, [
..._ismetadataroute.STATIC_METADATA_IMAGES[type].extensions,
...type === "favicon" ? [] : pageExtensions
], {
metadataResolver,
numericSuffix: true
});
resolvedMetadataFiles.sort((a, b)=>a.localeCompare(b)).forEach((filepath)=>{
const imageModuleImportSource = `next-metadata-image-loader?${(0, _querystring.stringify)({
type,
segment,
basePath,
pageExtensions
})}!${filepath}?${_constants.WEBPACK_RESOURCE_QUERIES.metadata}`;
const imageModule = `(async (props) => (await import(/* webpackMode: "eager" */ ${JSON.stringify(imageModuleImportSource)})).default(props))`;
hasStaticMetadataFiles = true;
if (type === "favicon") {
staticImagesMetadata.icon.unshift(imageModule);
} else {
staticImagesMetadata[type].push(imageModule);
}
});
}
// Intentially make these serial to reuse directory access cache.
await collectIconModuleIfExists("icon");
await collectIconModuleIfExists("apple");
await collectIconModuleIfExists("openGraph");
await collectIconModuleIfExists("twitter");
if (isRootLayoutOrRootPage) {
await collectIconModuleIfExists("favicon");
await collectIconModuleIfExists("manifest");
}
return hasStaticMetadataFiles ? staticImagesMetadata : null;
}
function createMetadataExportsCode(metadata) {
return metadata ? `${METADATA_TYPE}: {
icon: [${metadata.icon.join(",")}],
apple: [${metadata.apple.join(",")}],
openGraph: [${metadata.openGraph.join(",")}],
twitter: [${metadata.twitter.join(",")}],
manifest: ${metadata.manifest ? metadata.manifest : "undefined"}
}` : "";
}
//# sourceMappingURL=discover.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/discover.ts"],"names":["createStaticMetadataFromRoute","createMetadataExportsCode","METADATA_TYPE","enumMetadataFiles","dir","filename","extensions","metadataResolver","numericSuffix","collectedFiles","possibleFileNames","concat","Array","fill","map","_","index","name","resolved","push","resolvedDir","segment","isRootLayoutOrRootPage","pageExtensions","basePath","hasStaticMetadataFiles","staticImagesMetadata","icon","apple","twitter","openGraph","manifest","undefined","collectIconModuleIfExists","type","staticManifestExtension","manifestFile","length","ext","path","parse","extension","includes","slice","JSON","stringify","resolvedMetadataFiles","STATIC_METADATA_IMAGES","sort","a","b","localeCompare","forEach","filepath","imageModuleImportSource","WEBPACK_RESOURCE_QUERIES","metadata","imageModule","unshift","join"],"mappings":"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"}

View File

@@ -0,0 +1,5 @@
import type { MetadataRoute } from '../../../../lib/metadata/types/metadata-interface';
export declare function resolveRobots(data: MetadataRoute.Robots): string;
export declare function resolveSitemap(data: MetadataRoute.Sitemap): string;
export declare function resolveManifest(data: MetadataRoute.Manifest): string;
export declare function resolveRouteData(data: MetadataRoute.Robots | MetadataRoute.Sitemap | MetadataRoute.Manifest, fileType: 'robots' | 'sitemap' | 'manifest'): string;

View File

@@ -0,0 +1,111 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
resolveRobots: null,
resolveSitemap: null,
resolveManifest: null,
resolveRouteData: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
resolveRobots: function() {
return resolveRobots;
},
resolveSitemap: function() {
return resolveSitemap;
},
resolveManifest: function() {
return resolveManifest;
},
resolveRouteData: function() {
return resolveRouteData;
}
});
const _utils = require("../../../../lib/metadata/generate/utils");
function resolveRobots(data) {
let content = "";
const rules = Array.isArray(data.rules) ? data.rules : [
data.rules
];
for (const rule of rules){
const userAgent = (0, _utils.resolveArray)(rule.userAgent || [
"*"
]);
for (const agent of userAgent){
content += `User-Agent: ${agent}\n`;
}
if (rule.allow) {
const allow = (0, _utils.resolveArray)(rule.allow);
for (const item of allow){
content += `Allow: ${item}\n`;
}
}
if (rule.disallow) {
const disallow = (0, _utils.resolveArray)(rule.disallow);
for (const item of disallow){
content += `Disallow: ${item}\n`;
}
}
if (rule.crawlDelay) {
content += `Crawl-delay: ${rule.crawlDelay}\n`;
}
content += "\n";
}
if (data.host) {
content += `Host: ${data.host}\n`;
}
if (data.sitemap) {
const sitemap = (0, _utils.resolveArray)(data.sitemap);
// TODO-METADATA: support injecting sitemap url into robots.txt
sitemap.forEach((item)=>{
content += `Sitemap: ${item}\n`;
});
}
return content;
}
function resolveSitemap(data) {
let content = "";
content += '<?xml version="1.0" encoding="UTF-8"?>\n';
content += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n';
for (const item of data){
content += "<url>\n";
content += `<loc>${item.url}</loc>\n`;
if (item.lastModified) {
const serializedDate = item.lastModified instanceof Date ? item.lastModified.toISOString() : item.lastModified;
content += `<lastmod>${serializedDate}</lastmod>\n`;
}
if (item.changeFrequency) {
content += `<changefreq>${item.changeFrequency}</changefreq>\n`;
}
if (typeof item.priority === "number") {
content += `<priority>${item.priority}</priority>\n`;
}
content += "</url>\n";
}
content += "</urlset>\n";
return content;
}
function resolveManifest(data) {
return JSON.stringify(data);
}
function resolveRouteData(data, fileType) {
if (fileType === "robots") {
return resolveRobots(data);
}
if (fileType === "sitemap") {
return resolveSitemap(data);
}
if (fileType === "manifest") {
return resolveManifest(data);
}
return "";
}
//# sourceMappingURL=resolve-route-data.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/resolve-route-data.ts"],"names":["resolveRobots","resolveSitemap","resolveManifest","resolveRouteData","data","content","rules","Array","isArray","rule","userAgent","resolveArray","agent","allow","item","disallow","crawlDelay","host","sitemap","forEach","url","lastModified","serializedDate","Date","toISOString","changeFrequency","priority","JSON","stringify","fileType"],"mappings":";;;;;;;;;;;;;;;;;IAIgBA,aAAa;eAAbA;;IAyCAC,cAAc;eAAdA;;IAkCAC,eAAe;eAAfA;;IAIAC,gBAAgB;eAAhBA;;;uBAlFa;AAGtB,SAASH,cAAcI,IAA0B;IACtD,IAAIC,UAAU;IACd,MAAMC,QAAQC,MAAMC,OAAO,CAACJ,KAAKE,KAAK,IAAIF,KAAKE,KAAK,GAAG;QAACF,KAAKE,KAAK;KAAC;IACnE,KAAK,MAAMG,QAAQH,MAAO;QACxB,MAAMI,YAAYC,IAAAA,mBAAY,EAACF,KAAKC,SAAS,IAAI;YAAC;SAAI;QACtD,KAAK,MAAME,SAASF,UAAW;YAC7BL,WAAW,CAAC,YAAY,EAAEO,MAAM,EAAE,CAAC;QACrC;QACA,IAAIH,KAAKI,KAAK,EAAE;YACd,MAAMA,QAAQF,IAAAA,mBAAY,EAACF,KAAKI,KAAK;YACrC,KAAK,MAAMC,QAAQD,MAAO;gBACxBR,WAAW,CAAC,OAAO,EAAES,KAAK,EAAE,CAAC;YAC/B;QACF;QACA,IAAIL,KAAKM,QAAQ,EAAE;YACjB,MAAMA,WAAWJ,IAAAA,mBAAY,EAACF,KAAKM,QAAQ;YAC3C,KAAK,MAAMD,QAAQC,SAAU;gBAC3BV,WAAW,CAAC,UAAU,EAAES,KAAK,EAAE,CAAC;YAClC;QACF;QACA,IAAIL,KAAKO,UAAU,EAAE;YACnBX,WAAW,CAAC,aAAa,EAAEI,KAAKO,UAAU,CAAC,EAAE,CAAC;QAChD;QACAX,WAAW;IACb;IACA,IAAID,KAAKa,IAAI,EAAE;QACbZ,WAAW,CAAC,MAAM,EAAED,KAAKa,IAAI,CAAC,EAAE,CAAC;IACnC;IACA,IAAIb,KAAKc,OAAO,EAAE;QAChB,MAAMA,UAAUP,IAAAA,mBAAY,EAACP,KAAKc,OAAO;QACzC,+DAA+D;QAC/DA,QAAQC,OAAO,CAAC,CAACL;YACfT,WAAW,CAAC,SAAS,EAAES,KAAK,EAAE,CAAC;QACjC;IACF;IAEA,OAAOT;AACT;AAIO,SAASJ,eAAeG,IAA2B;IACxD,IAAIC,UAAU;IACdA,WAAW;IACXA,WAAW;IAEX,KAAK,MAAMS,QAAQV,KAAM;QACvBC,WAAW;QACXA,WAAW,CAAC,KAAK,EAAES,KAAKM,GAAG,CAAC,QAAQ,CAAC;QAErC,IAAIN,KAAKO,YAAY,EAAE;YACrB,MAAMC,iBACJR,KAAKO,YAAY,YAAYE,OACzBT,KAAKO,YAAY,CAACG,WAAW,KAC7BV,KAAKO,YAAY;YAEvBhB,WAAW,CAAC,SAAS,EAAEiB,eAAe,YAAY,CAAC;QACrD;QAEA,IAAIR,KAAKW,eAAe,EAAE;YACxBpB,WAAW,CAAC,YAAY,EAAES,KAAKW,eAAe,CAAC,eAAe,CAAC;QACjE;QAEA,IAAI,OAAOX,KAAKY,QAAQ,KAAK,UAAU;YACrCrB,WAAW,CAAC,UAAU,EAAES,KAAKY,QAAQ,CAAC,aAAa,CAAC;QACtD;QAEArB,WAAW;IACb;IAEAA,WAAW;IAEX,OAAOA;AACT;AAEO,SAASH,gBAAgBE,IAA4B;IAC1D,OAAOuB,KAAKC,SAAS,CAACxB;AACxB;AAEO,SAASD,iBACdC,IAA2E,EAC3EyB,QAA2C;IAE3C,IAAIA,aAAa,UAAU;QACzB,OAAO7B,cAAcI;IACvB;IACA,IAAIyB,aAAa,WAAW;QAC1B,OAAO5B,eAAeG;IACxB;IACA,IAAIyB,aAAa,YAAY;QAC3B,OAAO3B,gBAAgBE;IACzB;IACA,OAAO;AACT"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,31 @@
export type ComponentModule = () => any;
export type ModuleReference = [
componentModule: ComponentModule,
filePath: string
];
export type CollectingMetadata = {
icon: string[];
apple: string[];
twitter: string[];
openGraph: string[];
manifest?: string;
};
export type CollectedMetadata = {
icon: ComponentModule[];
apple: ComponentModule[];
twitter: ComponentModule[] | null;
openGraph: ComponentModule[] | null;
manifest?: string;
};
export type MetadataImageModule = {
url: string;
type?: string;
alt?: string;
} & ({
sizes?: string;
} | {
width?: number;
height?: number;
});
export type PossibleImageFileNameConvention = 'icon' | 'apple' | 'favicon' | 'twitter' | 'openGraph';
export type PossibleStaticMetadataFileNameConvention = PossibleImageFileNameConvention | 'manifest';

View File

@@ -0,0 +1,7 @@
// TODO-APP: check if this can be narrowed.
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/types.ts"],"names":[],"mappings":"AAAA,2CAA2C"}