@payloadcms/next 3.39.0-internal.32c7661 → 3.39.0-internal.aa8a290
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 +2 -2
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +0 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +23 -36
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +0 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +10 -69
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +2 -2
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.scss +9 -0
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +60 -28
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/views/BrowseByFolder/buildView.d.ts +13 -0
- package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/buildView.js +114 -0
- package/dist/views/BrowseByFolder/buildView.js.map +1 -0
- package/dist/views/BrowseByFolder/index.d.ts +4 -0
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/index.js +18 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/metadata.d.ts +4 -0
- package/dist/views/BrowseByFolder/metadata.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/metadata.js +18 -0
- package/dist/views/BrowseByFolder/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/buildView.d.ts +15 -0
- package/dist/views/CollectionFolders/buildView.d.ts.map +1 -0
- package/dist/views/CollectionFolders/buildView.js +163 -0
- package/dist/views/CollectionFolders/buildView.js.map +1 -0
- package/dist/views/CollectionFolders/index.d.ts +4 -0
- package/dist/views/CollectionFolders/index.d.ts.map +1 -0
- package/dist/views/CollectionFolders/index.js +18 -0
- package/dist/views/CollectionFolders/index.js.map +1 -0
- package/dist/views/CollectionFolders/metadata.d.ts +7 -0
- package/dist/views/CollectionFolders/metadata.d.ts.map +1 -0
- package/dist/views/CollectionFolders/metadata.js +25 -0
- package/dist/views/CollectionFolders/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +11 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +1 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
- package/dist/views/Document/index.d.ts +6 -0
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +6 -3
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/List/index.d.ts +6 -0
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +6 -0
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Root/getCustomViewByRoute.d.ts +1 -1
- package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
- package/dist/views/Root/{getViewFromConfig.d.ts → getRouteData.d.ts} +7 -5
- package/dist/views/Root/getRouteData.d.ts.map +1 -0
- package/dist/views/Root/{getViewFromConfig.js → getRouteData.js} +66 -24
- package/dist/views/Root/getRouteData.js.map +1 -0
- package/dist/views/Root/index.d.ts +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +20 -5
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/metadata.d.ts.map +1 -1
- package/dist/views/Root/metadata.js +61 -24
- package/dist/views/Root/metadata.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +23 -11
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +2 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/withPayload.d.ts +1 -3
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +2 -2
- package/dist/withPayload.js.map +1 -1
- package/package.json +7 -7
- package/dist/views/Root/getViewFromConfig.d.ts.map +0 -1
- package/dist/views/Root/getViewFromConfig.js.map +0 -1
package/dist/views/Root/index.js
CHANGED
|
@@ -2,12 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
3
3
|
import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
|
|
4
4
|
import { notFound, redirect } from 'next/navigation.js';
|
|
5
|
+
import { parseDocumentID } from 'payload';
|
|
5
6
|
import { formatAdminURL } from 'payload/shared';
|
|
6
|
-
import React
|
|
7
|
+
import React from 'react';
|
|
7
8
|
import { DefaultTemplate } from '../../templates/Default/index.js';
|
|
8
9
|
import { MinimalTemplate } from '../../templates/Minimal/index.js';
|
|
9
10
|
import { initPage } from '../../utilities/initPage/index.js';
|
|
10
|
-
import {
|
|
11
|
+
import { getRouteData } from './getRouteData.js';
|
|
11
12
|
export const RootPage = async ({
|
|
12
13
|
config: configPromise,
|
|
13
14
|
importMap,
|
|
@@ -36,12 +37,14 @@ export const RootPage = async ({
|
|
|
36
37
|
const {
|
|
37
38
|
DefaultView,
|
|
38
39
|
documentSubViewType,
|
|
40
|
+
folderCollectionSlugs,
|
|
41
|
+
folderID: folderIDParam,
|
|
39
42
|
initPageOptions,
|
|
40
43
|
serverProps,
|
|
41
44
|
templateClassName,
|
|
42
45
|
templateType,
|
|
43
46
|
viewType
|
|
44
|
-
} =
|
|
47
|
+
} = getRouteData({
|
|
45
48
|
adminRoute,
|
|
46
49
|
config,
|
|
47
50
|
currentRoute,
|
|
@@ -54,6 +57,10 @@ export const RootPage = async ({
|
|
|
54
57
|
collection: userSlug,
|
|
55
58
|
req: initPageResult?.req
|
|
56
59
|
})?.then(doc => !!doc));
|
|
60
|
+
/**
|
|
61
|
+
* This function is responsible for handling the case where the view is not found.
|
|
62
|
+
* The current route did not match any default views or custom route views.
|
|
63
|
+
*/
|
|
57
64
|
if (!DefaultView?.Component && !DefaultView?.payloadComponent) {
|
|
58
65
|
if (initPageResult?.req?.user) {
|
|
59
66
|
notFound();
|
|
@@ -92,10 +99,17 @@ export const RootPage = async ({
|
|
|
92
99
|
i18n: initPageResult?.req.i18n,
|
|
93
100
|
importMap
|
|
94
101
|
});
|
|
102
|
+
const payload = initPageResult?.req.payload;
|
|
103
|
+
const folderID = parseDocumentID({
|
|
104
|
+
id: folderIDParam,
|
|
105
|
+
collectionSlug: payload.config.folders.slug,
|
|
106
|
+
payload
|
|
107
|
+
});
|
|
95
108
|
const RenderedView = RenderServerComponent({
|
|
96
109
|
clientProps: {
|
|
97
110
|
clientConfig,
|
|
98
111
|
documentSubViewType,
|
|
112
|
+
folderCollectionSlugs,
|
|
99
113
|
viewType
|
|
100
114
|
},
|
|
101
115
|
Component: DefaultView.payloadComponent,
|
|
@@ -105,6 +119,7 @@ export const RootPage = async ({
|
|
|
105
119
|
...serverProps,
|
|
106
120
|
clientConfig,
|
|
107
121
|
docID: initPageResult?.docID,
|
|
122
|
+
folderID,
|
|
108
123
|
i18n: initPageResult?.req.i18n,
|
|
109
124
|
importMap,
|
|
110
125
|
initPageResult,
|
|
@@ -113,8 +128,8 @@ export const RootPage = async ({
|
|
|
113
128
|
searchParams
|
|
114
129
|
}
|
|
115
130
|
});
|
|
116
|
-
return /*#__PURE__*/_jsxs(Fragment, {
|
|
117
|
-
children: [!templateType && /*#__PURE__*/_jsx(Fragment, {
|
|
131
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
132
|
+
children: [!templateType && /*#__PURE__*/_jsx(React.Fragment, {
|
|
118
133
|
children: RenderedView
|
|
119
134
|
}), templateType === 'minimal' && /*#__PURE__*/_jsx(MinimalTemplate, {
|
|
120
135
|
className: templateClassName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","formatAdminURL","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","documentSubViewType","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","clientProps","Fallback","docID","_jsxs","_jsx","className","collectionSlug","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type {\n AdminViewClientProps,\n AdminViewServerPropsOnly,\n ImportMap,\n SanitizedConfig,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n documentSubViewType,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: { clientConfig, documentSubViewType, viewType } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","parseDocumentID","formatAdminURL","React","DefaultTemplate","MinimalTemplate","initPage","getRouteData","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","documentSubViewType","folderCollectionSlugs","folderID","folderIDParam","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","id","collectionSlug","folders","RenderedView","clientProps","Fallback","docID","_jsxs","Fragment","_jsx","className","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport {\n type AdminViewClientProps,\n type AdminViewServerPropsOnly,\n type ImportMap,\n parseDocumentID,\n type SanitizedConfig,\n} from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getRouteData } from './getRouteData.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n documentSubViewType,\n folderCollectionSlugs,\n folderID: folderIDParam,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getRouteData({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n /**\n * This function is responsible for handling the case where the view is not found.\n * The current route did not match any default views or custom route views.\n */\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const payload = initPageResult?.req.payload\n const folderID = parseDocumentID({\n id: folderIDParam,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: {\n clientConfig,\n documentSubViewType,\n folderCollectionSlugs,\n viewType,\n } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n folderID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <React.Fragment>\n {!templateType && <React.Fragment>{RenderedView}</React.Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Root/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Root/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA6B9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE,OAAO,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,CAAA;AAED,eAAO,MAAM,oBAAoB,sDAG9B,IAAI,sBAkJN,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js';
|
|
2
2
|
import { generateAccountViewMetadata } from '../Account/metadata.js';
|
|
3
|
+
import { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js';
|
|
4
|
+
import { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js';
|
|
3
5
|
import { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js';
|
|
4
6
|
import { generateDashboardViewMetadata } from '../Dashboard/metadata.js';
|
|
5
7
|
import { generateDocumentViewMetadata } from '../Document/metadata.js';
|
|
@@ -14,6 +16,7 @@ import { generateCustomViewMetadata } from './generateCustomViewMetadata.js';
|
|
|
14
16
|
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
|
|
15
17
|
const oneSegmentMeta = {
|
|
16
18
|
'create-first-user': generateCreateFirstUserViewMetadata,
|
|
19
|
+
folders: generateBrowseByFolderMetadata,
|
|
17
20
|
forgot: generateForgotPasswordViewMetadata,
|
|
18
21
|
login: generateLoginViewMetadata,
|
|
19
22
|
logout: generateUnauthorizedViewMetadata,
|
|
@@ -26,9 +29,18 @@ export const generatePageMetadata = async ({
|
|
|
26
29
|
}) => {
|
|
27
30
|
const config = await configPromise;
|
|
28
31
|
const params = await paramsPromise;
|
|
32
|
+
const folderCollectionSlugs = config.collections.reduce((acc, {
|
|
33
|
+
slug,
|
|
34
|
+
admin
|
|
35
|
+
}) => {
|
|
36
|
+
if (admin?.folders) {
|
|
37
|
+
return [...acc, slug];
|
|
38
|
+
}
|
|
39
|
+
return acc;
|
|
40
|
+
}, []);
|
|
29
41
|
const segments = Array.isArray(params.segments) ? params.segments : [];
|
|
30
42
|
const currentRoute = `/${segments.join('/')}`;
|
|
31
|
-
const [segmentOne, segmentTwo] = segments;
|
|
43
|
+
const [segmentOne, segmentTwo, segmentThree] = segments;
|
|
32
44
|
const isGlobal = segmentOne === 'globals';
|
|
33
45
|
const isCollection = segmentOne === 'collections';
|
|
34
46
|
const i18n = await getNextRequestI18n({
|
|
@@ -49,7 +61,20 @@ export const generatePageMetadata = async ({
|
|
|
49
61
|
}
|
|
50
62
|
case 1:
|
|
51
63
|
{
|
|
52
|
-
if (
|
|
64
|
+
if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
|
|
65
|
+
// --> /:folderCollectionSlug
|
|
66
|
+
meta = await oneSegmentMeta.folders({
|
|
67
|
+
config,
|
|
68
|
+
i18n
|
|
69
|
+
});
|
|
70
|
+
} else if (segmentOne === 'account') {
|
|
71
|
+
// --> /account
|
|
72
|
+
meta = await generateAccountViewMetadata({
|
|
73
|
+
config,
|
|
74
|
+
i18n
|
|
75
|
+
});
|
|
76
|
+
break;
|
|
77
|
+
} else if (oneSegmentMeta[segmentOne]) {
|
|
53
78
|
// --> /create-first-user
|
|
54
79
|
// --> /forgot
|
|
55
80
|
// --> /login
|
|
@@ -61,13 +86,6 @@ export const generatePageMetadata = async ({
|
|
|
61
86
|
i18n
|
|
62
87
|
});
|
|
63
88
|
break;
|
|
64
|
-
} else if (segmentOne === 'account') {
|
|
65
|
-
// --> /account
|
|
66
|
-
meta = await generateAccountViewMetadata({
|
|
67
|
-
config,
|
|
68
|
-
i18n
|
|
69
|
-
});
|
|
70
|
-
break;
|
|
71
89
|
}
|
|
72
90
|
break;
|
|
73
91
|
}
|
|
@@ -79,8 +97,13 @@ export const generatePageMetadata = async ({
|
|
|
79
97
|
config,
|
|
80
98
|
i18n
|
|
81
99
|
});
|
|
82
|
-
}
|
|
83
|
-
|
|
100
|
+
} else if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
|
|
101
|
+
// --> /browse-by-folder/:folderID
|
|
102
|
+
meta = await generateBrowseByFolderMetadata({
|
|
103
|
+
config,
|
|
104
|
+
i18n
|
|
105
|
+
});
|
|
106
|
+
} else if (isCollection) {
|
|
84
107
|
// --> /collections/:collectionSlug
|
|
85
108
|
meta = await generateListViewMetadata({
|
|
86
109
|
collectionConfig,
|
|
@@ -107,20 +130,34 @@ export const generatePageMetadata = async ({
|
|
|
107
130
|
i18n
|
|
108
131
|
});
|
|
109
132
|
} else if (isCollection) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
133
|
+
if (segmentThree === config.folders.slug) {
|
|
134
|
+
if (folderCollectionSlugs.includes(collectionConfig.slug)) {
|
|
135
|
+
// Collection Folder Views
|
|
136
|
+
// --> /collections/:collectionSlug/:folderCollectionSlug
|
|
137
|
+
// --> /collections/:collectionSlug/:folderCollectionSlug/:id
|
|
138
|
+
meta = await generateCollectionFolderMetadata({
|
|
139
|
+
collectionConfig,
|
|
140
|
+
config,
|
|
141
|
+
i18n,
|
|
142
|
+
params
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
} else {
|
|
146
|
+
// Collection Document Views
|
|
147
|
+
// --> /collections/:collectionSlug/:id
|
|
148
|
+
// --> /collections/:collectionSlug/:id/preview
|
|
149
|
+
// --> /collections/:collectionSlug/:id/versions
|
|
150
|
+
// --> /collections/:collectionSlug/:id/versions/:version
|
|
151
|
+
// --> /collections/:collectionSlug/:id/api
|
|
152
|
+
meta = await generateDocumentViewMetadata({
|
|
153
|
+
collectionConfig,
|
|
154
|
+
config,
|
|
155
|
+
i18n,
|
|
156
|
+
params
|
|
157
|
+
});
|
|
158
|
+
}
|
|
122
159
|
} else if (isGlobal) {
|
|
123
|
-
//
|
|
160
|
+
// Global Document Views
|
|
124
161
|
// --> /globals/:globalSlug/versions
|
|
125
162
|
// --> /globals/:globalSlug/versions/:version
|
|
126
163
|
// --> /globals/:globalSlug/preview
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","isGlobal","isCollection","i18n","meta","collectionConfig","length","collections","find","collection","slug","globalConfig","globals","global","admin","routes","reset","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n\n const params = await paramsPromise\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (oneSegmentMeta[segmentOne] && segmentOne !== 'account') {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n }\n if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateBrowseByFolderMetadata","generateCollectionFolderMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","folders","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","folderCollectionSlugs","collections","reduce","acc","slug","admin","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","segmentThree","isGlobal","isCollection","i18n","meta","collectionConfig","length","find","collection","globalConfig","globals","global","routes","browseByFolder","reset","includes","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js'\nimport { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n folders: generateBrowseByFolderMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n const params = await paramsPromise\n\n const folderCollectionSlugs = config.collections.reduce((acc, { slug, admin }) => {\n if (admin?.folders) {\n return [...acc, slug]\n }\n return acc\n }, [])\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo, segmentThree] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {\n // --> /:folderCollectionSlug\n meta = await oneSegmentMeta.folders({ config, i18n })\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n } else if (oneSegmentMeta[segmentOne]) {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n } else if (\n folderCollectionSlugs.length &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n meta = await generateBrowseByFolderMetadata({ config, i18n })\n } else if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n if (segmentThree === config.folders.slug) {\n if (folderCollectionSlugs.includes(collectionConfig.slug)) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:id\n meta = await generateCollectionFolderMetadata({\n collectionConfig,\n config,\n i18n,\n params,\n })\n }\n } else {\n // Collection Document Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n }\n } else if (isGlobal) {\n // Global Document Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,UAoLN;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fieldShouldBeLocalized } from 'payload/shared';
|
|
1
|
+
import { fieldShouldBeLocalized, groupHasName } from 'payload/shared';
|
|
2
2
|
import { fieldHasChanges } from './fieldHasChanges.js';
|
|
3
3
|
import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
|
|
4
4
|
/**
|
|
@@ -105,28 +105,40 @@ export function countChangedFields({
|
|
|
105
105
|
// Fields that have nested fields and nest their fields' data.
|
|
106
106
|
case 'group':
|
|
107
107
|
{
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
if (groupHasName(field)) {
|
|
109
|
+
if (locales && fieldShouldBeLocalized({
|
|
110
|
+
field,
|
|
111
|
+
parentIsLocalized
|
|
112
|
+
})) {
|
|
113
|
+
locales.forEach(locale => {
|
|
114
|
+
count += countChangedFields({
|
|
115
|
+
comparison: comparison?.[field.name]?.[locale],
|
|
116
|
+
config,
|
|
117
|
+
fields: field.fields,
|
|
118
|
+
locales,
|
|
119
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
120
|
+
version: version?.[field.name]?.[locale]
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
} else {
|
|
113
124
|
count += countChangedFields({
|
|
114
|
-
comparison: comparison?.[field.name]
|
|
125
|
+
comparison: comparison?.[field.name],
|
|
115
126
|
config,
|
|
116
127
|
fields: field.fields,
|
|
117
128
|
locales,
|
|
118
129
|
parentIsLocalized: parentIsLocalized || field.localized,
|
|
119
|
-
version: version?.[field.name]
|
|
130
|
+
version: version?.[field.name]
|
|
120
131
|
});
|
|
121
|
-
}
|
|
132
|
+
}
|
|
122
133
|
} else {
|
|
134
|
+
// Unnamed group field: data is NOT nested under `field.name`
|
|
123
135
|
count += countChangedFields({
|
|
124
|
-
comparison
|
|
136
|
+
comparison,
|
|
125
137
|
config,
|
|
126
138
|
fields: field.fields,
|
|
127
139
|
locales,
|
|
128
140
|
parentIsLocalized: parentIsLocalized || field.localized,
|
|
129
|
-
version
|
|
141
|
+
version
|
|
130
142
|
});
|
|
131
143
|
}
|
|
132
144
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ;AAEvC,SAASC,eAAe,QAAQ;AAChC,SAASC,yBAAyB,QAAQ;AAW1C;;;;AAIA,OAAO,SAASC,mBAAmB;EACjCC,UAAU;EACVC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC,iBAAiB;EACjBC;AAAO,CACF;EACL,IAAIC,KAAA,GAAQ;EAEZJ,MAAA,CAAOK,OAAO,CAAEC,KAAA;IACd;IACA,IAAI,UAAUA,KAAA,IAASA,KAAA,CAAMC,IAAI,KAAK,MAAM;MAC1C;IACF;IACA,MAAMC,SAAA,GAAYF,KAAA,CAAMG,IAAI;IAC5B,QAAQD,SAAA;MACN;MACA;MACA,KAAK;MACL,KAAK;QAAU;UACb,IAAIP,OAAA,IAAWP,sBAAA,CAAuB;YAAEY,KAAA;YAAOJ;UAAkB,IAAI;YACnED,OAAA,CAAQI,OAAO,CAAEK,MAAA;cACf,MAAMC,cAAA,GAAiBb,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,IAAI,EAAE;cAC/D,MAAME,WAAA,GAAcT,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,IAAI,EAAE;cACzDN,KAAA,IAASS,wBAAA,CAAyB;gBAChCF,cAAA;gBACAZ,MAAA;gBACAO,KAAA;gBACAL,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;gBACvDF;cACF;YACF;UACF,OAAO;YACL,MAAMD,cAAA,GAAiBb,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC,IAAI,EAAE;YACrD,MAAMK,WAAA,GAAcT,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,IAAI,EAAE;YAC/CH,KAAA,IAASS,wBAAA,CAAyB;cAChCF,cAAA;cACAZ,MAAA;cACAO,KAAA;cACAL,OAAA;cACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;cACvDF;YACF;UACF;UACA;QACF;MAEA;MACA,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;QAAU;UACb;UACA,IAAIX,OAAA,IAAWP,sBAAA,CAAuB;YAAEY,KAAA;YAAOJ;UAAkB,IAAI;YACnED,OAAA,CAAQI,OAAO,CAAEK,MAAA;cACf,IACEf,eAAA,CAAgBQ,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,EAAEZ,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,GACnF;gBACAN,KAAA;cACF;YACF;UACF,OAAO,IAAIT,eAAA,CAAgBQ,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,EAAET,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC,GAAG;YAC3EH,KAAA;UACF;UACA;QACF;MACA;MACA,KAAK;MACL,KAAK;QAAO;UACVA,KAAA,IAASP,kBAAA,CAAmB;YAC1BC,UAAA;YACAC,MAAA;YACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;YACpBC,OAAA;YACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;YACvDX;UACF;UAEA;QACF;MAEA;MACA,KAAK;QAAS;UACZ,IAAIF,OAAA,IAAWP,sBAAA,CAAuB;YAAEY,KAAA;YAAOJ;UAAkB,IAAI;YACnED,OAAA,CAAQI,OAAO,CAAEK,MAAA;cACfN,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,UAAA,EAAYA,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO;gBAC9CX,MAAA;gBACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;gBACpBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;gBACvDX,OAAA,EAASA,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA;cACnC;YACF;UACF,OAAO;YACLN,KAAA,IAASP,kBAAA,CAAmB;cAC1BC,UAAA,EAAYA,UAAA,GAAaQ,KAAA,CAAMC,IAAI,CAAC;cACpCR,MAAA;cACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;cACpBC,OAAA;cACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;cACvDX,OAAA,EAASA,OAAA,GAAUG,KAAA,CAAMC,IAAI;YAC/B;UACF;UACA;QACF;MAEA;MACA;MACA,KAAK;QAAQ;UACXD,KAAA,CAAMS,IAAI,CAACV,OAAO,CAAEW,GAAA;YAClB,IAAI,UAAUA,GAAA,IAAOf,OAAA,IAAWe,GAAA,CAAIF,SAAS,EAAE;cAC7C;cACAb,OAAA,CAAQI,OAAO,CAAEK,MAAA;gBACfN,KAAA,IAASP,kBAAA,CAAmB;kBAC1BC,UAAA,EAAYA,UAAA,GAAakB,GAAA,CAAIT,IAAI,CAAC,GAAGG,MAAA,CAAO;kBAC5CX,MAAA;kBACAC,MAAA,EAAQgB,GAAA,CAAIhB,MAAM;kBAClBC,OAAA;kBACAC,iBAAA,EAAmBA,iBAAA,IAAqBc,GAAA,CAAIF,SAAS;kBACrDX,OAAA,EAASA,OAAA,GAAUa,GAAA,CAAIT,IAAI,CAAC,GAAGG,MAAA;gBACjC;cACF;YACF,OAAO,IAAI,UAAUM,GAAA,EAAK;cACxB;cACAZ,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,UAAA,EAAYA,UAAA,GAAakB,GAAA,CAAIT,IAAI,CAAC;gBAClCR,MAAA;gBACAC,MAAA,EAAQgB,GAAA,CAAIhB,MAAM;gBAClBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBc,GAAA,CAAIF,SAAS;gBACrDX,OAAA,EAASA,OAAA,GAAUa,GAAA,CAAIT,IAAI;cAC7B;YACF,OAAO;cACL;cACAH,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,UAAA;gBACAC,MAAA;gBACAC,MAAA,EAAQgB,GAAA,CAAIhB,MAAM;gBAClBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBc,GAAA,CAAIF,SAAS;gBACrDX;cACF;YACF;UACF;UACA;QACF;MAEA;MACA;MACA,KAAK;QAAM;UACT;QACF;MAEA;QAAS;UACP,MAAMc,gBAAA,GAA0BT,SAAA;UAChC,MAAM,IAAIU,KAAA,CAAM,iDAAiDC,MAAA,CAAOX,SAAA,GAAY;QACtF;IACF;EACF;EAEA,OAAOJ,KAAA;AACT;AAWA,OAAO,SAASS,yBAAyB;EACvCF,cAAA,GAAiB,EAAE;EACnBZ,MAAM;EACNO,KAAK;EACLL,OAAO;EACPC,iBAAiB;EACjBU,WAAA,GAAc;AAAE,CACa;EAC7B,IAAIR,KAAA,GAAQ;EACZ,IAAIgB,CAAA,GAAI;EAER,OAAOT,cAAc,CAACS,CAAA,CAAE,IAAIR,WAAW,CAACQ,CAAA,CAAE,EAAE;IAC1C,MAAMC,aAAA,GAAgBV,cAAA,GAAiBS,CAAA,CAAE,IAAI,CAAC;IAC9C,MAAME,UAAA,GAAaV,WAAA,GAAcQ,CAAA,CAAE,IAAI,CAAC;IAExC,MAAM;MAAEpB,MAAA,EAAQuB;IAAS,CAAE,GAAG3B,yBAAA,CAA0B;MACtD4B,gBAAA,EAAkB;QAAEf,IAAA,EAAM;QAAQT,MAAA,EAAQ,EAAE;QAAEyB,IAAA,EAAM;QAAIC,UAAA,EAAY;MAAG;MACvEL,aAAA;MACAtB,MAAA;MACAO,KAAA;MACAqB,GAAA,EAAKP,CAAA;MACLE;IACF;IAEAlB,KAAA,IAASP,kBAAA,CAAmB;MAC1BC,UAAA,EAAYuB,aAAA;MACZtB,MAAA;MACAC,MAAA,EAAQuB,SAAA;MACRtB,OAAA;MACAC,iBAAA,EAAmBA,iBAAA,IAAqBI,KAAA,CAAMQ,SAAS;MACvDX,OAAA,EAASmB;IACX;IAEAF,CAAA;EACF;EACA,OAAOhB,KAAA;AACT","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,6GAatB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkDpD,CAAA"}
|
|
@@ -8,8 +8,10 @@ export const renderPill = (data, latestVersion, currentLabel, previousLabel, pil
|
|
|
8
8
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
9
9
|
children: [data?.id === latestVersion ? /*#__PURE__*/_jsx(Pill, {
|
|
10
10
|
pillStyle: pillStyle,
|
|
11
|
+
size: "small",
|
|
11
12
|
children: currentLabel
|
|
12
13
|
}) : /*#__PURE__*/_jsx(Pill, {
|
|
14
|
+
size: "small",
|
|
13
15
|
children: previousLabel
|
|
14
16
|
}), " "]
|
|
15
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","Pill","useConfig","useTranslation","React","Fragment","renderPill","data","latestVersion","currentLabel","previousLabel","pillStyle","_jsxs","id","_jsx","AutosaveCell","t0","$","latestDraftVersion","latestPublishedVersion","rowData","t1","t2","undefined","autosave","publishedLocale","version","i18n","t","config","t3","localization","status","_status","t4","language","publishedLocalePill","versionInfo","draft","published","locales","localeCode","Array","isArray","t5","loc","code","locale","find","formattedLabel","label","children"],"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useConfig, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\ntype AutosaveCellProps = {\n latestDraftVersion?: string\n latestPublishedVersion?: string\n rowData?: {\n autosave?: boolean\n publishedLocale?: string\n version: {\n _status?: string\n }\n }\n}\n\nexport const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle) => {\n return (\n <React.Fragment>\n {data?.id === latestVersion ? (\n <Pill pillStyle={pillStyle}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","Pill","useConfig","useTranslation","React","Fragment","renderPill","data","latestVersion","currentLabel","previousLabel","pillStyle","_jsxs","id","_jsx","size","AutosaveCell","t0","$","latestDraftVersion","latestPublishedVersion","rowData","t1","t2","undefined","autosave","publishedLocale","version","i18n","t","config","t3","localization","status","_status","t4","language","publishedLocalePill","versionInfo","draft","published","locales","localeCode","Array","isArray","t5","loc","code","locale","find","formattedLabel","label","children"],"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useConfig, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\ntype AutosaveCellProps = {\n latestDraftVersion?: string\n latestPublishedVersion?: string\n rowData?: {\n autosave?: boolean\n publishedLocale?: string\n version: {\n _status?: string\n }\n }\n}\n\nexport const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle) => {\n return (\n <React.Fragment>\n {data?.id === latestVersion ? (\n <Pill pillStyle={pillStyle} size=\"small\">\n {currentLabel}\n </Pill>\n ) : (\n <Pill size=\"small\">{previousLabel}</Pill>\n )}\n \n </React.Fragment>\n )\n}\n\nexport const AutosaveCell: React.FC<AutosaveCellProps> = ({\n latestDraftVersion,\n latestPublishedVersion,\n rowData = { autosave: undefined, publishedLocale: undefined, version: undefined },\n}) => {\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const publishedLocale = rowData?.publishedLocale || undefined\n const status = rowData?.version._status\n let publishedLocalePill = null\n\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return (\n <Fragment>\n {rowData?.autosave && <Pill>{t('version:autosave')}</Pill>}\n {status && renderPill(rowData, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/withPayload.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export function withPayload(nextConfig?: import("next").NextConfig, options?: {
|
|
2
|
-
devBundleServerPackages?: boolean;
|
|
3
|
-
}): import("next").NextConfig;
|
|
1
|
+
export function withPayload(nextConfig?: import("next").NextConfig, options?: {}): import("next").NextConfig;
|
|
4
2
|
export default withPayload;
|
|
5
3
|
//# sourceMappingURL=withPayload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,iBAIvB,OAAO,MAAM,EAAE,UAAU,CA2KrC"}
|
package/dist/withPayload.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @param {import('next').NextConfig} nextConfig
|
|
3
|
-
* @param {Object} [
|
|
4
|
-
* @param {boolean} [
|
|
3
|
+
* @param {Object} [sortOnOptions] - Optional configuration options
|
|
4
|
+
* @param {boolean} [sortOnOptions.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true
|
|
5
5
|
*
|
|
6
6
|
* @returns {import('next').NextConfig}
|
|
7
7
|
* */export const withPayload = (nextConfig = {}, options = {}) => {
|
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","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 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","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","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} [sortOnOptions] - Optional configuration options\n * @param {boolean} [sortOnOptions.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 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":[]}
|