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,15 @@
import type { ResolvedMetadata, Viewport } from '../types/metadata-interface';
import type { FieldResolver, FieldResolverExtraArgs, MetadataContext } from '../types/resolvers';
export declare const resolveThemeColor: FieldResolver<'themeColor', Viewport>;
export declare const resolveAlternates: FieldResolverExtraArgs<'alternates', [
ResolvedMetadata['metadataBase'],
MetadataContext
]>;
export declare const resolveRobots: FieldResolver<'robots'>;
export declare const resolveVerification: FieldResolver<'verification'>;
export declare const resolveAppleWebApp: FieldResolver<'appleWebApp'>;
export declare const resolveAppLinks: FieldResolver<'appLinks'>;
export declare const resolveItunes: FieldResolverExtraArgs<'itunes', [
ResolvedMetadata['metadataBase'],
MetadataContext
]>;

View File

@@ -0,0 +1,207 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
resolveAlternates: null,
resolveAppLinks: null,
resolveAppleWebApp: null,
resolveItunes: null,
resolveRobots: null,
resolveThemeColor: null,
resolveVerification: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
resolveAlternates: function() {
return resolveAlternates;
},
resolveAppLinks: function() {
return resolveAppLinks;
},
resolveAppleWebApp: function() {
return resolveAppleWebApp;
},
resolveItunes: function() {
return resolveItunes;
},
resolveRobots: function() {
return resolveRobots;
},
resolveThemeColor: function() {
return resolveThemeColor;
},
resolveVerification: function() {
return resolveVerification;
}
});
const _utils = require("../generate/utils");
const _resolveurl = require("./resolve-url");
function resolveAlternateUrl(url, metadataBase, metadataContext) {
// If alter native url is an URL instance,
// we treat it as a URL base and resolve with current pathname
if (url instanceof URL) {
url = new URL(metadataContext.pathname, url);
}
return (0, _resolveurl.resolveAbsoluteUrlWithPathname)(url, metadataBase, metadataContext);
}
const resolveThemeColor = (themeColor)=>{
var _resolveAsArrayOrUndefined;
if (!themeColor) return null;
const themeColorDescriptors = [];
(_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(themeColor)) == null ? void 0 : _resolveAsArrayOrUndefined.forEach((descriptor)=>{
if (typeof descriptor === "string") themeColorDescriptors.push({
color: descriptor
});
else if (typeof descriptor === "object") themeColorDescriptors.push({
color: descriptor.color,
media: descriptor.media
});
});
return themeColorDescriptors;
};
function resolveUrlValuesOfObject(obj, metadataBase, metadataContext) {
if (!obj) return null;
const result = {};
for (const [key, value] of Object.entries(obj)){
if (typeof value === "string" || value instanceof URL) {
result[key] = [
{
url: resolveAlternateUrl(value, metadataBase, metadataContext)
}
];
} else {
result[key] = [];
value == null ? void 0 : value.forEach((item, index)=>{
const url = resolveAlternateUrl(item.url, metadataBase, metadataContext);
result[key][index] = {
url,
title: item.title
};
});
}
}
return result;
}
function resolveCanonicalUrl(urlOrDescriptor, metadataBase, metadataContext) {
if (!urlOrDescriptor) return null;
const url = typeof urlOrDescriptor === "string" || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;
// Return string url because structureClone can't handle URL instance
return {
url: resolveAlternateUrl(url, metadataBase, metadataContext)
};
}
const resolveAlternates = (alternates, metadataBase, context)=>{
if (!alternates) return null;
const canonical = resolveCanonicalUrl(alternates.canonical, metadataBase, context);
const languages = resolveUrlValuesOfObject(alternates.languages, metadataBase, context);
const media = resolveUrlValuesOfObject(alternates.media, metadataBase, context);
const types = resolveUrlValuesOfObject(alternates.types, metadataBase, context);
const result = {
canonical,
languages,
media,
types
};
return result;
};
const robotsKeys = [
"noarchive",
"nosnippet",
"noimageindex",
"nocache",
"notranslate",
"indexifembedded",
"nositelinkssearchbox",
"unavailable_after",
"max-video-preview",
"max-image-preview",
"max-snippet"
];
const resolveRobotsValue = (robots)=>{
if (!robots) return null;
if (typeof robots === "string") return robots;
const values = [];
if (robots.index) values.push("index");
else if (typeof robots.index === "boolean") values.push("noindex");
if (robots.follow) values.push("follow");
else if (typeof robots.follow === "boolean") values.push("nofollow");
for (const key of robotsKeys){
const value = robots[key];
if (typeof value !== "undefined" && value !== false) {
values.push(typeof value === "boolean" ? key : `${key}:${value}`);
}
}
return values.join(", ");
};
const resolveRobots = (robots)=>{
if (!robots) return null;
return {
basic: resolveRobotsValue(robots),
googleBot: typeof robots !== "string" ? resolveRobotsValue(robots.googleBot) : null
};
};
const VerificationKeys = [
"google",
"yahoo",
"yandex",
"me",
"other"
];
const resolveVerification = (verification)=>{
if (!verification) return null;
const res = {};
for (const key of VerificationKeys){
const value = verification[key];
if (value) {
if (key === "other") {
res.other = {};
for(const otherKey in verification.other){
const otherValue = (0, _utils.resolveAsArrayOrUndefined)(verification.other[otherKey]);
if (otherValue) res.other[otherKey] = otherValue;
}
} else res[key] = (0, _utils.resolveAsArrayOrUndefined)(value);
}
}
return res;
};
const resolveAppleWebApp = (appWebApp)=>{
var _resolveAsArrayOrUndefined;
if (!appWebApp) return null;
if (appWebApp === true) {
return {
capable: true
};
}
const startupImages = appWebApp.startupImage ? (_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(appWebApp.startupImage)) == null ? void 0 : _resolveAsArrayOrUndefined.map((item)=>typeof item === "string" ? {
url: item
} : item) : null;
return {
capable: "capable" in appWebApp ? !!appWebApp.capable : true,
title: appWebApp.title || null,
startupImage: startupImages,
statusBarStyle: appWebApp.statusBarStyle || "default"
};
};
const resolveAppLinks = (appLinks)=>{
if (!appLinks) return null;
for(const key in appLinks){
// @ts-ignore // TODO: type infer
appLinks[key] = (0, _utils.resolveAsArrayOrUndefined)(appLinks[key]);
}
return appLinks;
};
const resolveItunes = (itunes, metadataBase, context)=>{
if (!itunes) return null;
return {
appId: itunes.appId,
appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, context) : undefined
};
};
//# sourceMappingURL=resolve-basics.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-basics.ts"],"names":["resolveAlternates","resolveAppLinks","resolveAppleWebApp","resolveItunes","resolveRobots","resolveThemeColor","resolveVerification","resolveAlternateUrl","url","metadataBase","metadataContext","URL","pathname","resolveAbsoluteUrlWithPathname","themeColor","resolveAsArrayOrUndefined","themeColorDescriptors","forEach","descriptor","push","color","media","resolveUrlValuesOfObject","obj","result","key","value","Object","entries","item","index","title","resolveCanonicalUrl","urlOrDescriptor","alternates","context","canonical","languages","types","robotsKeys","resolveRobotsValue","robots","values","follow","join","basic","googleBot","VerificationKeys","verification","res","other","otherKey","otherValue","appWebApp","capable","startupImages","startupImage","map","statusBarStyle","appLinks","itunes","appId","appArgument","undefined"],"mappings":"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"}

