Rocky_Mountain_Vending/.pnpm-store/v10/files/14/2a3b06268fb98017e8a25515b6bd223547a07702d400d12133d0c45835effadc9a00bc7e45297f2360675ab49677402e28d2c30aabbb3ff777c1b160cca7e0
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
13 KiB
Text

{"version":3,"sources":["../../../../src/lib/metadata/resolvers/resolve-opengraph.ts"],"sourcesContent":["import type { ResolvedMetadataWithURLs } from '../types/metadata-interface'\nimport type {\n OpenGraphType,\n OpenGraph,\n ResolvedOpenGraph,\n} from '../types/opengraph-types'\nimport type {\n FieldResolverExtraArgs,\n AsyncFieldResolverExtraArgs,\n MetadataContext,\n} from '../types/resolvers'\nimport type { ResolvedTwitterMetadata, Twitter } from '../types/twitter-types'\nimport { resolveArray, resolveAsArrayOrUndefined } from '../generate/utils'\nimport {\n getSocialImageMetadataBaseFallback,\n isStringOrURL,\n resolveUrl,\n resolveAbsoluteUrlWithPathname,\n type MetadataBaseURL,\n} from './resolve-url'\nimport { resolveTitle } from './resolve-title'\nimport { isFullStringUrl } from '../../url'\nimport { warnOnce } from '../../../build/output/log'\n\ntype FlattenArray<T> = T extends (infer U)[] ? U : T\n\nconst OgTypeFields = {\n article: ['authors', 'tags'],\n song: ['albums', 'musicians'],\n playlist: ['albums', 'musicians'],\n radio: ['creators'],\n video: ['actors', 'directors', 'writers', 'tags'],\n basic: [\n 'emails',\n 'phoneNumbers',\n 'faxNumbers',\n 'alternateLocale',\n 'audio',\n 'videos',\n ],\n} as const\n\nfunction resolveAndValidateImage(\n item: FlattenArray<OpenGraph['images'] | Twitter['images']>,\n metadataBase: MetadataBaseURL,\n isStaticMetadataRouteFile: boolean | undefined\n) {\n if (!item) return undefined\n const isItemUrl = isStringOrURL(item)\n const inputUrl = isItemUrl ? item : item.url\n if (!inputUrl) return undefined\n\n // process.env.VERCEL is set to \"1\" when System Environment Variables are\n // exposed. When exposed, validation is not necessary since we are falling back to\n // process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_BRANCH_URL, or\n // process.env.VERCEL_URL for the `metadataBase`. process.env.VERCEL is undefined\n // when System Environment Variables are not exposed. When not exposed, we cannot\n // detect in the build environment if the deployment is a Vercel deployment or not.\n //\n // x-ref: https://vercel.com/docs/projects/environment-variables/system-environment-variables#system-environment-variables\n const isUsingVercelSystemEnvironmentVariables = Boolean(process.env.VERCEL)\n\n const isRelativeUrl =\n typeof inputUrl === 'string' && !isFullStringUrl(inputUrl)\n\n // When no explicit metadataBase is specified by the user, we'll override it with the fallback metadata\n // under the following conditions:\n // - The provided URL is relative (ie ./og-image).\n // - The image is statically generated by Next.js (such as the special `opengraph-image` route)\n // In both cases, we want to ensure that across all environments, the ogImage is a fully qualified URL.\n // In the `opengraph-image` case, since the user isn't explicitly passing a relative path, this ensures\n // the ogImage will be properly discovered across different environments without the user needing to\n // have a bunch of `process.env` checks when defining their `metadataBase`.\n if (isRelativeUrl && (!metadataBase || isStaticMetadataRouteFile)) {\n const fallbackMetadataBase =\n getSocialImageMetadataBaseFallback(metadataBase)\n\n // When not using Vercel environment variables for URL injection, we aren't able to determine\n // a fallback value for `metadataBase`. For self-hosted setups, we want to warn\n // about this since the only fallback we'll be able to generate is `localhost`.\n // In development, we'll only warn for relative metadata that isn't part of the static\n // metadata conventions (eg `opengraph-image`), as otherwise it's currently very noisy\n // for common cases. Eventually we should remove this warning all together in favor of\n // devtools.\n const shouldWarn =\n !isUsingVercelSystemEnvironmentVariables &&\n !metadataBase &&\n (process.env.NODE_ENV === 'production' || !isStaticMetadataRouteFile)\n\n if (shouldWarn) {\n warnOnce(\n `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`\n )\n }\n\n metadataBase = fallbackMetadataBase\n }\n\n return isItemUrl\n ? {\n url: resolveUrl(inputUrl, metadataBase),\n }\n : {\n ...item,\n // Update image descriptor url\n url: resolveUrl(inputUrl, metadataBase),\n }\n}\n\nexport function resolveImages(\n images: Twitter['images'],\n metadataBase: MetadataBaseURL,\n isStaticMetadataRouteFile: boolean\n): NonNullable<ResolvedMetadataWithURLs['twitter']>['images']\nexport function resolveImages(\n images: OpenGraph['images'],\n metadataBase: MetadataBaseURL,\n isStaticMetadataRouteFile: boolean\n): NonNullable<ResolvedMetadataWithURLs['openGraph']>['images']\nexport function resolveImages(\n images: OpenGraph['images'] | Twitter['images'],\n metadataBase: MetadataBaseURL,\n isStaticMetadataRouteFile: boolean\n):\n | NonNullable<ResolvedMetadataWithURLs['twitter']>['images']\n | NonNullable<ResolvedMetadataWithURLs['openGraph']>['images'] {\n const resolvedImages = resolveAsArrayOrUndefined(images)\n if (!resolvedImages) return resolvedImages\n\n const nonNullableImages = []\n for (const item of resolvedImages) {\n const resolvedItem = resolveAndValidateImage(\n item,\n metadataBase,\n isStaticMetadataRouteFile\n )\n if (!resolvedItem) continue\n\n nonNullableImages.push(resolvedItem)\n }\n\n return nonNullableImages\n}\n\nconst ogTypeToFields: Record<string, readonly string[]> = {\n article: OgTypeFields.article,\n book: OgTypeFields.article,\n 'music.song': OgTypeFields.song,\n 'music.album': OgTypeFields.song,\n 'music.playlist': OgTypeFields.playlist,\n 'music.radio_station': OgTypeFields.radio,\n 'video.movie': OgTypeFields.video,\n 'video.episode': OgTypeFields.video,\n}\n\nfunction getFieldsByOgType(ogType: OpenGraphType | undefined) {\n if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic\n return ogTypeToFields[ogType].concat(OgTypeFields.basic)\n}\n\nexport const resolveOpenGraph: AsyncFieldResolverExtraArgs<\n 'openGraph',\n [MetadataBaseURL, Promise<string>, MetadataContext, string | null]\n> = async (\n openGraph,\n metadataBase,\n pathname,\n metadataContext,\n titleTemplate\n) => {\n if (!openGraph) return null\n\n function resolveProps(target: ResolvedOpenGraph, og: OpenGraph) {\n const ogType = og && 'type' in og ? og.type : undefined\n const keys = getFieldsByOgType(ogType)\n for (const k of keys) {\n const key = k as keyof ResolvedOpenGraph\n if (key in og && key !== 'url') {\n const value = og[key]\n // TODO: improve typing inferring\n ;(target as any)[key] = value ? resolveArray(value) : null\n }\n }\n target.images = resolveImages(\n og.images,\n metadataBase,\n metadataContext.isStaticMetadataRouteFile\n )\n }\n\n const resolved = {\n ...openGraph,\n title: resolveTitle(openGraph.title, titleTemplate),\n } as ResolvedOpenGraph\n resolveProps(resolved, openGraph)\n\n resolved.url = openGraph.url\n ? resolveAbsoluteUrlWithPathname(\n openGraph.url,\n metadataBase,\n await pathname,\n metadataContext\n )\n : null\n\n return resolved\n}\n\nconst TwitterBasicInfoKeys = [\n 'site',\n 'siteId',\n 'creator',\n 'creatorId',\n 'description',\n] as const\n\nexport const resolveTwitter: FieldResolverExtraArgs<\n 'twitter',\n [MetadataBaseURL, MetadataContext, string | null]\n> = (twitter, metadataBase, metadataContext, titleTemplate) => {\n if (!twitter) return null\n let card = 'card' in twitter ? twitter.card : undefined\n const resolved = {\n ...twitter,\n title: resolveTitle(twitter.title, titleTemplate),\n } as ResolvedTwitterMetadata\n for (const infoKey of TwitterBasicInfoKeys) {\n resolved[infoKey] = twitter[infoKey] || null\n }\n\n resolved.images = resolveImages(\n twitter.images,\n metadataBase,\n metadataContext.isStaticMetadataRouteFile\n )\n\n card = card || (resolved.images?.length ? 'summary_large_image' : 'summary')\n resolved.card = card\n\n if ('card' in resolved) {\n switch (resolved.card) {\n case 'player': {\n resolved.players = resolveAsArrayOrUndefined(resolved.players) || []\n break\n }\n case 'app': {\n resolved.app = resolved.app || {}\n break\n }\n case 'summary':\n case 'summary_large_image':\n break\n default:\n resolved satisfies never\n }\n }\n\n return resolved\n}\n"],"names":["resolveImages","resolveOpenGraph","resolveTwitter","OgTypeFields","article","song","playlist","radio","video","basic","resolveAndValidateImage","item","metadataBase","isStaticMetadataRouteFile","undefined","isItemUrl","isStringOrURL","inputUrl","url","isUsingVercelSystemEnvironmentVariables","Boolean","process","env","VERCEL","isRelativeUrl","isFullStringUrl","fallbackMetadataBase","getSocialImageMetadataBaseFallback","shouldWarn","NODE_ENV","warnOnce","origin","resolveUrl","images","resolvedImages","resolveAsArrayOrUndefined","nonNullableImages","resolvedItem","push","ogTypeToFields","book","getFieldsByOgType","ogType","concat","openGraph","pathname","metadataContext","titleTemplate","resolveProps","target","og","type","keys","k","key","value","resolveArray","resolved","title","resolveTitle","resolveAbsoluteUrlWithPathname","TwitterBasicInfoKeys","twitter","card","infoKey","length","players","app"],"mappings":"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","ignoreList":[0]}