Files
klz-cables.com/.pnpm-store/v10/files/0f/72e474f77a77b600c83076ae800fb9022e322126d93f9896eacf3566a7a5951842593828bac0e4a732b1f831b8c68ce9b36c0c7f4260e11b7b43db28564f69
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
14 KiB
Plaintext

{"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { DeepPartial } from 'ts-essentials'\n\nimport type { ImportMap } from '../bin/generateImportMap/index.js'\nimport type { ClientBlock } from '../fields/config/types.js'\nimport type { BlockSlug, TypedUser } from '../index.js'\nimport type {\n RootLivePreviewConfig,\n SanitizedConfig,\n SanitizedDashboardConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nimport {\n type ClientCollectionConfig,\n createClientCollectionConfigs,\n} from '../collections/config/client.js'\nimport { createClientBlocks } from '../fields/config/client.js'\nimport { type ClientGlobalConfig, createClientGlobalConfigs } from '../globals/config/client.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'graphQL'\n | 'hooks'\n | 'i18n'\n | 'jobs'\n | 'kv'\n | 'logger'\n | 'onInit'\n | 'plugins'\n | 'queryPresets'\n | 'secret'\n | 'sharp'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = {\n admin: {\n dashboard?: SanitizedDashboardConfig\n livePreview?: Omit<RootLivePreviewConfig, ServerOnlyLivePreviewProperties>\n } & Omit<SanitizedConfig['admin'], 'components' | 'dashboard' | 'dependencies' | 'livePreview'>\n blocks: ClientBlock[]\n blocksMap: Record<BlockSlug, ClientBlock>\n collections: ClientCollectionConfig[]\n custom?: Record<string, any>\n globals: ClientGlobalConfig[]\n unauthenticated?: boolean\n} & Omit<SanitizedConfig, 'admin' | 'collections' | 'globals' | 'i18n' | ServerOnlyRootProperties>\n\nexport type UnauthenticatedClientConfig = {\n admin: {\n routes: ClientConfig['admin']['routes']\n user: ClientConfig['admin']['user']\n }\n collections: [\n {\n auth: ClientCollectionConfig['auth']\n slug: string\n },\n ]\n globals: []\n routes: ClientConfig['routes']\n serverURL: ClientConfig['serverURL']\n unauthenticated: true\n}\n\nexport const serverOnlyAdminConfigProperties: readonly Partial<ServerOnlyRootAdminProperties>[] = []\n\nexport const serverOnlyConfigProperties: readonly Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'i18n',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n 'custom',\n 'graphQL',\n 'jobs',\n 'logger',\n 'kv',\n 'queryPresets',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n]\n\nexport type CreateClientConfigArgs = {\n config: SanitizedConfig\n i18n: I18nClient\n importMap: ImportMap\n /**\n * If unauthenticated, the client config will omit some sensitive properties\n * such as field schemas, etc. This is useful for login and error pages where\n * the page source should not contain this information.\n *\n * For example, allow `true` to generate a client config for the \"create first user\" page\n * where there is no user yet, but the config should still be complete.\n */\n user: true | TypedUser\n}\n\nexport const createUnauthenticatedClientConfig = ({\n clientConfig,\n}: {\n /**\n * Send the previously generated client config to share memory when applicable.\n * E.g. the admin-enabled collection config can reference the existing collection rather than creating a new object.\n */\n clientConfig: ClientConfig\n}): UnauthenticatedClientConfig => {\n /**\n * To share memory, find the admin user collection from the existing client config.\n */\n const adminUserCollection = clientConfig.collections.find(\n ({ slug }) => slug === clientConfig.admin.user,\n )!\n\n return {\n admin: {\n routes: clientConfig.admin.routes,\n user: clientConfig.admin.user,\n },\n collections: [\n {\n slug: adminUserCollection.slug,\n auth: adminUserCollection.auth,\n },\n ],\n globals: [],\n routes: clientConfig.routes,\n serverURL: clientConfig.serverURL,\n unauthenticated: true,\n }\n}\n\nexport const createClientConfig = ({\n config,\n i18n,\n importMap,\n}: CreateClientConfigArgs): ClientConfig => {\n const clientConfig = {} as DeepPartial<ClientConfig>\n\n for (const key in config) {\n if (serverOnlyConfigProperties.includes(key as any)) {\n continue\n }\n\n switch (key) {\n case 'admin':\n clientConfig.admin = {\n autoLogin: config.admin.autoLogin,\n autoRefresh: config.admin.autoRefresh,\n avatar: config.admin.avatar,\n custom: config.admin.custom,\n dateFormat: config.admin.dateFormat,\n importMap: config.admin.importMap,\n meta: config.admin.meta,\n routes: config.admin.routes,\n theme: config.admin.theme,\n timezones: config.admin.timezones,\n toast: config.admin.toast,\n user: config.admin.user,\n }\n\n if (config.admin.dashboard?.widgets) {\n ;(clientConfig.admin.dashboard ??= {}).widgets = config.admin.dashboard.widgets.map(\n (widget) => {\n const { ComponentPath: _, label, ...rest } = widget\n return {\n ...rest,\n // Resolve label function to string for client\n label:\n typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n },\n )\n }\n\n if (config.admin.livePreview) {\n clientConfig.admin.livePreview = {}\n\n if (config.admin.livePreview.breakpoints) {\n clientConfig.admin.livePreview.breakpoints = config.admin.livePreview.breakpoints\n }\n\n if (config.admin.livePreview.collections) {\n clientConfig.admin.livePreview.collections = config.admin.livePreview.collections\n }\n\n if (config.admin.livePreview.globals) {\n clientConfig.admin.livePreview.globals = config.admin.livePreview.globals\n }\n }\n\n break\n\n case 'blocks': {\n ;(clientConfig.blocks as ClientBlock[]) = createClientBlocks({\n blocks: config.blocks!,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n }).filter((block) => typeof block !== 'string') as ClientBlock[]\n\n clientConfig.blocksMap = {}\n if (clientConfig.blocks?.length) {\n for (const block of clientConfig.blocks) {\n if (!block?.slug) {\n continue\n }\n\n clientConfig.blocksMap[block.slug] = block as ClientBlock\n }\n }\n\n break\n }\n\n case 'collections':\n ;(clientConfig.collections as ClientCollectionConfig[]) = createClientCollectionConfigs({\n collections: config.collections,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n })\n\n break\n\n case 'folders':\n if (config.folders) {\n clientConfig.folders = {\n slug: config.folders.slug,\n browseByFolder: config.folders.browseByFolder,\n debug: config.folders.debug,\n fieldName: config.folders.fieldName,\n }\n }\n\n break\n\n case 'globals':\n ;(clientConfig.globals as ClientGlobalConfig[]) = createClientGlobalConfigs({\n defaultIDType: config.db.defaultIDType,\n globals: config.globals,\n i18n,\n importMap,\n })\n\n break\n\n case 'localization':\n if (typeof config.localization === 'object' && config.localization) {\n clientConfig.localization = {}\n\n if (config.localization.defaultLocale) {\n clientConfig.localization.defaultLocale = config.localization.defaultLocale\n }\n\n if (config.localization.defaultLocalePublishOption) {\n clientConfig.localization.defaultLocalePublishOption =\n config.localization.defaultLocalePublishOption\n }\n\n if (config.localization.fallback) {\n clientConfig.localization.fallback = config.localization.fallback\n }\n\n if (config.localization.localeCodes) {\n clientConfig.localization.localeCodes = config.localization.localeCodes\n }\n\n if (config.localization.locales) {\n clientConfig.localization.locales = []\n\n for (const locale of config.localization.locales) {\n if (locale) {\n const clientLocale: Partial<(typeof config.localization.locales)[0]> = {}\n\n if (locale.code) {\n clientLocale.code = locale.code\n }\n\n if (locale.fallbackLocale) {\n clientLocale.fallbackLocale = locale.fallbackLocale\n }\n\n if (locale.label) {\n clientLocale.label = locale.label\n }\n\n if (locale.rtl) {\n clientLocale.rtl = locale.rtl\n }\n\n clientConfig.localization.locales.push(clientLocale)\n }\n }\n }\n }\n\n break\n\n default:\n ;(clientConfig as any)[key] = config[key as keyof SanitizedConfig]\n }\n }\n\n return clientConfig as ClientConfig\n}\n"],"names":["createClientCollectionConfigs","createClientBlocks","createClientGlobalConfigs","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","createUnauthenticatedClientConfig","clientConfig","adminUserCollection","collections","find","slug","admin","user","routes","auth","globals","serverURL","unauthenticated","createClientConfig","config","i18n","importMap","key","includes","autoLogin","autoRefresh","avatar","custom","dateFormat","meta","theme","timezones","toast","dashboard","widgets","map","widget","ComponentPath","_","label","rest","t","livePreview","breakpoints","blocks","defaultIDType","db","filter","block","blocksMap","length","folders","browseByFolder","debug","fieldName","localization","defaultLocale","defaultLocalePublishOption","fallback","localeCodes","locales","locale","clientLocale","code","fallbackLocale","rtl","push"],"mappings":"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"}