View File

@@ -0,0 +1,4 @@
import type { Icon, IconDescriptor } from '../types/metadata-types';
import type { FieldResolver } from '../types/resolvers';
export declare function resolveIcon(icon: Icon): IconDescriptor;
export declare const resolveIcons: FieldResolver<'icons'>;

View File

@@ -0,0 +1,56 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
resolveIcon: null,
resolveIcons: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
resolveIcon: function() {
return resolveIcon;
},
resolveIcons: function() {
return resolveIcons;
}
});
const _utils = require("../generate/utils");
const _resolveurl = require("./resolve-url");
const _constants = require("../constants");
function resolveIcon(icon) {
if ((0, _resolveurl.isStringOrURL)(icon)) return {
url: icon
};
else if (Array.isArray(icon)) return icon;
return icon;
}
const resolveIcons = (icons)=>{
if (!icons) {
return null;
}
const resolved = {
icon: [],
apple: []
};
if (Array.isArray(icons)) {
resolved.icon = icons.map(resolveIcon).filter(Boolean);
} else if ((0, _resolveurl.isStringOrURL)(icons)) {
resolved.icon = [
resolveIcon(icons)
];
} else {
for (const key of _constants.IconKeys){
const values = (0, _utils.resolveAsArrayOrUndefined)(icons[key]);
if (values) resolved[key] = values.map(resolveIcon);
}
}
return resolved;
};
//# sourceMappingURL=resolve-icons.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-icons.ts"],"names":["resolveIcon","resolveIcons","icon","isStringOrURL","url","Array","isArray","icons","resolved","apple","map","filter","Boolean","key","IconKeys","values","resolveAsArrayOrUndefined"],"mappings":";;;;;;;;;;;;;;;IAOgBA,WAAW;eAAXA;;IAMHC,YAAY;eAAZA;;;uBAV6B;4BACZ;2BACL;AAElB,SAASD,YAAYE,IAAU;IACpC,IAAIC,IAAAA,yBAAa,EAACD,OAAO,OAAO;QAAEE,KAAKF;IAAK;SACvC,IAAIG,MAAMC,OAAO,CAACJ,OAAO,OAAOA;IACrC,OAAOA;AACT;AAEO,MAAMD,eAAuC,CAACM;IACnD,IAAI,CAACA,OAAO;QACV,OAAO;IACT;IAEA,MAAMC,WAAsC;QAC1CN,MAAM,EAAE;QACRO,OAAO,EAAE;IACX;IACA,IAAIJ,MAAMC,OAAO,CAACC,QAAQ;QACxBC,SAASN,IAAI,GAAGK,MAAMG,GAAG,CAACV,aAAaW,MAAM,CAACC;IAChD,OAAO,IAAIT,IAAAA,yBAAa,EAACI,QAAQ;QAC/BC,SAASN,IAAI,GAAG;YAACF,YAAYO;SAAO;IACtC,OAAO;QACL,KAAK,MAAMM,OAAOC,mBAAQ,CAAE;YAC1B,MAAMC,SAASC,IAAAA,gCAAyB,EAACT,KAAK,CAACM,IAAI;YACnD,IAAIE,QAAQP,QAAQ,CAACK,IAAI,GAAGE,OAAOL,GAAG,CAACV;QACzC;IACF;IACA,OAAOQ;AACT"}

