@payloadcms/next 3.63.0-canary.7 → 3.63.0-internal.15444aa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,17 +28,6 @@ const withPayload = (nextConfig = {}, options = {})=>{
28
28
  console.warn('Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.');
29
29
  env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true';
30
30
  }
31
- if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {
32
- const turbopackWarningText = 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\nTry to install it into the project directory by running';
33
- const consoleWarn = console.warn;
34
- console.warn = (...args)=>{
35
- // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805
36
- if (typeof args[1] === 'string' && args[1].includes(turbopackWarningText) || typeof args[0] === 'string' && args[0].includes(turbopackWarningText)) {
37
- return;
38
- }
39
- consoleWarn(...args);
40
- };
41
- }
42
31
  const poweredByHeader = {
43
32
  key: 'X-Powered-By',
44
33
  value: 'Next.js, Payload'
@@ -98,24 +87,33 @@ const withPayload = (nextConfig = {}, options = {})=>{
98
87
  },
99
88
  serverExternalPackages: [
100
89
  ...nextConfig.serverExternalPackages || [],
101
- 'drizzle-kit',
102
- 'drizzle-kit/api',
103
- 'pino',
104
- 'libsql',
105
- 'pino-pretty',
106
- 'graphql',
107
- // Do not bundle server-only packages during dev to improve compile speed
90
+ // These packages always need to be external, both during dev and production. This is because they install dependencies
91
+ // that will error when trying to bundle them (e.g. drizzle-kit, libsql, esbuild etc.).
92
+ // We cannot externalize those problem-packages directly. We can only externalize packages that are manually installed
93
+ // by the end user. Otherwise, the require('externalPackage') calls generated by the bundler would fail during runtime,
94
+ // as you cannot import dependencies of dependencies in a lot of package managers like pnpm. We'd have to force users
95
+ // to install the dependencies directly.
96
+ // Thus, we externalize the "entry-point" = the package that is installed by the end user, which would be our db adapters.
97
+ //
98
+ //
99
+ // External because it installs mongoose (part of default serverExternalPackages: https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/server-external-packages.json => would throw warning if we don't exclude the entry-point package):
100
+ '@payloadcms/db-mongodb',
101
+ // External because they install dependencies like drizzle, libsql, esbuild etc.:
102
+ '@payloadcms/db-postgres',
103
+ '@payloadcms/db-sqlite',
104
+ '@payloadcms/db-vercel-postgres',
105
+ '@payloadcms/drizzle',
106
+ // External because they install @aws-sdk/client-s3:
107
+ '@payloadcms/payload-cloud',
108
+ // External, because it installs import-in-the-middle and require-in-the-middle - both in the default serverExternalPackages list.
109
+ '@sentry/nextjs',
110
+ // TODO: We need to externalize @payloadcms/storage-s3 as well, once Next.js has the ability to exclude @payloadcms/storage-s3/client from being externalized.
111
+ // Do not bundle additional server-only packages during dev to improve compilation speed
108
112
  ...process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false ? [
109
113
  'payload',
110
- '@payloadcms/db-mongodb',
111
- '@payloadcms/db-postgres',
112
- '@payloadcms/db-sqlite',
113
- '@payloadcms/db-vercel-postgres',
114
- '@payloadcms/drizzle',
115
114
  '@payloadcms/email-nodemailer',
116
115
  '@payloadcms/email-resend',
117
116
  '@payloadcms/graphql',
118
- '@payloadcms/payload-cloud',
119
117
  '@payloadcms/plugin-redirects'
120
118
  ] : []
121
119
  ],
@@ -125,51 +123,15 @@ const withPayload = (nextConfig = {}, options = {})=>{
125
123
  ...incomingWebpackConfig,
126
124
  externals: [
127
125
  ...incomingWebpackConfig?.externals || [],
128
- 'drizzle-kit',
129
- 'drizzle-kit/api',
130
- 'sharp',
131
- 'libsql',
132
126
  'require-in-the-middle'
133
127
  ],
134
- ignoreWarnings: [
135
- ...incomingWebpackConfig?.ignoreWarnings || [],
136
- {
137
- module: /node_modules\/mongodb\/lib\/utils\.js/
138
- },
139
- {
140
- file: /node_modules\/mongodb\/lib\/utils\.js/
141
- },
142
- {
143
- module: /node_modules\/mongodb\/lib\/bson\.js/
144
- },
145
- {
146
- file: /node_modules\/mongodb\/lib\/bson\.js/
147
- }
148
- ],
149
128
  plugins: [
150
129
  ...incomingWebpackConfig?.plugins || [],
151
130
  // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177
152
131
  new webpackOptions.webpack.IgnorePlugin({
153
132
  resourceRegExp: /^pg-native$|^cloudflare:sockets$/
154
133
  })
155
- ],
156
- resolve: {
157
- ...incomingWebpackConfig?.resolve || {},
158
- alias: {
159
- ...incomingWebpackConfig?.resolve?.alias || {}
160
- },
161
- fallback: {
162
- ...incomingWebpackConfig?.resolve?.fallback || {},
163
- '@aws-sdk/credential-providers': false,
164
- '@mongodb-js/zstd': false,
165
- aws4: false,
166
- kerberos: false,
167
- 'mongodb-client-encryption': false,
168
- snappy: false,
169
- 'supports-color': false,
170
- 'yocto-queue': false
171
- }
172
- }
134
+ ]
173
135
  };
174
136
  }
