"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { STATIC_METADATA_IMAGES: null, isMetadataRouteFile: null, isStaticMetadataRouteFile: null, isStaticMetadataRoute: null, isMetadataRoute: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRouteFile: function() { return isStaticMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; }, isMetadataRoute: function() { return isMetadataRoute; } }); const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); const STATIC_METADATA_IMAGES = { icon: { filename: "icon", extensions: [ "ico", "jpg", "jpeg", "png", "svg" ] }, apple: { filename: "apple-icon", extensions: [ "jpg", "jpeg", "png" ] }, favicon: { filename: "favicon", extensions: [ "ico" ] }, openGraph: { filename: "opengraph-image", extensions: [ "jpg", "jpeg", "png", "gif" ] }, twitter: { filename: "twitter-image", extensions: [ "jpg", "jpeg", "png", "gif" ] } }; // Match routes that are metadata routes, e.g. /sitemap.xml, /favicon., /., etc. // TODO-METADATA: support more metadata routes with more extensions const defaultExtensions = [ "js", "jsx", "ts", "tsx" ]; const getExtensionRegexString = (extensions)=>`(?:${extensions.join("|")})`; function isMetadataRouteFile(appDirRelativePath, pageExtensions, withExtension) { const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("txt"))}$` : ""}`), new RegExp(`^[\\\\/]manifest${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("webmanifest", "json"))}$` : ""}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("xml"))}$` : ""}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.icon.extensions))}$` : ""}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.apple.extensions))}$` : ""}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.openGraph.extensions))}$` : ""}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.twitter.extensions))}$` : ""}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); return metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); } function isStaticMetadataRouteFile(appDirRelativePath) { return isMetadataRouteFile(appDirRelativePath, [], true); } function isStaticMetadataRoute(page) { return page === "/robots" || page === "/manifest" || isStaticMetadataRouteFile(page); } function isMetadataRoute(route) { let page = route.replace(/^\/?app\//, "").replace(/\/route$/, ""); if (page[0] !== "/") page = "/" + page; return !page.endsWith("/page") && isMetadataRouteFile(page, defaultExtensions, false); } //# sourceMappingURL=is-metadata-route.js.map