View File

@@ -0,0 +1,17 @@
import type { ResolvedMetadata } from '../types/metadata-interface';
import type { OpenGraph } from '../types/opengraph-types';
import type { FieldResolverExtraArgs, MetadataContext } from '../types/resolvers';
import type { Twitter } from '../types/twitter-types';
type ResolvedMetadataBase = ResolvedMetadata['metadataBase'];
export declare function resolveImages(images: Twitter['images'], metadataBase: ResolvedMetadataBase): NonNullable<ResolvedMetadata['twitter']>['images'];
export declare function resolveImages(images: OpenGraph['images'], metadataBase: ResolvedMetadataBase): NonNullable<ResolvedMetadata['openGraph']>['images'];
export declare const resolveOpenGraph: FieldResolverExtraArgs<'openGraph', [
ResolvedMetadataBase,
MetadataContext,
string | null
]>;
export declare const resolveTwitter: FieldResolverExtraArgs<'twitter', [
ResolvedMetadataBase,
string | null
]>;
export {};

View File

@@ -0,0 +1,174 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
resolveImages: null,
resolveOpenGraph: null,
resolveTwitter: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
resolveImages: function() {
return resolveImages;
},
resolveOpenGraph: function() {
return resolveOpenGraph;
},
resolveTwitter: function() {
return resolveTwitter;
}
});
const _utils = require("../generate/utils");
const _resolveurl = require("./resolve-url");
const _resolvetitle = require("./resolve-title");
const _url = require("../../url");
const _log = require("../../../build/output/log");
const OgTypeFields = {
article: [
"authors",
"tags"
],
song: [
"albums",
"musicians"
],
playlist: [
"albums",
"musicians"
],
radio: [
"creators"
],
video: [
"actors",
"directors",
"writers",
"tags"
],
basic: [
"emails",
"phoneNumbers",
"faxNumbers",
"alternateLocale",
"audio",
"videos"
]
};
function resolveAndValidateImage(item, metadataBase, isMetadataBaseMissing) {
if (!item) return undefined;
const isItemUrl = (0, _resolveurl.isStringOrURL)(item);
const inputUrl = isItemUrl ? item : item.url;
if (!inputUrl) return undefined;
validateResolvedImageUrl(inputUrl, metadataBase, isMetadataBaseMissing);
return isItemUrl ? {
url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)
} : {
...item,
// Update image descriptor url
url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)
};
}
function resolveImages(images, metadataBase) {
const resolvedImages = (0, _utils.resolveAsArrayOrUndefined)(images);
if (!resolvedImages) return resolvedImages;
const { isMetadataBaseMissing, fallbackMetadataBase } = (0, _resolveurl.getSocialImageFallbackMetadataBase)(metadataBase);
const nonNullableImages = [];
for (const item of resolvedImages){
const resolvedItem = resolveAndValidateImage(item, fallbackMetadataBase, isMetadataBaseMissing);
if (!resolvedItem) continue;
nonNullableImages.push(resolvedItem);
}
return nonNullableImages;
}
const ogTypeToFields = {
article: OgTypeFields.article,
book: OgTypeFields.article,
"music.song": OgTypeFields.song,
"music.album": OgTypeFields.song,
"music.playlist": OgTypeFields.playlist,
"music.radio_station": OgTypeFields.radio,
"video.movie": OgTypeFields.video,
"video.episode": OgTypeFields.video
};
function getFieldsByOgType(ogType) {
if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic;
return ogTypeToFields[ogType].concat(OgTypeFields.basic);
}
function validateResolvedImageUrl(inputUrl, fallbackMetadataBase, isMetadataBaseMissing) {
// Only warn on the image url that needs to be resolved with metadataBase
if (typeof inputUrl === "string" && !(0, _url.isFullStringUrl)(inputUrl) && isMetadataBaseMissing) {
(0, _log.warnOnce)(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "${fallbackMetadataBase.origin}". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);
}
}
const resolveOpenGraph = (openGraph, metadataBase, metadataContext, titleTemplate)=>{
if (!openGraph) return null;
function resolveProps(target, og) {
const ogType = og && "type" in og ? og.type : undefined;
const keys = getFieldsByOgType(ogType);
for (const k of keys){
const key = k;
if (key in og && key !== "url") {
const value = og[key];
if (value) {
const arrayValue = (0, _utils.resolveAsArrayOrUndefined)(value);
target[key] = arrayValue;
}
}
}
target.images = resolveImages(og.images, metadataBase);
}
const resolved = {
...openGraph,
title: (0, _resolvetitle.resolveTitle)(openGraph.title, titleTemplate)
};
resolveProps(resolved, openGraph);
resolved.url = openGraph.url ? (0, _resolveurl.resolveAbsoluteUrlWithPathname)(openGraph.url, metadataBase, metadataContext) : null;
return resolved;
};
const TwitterBasicInfoKeys = [
"site",
"siteId",
"creator",
"creatorId",
"description"
];
const resolveTwitter = (twitter, metadataBase, titleTemplate)=>{
var _resolved_images;
if (!twitter) return null;
let card = "card" in twitter ? twitter.card : undefined;
const resolved = {
...twitter,
title: (0, _resolvetitle.resolveTitle)(twitter.title, titleTemplate)
};
for (const infoKey of TwitterBasicInfoKeys){
resolved[infoKey] = twitter[infoKey] || null;
}
resolved.images = resolveImages(twitter.images, metadataBase);
card = card || (((_resolved_images = resolved.images) == null ? void 0 : _resolved_images.length) ? "summary_large_image" : "summary");
resolved.card = card;
if ("card" in resolved) {
switch(resolved.card){
case "player":
{
resolved.players = (0, _utils.resolveAsArrayOrUndefined)(resolved.players) || [];
break;
}
case "app":
{
resolved.app = resolved.app || {};
break;
}
default:
break;
}
}
return resolved;
};
//# sourceMappingURL=resolve-opengraph.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-opengraph.ts"],"names":["resolveImages","resolveOpenGraph","resolveTwitter","OgTypeFields","article","song","playlist","radio","video","basic","resolveAndValidateImage","item","metadataBase","isMetadataBaseMissing","undefined","isItemUrl","isStringOrURL","inputUrl","url","validateResolvedImageUrl","resolveUrl","images","resolvedImages","resolveAsArrayOrUndefined","fallbackMetadataBase","getSocialImageFallbackMetadataBase","nonNullableImages","resolvedItem","push","ogTypeToFields","book","getFieldsByOgType","ogType","concat","isFullStringUrl","warnOnce","origin","openGraph","metadataContext","titleTemplate","resolveProps","target","og","type","keys","k","key","value","arrayValue","resolved","title","resolveTitle","resolveAbsoluteUrlWithPathname","TwitterBasicInfoKeys","twitter","card","infoKey","length","players","app"],"mappings":"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"}

