payload 3.0.0-beta.119 → 3.0.0-beta.120
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/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +18 -1
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +11 -0
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/fields/config/types.d.ts +3 -1
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +1 -0
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +2 -0
- package/dist/versions/saveVersion.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAY5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,KAAK,SAAS,cAAc,gBAChD,SAAS,KACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAY5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,KAAK,SAAS,cAAc,gBAChD,SAAS,KACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAiStD,CAAA"}
|
|
@@ -101,6 +101,11 @@ export const findOperation = async (incomingArgs)=>{
|
|
|
101
101
|
}
|
|
102
102
|
if (includeLockStatus) {
|
|
103
103
|
try {
|
|
104
|
+
const lockDocumentsProp = collectionConfig?.lockDocuments;
|
|
105
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
106
|
+
;
|
|
107
|
+
const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
|
|
108
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
104
109
|
const lockedDocuments = await payload.find({
|
|
105
110
|
collection: 'payload-locked-documents',
|
|
106
111
|
depth: 1,
|
|
@@ -118,13 +123,25 @@ export const findOperation = async (incomingArgs)=>{
|
|
|
118
123
|
'document.value': {
|
|
119
124
|
in: result.docs.map((doc)=>doc.id)
|
|
120
125
|
}
|
|
126
|
+
},
|
|
127
|
+
// Query where the lock is newer than the current time minus lock time
|
|
128
|
+
{
|
|
129
|
+
updatedAt: {
|
|
130
|
+
greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds)
|
|
131
|
+
}
|
|
121
132
|
}
|
|
122
133
|
]
|
|
123
134
|
}
|
|
124
135
|
});
|
|
136
|
+
const now = new Date().getTime();
|
|
125
137
|
const lockedDocs = Array.isArray(lockedDocuments?.docs) ? lockedDocuments.docs : [];
|
|
138
|
+
// Filter out stale locks
|
|
139
|
+
const validLockedDocs = lockedDocs.filter((lock)=>{
|
|
140
|
+
const lastEditedAt = new Date(lock?.updatedAt).getTime();
|
|
141
|
+
return lastEditedAt + lockDurationInMilliseconds > now;
|
|
142
|
+
});
|
|
126
143
|
result.docs = result.docs.map((doc)=>{
|
|
127
|
-
const lockedDoc =
|
|
144
|
+
const lockedDoc = validLockedDocs.find((lock)=>lock?.document?.value === doc.id);
|
|
128
145
|
return {
|
|
129
146
|
...doc,
|
|
130
147
|
_isLocked: !!lockedDoc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/find.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest, Sort, Where } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n includeLockStatus?: boolean\n joins?: JoinQuery\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: Sort\n where?: Where\n}\n\nexport const findOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<PaginatedDocs<DataFromCollectionSlug<TSlug>>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n currentDepth,\n depth,\n disableErrors,\n draft: draftsEnabled,\n includeLockStatus,\n joins,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, collectionConfig.access.read)\n\n // If errors are disabled, and access returns false, return empty results\n if (accessResult === false) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 1,\n prevPage: null,\n totalDocs: 0,\n totalPages: 1,\n }\n }\n }\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const usePagination = pagination && limit !== 0\n const sanitizedLimit = limit ?? (usePagination ? 10 : 0)\n const sanitizedPage = page || 1\n\n let result: PaginatedDocs<DataFromCollectionSlug<TSlug>>\n\n let fullWhere = combineQueries(where, accessResult)\n\n if (collectionConfig.versions?.drafts && draftsEnabled) {\n fullWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config),\n where: fullWhere,\n })\n\n result = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination: usePagination,\n req,\n sort: getQueryDraftsSort({ collectionConfig, sort }),\n where: fullWhere,\n })\n } else {\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n result = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n }\n\n if (includeLockStatus) {\n try {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: sanitizedLimit,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n in: result.docs.map((doc) => doc.id),\n },\n },\n ],\n },\n })\n\n const lockedDocs = Array.isArray(lockedDocuments?.docs) ? lockedDocuments.docs : []\n\n result.docs = result.docs.map((doc) => {\n const lockedDoc = lockedDocs.find((lock) => lock?.document?.value === doc.id)\n return {\n ...doc,\n _isLocked: !!lockedDoc,\n _userEditing: lockedDoc ? lockedDoc?.user?.value : null,\n }\n })\n } catch (error) {\n result.docs = result.docs.map((doc) => ({\n ...doc,\n _isLocked: false,\n _userEditing: null,\n }))\n }\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n query: fullWhere,\n req,\n })) || docRef\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) =>\n afterRead<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc,\n draft: draftsEnabled,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n ),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'find',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","findOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","collectionConfig","currentDepth","depth","disableErrors","draft","draftsEnabled","includeLockStatus","joins","limit","overrideAccess","page","pagination","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResult","access","read","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","usePagination","sanitizedLimit","sanitizedPage","result","fullWhere","versions","drafts","versionFields","db","queryDrafts","slug","payloadAPI","find","lockedDocuments","and","equals","in","map","doc","id","lockedDocs","Array","isArray","lockedDoc","lock","document","value","_isLocked","_userEditing","user","error","all","docRef","beforeRead","query","findMany","global"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/find.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest, Sort, Where } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n includeLockStatus?: boolean\n joins?: JoinQuery\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: Sort\n where?: Where\n}\n\nexport const findOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<PaginatedDocs<DataFromCollectionSlug<TSlug>>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n currentDepth,\n depth,\n disableErrors,\n draft: draftsEnabled,\n includeLockStatus,\n joins,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, collectionConfig.access.read)\n\n // If errors are disabled, and access returns false, return empty results\n if (accessResult === false) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 1,\n prevPage: null,\n totalDocs: 0,\n totalPages: 1,\n }\n }\n }\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const usePagination = pagination && limit !== 0\n const sanitizedLimit = limit ?? (usePagination ? 10 : 0)\n const sanitizedPage = page || 1\n\n let result: PaginatedDocs<DataFromCollectionSlug<TSlug>>\n\n let fullWhere = combineQueries(where, accessResult)\n\n if (collectionConfig.versions?.drafts && draftsEnabled) {\n fullWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config),\n where: fullWhere,\n })\n\n result = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination: usePagination,\n req,\n sort: getQueryDraftsSort({ collectionConfig, sort }),\n where: fullWhere,\n })\n } else {\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n result = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n }\n\n if (includeLockStatus) {\n try {\n const lockDocumentsProp = collectionConfig?.lockDocuments\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: sanitizedLimit,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n in: result.docs.map((doc) => doc.id),\n },\n },\n // Query where the lock is newer than the current time minus lock time\n {\n updatedAt: {\n greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds),\n },\n },\n ],\n },\n })\n\n const now = new Date().getTime()\n const lockedDocs = Array.isArray(lockedDocuments?.docs) ? lockedDocuments.docs : []\n\n // Filter out stale locks\n const validLockedDocs = lockedDocs.filter((lock) => {\n const lastEditedAt = new Date(lock?.updatedAt).getTime()\n return lastEditedAt + lockDurationInMilliseconds > now\n })\n\n result.docs = result.docs.map((doc) => {\n const lockedDoc = validLockedDocs.find((lock) => lock?.document?.value === doc.id)\n return {\n ...doc,\n _isLocked: !!lockedDoc,\n _userEditing: lockedDoc ? lockedDoc?.user?.value : null,\n }\n })\n } catch (error) {\n result.docs = result.docs.map((doc) => ({\n ...doc,\n _isLocked: false,\n _userEditing: null,\n }))\n }\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n query: fullWhere,\n req,\n })) || docRef\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) =>\n afterRead<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc,\n draft: draftsEnabled,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n ),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'find',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","findOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","collectionConfig","currentDepth","depth","disableErrors","draft","draftsEnabled","includeLockStatus","joins","limit","overrideAccess","page","pagination","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResult","access","read","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","usePagination","sanitizedLimit","sanitizedPage","result","fullWhere","versions","drafts","versionFields","db","queryDrafts","slug","payloadAPI","find","lockDocumentsProp","lockDocuments","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","lockedDocuments","and","equals","in","map","doc","id","updatedAt","greater_than","Date","getTime","now","lockedDocs","Array","isArray","validLockedDocs","filter","lock","lastEditedAt","lockedDoc","document","value","_isLocked","_userEditing","user","error","all","docRef","beforeRead","query","findMany","global"],"mappings":"AAMA,OAAOA,mBAAmB,8BAA6B;AACvD,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,kBAAkB,QAAQ,uDAAsD;AACzF,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,4BAA4B,QAAQ,0CAAyC;AACtF,SAASC,uBAAuB,QAAQ,mDAAkD;AAC1F,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,mBAAmB,QAAQ,aAAY;AAoBhD,OAAO,MAAMC,gBAAgB,OAC3BC;IAEA,IAAIC,OAAOD;IAEX,IAAI;QACF,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExC,MAAMC,KAAKC,UAAU,CAACC,MAAM,CAACC,KAAK,CAACC,eAAe,CAACC,MAAM,CAAC,OAAOC,WAAWC;YAC1E,MAAMD;YAENN,OACE,AAAC,MAAMO,KAAK;gBACVP;gBACAC,YAAYD,KAAKC,UAAU,CAACC,MAAM;gBAClCM,SAASR,KAAKS,GAAG,CAACD,OAAO;gBACzBE,WAAW;gBACXD,KAAKT,KAAKS,GAAG;YACf,MAAOT;QACX,GAAGW,QAAQC,OAAO;QAElB,MAAM,EACJX,YAAY,EAAEC,QAAQW,gBAAgB,EAAE,EACxCZ,UAAU,EACVa,YAAY,EACZC,KAAK,EACLC,aAAa,EACbC,OAAOC,aAAa,EACpBC,iBAAiB,EACjBC,KAAK,EACLC,KAAK,EACLC,cAAc,EACdC,IAAI,EACJC,aAAa,IAAI,EACjBf,KAAK,EAAEgB,cAAc,EAAEC,MAAM,EAAEC,OAAO,EAAE,EACxClB,GAAG,EACHmB,gBAAgB,EAChBC,IAAI,EACJC,KAAK,EACN,GAAG9B;QAEJ,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,IAAI+B;QAEJ,IAAI,CAACT,gBAAgB;YACnBS,eAAe,MAAM1C,cAAc;gBAAE2B;gBAAeP;YAAI,GAAGI,iBAAiBmB,MAAM,CAACC,IAAI;YAEvF,yEAAyE;YACzE,IAAIF,iBAAiB,OAAO;gBAC1B,OAAO;oBACLG,MAAM,EAAE;oBACRC,aAAa;oBACbC,aAAa;oBACbf;oBACAgB,UAAU;oBACVd,MAAM;oBACNe,eAAe;oBACfC,UAAU;oBACVC,WAAW;oBACXC,YAAY;gBACd;YACF;QACF;QAEA,wCAAwC;QACxC,OAAO;QACP,wCAAwC;QAExC,MAAMC,gBAAgBlB,cAAcH,UAAU;QAC9C,MAAMsB,iBAAiBtB,SAAUqB,CAAAA,gBAAgB,KAAK,CAAA;QACtD,MAAME,gBAAgBrB,QAAQ;QAE9B,IAAIsB;QAEJ,IAAIC,YAAYxD,eAAewC,OAAOC;QAEtC,IAAIlB,iBAAiBkC,QAAQ,EAAEC,UAAU9B,eAAe;YACtD4B,YAAYnD,wBAAwBmD;YAEpC,MAAMvD,mBAAmB;gBACvBsB,kBAAkBZ,WAAWC,MAAM;gBACnCoB;gBACAb;gBACAwC,eAAevD,6BAA6BiC,QAAQzB,MAAM,EAAED,WAAWC,MAAM;gBAC7E4B,OAAOgB;YACT;YAEAD,SAAS,MAAMlB,QAAQuB,EAAE,CAACC,WAAW,CAAgC;gBACnElD,YAAYY,iBAAiBuC,IAAI;gBACjChC,OAAOX,IAAI4C,UAAU,KAAK,YAAY,QAAQjC;gBAC9CC,OAAOsB;gBACPjB;gBACAH,MAAMqB;gBACNpB,YAAYkB;gBACZjC;gBACAoB,MAAMjC,mBAAmB;oBAAEiB;oBAAkBgB;gBAAK;gBAClDC,OAAOgB;YACT;QACF,OAAO;YACL,MAAMvD,mBAAmB;gBACvBsB;gBACAS;gBACAb;gBACAqB;YACF;YAEAe,SAAS,MAAMlB,QAAQuB,EAAE,CAACI,IAAI,CAAgC;gBAC5DrD,YAAYY,iBAAiBuC,IAAI;gBACjChC,OAAOX,IAAI4C,UAAU,KAAK,YAAY,QAAQjC;gBAC9CC,OAAOsB;gBACPjB;gBACAH,MAAMqB;gBACNpB;gBACAf;gBACAoB;gBACAC,OAAOgB;YACT;QACF;QAEA,IAAI3B,mBAAmB;YACrB,IAAI;gBACF,MAAMoC,oBAAoB1C,kBAAkB2C;gBAE5C,MAAMC,sBAAsB,IAAI,+BAA+B;;gBAC/D,MAAMC,eACJ,OAAOH,sBAAsB,WAAWA,kBAAkBI,QAAQ,GAAGF;gBACvE,MAAMG,6BAA6BF,eAAe;gBAElD,MAAMG,kBAAkB,MAAMlC,QAAQ2B,IAAI,CAAC;oBACzCrD,YAAY;oBACZc,OAAO;oBACPM,OAAOsB;oBACPnB,YAAY;oBACZf;oBACAqB,OAAO;wBACLgC,KAAK;4BACH;gCACE,uBAAuB;oCACrBC,QAAQlD,iBAAiBuC,IAAI;gCAC/B;4BACF;4BACA;gCACE,kBAAkB;oCAChBY,IAAInB,OAAOX,IAAI,CAAC+B,GAAG,CAAC,CAACC,MAAQA,IAAIC,EAAE;gCACrC;4BACF;4BACA,sEAAsE;4BACtE;gCACEC,WAAW;oCACTC,cAAc,IAAIC,KAAK,IAAIA,OAAOC,OAAO,KAAKX;gCAChD;4BACF;yBACD;oBACH;gBACF;gBAEA,MAAMY,MAAM,IAAIF,OAAOC,OAAO;gBAC9B,MAAME,aAAaC,MAAMC,OAAO,CAACd,iBAAiB3B,QAAQ2B,gBAAgB3B,IAAI,GAAG,EAAE;gBAEnF,yBAAyB;gBACzB,MAAM0C,kBAAkBH,WAAWI,MAAM,CAAC,CAACC;oBACzC,MAAMC,eAAe,IAAIT,KAAKQ,MAAMV,WAAWG,OAAO;oBACtD,OAAOQ,eAAenB,6BAA6BY;gBACrD;gBAEA3B,OAAOX,IAAI,GAAGW,OAAOX,IAAI,CAAC+B,GAAG,CAAC,CAACC;oBAC7B,MAAMc,YAAYJ,gBAAgBtB,IAAI,CAAC,CAACwB,OAASA,MAAMG,UAAUC,UAAUhB,IAAIC,EAAE;oBACjF,OAAO;wBACL,GAAGD,GAAG;wBACNiB,WAAW,CAAC,CAACH;wBACbI,cAAcJ,YAAYA,WAAWK,MAAMH,QAAQ;oBACrD;gBACF;YACF,EAAE,OAAOI,OAAO;gBACdzC,OAAOX,IAAI,GAAGW,OAAOX,IAAI,CAAC+B,GAAG,CAAC,CAACC,MAAS,CAAA;wBACtC,GAAGA,GAAG;wBACNiB,WAAW;wBACXC,cAAc;oBAChB,CAAA;YACF;QACF;QAEA,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExCvC,SAAS;YACP,GAAGA,MAAM;YACTX,MAAM,MAAMvB,QAAQ4E,GAAG,CACrB1C,OAAOX,IAAI,CAAC+B,GAAG,CAAC,OAAOC;gBACrB,IAAIsB,SAAStB;gBAEb,MAAMrD,iBAAiBV,KAAK,CAACsF,UAAU,CAACpF,MAAM,CAAC,OAAOC,WAAWC;oBAC/D,MAAMD;oBAENkF,SACE,AAAC,MAAMjF,KAAK;wBACVN,YAAYY;wBACZL,SAASC,IAAID,OAAO;wBACpB0D,KAAKsB;wBACLE,OAAO5C;wBACPrC;oBACF,MAAO+E;gBACX,GAAG7E,QAAQC,OAAO;gBAElB,OAAO4E;YACT;QAEJ;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExC3C,SAAS;YACP,GAAGA,MAAM;YACTX,MAAM,MAAMvB,QAAQ4E,GAAG,CACrB1C,OAAOX,IAAI,CAAC+B,GAAG,CAAC,OAAOC,MACrB1E,UAAyC;oBACvCS,YAAYY;oBACZL,SAASC,IAAID,OAAO;oBACpBM;oBACAC;oBACAmD;oBACAjD,OAAOC;oBACPO;oBACAkE,UAAU;oBACVC,QAAQ;oBACRlE;oBACAJ;oBACAb;oBACAmB;gBACF;QAGN;QAEA,wCAAwC;QACxC,yBAAyB;QACzB,wCAAwC;QAExCiB,SAAS;YACP,GAAGA,MAAM;YACTX,MAAM,MAAMvB,QAAQ4E,GAAG,CACrB1C,OAAOX,IAAI,CAAC+B,GAAG,CAAC,OAAOC;gBACrB,IAAIsB,SAAStB;gBAEb,MAAMrD,iBAAiBV,KAAK,CAACX,SAAS,CAACa,MAAM,CAAC,OAAOC,WAAWC;oBAC9D,MAAMD;oBAENkF,SACE,AAAC,MAAMjF,KAAK;wBACVN,YAAYY;wBACZL,SAASC,IAAID,OAAO;wBACpB0D,KAAKsB;wBACLG,UAAU;wBACVD,OAAO5C;wBACPrC;oBACF,MAAOyD;gBACX,GAAGvD,QAAQC,OAAO;gBAElB,OAAO4E;YACT;QAEJ;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExC3C,SAAS,MAAMhD,oBAAoB;YACjCG;YACAC,YAAYY;YACZH,WAAW;YACXmC;QACF;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,OAAOA;IACT,EAAE,OAAOyC,OAAgB;QACvB,MAAM7F,gBAAgBO,KAAKS,GAAG;QAC9B,MAAM6E;IACR;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findByID.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAU5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,SAAS,cAAc,gBACpD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findByID.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAU5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,SAAS,cAAc,gBACpD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CA2NvC,CAAA"}
|
|
@@ -66,6 +66,11 @@ export const findByIDOperation = async (incomingArgs)=>{
|
|
|
66
66
|
if (includeLockStatus && id) {
|
|
67
67
|
let lockStatus = null;
|
|
68
68
|
try {
|
|
69
|
+
const lockDocumentsProp = collectionConfig?.lockDocuments;
|
|
70
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
71
|
+
;
|
|
72
|
+
const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
|
|
73
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
69
74
|
const lockedDocument = await req.payload.find({
|
|
70
75
|
collection: 'payload-locked-documents',
|
|
71
76
|
depth: 1,
|
|
@@ -83,6 +88,12 @@ export const findByIDOperation = async (incomingArgs)=>{
|
|
|
83
88
|
'document.value': {
|
|
84
89
|
equals: id
|
|
85
90
|
}
|
|
91
|
+
},
|
|
92
|
+
// Query where the lock is newer than the current time minus lock time
|
|
93
|
+
{
|
|
94
|
+
updatedAt: {
|
|
95
|
+
greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds)
|
|
96
|
+
}
|
|
86
97
|
}
|
|
87
98
|
]
|
|
88
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/findByID.ts"],"sourcesContent":["import type { FindOneArgs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n id: number | string\n includeLockStatus?: boolean\n joins?: JoinQuery\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const findByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n currentDepth,\n depth,\n disableErrors,\n draft: draftEnabled = false,\n includeLockStatus,\n joins,\n overrideAccess = false,\n req: { fallbackLocale, locale, t },\n req,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResult = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, collectionConfig.access.read)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResult === false) {\n return null\n }\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n locale,\n req: {\n transactionID: req.transactionID,\n } as PayloadRequest,\n where: combineQueries({ id: { equals: id } }, accessResult),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n if (!findOneArgs.where.and[0].id) {\n throw new NotFound(t)\n }\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.findOne(findOneArgs)\n\n if (!result) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n\n return null\n }\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n\n if (includeLockStatus && id) {\n let lockStatus = null\n\n try {\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]\n }\n } catch {\n // swallow error\n }\n\n result._isLocked = !!lockStatus\n result._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (collectionConfig.versions?.drafts && draftEnabled) {\n result = await replaceWithDraftIfAvailable({\n accessResult,\n doc: result,\n entity: collectionConfig,\n entityType: 'collection',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc: result,\n draft: draftEnabled,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'findByID',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","NotFound","afterRead","killTransaction","replaceWithDraftIfAvailable","buildAfterOperation","findByIDOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","id","collectionConfig","currentDepth","depth","disableErrors","draft","draftEnabled","includeLockStatus","joins","overrideAccess","fallbackLocale","locale","t","showHiddenFields","accessResult","access","read","findOneArgs","slug","payloadAPI","transactionID","where","equals","and","result","payload","db","findOne","lockStatus","lockedDocument","find","limit","pagination","docs","length","_isLocked","_userEditing","user","value","versions","drafts","doc","entity","entityType","beforeRead","query","global","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/findByID.ts"],"sourcesContent":["import type { FindOneArgs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n id: number | string\n includeLockStatus?: boolean\n joins?: JoinQuery\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const findByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n currentDepth,\n depth,\n disableErrors,\n draft: draftEnabled = false,\n includeLockStatus,\n joins,\n overrideAccess = false,\n req: { fallbackLocale, locale, t },\n req,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResult = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, collectionConfig.access.read)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResult === false) {\n return null\n }\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n locale,\n req: {\n transactionID: req.transactionID,\n } as PayloadRequest,\n where: combineQueries({ id: { equals: id } }, accessResult),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n if (!findOneArgs.where.and[0].id) {\n throw new NotFound(t)\n }\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.findOne(findOneArgs)\n\n if (!result) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n\n return null\n }\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n\n if (includeLockStatus && id) {\n let lockStatus = null\n\n try {\n const lockDocumentsProp = collectionConfig?.lockDocuments\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n equals: id,\n },\n },\n // Query where the lock is newer than the current time minus lock time\n {\n updatedAt: {\n greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds),\n },\n },\n ],\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]\n }\n } catch {\n // swallow error\n }\n\n result._isLocked = !!lockStatus\n result._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (collectionConfig.versions?.drafts && draftEnabled) {\n result = await replaceWithDraftIfAvailable({\n accessResult,\n doc: result,\n entity: collectionConfig,\n entityType: 'collection',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc: result,\n draft: draftEnabled,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'findByID',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","NotFound","afterRead","killTransaction","replaceWithDraftIfAvailable","buildAfterOperation","findByIDOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","id","collectionConfig","currentDepth","depth","disableErrors","draft","draftEnabled","includeLockStatus","joins","overrideAccess","fallbackLocale","locale","t","showHiddenFields","accessResult","access","read","findOneArgs","slug","payloadAPI","transactionID","where","equals","and","result","payload","db","findOne","lockStatus","lockDocumentsProp","lockDocuments","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","lockedDocument","find","limit","pagination","updatedAt","greater_than","Date","getTime","docs","length","_isLocked","_userEditing","user","value","versions","drafts","doc","entity","entityType","beforeRead","query","global","error"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import type { SanitizedCollectionConfig, TypeWithID } from '../../collections/co
|
|
|
10
10
|
import type { CustomComponent, LabelFunction, PayloadComponent, StaticLabel } from '../../config/types.js';
|
|
11
11
|
import type { DBIdentifierName } from '../../database/types.js';
|
|
12
12
|
import type { SanitizedGlobalConfig } from '../../globals/config/types.js';
|
|
13
|
-
import type { ArrayFieldValidation, BlocksFieldValidation, CheckboxFieldValidation, CodeFieldValidation, CollectionSlug, DateFieldValidation, EmailFieldValidation, JSONFieldValidation, PointFieldValidation, RadioFieldValidation, TextareaFieldValidation } from '../../index.js';
|
|
13
|
+
import type { ArrayFieldValidation, BlocksFieldValidation, CheckboxFieldValidation, CodeFieldValidation, CollectionSlug, DateFieldValidation, EmailFieldValidation, JSONFieldValidation, PointFieldValidation, RadioFieldValidation, Sort, TextareaFieldValidation } from '../../index.js';
|
|
14
14
|
import type { DocumentPreferences } from '../../preferences/types.js';
|
|
15
15
|
import type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js';
|
|
16
16
|
import type { NumberFieldManyValidation, NumberFieldSingleValidation, RelationshipFieldManyValidation, RelationshipFieldSingleValidation, SelectFieldManyValidation, SelectFieldSingleValidation, TextFieldManyValidation, TextFieldSingleValidation, UploadFieldManyValidation, UploadFieldSingleValidation } from '../validations.js';
|
|
@@ -1116,6 +1116,8 @@ export type JoinField = {
|
|
|
1116
1116
|
* The slug of the collection to relate with.
|
|
1117
1117
|
*/
|
|
1118
1118
|
collection: CollectionSlug;
|
|
1119
|
+
defaultLimit?: number;
|
|
1120
|
+
defaultSort?: Sort;
|
|
1119
1121
|
defaultValue?: never;
|
|
1120
1122
|
/**
|
|
1121
1123
|
* This does not need to be set and will be overridden by the relationship field's hasMany property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { JSONSchema4 } from 'json-schema'\nimport type { CSSProperties } from 'react'\nimport type { DeepUndefinable } from 'ts-essentials'\n\nimport type {\n JoinFieldErrorClientComponent,\n JoinFieldErrorServerComponent,\n JoinFieldLabelClientComponent,\n JoinFieldLabelServerComponent,\n} from '../../admin/fields/Join.js'\nimport type { FieldClientComponent, FieldServerComponent } from '../../admin/forms/Field.js'\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type {\n ArrayFieldClientProps,\n ArrayFieldErrorClientComponent,\n ArrayFieldErrorServerComponent,\n ArrayFieldLabelClientComponent,\n ArrayFieldLabelServerComponent,\n BlocksFieldClientProps,\n BlocksFieldErrorClientComponent,\n BlocksFieldErrorServerComponent,\n CheckboxFieldClientProps,\n CheckboxFieldErrorClientComponent,\n CheckboxFieldErrorServerComponent,\n CheckboxFieldLabelClientComponent,\n CheckboxFieldLabelServerComponent,\n ClientTab,\n CodeFieldClientProps,\n CodeFieldErrorClientComponent,\n CodeFieldErrorServerComponent,\n CodeFieldLabelClientComponent,\n CodeFieldLabelServerComponent,\n CollapsibleFieldClientProps,\n CollapsibleFieldLabelClientComponent,\n CollapsibleFieldLabelServerComponent,\n ConditionalDateProps,\n DateFieldClientProps,\n DateFieldErrorClientComponent,\n DateFieldErrorServerComponent,\n DateFieldLabelClientComponent,\n DateFieldLabelServerComponent,\n Description,\n EmailFieldClientProps,\n EmailFieldErrorClientComponent,\n EmailFieldErrorServerComponent,\n EmailFieldLabelClientComponent,\n EmailFieldLabelServerComponent,\n FieldDescriptionClientComponent,\n FieldDescriptionServerComponent,\n GroupFieldClientProps,\n GroupFieldLabelClientComponent,\n GroupFieldLabelServerComponent,\n HiddenFieldProps,\n JSONFieldClientProps,\n JSONFieldErrorClientComponent,\n JSONFieldErrorServerComponent,\n JSONFieldLabelClientComponent,\n JSONFieldLabelServerComponent,\n MappedComponent,\n NumberFieldClientProps,\n NumberFieldErrorClientComponent,\n NumberFieldErrorServerComponent,\n NumberFieldLabelClientComponent,\n NumberFieldLabelServerComponent,\n PointFieldClientProps,\n PointFieldErrorClientComponent,\n PointFieldErrorServerComponent,\n PointFieldLabelClientComponent,\n PointFieldLabelServerComponent,\n RadioFieldClientProps,\n RadioFieldErrorClientComponent,\n RadioFieldErrorServerComponent,\n RadioFieldLabelClientComponent,\n RadioFieldLabelServerComponent,\n RelationshipFieldClientProps,\n RelationshipFieldErrorClientComponent,\n RelationshipFieldErrorServerComponent,\n RelationshipFieldLabelClientComponent,\n RelationshipFieldLabelServerComponent,\n RichTextFieldClientProps,\n RowFieldClientProps,\n RowLabelComponent,\n SelectFieldClientProps,\n SelectFieldErrorClientComponent,\n SelectFieldErrorServerComponent,\n SelectFieldLabelClientComponent,\n SelectFieldLabelServerComponent,\n StaticDescription,\n TabsFieldClientProps,\n TextareaFieldClientProps,\n TextareaFieldErrorClientComponent,\n TextareaFieldErrorServerComponent,\n TextareaFieldLabelClientComponent,\n TextareaFieldLabelServerComponent,\n TextFieldErrorClientComponent,\n TextFieldErrorServerComponent,\n TextFieldLabelClientComponent,\n TextFieldLabelServerComponent,\n UploadFieldClientProps,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type {\n CustomComponent,\n LabelFunction,\n PayloadComponent,\n StaticLabel,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n CollectionSlug,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n TextareaFieldValidation,\n} from '../../index.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js'\nimport type {\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n} from '../validations.js'\n\nexport type FieldHookArgs<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n /**\n * Only available in `afterRead` hooks\n */\n currentDepth?: number /**\n * Only available in `afterRead` hooks\n */\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<TData>\n /**\n * Only available in the `afterRead` hook.\n */\n depth?: number\n draft?: boolean\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: null | SanitizedGlobalConfig\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n overrideAccess?: boolean\n /**\n * The path of the field, e.g. [\"group\", \"myArray\", 1, \"textField\"]. The path is the schemaPath but with indexes and would be used in the context of field data, not field schemas.\n */\n path: (number | string)[]\n /** The document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied, only in `beforeChange`, `beforeValidate`, `beforeDuplicate` and `afterChange` field hooks. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange`, `beforeDuplicate` and `beforeValidate` field hooks. */\n previousValue?: TValue\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequest\n /**\n * The schemaPath of the field, e.g. [\"group\", \"myArray\", \"textField\"]. The schemaPath is the path but without indexes and would be used in the context of field schemas, not field data.\n */\n schemaPath: string[]\n /**\n * Only available in the `afterRead` hook.\n */\n showHiddenFields?: boolean\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<TSiblingData>\n /**\n * The original siblingData with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n siblingDocWithLocales?: Record<string, unknown>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type FieldHook<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = (\n args: FieldHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type FieldAccess<TData extends TypeWithID = any, TSiblingData = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<TData>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: TData\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequest\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<TSiblingData>\n}) => boolean | Promise<boolean>\n\nexport type Condition<TData extends TypeWithID = any, TSiblingData = any> = (\n data: Partial<TData>,\n siblingData: Partial<TSiblingData>,\n { user }: { user: PayloadRequest['user'] },\n) => boolean\n\nexport type FilterOptionsProps<TData = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: TData\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: CollectionSlug\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequest['user']>\n}\n\nexport type FilterOptionsFunc<TData = any> = (\n options: FilterOptionsProps<TData>,\n) => boolean | Promise<boolean | Where> | Where\n\nexport type FilterOptions<TData = any> =\n | ((options: FilterOptionsProps<TData>) => boolean | Promise<boolean | Where> | Where)\n | null\n | Where\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: CustomComponent<FieldDescriptionClientComponent | FieldDescriptionServerComponent>\n Field?: CustomComponent<FieldClientComponent | FieldServerComponent>\n /**\n * The Filter component has to be a client component\n */\n Filter?: PayloadComponent\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n disabled?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: CSSProperties['width']\n}\n\nexport type AdminClient = {\n className?: string\n components?: {\n Cell?: MappedComponent\n Description?: MappedComponent\n Field?: MappedComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: MappedComponent\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: StaticDescription\n disableBulkEdit?: boolean\n disabled?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: { '--field-width'?: CSSProperties['width'] } & CSSProperties\n width?: CSSProperties['width']\n}\n\nexport type Labels = {\n plural: LabelFunction | StaticLabel\n singular: LabelFunction | StaticLabel\n}\n\nexport type LabelsClient = {\n plural: StaticLabel\n singular: StaticLabel\n}\n\nexport type BaseValidateOptions<TData, TSiblingData, TValue> = {\n collectionSlug?: string\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n previousValue?: TValue\n req: PayloadRequest\n required?: boolean\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<\n TData,\n TSiblingData,\n TFieldConfig extends object,\n TValue,\n> = BaseValidateOptions<TData, TSiblingData, TValue> & TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: null | TValue | undefined,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig, TValue>,\n) => Promise<string | true> | string | true\n\nexport type OptionObject = {\n label: LabelFunction | StaticLabel\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n /**\n * Do not set this property manually. This is set to true during sanitization, to avoid\n * sanitizing the same field multiple times.\n */\n _sanitized?: boolean\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: false | LabelFunction | StaticLabel\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n validate?: Validate\n /**\n * Pass `true` to disable field in the DB\n * for [Virtual Fields](https://payloadcms.com/blog/learn-how-virtual-fields-can-help-solve-common-cms-challenges):\n * A virtual field cannot be used in `admin.useAsTitle`\n */\n virtual?: boolean\n}\n\nexport interface FieldBaseClient {\n _isPresentational?: undefined\n _path?: string\n _schemaPath?: string\n admin?: AdminClient\n hidden?: boolean\n index?: boolean\n label?: StaticLabel\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n}\n\nexport type NumberField = {\n admin?: {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<NumberFieldErrorClientComponent | NumberFieldErrorServerComponent>\n Label?: CustomComponent<NumberFieldLabelClientComponent | NumberFieldLabelServerComponent>\n } & Admin['components']\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n } & Admin\n /** Maximum value accepted. Used in the default `validate` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validate` function. */\n min?: number\n type: 'number'\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n validate?: NumberFieldManyValidation\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n validate?: NumberFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type NumberFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<NumberField['admin'], 'autoComplete' | 'placeholder' | 'step'>\n} & FieldBaseClient &\n Pick<NumberField, 'hasMany' | 'max' | 'maxRows' | 'min' | 'minRows' | 'type'>\n\nexport type TextField = {\n admin?: {\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<TextFieldErrorClientComponent | TextFieldErrorServerComponent>\n Label?: CustomComponent<TextFieldLabelClientComponent | TextFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'text'\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n validate?: TextFieldManyValidation\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n validate?: TextFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type TextFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<TextField['admin'], 'autoComplete' | 'placeholder' | 'rtl'>\n} & FieldBaseClient &\n Pick<TextField, 'hasMany' | 'maxLength' | 'maxRows' | 'minLength' | 'minRows' | 'type'>\n\nexport type EmailField = {\n admin?: {\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<EmailFieldErrorClientComponent | EmailFieldErrorServerComponent>\n Label?: CustomComponent<EmailFieldLabelClientComponent | EmailFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'email'\n validate?: EmailFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type EmailFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<EmailField['admin'], 'placeholder'>\n} & FieldBaseClient &\n Pick<EmailField, 'type'>\n\nexport type TextareaField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<TextareaFieldErrorClientComponent | TextareaFieldErrorServerComponent>\n Label?: CustomComponent<TextareaFieldLabelClientComponent | TextareaFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'textarea'\n validate?: TextareaFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type TextareaFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<TextareaField['admin'], 'placeholder' | 'rows' | 'rtl'>\n} & FieldBaseClient &\n Pick<TextareaField, 'maxLength' | 'minLength' | 'type'>\n\nexport type CheckboxField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<CheckboxFieldErrorClientComponent | CheckboxFieldErrorServerComponent>\n Label?: CustomComponent<CheckboxFieldLabelClientComponent | CheckboxFieldLabelServerComponent>\n } & Admin['components']\n } & Admin\n type: 'checkbox'\n validate?: CheckboxFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type CheckboxFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient\n} & FieldBaseClient &\n Pick<CheckboxField, 'type'>\n\nexport type DateField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<DateFieldErrorClientComponent | DateFieldErrorServerComponent>\n Label?: CustomComponent<DateFieldLabelClientComponent | DateFieldLabelServerComponent>\n } & Admin['components']\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'date'\n validate?: DateFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type DateFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<DateField['admin'], 'date' | 'placeholder'>\n} & FieldBaseClient &\n Pick<DateField, 'type'>\n\nexport type GroupField = {\n admin?: {\n components?: {\n Label?: CustomComponent<GroupFieldLabelClientComponent | GroupFieldLabelServerComponent>\n } & Admin['components']\n hideGutter?: boolean\n } & Admin\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n validate?: Validate<unknown, unknown, unknown, GroupField>\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type GroupFieldClient = {\n admin?: {\n components?: {\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<GroupField['admin'], 'hideGutter'>\n fields: ClientField[]\n} & Omit<FieldBaseClient, 'required'> &\n Pick<GroupField, 'interfaceName' | 'type'>\n\nexport type RowField = {\n admin?: Omit<Admin, 'description'>\n fields: Field[]\n type: 'row'\n} & Omit<FieldBase, 'admin' | 'label' | 'name' | 'validate' | 'virtual'>\n\nexport type RowFieldClient = {\n admin?: Omit<AdminClient, 'description'>\n fields: ClientField[]\n} & Omit<FieldBaseClient, 'admin' | 'label' | 'name'> &\n Pick<RowField, 'type'>\n\nexport type CollapsibleField = {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: {\n components: {\n Label?: CustomComponent<\n CollapsibleFieldLabelClientComponent | CollapsibleFieldLabelServerComponent\n >\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: {\n components?: {\n Label?: CustomComponent<\n CollapsibleFieldLabelClientComponent | CollapsibleFieldLabelServerComponent\n >\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label: Required<FieldBase['label']>\n }\n) &\n Omit<FieldBase, 'label' | 'name' | 'validate' | 'virtual'>\n\nexport type CollapsibleFieldClient = {\n fields: ClientField[]\n} & (\n | {\n admin: {\n components: {\n RowLabel: MappedComponent\n } & AdminClient['components']\n initCollapsed?: boolean\n } & AdminClient\n label?: Required<FieldBaseClient['label']>\n }\n | {\n admin?: {\n initCollapsed?: boolean\n } & AdminClient\n label: Required<FieldBaseClient['label']>\n }\n) &\n Omit<FieldBaseClient, 'label' | 'name' | 'validate'> &\n Pick<CollapsibleField, 'type'>\n\ntype TabBase = {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type NamedTab = {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n} & TabBase\n\nexport type UnnamedTab = {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n} & Omit<TabBase, 'name' | 'virtual'>\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = {\n admin?: Omit<Admin, 'description'>\n tabs: Tab[]\n type: 'tabs'\n} & Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT' | 'virtual'>\n\nexport type TabsFieldClient = {\n admin?: Omit<AdminClient, 'description'>\n tabs: ClientTab[]\n} & Omit<FieldBaseClient, 'admin' | 'localized' | 'name' | 'saveToJWT'> &\n Pick<TabsField, 'type'>\n\nexport type TabAsField = {\n name?: string\n type: 'tab'\n} & Tab\n\nexport type TabAsFieldClient = ClientTab & Pick<TabAsField, 'name' | 'type'>\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: PayloadComponent\n } & Admin['components']\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n /**\n * Set `false` make the UI field appear in the list view column selector. `true` by default for UI fields.\n * @default true\n */\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n position?: string\n width?: CSSProperties['width']\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UIFieldClient = {\n _isPresentational?: true\n // still include FieldBaseClient.admin (even if it's undefinable) so that we don't need constant type checks (e.g. if('xy' in field))\n // eslint-disable-next-line perfectionist/sort-intersection-types\n admin: DeepUndefinable<FieldBaseClient['admin']> & {\n components?: {\n Cell?: MappedComponent\n Field: MappedComponent\n Filter?: MappedComponent\n } & AdminClient['components']\n } & Pick<\n UIField['admin'],\n 'custom' | 'disableBulkEdit' | 'disableListColumn' | 'position' | 'width'\n >\n} & Omit<DeepUndefinable<FieldBaseClient>, '_isPresentational' | 'admin'> & // still include FieldBaseClient (even if it's undefinable) so that we don't need constant type checks (e.g. if('xy' in field))\n Pick<UIField, 'label' | 'name' | 'type'>\n\ntype SharedUploadProperties = {\n /**\n * Toggle the preview in the admin interface.\n */\n displayPreview?: boolean\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'upload'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n validate?: UploadFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n validate?: UploadFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\ntype SharedUploadPropertiesClient = FieldBaseClient &\n Pick<\n SharedUploadProperties,\n 'hasMany' | 'max' | 'maxDepth' | 'maxRows' | 'min' | 'minRows' | 'type'\n >\n\ntype UploadAdmin = {\n allowCreate?: boolean\n components?: {\n Error?: CustomComponent<\n RelationshipFieldErrorClientComponent | RelationshipFieldErrorServerComponent\n >\n Label?: CustomComponent<\n RelationshipFieldLabelClientComponent | RelationshipFieldLabelServerComponent\n >\n } & Admin['components']\n isSortable?: boolean\n} & Admin\ntype UploadAdminClient = {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n} & AdminClient &\n Pick<UploadAdmin, 'allowCreate' | 'isSortable'>\n\nexport type PolymorphicUploadField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & UploadAdmin\n relationTo: CollectionSlug[]\n} & SharedUploadProperties\n\nexport type PolymorphicUploadFieldClient = {\n admin?: {\n sortOptions?: Pick<PolymorphicUploadField['admin'], 'sortOptions'>\n } & UploadAdminClient\n} & Pick<PolymorphicUploadField, 'displayPreview' | 'maxDepth' | 'relationTo' | 'type'> &\n SharedUploadPropertiesClient\n\nexport type SingleUploadField = {\n admin?: {\n sortOptions?: string\n } & UploadAdmin\n relationTo: CollectionSlug\n} & SharedUploadProperties\n\nexport type SingleUploadFieldClient = {\n admin?: Pick<SingleUploadField['admin'], 'sortOptions'> & UploadAdminClient\n} & Pick<SingleUploadField, 'displayPreview' | 'maxDepth' | 'relationTo' | 'type'> &\n SharedUploadPropertiesClient\n\nexport type UploadField = /* PolymorphicUploadField | */ SingleUploadField\n\nexport type UploadFieldClient = /* PolymorphicUploadFieldClient | */ SingleUploadFieldClient\n\nexport type CodeField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<CodeFieldErrorClientComponent | CodeFieldErrorServerComponent>\n Label?: CustomComponent<CodeFieldLabelClientComponent | CodeFieldLabelServerComponent>\n } & Admin['components']\n editorOptions?: EditorProps['options']\n language?: string\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'code'\n validate?: CodeFieldValidation\n} & Omit<FieldBase, 'admin' | 'validate'>\n\nexport type CodeFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<CodeField['admin'], 'editorOptions' | 'language'>\n} & Omit<FieldBaseClient, 'admin'> &\n Pick<CodeField, 'maxLength' | 'minLength' | 'type'>\n\nexport type JSONField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<JSONFieldErrorClientComponent | JSONFieldErrorServerComponent>\n Label?: CustomComponent<JSONFieldLabelClientComponent | JSONFieldLabelServerComponent>\n } & Admin['components']\n editorOptions?: EditorProps['options']\n } & Admin\n\n jsonSchema?: {\n fileMatch: string[]\n schema: JSONSchema4\n uri: string\n }\n type: 'json'\n validate?: JSONFieldValidation\n} & Omit<FieldBase, 'admin' | 'validate'>\n\nexport type JSONFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<JSONField['admin'], 'editorOptions'>\n} & Omit<FieldBaseClient, 'admin'> &\n Pick<JSONField, 'jsonSchema' | 'type'>\n\nexport type SelectField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<SelectFieldErrorClientComponent | SelectFieldErrorServerComponent>\n Label?: CustomComponent<SelectFieldLabelClientComponent | SelectFieldLabelServerComponent>\n } & Admin['components']\n isClearable?: boolean\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n} & (\n | {\n hasMany: true\n validate?: SelectFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n validate?: SelectFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type SelectFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<SelectField['admin'], 'isClearable' | 'isSortable'>\n} & FieldBaseClient &\n Pick<SelectField, 'hasMany' | 'options' | 'type'>\n\ntype SharedRelationshipProperties = {\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n validate?: RelationshipFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n validate?: RelationshipFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\ntype SharedRelationshipPropertiesClient = FieldBaseClient &\n Pick<\n SharedRelationshipProperties,\n 'hasMany' | 'max' | 'maxDepth' | 'maxRows' | 'min' | 'minRows' | 'type'\n >\n\ntype RelationshipAdmin = {\n allowCreate?: boolean\n allowEdit?: boolean\n components?: {\n Error?: CustomComponent<\n RelationshipFieldErrorClientComponent | RelationshipFieldErrorServerComponent\n >\n Label?: CustomComponent<\n RelationshipFieldLabelClientComponent | RelationshipFieldLabelServerComponent\n >\n } & Admin['components']\n isSortable?: boolean\n} & Admin\n\ntype RelationshipAdminClient = {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n} & AdminClient &\n Pick<RelationshipAdmin, 'allowCreate' | 'allowEdit' | 'isSortable'>\n\nexport type PolymorphicRelationshipField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & RelationshipAdmin\n relationTo: CollectionSlug[]\n} & SharedRelationshipProperties\n\nexport type PolymorphicRelationshipFieldClient = {\n admin?: {\n sortOptions?: Pick<PolymorphicRelationshipField['admin'], 'sortOptions'>\n } & RelationshipAdminClient\n} & Pick<PolymorphicRelationshipField, 'relationTo'> &\n SharedRelationshipPropertiesClient\n\nexport type SingleRelationshipField = {\n admin?: {\n sortOptions?: string\n } & RelationshipAdmin\n relationTo: CollectionSlug\n} & SharedRelationshipProperties\n\nexport type SingleRelationshipFieldClient = {\n admin?: Partial<Pick<SingleRelationshipField['admin'], 'sortOptions'>> & RelationshipAdminClient\n} & Pick<SingleRelationshipField, 'relationTo'> &\n SharedRelationshipPropertiesClient\n\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type RelationshipFieldClient =\n | PolymorphicRelationshipFieldClient\n | SingleRelationshipFieldClient\n\nexport type ValueWithRelation = {\n relationTo: CollectionSlug\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue = RelationshipValueMany | RelationshipValueSingle\n\nexport type RelationshipValueMany = (number | string)[] | ValueWithRelation[]\n\nexport type RelationshipValueSingle = number | string | ValueWithRelation\n\nexport type RichTextField<\n TValue extends object = any,\n TAdapterProps = any,\n TExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: CustomComponent\n Label?: CustomComponent\n } & Admin['components']\n } & Admin\n editor?:\n | RichTextAdapter<TValue, TAdapterProps, TExtraProperties>\n | RichTextAdapterProvider<TValue, TAdapterProps, TExtraProperties>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & FieldBase &\n TExtraProperties\n\nexport type RichTextFieldClient<\n TValue extends object = any,\n TAdapterProps = any,\n TExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n placeholder?: Record<string, string> | string\n } & AdminClient\n richTextComponentMap?: Map<string, any>\n} & FieldBaseClient &\n Pick<RichTextField<TValue, TAdapterProps, TExtraProperties>, 'maxDepth' | 'type'> &\n TExtraProperties\n\nexport type ArrayField = {\n admin?: {\n components?: {\n Error?: CustomComponent<ArrayFieldErrorClientComponent | ArrayFieldErrorServerComponent>\n Label?: CustomComponent<ArrayFieldLabelClientComponent | ArrayFieldLabelServerComponent>\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n validate?: ArrayFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type ArrayFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n RowLabel?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<ArrayField['admin'], 'initCollapsed' | 'isSortable'>\n fields: ClientField[]\n labels?: LabelsClient\n} & FieldBaseClient &\n Pick<ArrayField, 'interfaceName' | 'maxRows' | 'minRows' | 'type'>\n\nexport type RadioField = {\n admin?: {\n components?: {\n Error?: CustomComponent<RadioFieldErrorClientComponent | RadioFieldErrorServerComponent>\n Label?: CustomComponent<RadioFieldLabelClientComponent | RadioFieldLabelServerComponent>\n } & Admin['components']\n layout?: 'horizontal' | 'vertical'\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n validate?: RadioFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type RadioFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<RadioField['admin'], 'layout'>\n} & FieldBaseClient &\n Pick<RadioField, 'options' | 'type'>\n\nexport type Block = {\n /**\n * Do not set this property manually. This is set to true during sanitization, to avoid\n * sanitizing the same block multiple times.\n */\n _sanitized?: boolean\n admin?: {\n components?: {\n Label?: PayloadComponent<\n never,\n {\n blockKind: 'block' | 'lexicalBlock' | 'lexicalInlineBlock' | string\n /**\n * May contain the formData\n */\n formData: Record<string, any>\n }\n >\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\nexport type ClientBlock = {\n admin?: {\n components?: {\n Label?: MappedComponent\n }\n } & Pick<Block['admin'], 'custom'>\n fields: ClientField[]\n labels?: LabelsClient\n} & Pick<Block, 'imageAltText' | 'imageURL' | 'slug'>\n\nexport type BlocksField = {\n admin?: {\n components?: {\n Error?: CustomComponent<BlocksFieldErrorClientComponent | BlocksFieldErrorServerComponent>\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n validate?: BlocksFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type BlocksFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<BlocksField['admin'], 'initCollapsed' | 'isSortable'>\n blocks: ClientBlock[]\n labels?: LabelsClient\n} & FieldBaseClient &\n Pick<BlocksField, 'maxRows' | 'minRows' | 'type'>\n\nexport type PointField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<PointFieldErrorClientComponent | PointFieldErrorServerComponent>\n Label?: CustomComponent<PointFieldLabelClientComponent | PointFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n step?: number\n } & Admin\n type: 'point'\n validate?: PointFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type PointFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<PointField['admin'], 'placeholder' | 'step'>\n} & FieldBaseClient &\n Pick<PointField, 'type'>\n\n/**\n * A virtual field that loads in related collections by querying a relationship or upload field.\n */\nexport type JoinField = {\n access?: {\n create?: never\n read?: FieldAccess\n update?: never\n }\n admin?: {\n components?: {\n Error?: CustomComponent<JoinFieldErrorClientComponent | JoinFieldErrorServerComponent>\n Label?: CustomComponent<JoinFieldLabelClientComponent | JoinFieldLabelServerComponent>\n } & Admin['components']\n disableBulkEdit?: never\n readOnly?: never\n } & Admin\n /**\n * The slug of the collection to relate with.\n */\n collection: CollectionSlug\n defaultValue?: never\n /**\n * This does not need to be set and will be overridden by the relationship field's hasMany property.\n */\n hasMany?: boolean\n hidden?: false\n index?: never\n /**\n * This does not need to be set and will be overridden by the relationship field's localized property.\n */\n localized?: boolean\n maxDepth?: number\n /**\n * A string for the field in the collection being joined to.\n */\n on: string\n type: 'join'\n validate?: never\n} & FieldBase\n\nexport type JoinFieldClient = {\n admin?: {\n components?: {\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<JoinField['admin'], 'disableBulkEdit' | 'readOnly'>\n} & FieldBaseClient &\n Pick<JoinField, 'collection' | 'index' | 'maxDepth' | 'on' | 'type'>\n\nexport type Field =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JoinField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextareaField\n | TextField\n | UIField\n | UploadField\n\nexport type ClientField =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | CollapsibleFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JoinFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | RowFieldClient\n | SelectFieldClient\n | TabsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UIFieldClient\n | UploadFieldClient\n\nexport type ClientFieldProps =\n | ArrayFieldClientProps\n | BlocksFieldClientProps\n | CheckboxFieldClientProps\n | CodeFieldClientProps\n | CollapsibleFieldClientProps\n | DateFieldClientProps\n | EmailFieldClientProps\n | GroupFieldClientProps\n | HiddenFieldProps\n | JSONFieldClientProps\n | NumberFieldClientProps\n | PointFieldClientProps\n | RadioFieldClientProps\n | RelationshipFieldClientProps\n | RichTextFieldClientProps\n | RowFieldClientProps\n | SelectFieldClientProps\n | TabsFieldClientProps\n | TextareaFieldClientProps\n | UploadFieldClientProps\n\ntype ExtractFieldTypes<T> = T extends { type: infer U } ? U : never\n\nexport type FieldTypes = ExtractFieldTypes<Field>\n\nexport type FieldAffectingData =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JoinField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextareaField\n | TextField\n | UploadField\n\nexport type FieldAffectingDataClient =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JoinFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | SelectFieldClient\n | TabAsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UploadFieldClient\n\nexport type NonPresentationalField =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextareaField\n | TextField\n | UploadField\n\nexport type NonPresentationalFieldClient =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | CollapsibleFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | RowFieldClient\n | SelectFieldClient\n | TabsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UploadFieldClient\n\nexport type FieldWithPath = {\n path?: string\n} & Field\n\nexport type FieldWithPathClient = {\n path?: string\n} & ClientField\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldWithSubFieldsClient =\n | ArrayFieldClient\n | CollapsibleFieldClient\n | GroupFieldClient\n | RowFieldClient\n\nexport type FieldPresentationalOnly = UIField\nexport type FieldPresentationalOnlyClient = UIFieldClient\n\nexport type FieldWithMany = RelationshipField | SelectField\nexport type FieldWithManyClient = RelationshipFieldClient | SelectFieldClient\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\nexport type FieldWithMaxDepthClient = JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n\nexport function fieldHasSubFields<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithSubFieldsClient : FieldWithSubFields) {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? ArrayFieldClient : ArrayField) {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? BlocksFieldClient : BlocksField) {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? GroupFieldClient : GroupField) {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithManyClient : FieldWithMany) {\n return field.type === 'select' || field.type === 'relationship' || field.type === 'upload'\n}\n\nexport function fieldHasMaxDepth<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithMaxDepthClient : FieldWithMaxDepth) {\n return (\n (field.type === 'upload' || field.type === 'relationship' || field.type === 'join') &&\n typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly<\n TField extends ClientField | Field | TabAsField | TabAsFieldClient,\n>(\n field: TField,\n): field is TField & (TField extends ClientField | TabAsFieldClient ? UIFieldClient : UIField) {\n return field.type === 'ui'\n}\n\nexport function fieldIsSidebar<TField extends ClientField | Field | TabAsField | TabAsFieldClient>(\n field: TField,\n): field is { admin: { position: 'sidebar' } } & TField {\n return 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar'\n}\n\nexport function fieldAffectsData<\n TField extends ClientField | Field | TabAsField | TabAsFieldClient,\n>(\n field: TField,\n): field is TField &\n (TField extends ClientField | TabAsFieldClient ? FieldAffectingDataClient : FieldAffectingData) {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName<TField extends ClientTab | Tab>(tab: TField): tab is NamedTab & TField {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport function fieldIsVirtual(field: Field | Tab): boolean {\n return 'virtual' in field && field.virtual\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldIsSidebar","admin","position","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized","fieldIsVirtual","virtual"],"mappings":"AAAA,qDAAqD,GAqqCrD,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AA8dA,OAAO,SAASC,kBACdC,KAAa;IAEb,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBACdF,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBACdH,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBACdJ,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBACdZ,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,kBAAkBD,MAAMC,IAAI,KAAK;AACpF;AAEA,OAAO,SAASY,iBACdb,KAAa;IAEb,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,kBAAkBD,MAAMC,IAAI,KAAK,MAAK,KACjF,OAAOD,MAAMc,QAAQ,KAAK;AAE9B;AAEA,OAAO,SAASC,0BAGdf,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,eACdhB,KAAa;IAEb,OAAO,WAAWA,SAAS,cAAcA,MAAMiB,KAAK,IAAIjB,MAAMiB,KAAK,CAACC,QAAQ,KAAK;AACnF;AAEA,OAAO,SAASC,iBAGdnB,KAAa;IAGb,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASoB,WAA2CC,GAAW;IACpE,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBtB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMuB,SAAS;AAChD;AAEA,OAAO,SAASC,eAAexB,KAAkB;IAC/C,OAAO,aAAaA,SAASA,MAAMyB,OAAO;AAC5C"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { JSONSchema4 } from 'json-schema'\nimport type { CSSProperties } from 'react'\nimport type { DeepUndefinable } from 'ts-essentials'\n\nimport type {\n JoinFieldErrorClientComponent,\n JoinFieldErrorServerComponent,\n JoinFieldLabelClientComponent,\n JoinFieldLabelServerComponent,\n} from '../../admin/fields/Join.js'\nimport type { FieldClientComponent, FieldServerComponent } from '../../admin/forms/Field.js'\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type {\n ArrayFieldClientProps,\n ArrayFieldErrorClientComponent,\n ArrayFieldErrorServerComponent,\n ArrayFieldLabelClientComponent,\n ArrayFieldLabelServerComponent,\n BlocksFieldClientProps,\n BlocksFieldErrorClientComponent,\n BlocksFieldErrorServerComponent,\n CheckboxFieldClientProps,\n CheckboxFieldErrorClientComponent,\n CheckboxFieldErrorServerComponent,\n CheckboxFieldLabelClientComponent,\n CheckboxFieldLabelServerComponent,\n ClientTab,\n CodeFieldClientProps,\n CodeFieldErrorClientComponent,\n CodeFieldErrorServerComponent,\n CodeFieldLabelClientComponent,\n CodeFieldLabelServerComponent,\n CollapsibleFieldClientProps,\n CollapsibleFieldLabelClientComponent,\n CollapsibleFieldLabelServerComponent,\n ConditionalDateProps,\n DateFieldClientProps,\n DateFieldErrorClientComponent,\n DateFieldErrorServerComponent,\n DateFieldLabelClientComponent,\n DateFieldLabelServerComponent,\n Description,\n EmailFieldClientProps,\n EmailFieldErrorClientComponent,\n EmailFieldErrorServerComponent,\n EmailFieldLabelClientComponent,\n EmailFieldLabelServerComponent,\n FieldDescriptionClientComponent,\n FieldDescriptionServerComponent,\n GroupFieldClientProps,\n GroupFieldLabelClientComponent,\n GroupFieldLabelServerComponent,\n HiddenFieldProps,\n JSONFieldClientProps,\n JSONFieldErrorClientComponent,\n JSONFieldErrorServerComponent,\n JSONFieldLabelClientComponent,\n JSONFieldLabelServerComponent,\n MappedComponent,\n NumberFieldClientProps,\n NumberFieldErrorClientComponent,\n NumberFieldErrorServerComponent,\n NumberFieldLabelClientComponent,\n NumberFieldLabelServerComponent,\n PointFieldClientProps,\n PointFieldErrorClientComponent,\n PointFieldErrorServerComponent,\n PointFieldLabelClientComponent,\n PointFieldLabelServerComponent,\n RadioFieldClientProps,\n RadioFieldErrorClientComponent,\n RadioFieldErrorServerComponent,\n RadioFieldLabelClientComponent,\n RadioFieldLabelServerComponent,\n RelationshipFieldClientProps,\n RelationshipFieldErrorClientComponent,\n RelationshipFieldErrorServerComponent,\n RelationshipFieldLabelClientComponent,\n RelationshipFieldLabelServerComponent,\n RichTextFieldClientProps,\n RowFieldClientProps,\n RowLabelComponent,\n SelectFieldClientProps,\n SelectFieldErrorClientComponent,\n SelectFieldErrorServerComponent,\n SelectFieldLabelClientComponent,\n SelectFieldLabelServerComponent,\n StaticDescription,\n TabsFieldClientProps,\n TextareaFieldClientProps,\n TextareaFieldErrorClientComponent,\n TextareaFieldErrorServerComponent,\n TextareaFieldLabelClientComponent,\n TextareaFieldLabelServerComponent,\n TextFieldErrorClientComponent,\n TextFieldErrorServerComponent,\n TextFieldLabelClientComponent,\n TextFieldLabelServerComponent,\n UploadFieldClientProps,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type {\n CustomComponent,\n LabelFunction,\n PayloadComponent,\n StaticLabel,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n CollectionSlug,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n Sort,\n TextareaFieldValidation,\n} from '../../index.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js'\nimport type {\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n} from '../validations.js'\n\nexport type FieldHookArgs<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n /**\n * Only available in `afterRead` hooks\n */\n currentDepth?: number /**\n * Only available in `afterRead` hooks\n */\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<TData>\n /**\n * Only available in the `afterRead` hook.\n */\n depth?: number\n draft?: boolean\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: null | SanitizedGlobalConfig\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n overrideAccess?: boolean\n /**\n * The path of the field, e.g. [\"group\", \"myArray\", 1, \"textField\"]. The path is the schemaPath but with indexes and would be used in the context of field data, not field schemas.\n */\n path: (number | string)[]\n /** The document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied, only in `beforeChange`, `beforeValidate`, `beforeDuplicate` and `afterChange` field hooks. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange`, `beforeDuplicate` and `beforeValidate` field hooks. */\n previousValue?: TValue\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequest\n /**\n * The schemaPath of the field, e.g. [\"group\", \"myArray\", \"textField\"]. The schemaPath is the path but without indexes and would be used in the context of field schemas, not field data.\n */\n schemaPath: string[]\n /**\n * Only available in the `afterRead` hook.\n */\n showHiddenFields?: boolean\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<TSiblingData>\n /**\n * The original siblingData with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n siblingDocWithLocales?: Record<string, unknown>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type FieldHook<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = (\n args: FieldHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type FieldAccess<TData extends TypeWithID = any, TSiblingData = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<TData>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: TData\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequest\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<TSiblingData>\n}) => boolean | Promise<boolean>\n\nexport type Condition<TData extends TypeWithID = any, TSiblingData = any> = (\n data: Partial<TData>,\n siblingData: Partial<TSiblingData>,\n { user }: { user: PayloadRequest['user'] },\n) => boolean\n\nexport type FilterOptionsProps<TData = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: TData\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: CollectionSlug\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequest['user']>\n}\n\nexport type FilterOptionsFunc<TData = any> = (\n options: FilterOptionsProps<TData>,\n) => boolean | Promise<boolean | Where> | Where\n\nexport type FilterOptions<TData = any> =\n | ((options: FilterOptionsProps<TData>) => boolean | Promise<boolean | Where> | Where)\n | null\n | Where\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: CustomComponent<FieldDescriptionClientComponent | FieldDescriptionServerComponent>\n Field?: CustomComponent<FieldClientComponent | FieldServerComponent>\n /**\n * The Filter component has to be a client component\n */\n Filter?: PayloadComponent\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n disabled?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: CSSProperties['width']\n}\n\nexport type AdminClient = {\n className?: string\n components?: {\n Cell?: MappedComponent\n Description?: MappedComponent\n Field?: MappedComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: MappedComponent\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: StaticDescription\n disableBulkEdit?: boolean\n disabled?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: { '--field-width'?: CSSProperties['width'] } & CSSProperties\n width?: CSSProperties['width']\n}\n\nexport type Labels = {\n plural: LabelFunction | StaticLabel\n singular: LabelFunction | StaticLabel\n}\n\nexport type LabelsClient = {\n plural: StaticLabel\n singular: StaticLabel\n}\n\nexport type BaseValidateOptions<TData, TSiblingData, TValue> = {\n collectionSlug?: string\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n previousValue?: TValue\n req: PayloadRequest\n required?: boolean\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<\n TData,\n TSiblingData,\n TFieldConfig extends object,\n TValue,\n> = BaseValidateOptions<TData, TSiblingData, TValue> & TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: null | TValue | undefined,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig, TValue>,\n) => Promise<string | true> | string | true\n\nexport type OptionObject = {\n label: LabelFunction | StaticLabel\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n /**\n * Do not set this property manually. This is set to true during sanitization, to avoid\n * sanitizing the same field multiple times.\n */\n _sanitized?: boolean\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: false | LabelFunction | StaticLabel\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n validate?: Validate\n /**\n * Pass `true` to disable field in the DB\n * for [Virtual Fields](https://payloadcms.com/blog/learn-how-virtual-fields-can-help-solve-common-cms-challenges):\n * A virtual field cannot be used in `admin.useAsTitle`\n */\n virtual?: boolean\n}\n\nexport interface FieldBaseClient {\n _isPresentational?: undefined\n _path?: string\n _schemaPath?: string\n admin?: AdminClient\n hidden?: boolean\n index?: boolean\n label?: StaticLabel\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n}\n\nexport type NumberField = {\n admin?: {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<NumberFieldErrorClientComponent | NumberFieldErrorServerComponent>\n Label?: CustomComponent<NumberFieldLabelClientComponent | NumberFieldLabelServerComponent>\n } & Admin['components']\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n } & Admin\n /** Maximum value accepted. Used in the default `validate` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validate` function. */\n min?: number\n type: 'number'\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n validate?: NumberFieldManyValidation\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n validate?: NumberFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type NumberFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<NumberField['admin'], 'autoComplete' | 'placeholder' | 'step'>\n} & FieldBaseClient &\n Pick<NumberField, 'hasMany' | 'max' | 'maxRows' | 'min' | 'minRows' | 'type'>\n\nexport type TextField = {\n admin?: {\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<TextFieldErrorClientComponent | TextFieldErrorServerComponent>\n Label?: CustomComponent<TextFieldLabelClientComponent | TextFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'text'\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n validate?: TextFieldManyValidation\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n validate?: TextFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type TextFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<TextField['admin'], 'autoComplete' | 'placeholder' | 'rtl'>\n} & FieldBaseClient &\n Pick<TextField, 'hasMany' | 'maxLength' | 'maxRows' | 'minLength' | 'minRows' | 'type'>\n\nexport type EmailField = {\n admin?: {\n autoComplete?: string\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<EmailFieldErrorClientComponent | EmailFieldErrorServerComponent>\n Label?: CustomComponent<EmailFieldLabelClientComponent | EmailFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'email'\n validate?: EmailFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type EmailFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<EmailField['admin'], 'placeholder'>\n} & FieldBaseClient &\n Pick<EmailField, 'type'>\n\nexport type TextareaField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<TextareaFieldErrorClientComponent | TextareaFieldErrorServerComponent>\n Label?: CustomComponent<TextareaFieldLabelClientComponent | TextareaFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'textarea'\n validate?: TextareaFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type TextareaFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<TextareaField['admin'], 'placeholder' | 'rows' | 'rtl'>\n} & FieldBaseClient &\n Pick<TextareaField, 'maxLength' | 'minLength' | 'type'>\n\nexport type CheckboxField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<CheckboxFieldErrorClientComponent | CheckboxFieldErrorServerComponent>\n Label?: CustomComponent<CheckboxFieldLabelClientComponent | CheckboxFieldLabelServerComponent>\n } & Admin['components']\n } & Admin\n type: 'checkbox'\n validate?: CheckboxFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type CheckboxFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient\n} & FieldBaseClient &\n Pick<CheckboxField, 'type'>\n\nexport type DateField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<DateFieldErrorClientComponent | DateFieldErrorServerComponent>\n Label?: CustomComponent<DateFieldLabelClientComponent | DateFieldLabelServerComponent>\n } & Admin['components']\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'date'\n validate?: DateFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type DateFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<DateField['admin'], 'date' | 'placeholder'>\n} & FieldBaseClient &\n Pick<DateField, 'type'>\n\nexport type GroupField = {\n admin?: {\n components?: {\n Label?: CustomComponent<GroupFieldLabelClientComponent | GroupFieldLabelServerComponent>\n } & Admin['components']\n hideGutter?: boolean\n } & Admin\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n validate?: Validate<unknown, unknown, unknown, GroupField>\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type GroupFieldClient = {\n admin?: {\n components?: {\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<GroupField['admin'], 'hideGutter'>\n fields: ClientField[]\n} & Omit<FieldBaseClient, 'required'> &\n Pick<GroupField, 'interfaceName' | 'type'>\n\nexport type RowField = {\n admin?: Omit<Admin, 'description'>\n fields: Field[]\n type: 'row'\n} & Omit<FieldBase, 'admin' | 'label' | 'name' | 'validate' | 'virtual'>\n\nexport type RowFieldClient = {\n admin?: Omit<AdminClient, 'description'>\n fields: ClientField[]\n} & Omit<FieldBaseClient, 'admin' | 'label' | 'name'> &\n Pick<RowField, 'type'>\n\nexport type CollapsibleField = {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: {\n components: {\n Label?: CustomComponent<\n CollapsibleFieldLabelClientComponent | CollapsibleFieldLabelServerComponent\n >\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: {\n components?: {\n Label?: CustomComponent<\n CollapsibleFieldLabelClientComponent | CollapsibleFieldLabelServerComponent\n >\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label: Required<FieldBase['label']>\n }\n) &\n Omit<FieldBase, 'label' | 'name' | 'validate' | 'virtual'>\n\nexport type CollapsibleFieldClient = {\n fields: ClientField[]\n} & (\n | {\n admin: {\n components: {\n RowLabel: MappedComponent\n } & AdminClient['components']\n initCollapsed?: boolean\n } & AdminClient\n label?: Required<FieldBaseClient['label']>\n }\n | {\n admin?: {\n initCollapsed?: boolean\n } & AdminClient\n label: Required<FieldBaseClient['label']>\n }\n) &\n Omit<FieldBaseClient, 'label' | 'name' | 'validate'> &\n Pick<CollapsibleField, 'type'>\n\ntype TabBase = {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type NamedTab = {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n} & TabBase\n\nexport type UnnamedTab = {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n} & Omit<TabBase, 'name' | 'virtual'>\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = {\n admin?: Omit<Admin, 'description'>\n tabs: Tab[]\n type: 'tabs'\n} & Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT' | 'virtual'>\n\nexport type TabsFieldClient = {\n admin?: Omit<AdminClient, 'description'>\n tabs: ClientTab[]\n} & Omit<FieldBaseClient, 'admin' | 'localized' | 'name' | 'saveToJWT'> &\n Pick<TabsField, 'type'>\n\nexport type TabAsField = {\n name?: string\n type: 'tab'\n} & Tab\n\nexport type TabAsFieldClient = ClientTab & Pick<TabAsField, 'name' | 'type'>\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: PayloadComponent\n } & Admin['components']\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n /**\n * Set `false` make the UI field appear in the list view column selector. `true` by default for UI fields.\n * @default true\n */\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n position?: string\n width?: CSSProperties['width']\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UIFieldClient = {\n _isPresentational?: true\n // still include FieldBaseClient.admin (even if it's undefinable) so that we don't need constant type checks (e.g. if('xy' in field))\n // eslint-disable-next-line perfectionist/sort-intersection-types\n admin: DeepUndefinable<FieldBaseClient['admin']> & {\n components?: {\n Cell?: MappedComponent\n Field: MappedComponent\n Filter?: MappedComponent\n } & AdminClient['components']\n } & Pick<\n UIField['admin'],\n 'custom' | 'disableBulkEdit' | 'disableListColumn' | 'position' | 'width'\n >\n} & Omit<DeepUndefinable<FieldBaseClient>, '_isPresentational' | 'admin'> & // still include FieldBaseClient (even if it's undefinable) so that we don't need constant type checks (e.g. if('xy' in field))\n Pick<UIField, 'label' | 'name' | 'type'>\n\ntype SharedUploadProperties = {\n /**\n * Toggle the preview in the admin interface.\n */\n displayPreview?: boolean\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'upload'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n validate?: UploadFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n validate?: UploadFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\ntype SharedUploadPropertiesClient = FieldBaseClient &\n Pick<\n SharedUploadProperties,\n 'hasMany' | 'max' | 'maxDepth' | 'maxRows' | 'min' | 'minRows' | 'type'\n >\n\ntype UploadAdmin = {\n allowCreate?: boolean\n components?: {\n Error?: CustomComponent<\n RelationshipFieldErrorClientComponent | RelationshipFieldErrorServerComponent\n >\n Label?: CustomComponent<\n RelationshipFieldLabelClientComponent | RelationshipFieldLabelServerComponent\n >\n } & Admin['components']\n isSortable?: boolean\n} & Admin\ntype UploadAdminClient = {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n} & AdminClient &\n Pick<UploadAdmin, 'allowCreate' | 'isSortable'>\n\nexport type PolymorphicUploadField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & UploadAdmin\n relationTo: CollectionSlug[]\n} & SharedUploadProperties\n\nexport type PolymorphicUploadFieldClient = {\n admin?: {\n sortOptions?: Pick<PolymorphicUploadField['admin'], 'sortOptions'>\n } & UploadAdminClient\n} & Pick<PolymorphicUploadField, 'displayPreview' | 'maxDepth' | 'relationTo' | 'type'> &\n SharedUploadPropertiesClient\n\nexport type SingleUploadField = {\n admin?: {\n sortOptions?: string\n } & UploadAdmin\n relationTo: CollectionSlug\n} & SharedUploadProperties\n\nexport type SingleUploadFieldClient = {\n admin?: Pick<SingleUploadField['admin'], 'sortOptions'> & UploadAdminClient\n} & Pick<SingleUploadField, 'displayPreview' | 'maxDepth' | 'relationTo' | 'type'> &\n SharedUploadPropertiesClient\n\nexport type UploadField = /* PolymorphicUploadField | */ SingleUploadField\n\nexport type UploadFieldClient = /* PolymorphicUploadFieldClient | */ SingleUploadFieldClient\n\nexport type CodeField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<CodeFieldErrorClientComponent | CodeFieldErrorServerComponent>\n Label?: CustomComponent<CodeFieldLabelClientComponent | CodeFieldLabelServerComponent>\n } & Admin['components']\n editorOptions?: EditorProps['options']\n language?: string\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'code'\n validate?: CodeFieldValidation\n} & Omit<FieldBase, 'admin' | 'validate'>\n\nexport type CodeFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<CodeField['admin'], 'editorOptions' | 'language'>\n} & Omit<FieldBaseClient, 'admin'> &\n Pick<CodeField, 'maxLength' | 'minLength' | 'type'>\n\nexport type JSONField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<JSONFieldErrorClientComponent | JSONFieldErrorServerComponent>\n Label?: CustomComponent<JSONFieldLabelClientComponent | JSONFieldLabelServerComponent>\n } & Admin['components']\n editorOptions?: EditorProps['options']\n } & Admin\n\n jsonSchema?: {\n fileMatch: string[]\n schema: JSONSchema4\n uri: string\n }\n type: 'json'\n validate?: JSONFieldValidation\n} & Omit<FieldBase, 'admin' | 'validate'>\n\nexport type JSONFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<JSONField['admin'], 'editorOptions'>\n} & Omit<FieldBaseClient, 'admin'> &\n Pick<JSONField, 'jsonSchema' | 'type'>\n\nexport type SelectField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<SelectFieldErrorClientComponent | SelectFieldErrorServerComponent>\n Label?: CustomComponent<SelectFieldLabelClientComponent | SelectFieldLabelServerComponent>\n } & Admin['components']\n isClearable?: boolean\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n} & (\n | {\n hasMany: true\n validate?: SelectFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n validate?: SelectFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\nexport type SelectFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<SelectField['admin'], 'isClearable' | 'isSortable'>\n} & FieldBaseClient &\n Pick<SelectField, 'hasMany' | 'options' | 'type'>\n\ntype SharedRelationshipProperties = {\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n validate?: RelationshipFieldManyValidation\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n validate?: RelationshipFieldSingleValidation\n }\n) &\n Omit<FieldBase, 'validate'>\n\ntype SharedRelationshipPropertiesClient = FieldBaseClient &\n Pick<\n SharedRelationshipProperties,\n 'hasMany' | 'max' | 'maxDepth' | 'maxRows' | 'min' | 'minRows' | 'type'\n >\n\ntype RelationshipAdmin = {\n allowCreate?: boolean\n allowEdit?: boolean\n components?: {\n Error?: CustomComponent<\n RelationshipFieldErrorClientComponent | RelationshipFieldErrorServerComponent\n >\n Label?: CustomComponent<\n RelationshipFieldLabelClientComponent | RelationshipFieldLabelServerComponent\n >\n } & Admin['components']\n isSortable?: boolean\n} & Admin\n\ntype RelationshipAdminClient = {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n} & AdminClient &\n Pick<RelationshipAdmin, 'allowCreate' | 'allowEdit' | 'isSortable'>\n\nexport type PolymorphicRelationshipField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & RelationshipAdmin\n relationTo: CollectionSlug[]\n} & SharedRelationshipProperties\n\nexport type PolymorphicRelationshipFieldClient = {\n admin?: {\n sortOptions?: Pick<PolymorphicRelationshipField['admin'], 'sortOptions'>\n } & RelationshipAdminClient\n} & Pick<PolymorphicRelationshipField, 'relationTo'> &\n SharedRelationshipPropertiesClient\n\nexport type SingleRelationshipField = {\n admin?: {\n sortOptions?: string\n } & RelationshipAdmin\n relationTo: CollectionSlug\n} & SharedRelationshipProperties\n\nexport type SingleRelationshipFieldClient = {\n admin?: Partial<Pick<SingleRelationshipField['admin'], 'sortOptions'>> & RelationshipAdminClient\n} & Pick<SingleRelationshipField, 'relationTo'> &\n SharedRelationshipPropertiesClient\n\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type RelationshipFieldClient =\n | PolymorphicRelationshipFieldClient\n | SingleRelationshipFieldClient\n\nexport type ValueWithRelation = {\n relationTo: CollectionSlug\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue = RelationshipValueMany | RelationshipValueSingle\n\nexport type RelationshipValueMany = (number | string)[] | ValueWithRelation[]\n\nexport type RelationshipValueSingle = number | string | ValueWithRelation\n\nexport type RichTextField<\n TValue extends object = any,\n TAdapterProps = any,\n TExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: CustomComponent\n Label?: CustomComponent\n } & Admin['components']\n } & Admin\n editor?:\n | RichTextAdapter<TValue, TAdapterProps, TExtraProperties>\n | RichTextAdapterProvider<TValue, TAdapterProps, TExtraProperties>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & FieldBase &\n TExtraProperties\n\nexport type RichTextFieldClient<\n TValue extends object = any,\n TAdapterProps = any,\n TExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n placeholder?: Record<string, string> | string\n } & AdminClient\n richTextComponentMap?: Map<string, any>\n} & FieldBaseClient &\n Pick<RichTextField<TValue, TAdapterProps, TExtraProperties>, 'maxDepth' | 'type'> &\n TExtraProperties\n\nexport type ArrayField = {\n admin?: {\n components?: {\n Error?: CustomComponent<ArrayFieldErrorClientComponent | ArrayFieldErrorServerComponent>\n Label?: CustomComponent<ArrayFieldLabelClientComponent | ArrayFieldLabelServerComponent>\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n validate?: ArrayFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type ArrayFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n RowLabel?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<ArrayField['admin'], 'initCollapsed' | 'isSortable'>\n fields: ClientField[]\n labels?: LabelsClient\n} & FieldBaseClient &\n Pick<ArrayField, 'interfaceName' | 'maxRows' | 'minRows' | 'type'>\n\nexport type RadioField = {\n admin?: {\n components?: {\n Error?: CustomComponent<RadioFieldErrorClientComponent | RadioFieldErrorServerComponent>\n Label?: CustomComponent<RadioFieldLabelClientComponent | RadioFieldLabelServerComponent>\n } & Admin['components']\n layout?: 'horizontal' | 'vertical'\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n validate?: RadioFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type RadioFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<RadioField['admin'], 'layout'>\n} & FieldBaseClient &\n Pick<RadioField, 'options' | 'type'>\n\nexport type Block = {\n /**\n * Do not set this property manually. This is set to true during sanitization, to avoid\n * sanitizing the same block multiple times.\n */\n _sanitized?: boolean\n admin?: {\n components?: {\n Label?: PayloadComponent<\n never,\n {\n blockKind: 'block' | 'lexicalBlock' | 'lexicalInlineBlock' | string\n /**\n * May contain the formData\n */\n formData: Record<string, any>\n }\n >\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\nexport type ClientBlock = {\n admin?: {\n components?: {\n Label?: MappedComponent\n }\n } & Pick<Block['admin'], 'custom'>\n fields: ClientField[]\n labels?: LabelsClient\n} & Pick<Block, 'imageAltText' | 'imageURL' | 'slug'>\n\nexport type BlocksField = {\n admin?: {\n components?: {\n Error?: CustomComponent<BlocksFieldErrorClientComponent | BlocksFieldErrorServerComponent>\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n validate?: BlocksFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type BlocksFieldClient = {\n admin?: {\n components?: {\n Error?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<BlocksField['admin'], 'initCollapsed' | 'isSortable'>\n blocks: ClientBlock[]\n labels?: LabelsClient\n} & FieldBaseClient &\n Pick<BlocksField, 'maxRows' | 'minRows' | 'type'>\n\nexport type PointField = {\n admin?: {\n components?: {\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n Error?: CustomComponent<PointFieldErrorClientComponent | PointFieldErrorServerComponent>\n Label?: CustomComponent<PointFieldLabelClientComponent | PointFieldLabelServerComponent>\n } & Admin['components']\n placeholder?: Record<string, string> | string\n step?: number\n } & Admin\n type: 'point'\n validate?: PointFieldValidation\n} & Omit<FieldBase, 'validate'>\n\nexport type PointFieldClient = {\n admin?: {\n components?: {\n afterInput?: MappedComponent[]\n beforeInput?: MappedComponent[]\n Error?: MappedComponent\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<PointField['admin'], 'placeholder' | 'step'>\n} & FieldBaseClient &\n Pick<PointField, 'type'>\n\n/**\n * A virtual field that loads in related collections by querying a relationship or upload field.\n */\nexport type JoinField = {\n access?: {\n create?: never\n read?: FieldAccess\n update?: never\n }\n admin?: {\n components?: {\n Error?: CustomComponent<JoinFieldErrorClientComponent | JoinFieldErrorServerComponent>\n Label?: CustomComponent<JoinFieldLabelClientComponent | JoinFieldLabelServerComponent>\n } & Admin['components']\n disableBulkEdit?: never\n readOnly?: never\n } & Admin\n /**\n * The slug of the collection to relate with.\n */\n collection: CollectionSlug\n defaultLimit?: number\n defaultSort?: Sort\n defaultValue?: never\n /**\n * This does not need to be set and will be overridden by the relationship field's hasMany property.\n */\n hasMany?: boolean\n hidden?: false\n index?: never\n /**\n * This does not need to be set and will be overridden by the relationship field's localized property.\n */\n localized?: boolean\n maxDepth?: number\n /**\n * A string for the field in the collection being joined to.\n */\n on: string\n type: 'join'\n validate?: never\n} & FieldBase\n\nexport type JoinFieldClient = {\n admin?: {\n components?: {\n Label?: MappedComponent\n } & AdminClient['components']\n } & AdminClient &\n Pick<JoinField['admin'], 'disableBulkEdit' | 'readOnly'>\n} & FieldBaseClient &\n Pick<JoinField, 'collection' | 'index' | 'maxDepth' | 'on' | 'type'>\n\nexport type Field =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JoinField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextareaField\n | TextField\n | UIField\n | UploadField\n\nexport type ClientField =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | CollapsibleFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JoinFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | RowFieldClient\n | SelectFieldClient\n | TabsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UIFieldClient\n | UploadFieldClient\n\nexport type ClientFieldProps =\n | ArrayFieldClientProps\n | BlocksFieldClientProps\n | CheckboxFieldClientProps\n | CodeFieldClientProps\n | CollapsibleFieldClientProps\n | DateFieldClientProps\n | EmailFieldClientProps\n | GroupFieldClientProps\n | HiddenFieldProps\n | JSONFieldClientProps\n | NumberFieldClientProps\n | PointFieldClientProps\n | RadioFieldClientProps\n | RelationshipFieldClientProps\n | RichTextFieldClientProps\n | RowFieldClientProps\n | SelectFieldClientProps\n | TabsFieldClientProps\n | TextareaFieldClientProps\n | UploadFieldClientProps\n\ntype ExtractFieldTypes<T> = T extends { type: infer U } ? U : never\n\nexport type FieldTypes = ExtractFieldTypes<Field>\n\nexport type FieldAffectingData =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JoinField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextareaField\n | TextField\n | UploadField\n\nexport type FieldAffectingDataClient =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JoinFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | SelectFieldClient\n | TabAsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UploadFieldClient\n\nexport type NonPresentationalField =\n | ArrayField\n | BlocksField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextareaField\n | TextField\n | UploadField\n\nexport type NonPresentationalFieldClient =\n | ArrayFieldClient\n | BlocksFieldClient\n | CheckboxFieldClient\n | CodeFieldClient\n | CollapsibleFieldClient\n | DateFieldClient\n | EmailFieldClient\n | GroupFieldClient\n | JSONFieldClient\n | NumberFieldClient\n | PointFieldClient\n | RadioFieldClient\n | RelationshipFieldClient\n | RichTextFieldClient\n | RowFieldClient\n | SelectFieldClient\n | TabsFieldClient\n | TextareaFieldClient\n | TextFieldClient\n | UploadFieldClient\n\nexport type FieldWithPath = {\n path?: string\n} & Field\n\nexport type FieldWithPathClient = {\n path?: string\n} & ClientField\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldWithSubFieldsClient =\n | ArrayFieldClient\n | CollapsibleFieldClient\n | GroupFieldClient\n | RowFieldClient\n\nexport type FieldPresentationalOnly = UIField\nexport type FieldPresentationalOnlyClient = UIFieldClient\n\nexport type FieldWithMany = RelationshipField | SelectField\nexport type FieldWithManyClient = RelationshipFieldClient | SelectFieldClient\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\nexport type FieldWithMaxDepthClient = JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n\nexport function fieldHasSubFields<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithSubFieldsClient : FieldWithSubFields) {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? ArrayFieldClient : ArrayField) {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? BlocksFieldClient : BlocksField) {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? GroupFieldClient : GroupField) {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithManyClient : FieldWithMany) {\n return field.type === 'select' || field.type === 'relationship' || field.type === 'upload'\n}\n\nexport function fieldHasMaxDepth<TField extends ClientField | Field>(\n field: TField,\n): field is TField & (TField extends ClientField ? FieldWithMaxDepthClient : FieldWithMaxDepth) {\n return (\n (field.type === 'upload' || field.type === 'relationship' || field.type === 'join') &&\n typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly<\n TField extends ClientField | Field | TabAsField | TabAsFieldClient,\n>(\n field: TField,\n): field is TField & (TField extends ClientField | TabAsFieldClient ? UIFieldClient : UIField) {\n return field.type === 'ui'\n}\n\nexport function fieldIsSidebar<TField extends ClientField | Field | TabAsField | TabAsFieldClient>(\n field: TField,\n): field is { admin: { position: 'sidebar' } } & TField {\n return 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar'\n}\n\nexport function fieldAffectsData<\n TField extends ClientField | Field | TabAsField | TabAsFieldClient,\n>(\n field: TField,\n): field is TField &\n (TField extends ClientField | TabAsFieldClient ? FieldAffectingDataClient : FieldAffectingData) {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName<TField extends ClientTab | Tab>(tab: TField): tab is NamedTab & TField {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport function fieldIsVirtual(field: Field | Tab): boolean {\n return 'virtual' in field && field.virtual\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldIsSidebar","admin","position","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized","fieldIsVirtual","virtual"],"mappings":"AAAA,qDAAqD,GAsqCrD,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AAgeA,OAAO,SAASC,kBACdC,KAAa;IAEb,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBACdF,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBACdH,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBACdJ,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBACdZ,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,kBAAkBD,MAAMC,IAAI,KAAK;AACpF;AAEA,OAAO,SAASY,iBACdb,KAAa;IAEb,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,kBAAkBD,MAAMC,IAAI,KAAK,MAAK,KACjF,OAAOD,MAAMc,QAAQ,KAAK;AAE9B;AAEA,OAAO,SAASC,0BAGdf,KAAa;IAEb,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,eACdhB,KAAa;IAEb,OAAO,WAAWA,SAAS,cAAcA,MAAMiB,KAAK,IAAIjB,MAAMiB,KAAK,CAACC,QAAQ,KAAK;AACnF;AAEA,OAAO,SAASC,iBAGdnB,KAAa;IAGb,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASoB,WAA2CC,GAAW;IACpE,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBtB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMuB,SAAS;AAChD;AAEA,OAAO,SAASC,eAAexB,KAAkB;IAC/C,OAAO,aAAaA,SAASA,MAAMyB,OAAO;AAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAO/D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAChE,IAAI,KACT,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAO/D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAChE,IAAI,KACT,OAAO,CAAC,CAAC,CAiJX,CAAA"}
|
|
@@ -51,6 +51,7 @@ export const findOneOperation = async (args)=>{
|
|
|
51
51
|
// swallow error
|
|
52
52
|
}
|
|
53
53
|
doc._isLocked = !!lockStatus;
|
|
54
|
+
doc._lastEditedAt = lockStatus?.updatedAt ?? null;
|
|
54
55
|
doc._userEditing = lockStatus?.user?.value ?? null;
|
|
55
56
|
}
|
|
56
57
|
// /////////////////////////////////////
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\ntype Args = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n includeLockStatus?: boolean\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: Args,\n): Promise<T> => {\n const {\n slug,\n depth,\n draft: draftEnabled = false,\n globalConfig,\n includeLockStatus,\n overrideAccess = false,\n req: { fallbackLocale, locale },\n req,\n showHiddenFields,\n } = args\n\n try {\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, globalConfig.access.read)\n }\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let doc = await req.payload.db.findGlobal({\n slug,\n locale,\n req,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n if (!doc) {\n doc = {}\n }\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n\n if (includeLockStatus && slug) {\n let lockStatus = null\n\n try {\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n pagination: false,\n req,\n where: {\n globalSlug: {\n equals: slug,\n },\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]\n }\n } catch {\n // swallow error\n }\n\n doc._isLocked = !!lockStatus\n doc._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (globalConfig.versions?.drafts && draftEnabled) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc,\n draft: draftEnabled,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterRead","killTransaction","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","draft","draftEnabled","globalConfig","includeLockStatus","overrideAccess","req","fallbackLocale","locale","showHiddenFields","accessResult","access","read","doc","payload","db","findGlobal","where","undefined","lockStatus","lockedDocument","find","collection","limit","pagination","globalSlug","equals","docs","length","_isLocked","_userEditing","user","value","versions","drafts","entity","entityType","hooks","beforeRead","reduce","priorHook","hook","context","global","Promise","resolve","error"],"mappings":"AAIA,OAAOA,mBAAmB,8BAA6B;AACvD,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,OAAOC,iCAAiC,uDAAsD;AAa9F,OAAO,MAAMC,mBAAmB,OAC9BC;IAEA,MAAM,EACJC,IAAI,EACJC,KAAK,EACLC,OAAOC,eAAe,KAAK,EAC3BC,YAAY,EACZC,iBAAiB,EACjBC,iBAAiB,KAAK,EACtBC,KAAK,EAAEC,cAAc,EAAEC,MAAM,EAAE,EAC/BF,GAAG,EACHG,gBAAgB,EACjB,GAAGX;IAEJ,IAAI;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExC,IAAIY;QAEJ,IAAI,CAACL,gBAAgB;YACnBK,eAAe,MAAMjB,cAAc;gBAAEa;YAAI,GAAGH,aAAaQ,MAAM,CAACC,IAAI;QACtE;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,IAAIC,MAAM,MAAMP,IAAIQ,OAAO,CAACC,EAAE,CAACC,UAAU,CAAC;YACxCjB;YACAS;YACAF;YACAW,OAAOZ,iBAAiBa,YAAaR;QACvC;QACA,IAAI,CAACG,KAAK;YACRA,MAAM,CAAC;QACT;QAEA,wCAAwC;QACxC,kCAAkC;QAClC,wCAAwC;QAExC,IAAIT,qBAAqBL,MAAM;YAC7B,IAAIoB,aAAa;YAEjB,IAAI;gBACF,MAAMC,iBAAiB,MAAMd,IAAIQ,OAAO,CAACO,IAAI,CAAC;oBAC5CC,YAAY;oBACZtB,OAAO;oBACPuB,OAAO;oBACPC,YAAY;oBACZlB;oBACAW,OAAO;wBACLQ,YAAY;4BACVC,QAAQ3B;wBACV;oBACF;gBACF;gBAEA,IAAIqB,kBAAkBA,eAAeO,IAAI,CAACC,MAAM,GAAG,GAAG;oBACpDT,aAAaC,eAAeO,IAAI,CAAC,EAAE;gBACrC;YACF,EAAE,OAAM;YACN,gBAAgB;YAClB;YAEAd,IAAIgB,SAAS,GAAG,CAAC,CAACV;YAClBN,IAAIiB,
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\ntype Args = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n includeLockStatus?: boolean\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: Args,\n): Promise<T> => {\n const {\n slug,\n depth,\n draft: draftEnabled = false,\n globalConfig,\n includeLockStatus,\n overrideAccess = false,\n req: { fallbackLocale, locale },\n req,\n showHiddenFields,\n } = args\n\n try {\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, globalConfig.access.read)\n }\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let doc = await req.payload.db.findGlobal({\n slug,\n locale,\n req,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n if (!doc) {\n doc = {}\n }\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n\n if (includeLockStatus && slug) {\n let lockStatus = null\n\n try {\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n pagination: false,\n req,\n where: {\n globalSlug: {\n equals: slug,\n },\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]\n }\n } catch {\n // swallow error\n }\n\n doc._isLocked = !!lockStatus\n doc._lastEditedAt = lockStatus?.updatedAt ?? null\n doc._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (globalConfig.versions?.drafts && draftEnabled) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc,\n draft: draftEnabled,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterRead","killTransaction","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","draft","draftEnabled","globalConfig","includeLockStatus","overrideAccess","req","fallbackLocale","locale","showHiddenFields","accessResult","access","read","doc","payload","db","findGlobal","where","undefined","lockStatus","lockedDocument","find","collection","limit","pagination","globalSlug","equals","docs","length","_isLocked","_lastEditedAt","updatedAt","_userEditing","user","value","versions","drafts","entity","entityType","hooks","beforeRead","reduce","priorHook","hook","context","global","Promise","resolve","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,qHAWrB,IAAI,KAAG,OAAO,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,qHAWrB,IAAI,KAAG,OAAO,CAAC,UAAU,CA0K3B,CAAA"}
|
|
@@ -49,6 +49,8 @@ export const saveVersion = async ({ id, autosave, collection, docWithLocales: do
|
|
|
49
49
|
createNewVersion = false;
|
|
50
50
|
const data = {
|
|
51
51
|
createdAt: new Date(latestVersion.createdAt).toISOString(),
|
|
52
|
+
latest: true,
|
|
53
|
+
parent: id,
|
|
52
54
|
updatedAt: now,
|
|
53
55
|
version: {
|
|
54
56
|
...versionData
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n publishSpecificLocale?: string\n req?: PayloadRequest\n snapshot?: any\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n publishSpecificLocale,\n req,\n snapshot,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObjectSimple(doc)\n if (draft) {\n versionData._status = 'draft'\n }\n if (versionData._id) {\n delete versionData._id\n }\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n limit: 1,\n pagination: false,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: now,\n version: {\n ...versionData,\n },\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined,\n createdAt: now,\n globalSlug: undefined,\n parent: collection ? id : undefined,\n publishedLocale: publishSpecificLocale || undefined,\n req,\n updatedAt: now,\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs)\n }\n\n if (publishSpecificLocale && snapshot) {\n const snapshotData = deepCopyObjectSimple(snapshot)\n if (snapshotData._id) {\n delete snapshotData._id\n }\n\n snapshotData._status = 'draft'\n\n const snapshotDate = new Date().toISOString()\n\n const updatedArgs = {\n ...createVersionArgs,\n createdAt: snapshotDate,\n snapshot: true,\n updatedAt: snapshotDate,\n versionData: snapshotData,\n } as any\n\n if (collection) {\n await payload.db.createVersion(updatedArgs)\n }\n if (global) {\n await payload.db.createGlobalVersion(updatedArgs)\n }\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n }\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number') {\n max = collection.versions.maxPerDoc\n }\n if (global && typeof global.versions.max === 'number') {\n max = global.versions.max\n }\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","publishSpecificLocale","req","snapshot","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersionArgs","Boolean","collectionSlug","undefined","globalSlug","publishedLocale","createVersion","createGlobalVersion","snapshotData","snapshotDate","updatedArgs","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"AAKA,SAASA,oBAAoB,QAAQ,cAAa;AAClD,OAAOC,4BAA4B,yCAAwC;AAC3E,SAASC,kBAAkB,QAAQ,0BAAyB;AAe5D,OAAO,MAAMC,cAAc,OAAO,EAChCC,EAAE,EACFC,QAAQ,EACRC,UAAU,EACVC,gBAAgBC,GAAG,EACnBC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,qBAAqB,EACrBC,GAAG,EACHC,QAAQ,EACH;IACL,IAAIC;IACJ,IAAIC,mBAAmB;IACvB,MAAMC,MAAM,IAAIC,OAAOC,WAAW;IAClC,MAAMC,cAAcpB,qBAAqBQ;IACzC,IAAIC,OAAO;QACTW,YAAYC,OAAO,GAAG;IACxB;IACA,IAAID,YAAYE,GAAG,EAAE;QACnB,OAAOF,YAAYE,GAAG;IACxB;IAEA,IAAI;QACF,IAAIjB,UAAU;YACZ,IAAIkB;YACJ,MAAMC,kBAAkB;gBACtBC,OAAO;gBACPC,YAAY;gBACZb;gBACAc,MAAM;YACR;YACA,IAAIrB,YAAY;gBACZ,CAAA,EAAEiB,IAAI,EAAE,GAAG,MAAMZ,QAAQiB,EAAE,CAACC,YAAY,CAAC;oBACzC,GAAGL,eAAe;oBAClBlB,YAAYA,WAAWwB,IAAI;oBAC3BL,OAAO;oBACPC,YAAY;oBACZb;oBACAkB,OAAO;wBACLC,QAAQ;4BACNC,QAAQ7B;wBACV;oBACF;gBACF,EAAC;YACH,OAAO;gBACH,CAAA,EAAEmB,IAAI,EAAE,GAAG,MAAMZ,QAAQiB,EAAE,CAACM,kBAAkB,CAAC;oBAC/C,GAAGV,eAAe;oBAClBd,QAAQA,OAAOoB,IAAI;oBACnBL,OAAO;oBACPC,YAAY;oBACZb;gBACF,EAAC;YACH;YACA,MAAM,CAACsB,cAAc,GAAGZ;YAExB,uDAAuD;YACvD,IAAIY,eAAe9B,aAAa,MAAM;gBACpCW,mBAAmB;gBAEnB,MAAMoB,OAAgC;oBACpCC,WAAW,IAAInB,KAAKiB,cAAcE,SAAS,EAAElB,WAAW;oBACxDmB,
|
|
1
|
+
{"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n publishSpecificLocale?: string\n req?: PayloadRequest\n snapshot?: any\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n publishSpecificLocale,\n req,\n snapshot,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObjectSimple(doc)\n if (draft) {\n versionData._status = 'draft'\n }\n if (versionData._id) {\n delete versionData._id\n }\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n limit: 1,\n pagination: false,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n latest: true,\n parent: id,\n updatedAt: now,\n version: {\n ...versionData,\n },\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined,\n createdAt: now,\n globalSlug: undefined,\n parent: collection ? id : undefined,\n publishedLocale: publishSpecificLocale || undefined,\n req,\n updatedAt: now,\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs)\n }\n\n if (publishSpecificLocale && snapshot) {\n const snapshotData = deepCopyObjectSimple(snapshot)\n if (snapshotData._id) {\n delete snapshotData._id\n }\n\n snapshotData._status = 'draft'\n\n const snapshotDate = new Date().toISOString()\n\n const updatedArgs = {\n ...createVersionArgs,\n createdAt: snapshotDate,\n snapshot: true,\n updatedAt: snapshotDate,\n versionData: snapshotData,\n } as any\n\n if (collection) {\n await payload.db.createVersion(updatedArgs)\n }\n if (global) {\n await payload.db.createGlobalVersion(updatedArgs)\n }\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n }\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number') {\n max = collection.versions.maxPerDoc\n }\n if (global && typeof global.versions.max === 'number') {\n max = global.versions.max\n }\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","publishSpecificLocale","req","snapshot","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","latest","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersionArgs","Boolean","collectionSlug","undefined","globalSlug","publishedLocale","createVersion","createGlobalVersion","snapshotData","snapshotDate","updatedArgs","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.120",
|
|
4
4
|
"description": "Node, React, Headless CMS and Application Framework built on Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"admin panel",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"ts-essentials": "10.0.2",
|
|
96
96
|
"tsx": "4.19.1",
|
|
97
97
|
"uuid": "10.0.0",
|
|
98
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
98
|
+
"@payloadcms/translations": "3.0.0-beta.120"
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@hyrious/esbuild-plugin-commonjs": "^0.2.4",
|