175
137
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/withPayload.js"],"names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","turbopack","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","plugins","IgnorePlugin","resourceRegExp","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"mappings":"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","file":"withPayload.cjs","sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n turbopack: {\n ...(nextConfig.turbopack || {}),\n },\n outputFileTracingExcludes: {\n ...(nextConfig.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"]}
1
+ {"version":3,"sources":["../../src/withPayload.js"],"names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","poweredByHeader","key","value","toReturn","turbopack","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","process","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","plugins","IgnorePlugin","resourceRegExp","basePath","NEXT_BASE_PATH"],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;;;QAuIH;eAAA;;QAtIaA;eAAAA;;;AAAN,MAAMA,cAAc,CAACC,aAAa,CAAC,CAAC,EAAEC,UAAU,CAAC,CAAC;IACvD,MAAMC,MAAMF,WAAWE,GAAG,IAAI,CAAC;IAE/B,IAAIF,WAAWG,YAAY,EAAEC,YAAYC,SAAS;QAChDC,QAAQC,IAAI,CACV;QAEFL,IAAIM,uCAAuC,GAAG;IAChD;IAEA,MAAMC,kBAAkB;QACtBC,KAAK;QACLC,OAAO;IACT;IAEA;;GAEC,GACD,MAAMC,WAAW;QACf,GAAGZ,UAAU;QACbE;QACAW,WAAW;YACT,GAAIb,WAAWa,SAAS,IAAI,CAAC,CAAC;QAChC;QACAC,2BAA2B;YACzB,GAAId,WAAWc,yBAAyB,IAAI,CAAC,CAAC;YAC9C,QAAQ;mBACFd,WAAWc,yBAAyB,EAAE,CAAC,OAAO,IAAI,EAAE;gBACxD;gBACA;aACD;QACH;QACAC,2BAA2B;YACzB,GAAIf,WAAWe,yBAAyB,IAAI,CAAC,CAAC;YAC9C,QAAQ;mBAAKf,WAAWe,yBAAyB,EAAE,CAAC,OAAO,IAAI,EAAE;gBAAG;aAAiB;QACvF;QACA,+FAA+F;QAC/F,GAAIf,WAAWS,eAAe,KAAK,QAAQ;YAAEA,iBAAiB;QAAM,IAAI,CAAC,CAAC;QAC1EO,SAAS;YACP,MAAMC,oBAAoB,aAAajB,aAAa,MAAMA,WAAWgB,OAAO,KAAK,EAAE;YAEnF,OAAO;mBACDC,qBAAqB,EAAE;gBAC3B;oBACEC,QAAQ;oBACRF,SAAS;wBACP;4BACEN,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;2BACIX,WAAWS,eAAe,KAAK,QAAQ;4BAACA;yBAAgB,GAAG,EAAE;qBAClE;gBACH;aACD;QACH;QACAU,wBAAwB;eAClBnB,WAAWmB,sBAAsB,IAAI,EAAE;YAC3C,uHAAuH;YACvH,uFAAuF;YACvF,sHAAsH;YACtH,uHAAuH;YACvH,qHAAqH;YACrH,wCAAwC;YACxC,0HAA0H;YAC1H,EAAE;YACF,EAAE;YACF,wPAAwP;YACxP;YACA,iFAAiF;YACjF;YACA;YACA;YACA;YACA,oDAAoD;YACpD;YACA,kIAAkI;YAClI;YACA,8JAA8J;YAC9J,wFAAwF;eACpFC,QAAQlB,GAAG,CAACmB,QAAQ,KAAK,iBAAiBpB,QAAQqB,uBAAuB,KAAK,QAC9E;gBACE;gBACA;gBACA;gBACA;gBACA;aAWD,GACD,EAAE;SACP;QACDC,SAAS,CAACC,eAAeC;YACvB,MAAMC,wBACJ,OAAO1B,WAAWuB,OAAO,KAAK,aAC1BvB,WAAWuB,OAAO,CAACC,eAAeC,kBAClCD;YAEN,OAAO;gBACL,GAAGE,qBAAqB;gBACxBC,WAAW;uBAAKD,uBAAuBC,aAAa,EAAE;oBAAG;iBAAwB;gBACjFC,SAAS;uBACHF,uBAAuBE,WAAW,EAAE;oBACxC,oFAAoF;oBACpF,IAAIH,eAAeF,OAAO,CAACM,YAAY,CAAC;wBACtCC,gBAAgB;oBAClB;iBACD;YACH;QACF;IACF;IAEA,IAAI9B,WAAW+B,QAAQ,EAAE;QACvBnB,SAASV,GAAG,CAAC8B,cAAc,GAAGhC,WAAW+B,QAAQ;IACnD;IAEA,OAAOnB;AACT;MAEA,WAAeb","file":"withPayload.cjs","sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n turbopack: {\n ...(nextConfig.turbopack || {}),\n },\n outputFileTracingExcludes: {\n ...(nextConfig.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n // These packages always need to be external, both during dev and production. This is because they install dependencies\n // that will error when trying to bundle them (e.g. drizzle-kit, libsql, esbuild etc.).\n // We cannot externalize those problem-packages directly. We can only externalize packages that are manually installed\n // by the end user. Otherwise, the require('externalPackage') calls generated by the bundler would fail during runtime,\n // as you cannot import dependencies of dependencies in a lot of package managers like pnpm. We'd have to force users\n // to install the dependencies directly.\n // Thus, we externalize the \"entry-point\" = the package that is installed by the end user, which would be our db adapters.\n //\n //\n // External because it installs mongoose (part of default serverExternalPackages: https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/server-external-packages.json => would throw warning if we don't exclude the entry-point package):\n '@payloadcms/db-mongodb',\n // External because they install dependencies like drizzle, libsql, esbuild etc.:\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n // External because they install @aws-sdk/client-s3:\n '@payloadcms/payload-cloud',\n // External, because it installs import-in-the-middle and require-in-the-middle - both in the default serverExternalPackages list.\n '@sentry/nextjs',\n // TODO: We need to externalize @payloadcms/storage-s3 as well, once Next.js has the ability to exclude @payloadcms/storage-s3/client from being externalized.\n // Do not bundle additional server-only packages during dev to improve compilation speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [...(incomingWebpackConfig?.externals || []), 'require-in-the-middle'],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"]}
@@ -2,19 +2,13 @@ import type { FileData, PayloadRequest, TypeWithID, UploadField, UploadFieldDiff
2
2
  import { type I18nClient } from '@payloadcms/translations';
3
3
  import './index.scss';
4
4
  import React from 'react';
5
- type NonPolyUploadDoc = (FileData & TypeWithID) | number | string;
6
- type PolyUploadDoc = {
7
- relationTo: string;
8
- value: (FileData & TypeWithID) | number | string;
9
- };
10
- type UploadDoc = NonPolyUploadDoc | PolyUploadDoc;
5
+ type UploadDoc = (FileData & TypeWithID) | string;
11
6
  export declare const Upload: UploadFieldDiffServerComponent;
12
7
  export declare const HasManyUploadDiff: React.FC<{
13
8
  field: UploadField;
14
9
  i18n: I18nClient;
15
10
  locale: string;
16
11
  nestingLevel?: number;
17
- polymorphic: boolean;
18
12
  req: PayloadRequest;
19
13
  valueFrom: Array<UploadDoc>;
20
14
  valueTo: Array<UploadDoc>;
@@ -24,7 +18,6 @@ export declare const SingleUploadDiff: React.FC<{
24
18
  i18n: I18nClient;
25
19
  locale: string;
26
20
  nestingLevel?: number;
27
- polymorphic: boolean;
28
21
  req: PayloadRequest;
29
22
  valueFrom: UploadDoc;
30
23
  valueTo: UploadDoc;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,EACX,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1E,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,gBAAgB,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AACjE,KAAK,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE7F,KAAK,SAAS,GAAG,gBAAgB,GAAG,aAAa,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,8BAwCpB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CAC1B,CAiFA,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,SAAS,CAAA;CACnB,CA2DA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,EACX,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1E,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,SAAS,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,MAAM,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,8BAoCpB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CAC1B,CAqEA,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,SAAS,CAAA;CACnB,CAyDA,CAAA"}
@@ -13,15 +13,12 @@ export const Upload = args => {
13
13
  req,
14
14
  versionValue: valueTo
15
15
  } = args;
16
- const hasMany = 'hasMany' in field && field.hasMany && Array.isArray(valueTo);
17
- const polymorphic = Array.isArray(field.relationTo);
18
- if (hasMany) {
16
+ if ('hasMany' in field && field.hasMany && Array.isArray(valueTo)) {
19
17
  return /*#__PURE__*/_jsx(HasManyUploadDiff, {
20
18
  field: field,
21
19
  i18n: i18n,
22
20
  locale: locale,
23
21
  nestingLevel: nestingLevel,
24
- polymorphic: polymorphic,
25
22
  req: req,
26
23
  valueFrom: valueFrom,
27
24
  valueTo: valueTo
@@ -32,7 +29,6 @@ export const Upload = args => {
32
29
  i18n: i18n,
33
30
  locale: locale,
34
31
  nestingLevel: nestingLevel,
35
- polymorphic: polymorphic,
36
32
  req: req,
37
33
  valueFrom: valueFrom,
38
34
  valueTo: valueTo
@@ -44,7 +40,6 @@ export const HasManyUploadDiff = async args => {
44
40
  i18n,
45
41
  locale,
46
42
  nestingLevel,
47
- polymorphic,
48
43
  req,
49
44
  valueFrom,
50
45
  valueTo
@@ -53,31 +48,20 @@ export const HasManyUploadDiff = async args => {
53
48
  let From = '';
54
49
  let To = '';
55
50
  const showCollectionSlug = Array.isArray(field.relationTo);
56
- const getUploadDocKey = uploadDoc => {
57
- if (typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {
58
- // Polymorphic case
59
- const value = uploadDoc.value;
60
- return typeof value === 'object' ? value.id : value;
61
- }
62
- // Non-polymorphic case
63
- return typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc;
64
- };
65
51
  const FromComponents = valueFrom ? valueFrom.map(uploadDoc => /*#__PURE__*/_jsx(UploadDocumentDiff, {
66
52
  i18n: i18n,
67
- polymorphic: polymorphic,
68
53
  relationTo: field.relationTo,
69
54
  req: req,
70
55
  showCollectionSlug: showCollectionSlug,
71
56
  uploadDoc: uploadDoc
72
- }, getUploadDocKey(uploadDoc))) : null;
57
+ }, typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc)) : null;
73
58
  const ToComponents = valueTo ? valueTo.map(uploadDoc => /*#__PURE__*/_jsx(UploadDocumentDiff, {
74
59
  i18n: i18n,
75
- polymorphic: polymorphic,
76
60
  relationTo: field.relationTo,
77
61
  req: req,
78
62
  showCollectionSlug: showCollectionSlug,
79
63
  uploadDoc: uploadDoc
80
- }, getUploadDocKey(uploadDoc))) : null;
64
+ }, typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc)) : null;
81
65
  const diffResult = getHTMLDiffComponents({
82
66
  fromHTML: `<div class="${baseClass}-hasMany">` + (FromComponents ? FromComponents.map(component => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`).join('') : '') + '</div>',
83
67
  toHTML: `<div class="${baseClass}-hasMany">` + (ToComponents ? ToComponents.map(component => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`).join('') : '') + '</div>',
@@ -103,7 +87,6 @@ export const SingleUploadDiff = async args => {
103
87
  i18n,
104
88
  locale,
105
89
  nestingLevel,
106
- polymorphic,
107
90
  req,
108
91
  valueFrom,
109
92
  valueTo
@@ -114,7 +97,6 @@ export const SingleUploadDiff = async args => {
114
97
  const showCollectionSlug = Array.isArray(field.relationTo);
115
98
  const FromComponent = valueFrom ? /*#__PURE__*/_jsx(UploadDocumentDiff, {
116
99
  i18n: i18n,
117
- polymorphic: polymorphic,
118
100
  relationTo: field.relationTo,
119
101
  req: req,
120
102
  showCollectionSlug: showCollectionSlug,
@@ -122,7 +104,6 @@ export const SingleUploadDiff = async args => {
122
104
  }) : null;
123
105
  const ToComponent = valueTo ? /*#__PURE__*/_jsx(UploadDocumentDiff, {
124
106
  i18n: i18n,
125
- polymorphic: polymorphic,
126
107
  relationTo: field.relationTo,
127
108
  req: req,
128
109
  showCollectionSlug: showCollectionSlug,
@@ -152,47 +133,30 @@ export const SingleUploadDiff = async args => {
152
133
  const UploadDocumentDiff = args => {
153
134
  const {
154
135
  i18n,
155
- polymorphic,
156
136
  relationTo,
157
137
  req,
158
138
  showCollectionSlug,
159
139
  uploadDoc
160
140
  } = args;
161
141
  let thumbnailSRC = '';
162
- const value = polymorphic ? uploadDoc.value : uploadDoc;
163
- if (value && typeof value === 'object' && 'thumbnailURL' in value) {
164
- thumbnailSRC = typeof value.thumbnailURL === 'string' && value.thumbnailURL || typeof value.url === 'string' && value.url || '';
142
+ if (uploadDoc && typeof uploadDoc === 'object' && 'thumbnailURL' in uploadDoc) {
143
+ thumbnailSRC = typeof uploadDoc.thumbnailURL === 'string' && uploadDoc.thumbnailURL || typeof uploadDoc.url === 'string' && uploadDoc.url || '';
165
144
  }
166
145
  let filename;
167
- if (value && typeof value === 'object') {
168
- filename = value.filename;
146
+ if (uploadDoc && typeof uploadDoc === 'object') {
147
+ filename = uploadDoc.filename;
169
148
  } else {
170
149
  filename = `${i18n.t('general:untitled')} - ID: ${uploadDoc}`;
171
150
  }
172
151
  let pillLabel = null;
173
152
  if (showCollectionSlug) {
174
- let collectionSlug;
175
- if (polymorphic && typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {
176
- collectionSlug = uploadDoc.relationTo;
177
- } else {
178
- collectionSlug = typeof relationTo === 'string' ? relationTo : relationTo[0];
179
- }
180
- const uploadConfig = req.payload.collections[collectionSlug].config;
153
+ const uploadConfig = req.payload.collections[relationTo].config;
181
154
  pillLabel = uploadConfig.labels?.singular ? getTranslation(uploadConfig.labels.singular, i18n) : uploadConfig.slug;
182
155
  }
183
- let id;
184
- if (polymorphic && typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {
185
- const polyValue = uploadDoc.value;
186
- id = typeof polyValue === 'object' ? polyValue.id : polyValue;
187
- } else if (typeof uploadDoc === 'object' && 'id' in uploadDoc) {
188
- id = uploadDoc.id;
189
- } else if (typeof uploadDoc === 'string' || typeof uploadDoc === 'number') {
190
- id = uploadDoc;
191
- }
192
156
  return /*#__PURE__*/_jsx("div", {
193
157
  className: `${baseClass}`,
194
158
  "data-enable-match": "true",
195
- "data-id": id,
159
+ "data-id": typeof uploadDoc === 'object' ? uploadDoc?.id : uploadDoc,
196
160
  "data-relation-to": relationTo,
197
161
  children: /*#__PURE__*/_jsxs("div", {
198
162
  className: `${baseClass}__card`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","FieldDiffContainer","File","getHTMLDiffComponents","React","baseClass","Upload","args","comparisonValue","valueFrom","field","i18n","locale","nestingLevel","req","versionValue","valueTo","hasMany","Array","isArray","polymorphic","relationTo","_jsx","HasManyUploadDiff","SingleUploadDiff","ReactDOMServer","default","From","To","showCollectionSlug","getUploadDocKey","uploadDoc","value","id","FromComponents","map","UploadDocumentDiff","ToComponents","diffResult","fromHTML","component","renderToStaticMarkup","join","toHTML","tokenizeByCharacter","className","label","FromComponent","ToComponent","fromHtml","toHtml","thumbnailSRC","thumbnailURL","url","filename","t","pillLabel","collectionSlug","uploadConfig","payload","collections","config","labels","singular","slug","polyValue","_jsxs","length","alt","src"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Upload/index.tsx"],"sourcesContent":["import type {\n FileData,\n PayloadRequest,\n TypeWithID,\n UploadField,\n UploadFieldDiffServerComponent,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { FieldDiffContainer, File, getHTMLDiffComponents } from '@payloadcms/ui/rsc'\n\nimport './index.scss'\n\nimport React from 'react'\n\nconst baseClass = 'upload-diff'\n\ntype NonPolyUploadDoc = (FileData & TypeWithID) | number | string\ntype PolyUploadDoc = { relationTo: string; value: (FileData & TypeWithID) | number | string }\n\ntype UploadDoc = NonPolyUploadDoc | PolyUploadDoc\n\nexport const Upload: UploadFieldDiffServerComponent = (args) => {\n const {\n comparisonValue: valueFrom,\n field,\n i18n,\n locale,\n nestingLevel,\n req,\n versionValue: valueTo,\n } = args\n const hasMany = 'hasMany' in field && field.hasMany && Array.isArray(valueTo)\n const polymorphic = Array.isArray(field.relationTo)\n\n if (hasMany) {\n return (\n <HasManyUploadDiff\n field={field}\n i18n={i18n}\n locale={locale}\n nestingLevel={nestingLevel}\n polymorphic={polymorphic}\n req={req}\n valueFrom={valueFrom as UploadDoc[]}\n valueTo={valueTo as UploadDoc[]}\n />\n )\n }\n\n return (\n <SingleUploadDiff\n field={field}\n i18n={i18n}\n locale={locale}\n nestingLevel={nestingLevel}\n polymorphic={polymorphic}\n req={req}\n valueFrom={valueFrom as UploadDoc}\n valueTo={valueTo as UploadDoc}\n />\n )\n}\n\nexport const HasManyUploadDiff: React.FC<{\n field: UploadField\n i18n: I18nClient\n locale: string\n nestingLevel?: number\n polymorphic: boolean\n req: PayloadRequest\n valueFrom: Array<UploadDoc>\n valueTo: Array<UploadDoc>\n}> = async (args) => {\n const { field, i18n, locale, nestingLevel, polymorphic, req, valueFrom, valueTo } = args\n const ReactDOMServer = (await import('react-dom/server')).default\n\n let From: React.ReactNode = ''\n let To: React.ReactNode = ''\n\n const showCollectionSlug = Array.isArray(field.relationTo)\n\n const getUploadDocKey = (uploadDoc: UploadDoc): number | string => {\n if (typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {\n // Polymorphic case\n const value = uploadDoc.value\n return typeof value === 'object' ? value.id : value\n }\n // Non-polymorphic case\n return typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc\n }\n\n const FromComponents = valueFrom\n ? valueFrom.map((uploadDoc) => (\n <UploadDocumentDiff\n i18n={i18n}\n key={getUploadDocKey(uploadDoc)}\n polymorphic={polymorphic}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={uploadDoc}\n />\n ))\n : null\n const ToComponents = valueTo\n ? valueTo.map((uploadDoc) => (\n <UploadDocumentDiff\n i18n={i18n}\n key={getUploadDocKey(uploadDoc)}\n polymorphic={polymorphic}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={uploadDoc}\n />\n ))\n : null\n\n const diffResult = getHTMLDiffComponents({\n fromHTML:\n `<div class=\"${baseClass}-hasMany\">` +\n (FromComponents\n ? FromComponents.map(\n (component) => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`,\n ).join('')\n : '') +\n '</div>',\n toHTML:\n `<div class=\"${baseClass}-hasMany\">` +\n (ToComponents\n ? ToComponents.map(\n (component) => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`,\n ).join('')\n : '') +\n '</div>',\n tokenizeByCharacter: false,\n })\n From = diffResult.From\n To = diffResult.To\n\n return (\n <FieldDiffContainer\n className={`${baseClass}-container ${baseClass}-container--hasMany`}\n From={From}\n i18n={i18n}\n label={{\n label: field.label,\n locale,\n }}\n nestingLevel={nestingLevel}\n To={To}\n />\n )\n}\n\nexport const SingleUploadDiff: React.FC<{\n field: UploadField\n i18n: I18nClient\n locale: string\n nestingLevel?: number\n polymorphic: boolean\n req: PayloadRequest\n valueFrom: UploadDoc\n valueTo: UploadDoc\n}> = async (args) => {\n const { field, i18n, locale, nestingLevel, polymorphic, req, valueFrom, valueTo } = args\n\n const ReactDOMServer = (await import('react-dom/server')).default\n\n let From: React.ReactNode = ''\n let To: React.ReactNode = ''\n\n const showCollectionSlug = Array.isArray(field.relationTo)\n\n const FromComponent = valueFrom ? (\n <UploadDocumentDiff\n i18n={i18n}\n polymorphic={polymorphic}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={valueFrom}\n />\n ) : null\n const ToComponent = valueTo ? (\n <UploadDocumentDiff\n i18n={i18n}\n polymorphic={polymorphic}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={valueTo}\n />\n ) : null\n\n const fromHtml = FromComponent\n ? ReactDOMServer.renderToStaticMarkup(FromComponent)\n : '<p>' + '' + '</p>'\n const toHtml = ToComponent\n ? ReactDOMServer.renderToStaticMarkup(ToComponent)\n : '<p>' + '' + '</p>'\n\n const diffResult = getHTMLDiffComponents({\n fromHTML: fromHtml,\n toHTML: toHtml,\n tokenizeByCharacter: false,\n })\n From = diffResult.From\n To = diffResult.To\n\n return (\n <FieldDiffContainer\n className={`${baseClass}-container ${baseClass}-container--hasOne`}\n From={From}\n i18n={i18n}\n label={{\n label: field.label,\n locale,\n }}\n nestingLevel={nestingLevel}\n To={To}\n />\n )\n}\n\nconst UploadDocumentDiff = (args: {\n i18n: I18nClient\n polymorphic: boolean\n relationTo: string | string[]\n req: PayloadRequest\n showCollectionSlug?: boolean\n uploadDoc: UploadDoc\n}) => {\n const { i18n, polymorphic, relationTo, req, showCollectionSlug, uploadDoc } = args\n\n let thumbnailSRC: string = ''\n\n const value = polymorphic\n ? (uploadDoc as { relationTo: string; value: FileData & TypeWithID }).value\n : (uploadDoc as FileData & TypeWithID)\n\n if (value && typeof value === 'object' && 'thumbnailURL' in value) {\n thumbnailSRC =\n (typeof value.thumbnailURL === 'string' && value.thumbnailURL) ||\n (typeof value.url === 'string' && value.url) ||\n ''\n }\n\n let filename: string\n if (value && typeof value === 'object') {\n filename = value.filename\n } else {\n filename = `${i18n.t('general:untitled')} - ID: ${uploadDoc as number | string}`\n }\n\n let pillLabel: null | string = null\n\n if (showCollectionSlug) {\n let collectionSlug: string\n if (polymorphic && typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {\n collectionSlug = uploadDoc.relationTo\n } else {\n collectionSlug = typeof relationTo === 'string' ? relationTo : relationTo[0]\n }\n const uploadConfig = req.payload.collections[collectionSlug].config\n pillLabel = uploadConfig.labels?.singular\n ? getTranslation(uploadConfig.labels.singular, i18n)\n : uploadConfig.slug\n }\n\n let id: number | string | undefined\n if (polymorphic && typeof uploadDoc === 'object' && 'relationTo' in uploadDoc) {\n const polyValue = uploadDoc.value\n id = typeof polyValue === 'object' ? polyValue.id : polyValue\n } else if (typeof uploadDoc === 'object' && 'id' in uploadDoc) {\n id = uploadDoc.id\n } else if (typeof uploadDoc === 'string' || typeof uploadDoc === 'number') {\n id = uploadDoc\n }\n\n return (\n <div\n className={`${baseClass}`}\n data-enable-match=\"true\"\n data-id={id}\n data-relation-to={relationTo}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__thumbnail`}>\n {thumbnailSRC?.length ? <img alt={filename} src={thumbnailSRC} /> : <File />}\n </div>\n {pillLabel && (\n <div className={`${baseClass}__pill`} data-enable-match=\"false\">\n <span>{pillLabel}</span>\n </div>\n )}\n <div className={`${baseClass}__info`} data-enable-match=\"false\">\n <strong>{filename}</strong>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","FieldDiffContainer","File","getHTMLDiffComponents","React","baseClass","Upload","args","comparisonValue","valueFrom","field","i18n","locale","nestingLevel","req","versionValue","valueTo","hasMany","Array","isArray","_jsx","HasManyUploadDiff","SingleUploadDiff","ReactDOMServer","default","From","To","showCollectionSlug","relationTo","FromComponents","map","uploadDoc","UploadDocumentDiff","id","ToComponents","diffResult","fromHTML","component","renderToStaticMarkup","join","toHTML","tokenizeByCharacter","className","label","FromComponent","ToComponent","fromHtml","toHtml","thumbnailSRC","thumbnailURL","url","filename","t","pillLabel","uploadConfig","payload","collections","config","labels","singular","slug","_jsxs","length","alt","src"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Upload/index.tsx"],"sourcesContent":["import type {\n FileData,\n PayloadRequest,\n TypeWithID,\n UploadField,\n UploadFieldDiffServerComponent,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { FieldDiffContainer, File, getHTMLDiffComponents } from '@payloadcms/ui/rsc'\n\nimport './index.scss'\n\nimport React from 'react'\n\nconst baseClass = 'upload-diff'\n\ntype UploadDoc = (FileData & TypeWithID) | string\n\nexport const Upload: UploadFieldDiffServerComponent = (args) => {\n const {\n comparisonValue: valueFrom,\n field,\n i18n,\n locale,\n nestingLevel,\n req,\n versionValue: valueTo,\n } = args\n\n if ('hasMany' in field && field.hasMany && Array.isArray(valueTo)) {\n return (\n <HasManyUploadDiff\n field={field}\n i18n={i18n}\n locale={locale}\n nestingLevel={nestingLevel}\n req={req}\n valueFrom={valueFrom as UploadDoc[]}\n valueTo={valueTo as UploadDoc[]}\n />\n )\n }\n\n return (\n <SingleUploadDiff\n field={field}\n i18n={i18n}\n locale={locale}\n nestingLevel={nestingLevel}\n req={req}\n valueFrom={valueFrom as UploadDoc}\n valueTo={valueTo as UploadDoc}\n />\n )\n}\n\nexport const HasManyUploadDiff: React.FC<{\n field: UploadField\n i18n: I18nClient\n locale: string\n nestingLevel?: number\n req: PayloadRequest\n valueFrom: Array<UploadDoc>\n valueTo: Array<UploadDoc>\n}> = async (args) => {\n const { field, i18n, locale, nestingLevel, req, valueFrom, valueTo } = args\n const ReactDOMServer = (await import('react-dom/server')).default\n\n let From: React.ReactNode = ''\n let To: React.ReactNode = ''\n\n const showCollectionSlug = Array.isArray(field.relationTo)\n\n const FromComponents = valueFrom\n ? valueFrom.map((uploadDoc) => (\n <UploadDocumentDiff\n i18n={i18n}\n key={typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={uploadDoc}\n />\n ))\n : null\n const ToComponents = valueTo\n ? valueTo.map((uploadDoc) => (\n <UploadDocumentDiff\n i18n={i18n}\n key={typeof uploadDoc === 'object' ? uploadDoc.id : uploadDoc}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={uploadDoc}\n />\n ))\n : null\n\n const diffResult = getHTMLDiffComponents({\n fromHTML:\n `<div class=\"${baseClass}-hasMany\">` +\n (FromComponents\n ? FromComponents.map(\n (component) => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`,\n ).join('')\n : '') +\n '</div>',\n toHTML:\n `<div class=\"${baseClass}-hasMany\">` +\n (ToComponents\n ? ToComponents.map(\n (component) => `<div>${ReactDOMServer.renderToStaticMarkup(component)}</div>`,\n ).join('')\n : '') +\n '</div>',\n tokenizeByCharacter: false,\n })\n From = diffResult.From\n To = diffResult.To\n\n return (\n <FieldDiffContainer\n className={`${baseClass}-container ${baseClass}-container--hasMany`}\n From={From}\n i18n={i18n}\n label={{\n label: field.label,\n locale,\n }}\n nestingLevel={nestingLevel}\n To={To}\n />\n )\n}\n\nexport const SingleUploadDiff: React.FC<{\n field: UploadField\n i18n: I18nClient\n locale: string\n nestingLevel?: number\n req: PayloadRequest\n valueFrom: UploadDoc\n valueTo: UploadDoc\n}> = async (args) => {\n const { field, i18n, locale, nestingLevel, req, valueFrom, valueTo } = args\n\n const ReactDOMServer = (await import('react-dom/server')).default\n\n let From: React.ReactNode = ''\n let To: React.ReactNode = ''\n\n const showCollectionSlug = Array.isArray(field.relationTo)\n\n const FromComponent = valueFrom ? (\n <UploadDocumentDiff\n i18n={i18n}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={valueFrom}\n />\n ) : null\n const ToComponent = valueTo ? (\n <UploadDocumentDiff\n i18n={i18n}\n relationTo={field.relationTo}\n req={req}\n showCollectionSlug={showCollectionSlug}\n uploadDoc={valueTo}\n />\n ) : null\n\n const fromHtml = FromComponent\n ? ReactDOMServer.renderToStaticMarkup(FromComponent)\n : '<p>' + '' + '</p>'\n const toHtml = ToComponent\n ? ReactDOMServer.renderToStaticMarkup(ToComponent)\n : '<p>' + '' + '</p>'\n\n const diffResult = getHTMLDiffComponents({\n fromHTML: fromHtml,\n toHTML: toHtml,\n tokenizeByCharacter: false,\n })\n From = diffResult.From\n To = diffResult.To\n\n return (\n <FieldDiffContainer\n className={`${baseClass}-container ${baseClass}-container--hasOne`}\n From={From}\n i18n={i18n}\n label={{\n label: field.label,\n locale,\n }}\n nestingLevel={nestingLevel}\n To={To}\n />\n )\n}\n\nconst UploadDocumentDiff = (args: {\n i18n: I18nClient\n relationTo: string\n req: PayloadRequest\n showCollectionSlug?: boolean\n uploadDoc: UploadDoc\n}) => {\n const { i18n, relationTo, req, showCollectionSlug, uploadDoc } = args\n\n let thumbnailSRC: string = ''\n if (uploadDoc && typeof uploadDoc === 'object' && 'thumbnailURL' in uploadDoc) {\n thumbnailSRC =\n (typeof uploadDoc.thumbnailURL === 'string' && uploadDoc.thumbnailURL) ||\n (typeof uploadDoc.url === 'string' && uploadDoc.url) ||\n ''\n }\n\n let filename: string\n if (uploadDoc && typeof uploadDoc === 'object') {\n filename = uploadDoc.filename\n } else {\n filename = `${i18n.t('general:untitled')} - ID: ${uploadDoc as number | string}`\n }\n\n let pillLabel: null | string = null\n\n if (showCollectionSlug) {\n const uploadConfig = req.payload.collections[relationTo].config\n pillLabel = uploadConfig.labels?.singular\n ? getTranslation(uploadConfig.labels.singular, i18n)\n : uploadConfig.slug\n }\n\n return (\n <div\n className={`${baseClass}`}\n data-enable-match=\"true\"\n data-id={typeof uploadDoc === 'object' ? uploadDoc?.id : uploadDoc}\n data-relation-to={relationTo}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__thumbnail`}>\n {thumbnailSRC?.length ? <img alt={filename} src={thumbnailSRC} /> : <File />}\n </div>\n {pillLabel && (\n <div className={`${baseClass}__pill`} data-enable-match=\"false\">\n <span>{pillLabel}</span>\n </div>\n )}\n <div className={`${baseClass}__info`} data-enable-match=\"false\">\n <strong>{filename}</strong>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,YAEjC;IAA0B,uBAAuB,GAAzC,OAAO;CAA6F,GAElG,OAAO,MAAM,EAAE,UAAU,CA8KrC"}
1
+ {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,YAEjC;IAA0B,uBAAuB,GAAzC,OAAO;CAA6F,GAElG,OAAO,MAAM,EAAE,UAAU,CAsIrC"}
@@ -10,17 +10,6 @@
10
10
  console.warn('Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.');
11
11
  env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true';
12
12
  }
13
- if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {
14
- const turbopackWarningText = 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\nTry to install it into the project directory by running';
15
- const consoleWarn = console.warn;
16
- console.warn = (...args) => {
17
- // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805
18
- if (typeof args[1] === 'string' && args[1].includes(turbopackWarningText) || typeof args[0] === 'string' && args[0].includes(turbopackWarningText)) {
19
- return;
20
- }
21
- consoleWarn(...args);
22
- };
23
- }
24
13
  const poweredByHeader = {
25
14
  key: 'X-Powered-By',
26
15
  value: 'Next.js, Payload'
@@ -62,45 +51,37 @@
62
51
  }, ...(nextConfig.poweredByHeader !== false ? [poweredByHeader] : [])]
63
52
  }];
64
53
  },
65
- serverExternalPackages: [...(nextConfig.serverExternalPackages || []), 'drizzle-kit', 'drizzle-kit/api', 'pino', 'libsql', 'pino-pretty', 'graphql',
66
- // Do not bundle server-only packages during dev to improve compile speed
67
- ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false ? ['payload', '@payloadcms/db-mongodb', '@payloadcms/db-postgres', '@payloadcms/db-sqlite', '@payloadcms/db-vercel-postgres', '@payloadcms/drizzle', '@payloadcms/email-nodemailer', '@payloadcms/email-resend', '@payloadcms/graphql', '@payloadcms/payload-cloud', '@payloadcms/plugin-redirects'] : [])],
54
+ serverExternalPackages: [...(nextConfig.serverExternalPackages || []),
55
+ // These packages always need to be external, both during dev and production. This is because they install dependencies
56
+ // that will error when trying to bundle them (e.g. drizzle-kit, libsql, esbuild etc.).
57
+ // We cannot externalize those problem-packages directly. We can only externalize packages that are manually installed
58
+ // by the end user. Otherwise, the require('externalPackage') calls generated by the bundler would fail during runtime,
59
+ // as you cannot import dependencies of dependencies in a lot of package managers like pnpm. We'd have to force users
60
+ // to install the dependencies directly.
61
+ // Thus, we externalize the "entry-point" = the package that is installed by the end user, which would be our db adapters.
62
+ //
63
+ //
64
+ // External because it installs mongoose (part of default serverExternalPackages: https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/server-external-packages.json => would throw warning if we don't exclude the entry-point package):
65
+ '@payloadcms/db-mongodb',
66
+ // External because they install dependencies like drizzle, libsql, esbuild etc.:
67
+ '@payloadcms/db-postgres', '@payloadcms/db-sqlite', '@payloadcms/db-vercel-postgres', '@payloadcms/drizzle',
68
+ // External because they install @aws-sdk/client-s3:
69
+ '@payloadcms/payload-cloud',
70
+ // External, because it installs import-in-the-middle and require-in-the-middle - both in the default serverExternalPackages list.
71
+ '@sentry/nextjs',
72
+ // TODO: We need to externalize @payloadcms/storage-s3 as well, once Next.js has the ability to exclude @payloadcms/storage-s3/client from being externalized.
73
+ // Do not bundle additional server-only packages during dev to improve compilation speed
74
+ ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false ? ['payload', '@payloadcms/email-nodemailer', '@payloadcms/email-resend', '@payloadcms/graphql', '@payloadcms/plugin-redirects'] : [])],
68
75
  webpack: (webpackConfig, webpackOptions) => {
69
76
  const incomingWebpackConfig = typeof nextConfig.webpack === 'function' ? nextConfig.webpack(webpackConfig, webpackOptions) : webpackConfig;
70
77
  return {
71
78
  ...incomingWebpackConfig,
72
- externals: [...(incomingWebpackConfig?.externals || []), 'drizzle-kit', 'drizzle-kit/api', 'sharp', 'libsql', 'require-in-the-middle'],
73
- ignoreWarnings: [...(incomingWebpackConfig?.ignoreWarnings || []), {
74
- module: /node_modules\/mongodb\/lib\/utils\.js/
75
- }, {
76
- file: /node_modules\/mongodb\/lib\/utils\.js/
77
- }, {
78
- module: /node_modules\/mongodb\/lib\/bson\.js/
79
- }, {
80
- file: /node_modules\/mongodb\/lib\/bson\.js/
81
- }],
79
+ externals: [...(incomingWebpackConfig?.externals || []), 'require-in-the-middle'],
82
80
  plugins: [...(incomingWebpackConfig?.plugins || []),
83
81
  // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177
84
82
  new webpackOptions.webpack.IgnorePlugin({
85
83
  resourceRegExp: /^pg-native$|^cloudflare:sockets$/
86
- })],
87
- resolve: {
88
- ...(incomingWebpackConfig?.resolve || {}),
89
- alias: {
90
- ...(incomingWebpackConfig?.resolve?.alias || {})
91
- },
92
- fallback: {
93
- ...(incomingWebpackConfig?.resolve?.fallback || {}),
94
- '@aws-sdk/credential-providers': false,
95
- '@mongodb-js/zstd': false,
96
- aws4: false,
97
- kerberos: false,
98
- 'mongodb-client-encryption': false,
99
- snappy: false,
100
- 'supports-color': false,
101
- 'yocto-queue': false
102
- }
103
- }
84
+ })]
104
85
  };
105
86
  }
106
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","turbopack","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","plugins","IgnorePlugin","resourceRegExp","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n turbopack: {\n ...(nextConfig.turbopack || {}),\n },\n outputFileTracingExcludes: {\n ...(nextConfig.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","poweredByHeader","key","value","toReturn","turbopack","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","process","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","plugins","IgnorePlugin","resourceRegExp","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n turbopack: {\n ...(nextConfig.turbopack || {}),\n },\n outputFileTracingExcludes: {\n ...(nextConfig.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n // These packages always need to be external, both during dev and production. This is because they install dependencies\n // that will error when trying to bundle them (e.g. drizzle-kit, libsql, esbuild etc.).\n // We cannot externalize those problem-packages directly. We can only externalize packages that are manually installed\n // by the end user. Otherwise, the require('externalPackage') calls generated by the bundler would fail during runtime,\n // as you cannot import dependencies of dependencies in a lot of package managers like pnpm. We'd have to force users\n // to install the dependencies directly.\n // Thus, we externalize the \"entry-point\" = the package that is installed by the end user, which would be our db adapters.\n //\n //\n // External because it installs mongoose (part of default serverExternalPackages: https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/server-external-packages.json => would throw warning if we don't exclude the entry-point package):\n '@payloadcms/db-mongodb',\n // External because they install dependencies like drizzle, libsql, esbuild etc.:\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n // External because they install @aws-sdk/client-s3:\n '@payloadcms/payload-cloud',\n // External, because it installs import-in-the-middle and require-in-the-middle - both in the default serverExternalPackages list.\n '@sentry/nextjs',\n // TODO: We need to externalize @payloadcms/storage-s3 as well, once Next.js has the ability to exclude @payloadcms/storage-s3/client from being externalized.\n // Do not bundle additional server-only packages during dev to improve compilation speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [...(incomingWebpackConfig?.externals || []), 'require-in-the-middle'],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"AAAA;;;;;;KAOA,OAAO,MAAMA,WAAA,GAAcA,CAACC,UAAA,GAAa,CAAC,CAAC,EAAEC,OAAA,GAAU,CAAC,CAAC;EACvD,MAAMC,GAAA,GAAMF,UAAA,CAAWE,GAAG,IAAI,CAAC;EAE/B,IAAIF,UAAA,CAAWG,YAAY,EAAEC,UAAA,EAAYC,OAAA,EAAS;IAChDC,OAAA,CAAQC,IAAI,CACV;IAEFL,GAAA,CAAIM,uCAAuC,GAAG;EAChD;EAEA,MAAMC,eAAA,GAAkB;IACtBC,GAAA,EAAK;IACLC,KAAA,EAAO;EACT;EAEA;;;EAGA,MAAMC,QAAA,GAAW;IACf,GAAGZ,UAAU;IACbE,GAAA;IACAW,SAAA,EAAW;MACT,IAAIb,UAAA,CAAWa,SAAS,IAAI,CAAC,CAAC;IAChC;IACAC,yBAAA,EAA2B;MACzB,IAAId,UAAA,CAAWc,yBAAyB,IAAI,CAAC,CAAC;MAC9C,QAAQ,C,IACFd,UAAA,CAAWc,yBAAyB,GAAG,OAAO,IAAI,EAAE,GACxD,eACA;IAEJ;IACAC,yBAAA,EAA2B;MACzB,IAAIf,UAAA,CAAWe,yBAAyB,IAAI,CAAC,CAAC;MAC9C,QAAQ,C,IAAKf,UAAA,CAAWe,yBAAyB,GAAG,OAAO,IAAI,EAAE,GAAG;IACtE;IACA;IACA,IAAIf,UAAA,CAAWS,eAAe,KAAK,QAAQ;MAAEA,eAAA,EAAiB;IAAM,IAAI,CAAC,CAAC;IAC1EO,OAAA,EAAS,MAAAA,CAAA;MACP,MAAMC,iBAAA,GAAoB,aAAajB,UAAA,GAAa,MAAMA,UAAA,CAAWgB,OAAO,KAAK,EAAE;MAEnF,OAAO,C,IACDC,iBAAA,IAAqB,EAAE,GAC3B;QACEC,MAAA,EAAQ;QACRF,OAAA,EAAS,CACP;UACEN,GAAA,EAAK;UACLC,KAAA,EAAO;QACT,GACA;UACED,GAAA,EAAK;UACLC,KAAA,EAAO;QACT,GACA;UACED,GAAA,EAAK;UACLC,KAAA,EAAO;QACT,G,IACIX,UAAA,CAAWS,eAAe,KAAK,QAAQ,CAACA,eAAA,CAAgB,GAAG,EAAE;MAErE,EACD;IACH;IACAU,sBAAA,EAAwB,C,IAClBnB,UAAA,CAAWmB,sBAAsB,IAAI,EAAE;IAC3C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,2BACA,yBACA,kCACA;IACA;IACA;IACA;IACA;IACA;IACA;QACIC,OAAA,CAAQlB,GAAG,CAACmB,QAAQ,KAAK,iBAAiBpB,OAAA,CAAQqB,uBAAuB,KAAK,QAC9E,CACE,WACA,gCACA,4BACA,uBACA,+BAWD,GACD,EAAE,EACP;IACDC,OAAA,EAASA,CAACC,aAAA,EAAeC,cAAA;MACvB,MAAMC,qBAAA,GACJ,OAAO1B,UAAA,CAAWuB,OAAO,KAAK,aAC1BvB,UAAA,CAAWuB,OAAO,CAACC,aAAA,EAAeC,cAAA,IAClCD,aAAA;MAEN,OAAO;QACL,GAAGE,qBAAqB;QACxBC,SAAA,EAAW,C,IAAKD,qBAAA,EAAuBC,SAAA,IAAa,EAAE,GAAG,wBAAwB;QACjFC,OAAA,EAAS,C,IACHF,qBAAA,EAAuBE,OAAA,IAAW,EAAE;QACxC;QACA,IAAIH,cAAA,CAAeF,OAAO,CAACM,YAAY,CAAC;UACtCC,cAAA,EAAgB;QAClB;MAEJ;IACF;EACF;EAEA,IAAI9B,UAAA,CAAW+B,QAAQ,EAAE;IACvBnB,QAAA,CAASV,GAAG,CAAC8B,cAAc,GAAGhC,UAAA,CAAW+B,QAAQ;EACnD;EAEA,OAAOnB,QAAA;AACT;AAEA,eAAeb,WAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.63.0-canary.7",
3
+ "version": "3.63.0-internal.15444aa",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -86,7 +86,7 @@
86
86
  ]
87
87
  },
88
88
  "dependencies": {
89
- "@dnd-kit/core": "6.0.8",
89
+ "@dnd-kit/core": "6.3.1",
90
90
  "busboy": "^1.6.0",
91
91
  "dequal": "2.0.3",
92
92
  "file-type": "19.3.0",
@@ -97,9 +97,9 @@
97
97
  "qs-esm": "7.0.2",
98
98
  "sass": "1.77.4",
99
99
  "uuid": "10.0.0",
100
- "@payloadcms/graphql": "3.63.0-canary.7",
101
- "@payloadcms/translations": "3.63.0-canary.7",
102
- "@payloadcms/ui": "3.63.0-canary.7"
100
+ "@payloadcms/graphql": "3.63.0-internal.15444aa",
101
+ "@payloadcms/translations": "3.63.0-internal.15444aa",
102
+ "@payloadcms/ui": "3.63.0-internal.15444aa"
103
103
  },
104
104
  "devDependencies": {
105
105
  "@babel/cli": "7.27.2",
@@ -107,22 +107,22 @@
107
107
  "@babel/preset-env": "7.27.2",
108
108
  "@babel/preset-react": "7.27.1",
109
109
  "@babel/preset-typescript": "7.27.1",
110
- "@next/eslint-plugin-next": "15.4.4",
110
+ "@next/eslint-plugin-next": "16.0.1",
111
111
  "@types/busboy": "1.5.4",
112
- "@types/react": "19.1.12",
113
- "@types/react-dom": "19.1.9",
112
+ "@types/react": "19.2.2",
113
+ "@types/react-dom": "19.2.2",
114
114
  "@types/uuid": "10.0.0",
115
115
  "babel-plugin-react-compiler": "19.1.0-rc.3",
116
116
  "esbuild": "0.25.5",
117
117
  "esbuild-sass-plugin": "3.3.1",
118
118
  "swc-plugin-transform-remove-imports": "4.0.4",
119
- "@payloadcms/eslint-config": "3.28.0",
120
- "payload": "3.63.0-canary.7"
119
+ "payload": "3.63.0-internal.15444aa",
120
+ "@payloadcms/eslint-config": "3.28.0"
121
121
  },
122
122
  "peerDependencies": {
123
123
  "graphql": "^16.8.1",
124
- "next": "^15.2.3",
125
- "payload": "3.63.0-canary.7"
124
+ "next": "^15.2.3 || ^16.0.1",
125
+ "payload": "3.63.0-internal.15444aa"
126
126
  },
127
127
  "engines": {
128
128
  "node": "^18.20.2 || >=20.9.0"