View File

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

View File

@@ -0,0 +1,3 @@
import type { Metadata } from '../types/metadata-interface';
import type { AbsoluteTemplateString } from '../types/metadata-types';
export declare function resolveTitle(title: Metadata['title'], stashedTemplate: string | null | undefined): AbsoluteTemplateString;

View File

@@ -0,0 +1,40 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "resolveTitle", {
enumerable: true,
get: function() {
return resolveTitle;
}
});
function resolveTitleTemplate(template, title) {
return template ? template.replace(/%s/g, title) : title;
}
function resolveTitle(title, stashedTemplate) {
let resolved;
const template = typeof title !== "string" && title && "template" in title ? title.template : null;
if (typeof title === "string") {
resolved = resolveTitleTemplate(stashedTemplate, title);
} else if (title) {
if ("default" in title) {
resolved = resolveTitleTemplate(stashedTemplate, title.default);
}
if ("absolute" in title && title.absolute) {
resolved = title.absolute;
}
}
if (title && typeof title !== "string") {
return {
template,
absolute: resolved || ""
};
} else {
return {
absolute: resolved || title || "",
template
};
}
}
//# sourceMappingURL=resolve-title.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-title.ts"],"names":["resolveTitle","resolveTitleTemplate","template","title","replace","stashedTemplate","resolved","default","absolute"],"mappings":";;;;+BAUgBA;;;eAAAA;;;AAPhB,SAASC,qBACPC,QAAmC,EACnCC,KAAa;IAEb,OAAOD,WAAWA,SAASE,OAAO,CAAC,OAAOD,SAASA;AACrD;AAEO,SAASH,aACdG,KAAwB,EACxBE,eAA0C;IAE1C,IAAIC;IACJ,MAAMJ,WACJ,OAAOC,UAAU,YAAYA,SAAS,cAAcA,QAChDA,MAAMD,QAAQ,GACd;IAEN,IAAI,OAAOC,UAAU,UAAU;QAC7BG,WAAWL,qBAAqBI,iBAAiBF;IACnD,OAAO,IAAIA,OAAO;QAChB,IAAI,aAAaA,OAAO;YACtBG,WAAWL,qBAAqBI,iBAAiBF,MAAMI,OAAO;QAChE;QACA,IAAI,cAAcJ,SAASA,MAAMK,QAAQ,EAAE;YACzCF,WAAWH,MAAMK,QAAQ;QAC3B;IACF;IAEA,IAAIL,SAAS,OAAOA,UAAU,UAAU;QACtC,OAAO;YACLD;YACAM,UAAUF,YAAY;QACxB;IACF,OAAO;QACL,OAAO;YAAEE,UAAUF,YAAYH,SAAS;YAAID;QAAS;IACvD;AACF"}

