Initial boiler plate project
This commit is contained in:
92
node_modules/next/dist/esm/build/webpack/loaders/metadata/discover.js
generated
vendored
Normal file
92
node_modules/next/dist/esm/build/webpack/loaders/metadata/discover.js
generated
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
import path from "path";
|
||||
import { stringify } from "querystring";
|
||||
import { STATIC_METADATA_IMAGES } from "../../../../lib/metadata/is-metadata-route";
|
||||
import { WEBPACK_RESOURCE_QUERIES } from "../../../../lib/constants";
|
||||
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;
|
||||
}
|
||||
export 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.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, STATIC_METADATA_IMAGES[type].filename, [
|
||||
...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?${stringify({
|
||||
type,
|
||||
segment,
|
||||
basePath,
|
||||
pageExtensions
|
||||
})}!${filepath}?${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);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Intentionally 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;
|
||||
}
|
||||
export 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
|
||||
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/discover.js.map
generated
vendored
Normal file
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/discover.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/discover.ts"],"names":["path","stringify","STATIC_METADATA_IMAGES","WEBPACK_RESOURCE_QUERIES","METADATA_TYPE","enumMetadataFiles","dir","filename","extensions","metadataResolver","numericSuffix","collectedFiles","possibleFileNames","concat","Array","fill","map","_","index","name","resolved","push","createStaticMetadataFromRoute","resolvedDir","segment","isRootLayoutOrRootPage","pageExtensions","basePath","hasStaticMetadataFiles","staticImagesMetadata","icon","apple","twitter","openGraph","manifest","undefined","collectIconModuleIfExists","type","staticManifestExtension","manifestFile","length","ext","parse","extension","includes","slice","JSON","resolvedMetadataFiles","sort","a","b","localeCompare","forEach","filepath","imageModuleImportSource","metadata","imageModule","unshift","createMetadataExportsCode","join"],"mappings":"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"}
|
||||
99
node_modules/next/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js
generated
vendored
Normal file
99
node_modules/next/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js
generated
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
import { resolveArray } from "../../../../lib/metadata/generate/utils";
|
||||
// convert robots data to txt string
|
||||
export function resolveRobots(data) {
|
||||
let content = "";
|
||||
const rules = Array.isArray(data.rules) ? data.rules : [
|
||||
data.rules
|
||||
];
|
||||
for (const rule of rules){
|
||||
const userAgent = resolveArray(rule.userAgent || [
|
||||
"*"
|
||||
]);
|
||||
for (const agent of userAgent){
|
||||
content += `User-Agent: ${agent}\n`;
|
||||
}
|
||||
if (rule.allow) {
|
||||
const allow = resolveArray(rule.allow);
|
||||
for (const item of allow){
|
||||
content += `Allow: ${item}\n`;
|
||||
}
|
||||
}
|
||||
if (rule.disallow) {
|
||||
const disallow = 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 = resolveArray(data.sitemap);
|
||||
// TODO-METADATA: support injecting sitemap url into robots.txt
|
||||
sitemap.forEach((item)=>{
|
||||
content += `Sitemap: ${item}\n`;
|
||||
});
|
||||
}
|
||||
return content;
|
||||
}
|
||||
// TODO-METADATA: support multi sitemap files
|
||||
// convert sitemap data to xml string
|
||||
export function resolveSitemap(data) {
|
||||
const hasAlternates = data.some((item)=>Object.keys(item.alternates ?? {}).length > 0);
|
||||
let content = "";
|
||||
content += '<?xml version="1.0" encoding="UTF-8"?>\n';
|
||||
content += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"';
|
||||
if (hasAlternates) {
|
||||
content += ' xmlns:xhtml="http://www.w3.org/1999/xhtml">\n';
|
||||
} else {
|
||||
content += ">\n";
|
||||
}
|
||||
for (const item of data){
|
||||
var _item_alternates;
|
||||
content += "<url>\n";
|
||||
content += `<loc>${item.url}</loc>\n`;
|
||||
const languages = (_item_alternates = item.alternates) == null ? void 0 : _item_alternates.languages;
|
||||
if (languages && Object.keys(languages).length) {
|
||||
// Since sitemap is separated from the page rendering, there's not metadataBase accessible yet.
|
||||
// we give the default setting that won't effect the languages resolving.
|
||||
for(const language in languages){
|
||||
content += `<xhtml:link rel="alternate" hreflang="${language}" href="${languages[language]}" />\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;
|
||||
}
|
||||
export function resolveManifest(data) {
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
export 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
|
||||
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js.map
generated
vendored
Normal file
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/resolve-route-data.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/resolve-route-data.ts"],"names":["resolveArray","resolveRobots","data","content","rules","Array","isArray","rule","userAgent","agent","allow","item","disallow","crawlDelay","host","sitemap","forEach","resolveSitemap","hasAlternates","some","Object","keys","alternates","length","url","languages","language","lastModified","serializedDate","Date","toISOString","changeFrequency","priority","resolveManifest","JSON","stringify","resolveRouteData","fileType"],"mappings":"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"}
|
||||
4
node_modules/next/dist/esm/build/webpack/loaders/metadata/types.js
generated
vendored
Normal file
4
node_modules/next/dist/esm/build/webpack/loaders/metadata/types.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
// TODO-APP: check if this can be narrowed.
|
||||
export { };
|
||||
|
||||
//# sourceMappingURL=types.js.map
|
||||
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/types.js.map
generated
vendored
Normal file
1
node_modules/next/dist/esm/build/webpack/loaders/metadata/types.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../../src/build/webpack/loaders/metadata/types.ts"],"names":[],"mappings":"AAAA,2CAA2C;AA4C3C,WAEc"}
|
||||
Reference in New Issue
Block a user