@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.
- package/dist/cjs/withPayload.cjs +23 -61
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +1 -8
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +9 -45
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +23 -42
- package/dist/withPayload.js.map +1 -1
- package/package.json +12 -12
package/dist/cjs/withPayload.cjs
CHANGED
|
@@ -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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
'
|
|
105
|
-
'
|
|
106
|
-
|
|
107
|
-
//
|
|
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","
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
|
|
163
|
-
|
|
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 (
|
|
168
|
-
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
|
-
|
|
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,
|
|
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"}
|
package/dist/withPayload.js
CHANGED
|
@@ -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 || []),
|
|
66
|
-
//
|
|
67
|
-
|
|
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 || []), '
|
|
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
|
};
|
package/dist/withPayload.js.map
CHANGED
|
@@ -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-
|
|
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.
|
|
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-
|
|
101
|
-
"@payloadcms/translations": "3.63.0-
|
|
102
|
-
"@payloadcms/ui": "3.63.0-
|
|
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": "
|
|
110
|
+
"@next/eslint-plugin-next": "16.0.1",
|
|
111
111
|
"@types/busboy": "1.5.4",
|
|
112
|
-
"@types/react": "19.
|
|
113
|
-
"@types/react-dom": "19.
|
|
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
|
-
"
|
|
120
|
-
"
|
|
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-
|
|
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"
|