View File

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

View File

@@ -0,0 +1,12 @@
import type { MetadataContext } from '../types/resolvers';
declare function isStringOrURL(icon: any): icon is string | URL;
export declare function getSocialImageFallbackMetadataBase(metadataBase: URL | null): {
fallbackMetadataBase: URL;
isMetadataBaseMissing: boolean;
};
declare function resolveUrl(url: null | undefined, metadataBase: URL | null): null;
declare function resolveUrl(url: string | URL, metadataBase: URL | null): URL;
declare function resolveUrl(url: string | URL | null | undefined, metadataBase: URL | null): URL | null;
declare function resolveRelativeUrl(url: string | URL, pathname: string): string | URL;
declare function resolveAbsoluteUrlWithPathname(url: string | URL, metadataBase: URL | null, { trailingSlash, pathname }: MetadataContext): string;
export { isStringOrURL, resolveUrl, resolveRelativeUrl, resolveAbsoluteUrlWithPathname, };

View File

@@ -0,0 +1,136 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
getSocialImageFallbackMetadataBase: null,
isStringOrURL: null,
resolveAbsoluteUrlWithPathname: null,
resolveRelativeUrl: null,
resolveUrl: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
getSocialImageFallbackMetadataBase: function() {
return getSocialImageFallbackMetadataBase;
},
isStringOrURL: function() {
return isStringOrURL;
},
resolveAbsoluteUrlWithPathname: function() {
return resolveAbsoluteUrlWithPathname;
},
resolveRelativeUrl: function() {
return resolveRelativeUrl;
},
resolveUrl: function() {
return resolveUrl;
}
});
const _path = /*#__PURE__*/ _interop_require_default(require("../../../shared/lib/isomorphic/path"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function isStringOrURL(icon) {
return typeof icon === "string" || icon instanceof URL;
}
function createLocalMetadataBase() {
return new URL(`http://localhost:${process.env.PORT || 3000}`);
}
function getPreviewDeploymentUrl() {
const origin = process.env.VERCEL_BRANCH_URL || process.env.VERCEL_URL;
return origin ? new URL(`https://${origin}`) : undefined;
}
function getProductionDeploymentUrl() {
const origin = process.env.VERCEL_PROJECT_PRODUCTION_URL;
return origin ? new URL(`https://${origin}`) : undefined;
}
function getSocialImageFallbackMetadataBase(metadataBase) {
const isMetadataBaseMissing = !metadataBase;
const defaultMetadataBase = createLocalMetadataBase();
const previewDeploymentUrl = getPreviewDeploymentUrl();
const productionDeploymentUrl = getProductionDeploymentUrl();
let fallbackMetadataBase;
if (process.env.NODE_ENV === "development") {
fallbackMetadataBase = defaultMetadataBase;
} else {
fallbackMetadataBase = process.env.NODE_ENV === "production" && previewDeploymentUrl && process.env.VERCEL_ENV === "preview" ? previewDeploymentUrl : metadataBase || productionDeploymentUrl || defaultMetadataBase;
}
return {
fallbackMetadataBase,
isMetadataBaseMissing
};
}
function resolveUrl(url, metadataBase) {
if (url instanceof URL) return url;
if (!url) return null;
try {
// If we can construct a URL instance from url, ignore metadataBase
const parsedUrl = new URL(url);
return parsedUrl;
} catch {}
if (!metadataBase) {
metadataBase = createLocalMetadataBase();
}
// Handle relative or absolute paths
const basePath = metadataBase.pathname || "";
const joinedPath = _path.default.posix.join(basePath, url);
return new URL(joinedPath, metadataBase);
}
// Resolve with `pathname` if `url` is a relative path.
function resolveRelativeUrl(url, pathname) {
if (typeof url === "string" && url.startsWith("./")) {
return _path.default.posix.resolve(pathname, url);
}
return url;
}
// The regex is matching logic from packages/next/src/lib/load-custom-routes.ts
const FILE_REGEX = /^(?:\/((?!\.well-known(?:\/.*)?)(?:[^/]+\/)*[^/]+\.\w+))(\/?|$)/i;
function isFilePattern(pathname) {
return FILE_REGEX.test(pathname);
}
// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.
function resolveAbsoluteUrlWithPathname(url, metadataBase, { trailingSlash, pathname }) {
// Resolve url with pathname that always starts with `/`
url = resolveRelativeUrl(url, pathname);
// Convert string url or URL instance to absolute url string,
// if there's case needs to be resolved with metadataBase
let resolvedUrl = "";
const result = metadataBase ? resolveUrl(url, metadataBase) : url;
if (typeof result === "string") {
resolvedUrl = result;
} else {
resolvedUrl = result.pathname === "/" ? result.origin : result.href;
}
// Add trailing slash if it's enabled for urls matches the condition
// - Not external, same origin with metadataBase
// - Doesn't have query
if (trailingSlash && !resolvedUrl.endsWith("/")) {
let isRelative = resolvedUrl.startsWith("/");
let hasQuery = resolvedUrl.includes("?");
let isExternal = false;
let isFileUrl = false;
if (!isRelative) {
try {
const parsedUrl = new URL(resolvedUrl);
isExternal = metadataBase != null && parsedUrl.origin !== metadataBase.origin;
isFileUrl = isFilePattern(parsedUrl.pathname);
} catch {
// If it's not a valid URL, treat it as external
isExternal = true;
}
if (// Do not apply trailing slash for file like urls, aligning with the behavior with `trailingSlash`
!isFileUrl && !isExternal && !hasQuery) return `${resolvedUrl}/`;
}
}
return resolvedUrl;
}
//# sourceMappingURL=resolve-url.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-url.ts"],"names":["getSocialImageFallbackMetadataBase","isStringOrURL","resolveAbsoluteUrlWithPathname","resolveRelativeUrl","resolveUrl","icon","URL","createLocalMetadataBase","process","env","PORT","getPreviewDeploymentUrl","origin","VERCEL_BRANCH_URL","VERCEL_URL","undefined","getProductionDeploymentUrl","VERCEL_PROJECT_PRODUCTION_URL","metadataBase","isMetadataBaseMissing","defaultMetadataBase","previewDeploymentUrl","productionDeploymentUrl","fallbackMetadataBase","NODE_ENV","VERCEL_ENV","url","parsedUrl","basePath","pathname","joinedPath","path","posix","join","startsWith","resolve","FILE_REGEX","isFilePattern","test","trailingSlash","resolvedUrl","result","href","endsWith","isRelative","hasQuery","includes","isExternal","isFileUrl"],"mappings":";;;;;;;;;;;;;;;;;;IAuBgBA,kCAAkC;eAAlCA;;IA4HdC,aAAa;eAAbA;;IAGAC,8BAA8B;eAA9BA;;IADAC,kBAAkB;eAAlBA;;IADAC,UAAU;eAAVA;;;6DApJe;;;;;;AAGjB,SAASH,cAAcI,IAAS;IAC9B,OAAO,OAAOA,SAAS,YAAYA,gBAAgBC;AACrD;AAEA,SAASC;IACP,OAAO,IAAID,IAAI,CAAC,iBAAiB,EAAEE,QAAQC,GAAG,CAACC,IAAI,IAAI,KAAK,CAAC;AAC/D;AAEA,SAASC;IACP,MAAMC,SAASJ,QAAQC,GAAG,CAACI,iBAAiB,IAAIL,QAAQC,GAAG,CAACK,UAAU;IACtE,OAAOF,SAAS,IAAIN,IAAI,CAAC,QAAQ,EAAEM,OAAO,CAAC,IAAIG;AACjD;AAEA,SAASC;IACP,MAAMJ,SAASJ,QAAQC,GAAG,CAACQ,6BAA6B;IACxD,OAAOL,SAAS,IAAIN,IAAI,CAAC,QAAQ,EAAEM,OAAO,CAAC,IAAIG;AACjD;AAIO,SAASf,mCAAmCkB,YAAwB;IAIzE,MAAMC,wBAAwB,CAACD;IAC/B,MAAME,sBAAsBb;IAC5B,MAAMc,uBAAuBV;IAC7B,MAAMW,0BAA0BN;IAEhC,IAAIO;IACJ,IAAIf,QAAQC,GAAG,CAACe,QAAQ,KAAK,eAAe;QAC1CD,uBAAuBH;IACzB,OAAO;QACLG,uBACEf,QAAQC,GAAG,CAACe,QAAQ,KAAK,gBACzBH,wBACAb,QAAQC,GAAG,CAACgB,UAAU,KAAK,YACvBJ,uBACAH,gBAAgBI,2BAA2BF;IACnD;IAEA,OAAO;QACLG;QACAJ;IACF;AACF;AAQA,SAASf,WACPsB,GAAoC,EACpCR,YAAwB;IAExB,IAAIQ,eAAepB,KAAK,OAAOoB;IAC/B,IAAI,CAACA,KAAK,OAAO;IAEjB,IAAI;QACF,mEAAmE;QACnE,MAAMC,YAAY,IAAIrB,IAAIoB;QAC1B,OAAOC;IACT,EAAE,OAAM,CAAC;IAET,IAAI,CAACT,cAAc;QACjBA,eAAeX;IACjB;IAEA,oCAAoC;IACpC,MAAMqB,WAAWV,aAAaW,QAAQ,IAAI;IAC1C,MAAMC,aAAaC,aAAI,CAACC,KAAK,CAACC,IAAI,CAACL,UAAUF;IAE7C,OAAO,IAAIpB,IAAIwB,YAAYZ;AAC7B;AAEA,uDAAuD;AACvD,SAASf,mBAAmBuB,GAAiB,EAAEG,QAAgB;IAC7D,IAAI,OAAOH,QAAQ,YAAYA,IAAIQ,UAAU,CAAC,OAAO;QACnD,OAAOH,aAAI,CAACC,KAAK,CAACG,OAAO,CAACN,UAAUH;IACtC;IACA,OAAOA;AACT;AAEA,+EAA+E;AAC/E,MAAMU,aACJ;AACF,SAASC,cAAcR,QAAgB;IACrC,OAAOO,WAAWE,IAAI,CAACT;AACzB;AAEA,kFAAkF;AAClF,SAAS3B,+BACPwB,GAAiB,EACjBR,YAAwB,EACxB,EAAEqB,aAAa,EAAEV,QAAQ,EAAmB;IAE5C,wDAAwD;IACxDH,MAAMvB,mBAAmBuB,KAAKG;IAE9B,6DAA6D;IAC7D,yDAAyD;IACzD,IAAIW,cAAc;IAClB,MAAMC,SAASvB,eAAed,WAAWsB,KAAKR,gBAAgBQ;IAC9D,IAAI,OAAOe,WAAW,UAAU;QAC9BD,cAAcC;IAChB,OAAO;QACLD,cAAcC,OAAOZ,QAAQ,KAAK,MAAMY,OAAO7B,MAAM,GAAG6B,OAAOC,IAAI;IACrE;IAEA,oEAAoE;IACpE,gDAAgD;IAChD,uBAAuB;IACvB,IAAIH,iBAAiB,CAACC,YAAYG,QAAQ,CAAC,MAAM;QAC/C,IAAIC,aAAaJ,YAAYN,UAAU,CAAC;QACxC,IAAIW,WAAWL,YAAYM,QAAQ,CAAC;QACpC,IAAIC,aAAa;QACjB,IAAIC,YAAY;QAEhB,IAAI,CAACJ,YAAY;YACf,IAAI;gBACF,MAAMjB,YAAY,IAAIrB,IAAIkC;gBAC1BO,aACE7B,gBAAgB,QAAQS,UAAUf,MAAM,KAAKM,aAAaN,MAAM;gBAClEoC,YAAYX,cAAcV,UAAUE,QAAQ;YAC9C,EAAE,OAAM;gBACN,gDAAgD;gBAChDkB,aAAa;YACf;YACA,IACE,kGAAkG;YAClG,CAACC,aACD,CAACD,cACD,CAACF,UAED,OAAO,CAAC,EAAEL,YAAY,CAAC,CAAC;QAC5B;IACF;IAEA,OAAOA;AACT"}

View File

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