payload 3.0.0-beta.11 → 3.0.0-beta.13

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.
Files changed (154) hide show
  1. package/dist/auth/cookies.d.ts +16 -4
  2. package/dist/auth/cookies.d.ts.map +1 -1
  3. package/dist/auth/cookies.js +45 -14
  4. package/dist/auth/cookies.js.map +1 -1
  5. package/dist/auth/operations/forgotPassword.js +3 -3
  6. package/dist/auth/operations/forgotPassword.js.map +1 -1
  7. package/dist/auth/operations/login.d.ts.map +1 -1
  8. package/dist/auth/operations/login.js +17 -1
  9. package/dist/auth/operations/login.js.map +1 -1
  10. package/dist/auth/sendVerificationEmail.d.ts +5 -6
  11. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  12. package/dist/auth/sendVerificationEmail.js +4 -5
  13. package/dist/auth/sendVerificationEmail.js.map +1 -1
  14. package/dist/collections/config/client.d.ts +4 -1
  15. package/dist/collections/config/client.d.ts.map +1 -1
  16. package/dist/collections/config/client.js +2 -1
  17. package/dist/collections/config/client.js.map +1 -1
  18. package/dist/collections/config/defaults.d.ts +1 -0
  19. package/dist/collections/config/defaults.d.ts.map +1 -1
  20. package/dist/collections/config/defaults.js +1 -0
  21. package/dist/collections/config/defaults.js.map +1 -1
  22. package/dist/collections/config/schema.d.ts.map +1 -1
  23. package/dist/collections/config/schema.js +1 -0
  24. package/dist/collections/config/schema.js.map +1 -1
  25. package/dist/collections/config/types.d.ts +5 -2
  26. package/dist/collections/config/types.d.ts.map +1 -1
  27. package/dist/collections/config/types.js.map +1 -1
  28. package/dist/collections/operations/count.d.ts +13 -0
  29. package/dist/collections/operations/count.d.ts.map +1 -0
  30. package/dist/collections/operations/count.js +75 -0
  31. package/dist/collections/operations/count.js.map +1 -0
  32. package/dist/collections/operations/create.d.ts.map +1 -1
  33. package/dist/collections/operations/create.js +3 -4
  34. package/dist/collections/operations/create.js.map +1 -1
  35. package/dist/collections/operations/local/count.d.ts +20 -0
  36. package/dist/collections/operations/local/count.d.ts.map +1 -0
  37. package/dist/collections/operations/local/count.js +19 -0
  38. package/dist/collections/operations/local/count.js.map +1 -0
  39. package/dist/collections/operations/local/index.d.ts +2 -0
  40. package/dist/collections/operations/local/index.d.ts.map +1 -1
  41. package/dist/collections/operations/local/index.js +2 -0
  42. package/dist/collections/operations/local/index.js.map +1 -1
  43. package/dist/collections/operations/update.d.ts.map +1 -1
  44. package/dist/collections/operations/update.js +2 -2
  45. package/dist/collections/operations/update.js.map +1 -1
  46. package/dist/collections/operations/updateByID.js +1 -1
  47. package/dist/collections/operations/updateByID.js.map +1 -1
  48. package/dist/collections/operations/utils.d.ts +6 -0
  49. package/dist/collections/operations/utils.d.ts.map +1 -1
  50. package/dist/collections/operations/utils.js.map +1 -1
  51. package/dist/config/client.d.ts +2 -1
  52. package/dist/config/client.d.ts.map +1 -1
  53. package/dist/config/client.js +2 -1
  54. package/dist/config/client.js.map +1 -1
  55. package/dist/config/defaults.d.ts.map +1 -1
  56. package/dist/config/defaults.js +1 -0
  57. package/dist/config/defaults.js.map +1 -1
  58. package/dist/config/schema.d.ts.map +1 -1
  59. package/dist/config/schema.js +1 -0
  60. package/dist/config/schema.js.map +1 -1
  61. package/dist/config/types.d.ts +7 -36
  62. package/dist/config/types.d.ts.map +1 -1
  63. package/dist/config/types.js +0 -12
  64. package/dist/config/types.js.map +1 -1
  65. package/dist/database/types.d.ts +10 -0
  66. package/dist/database/types.d.ts.map +1 -1
  67. package/dist/database/types.js.map +1 -1
  68. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  69. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  70. package/dist/email/consoleEmailAdapter.js +16 -0
  71. package/dist/email/consoleEmailAdapter.js.map +1 -0
  72. package/dist/email/defaults.d.ts +2 -2
  73. package/dist/email/defaults.d.ts.map +1 -1
  74. package/dist/email/defaults.js +3 -3
  75. package/dist/email/defaults.js.map +1 -1
  76. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  77. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  78. package/dist/email/getStringifiedToAddress.js +20 -0
  79. package/dist/email/getStringifiedToAddress.js.map +1 -0
  80. package/dist/email/sendEmail.d.ts +3 -2
  81. package/dist/email/sendEmail.d.ts.map +1 -1
  82. package/dist/email/sendEmail.js +8 -4
  83. package/dist/email/sendEmail.js.map +1 -1
  84. package/dist/email/types.d.ts +25 -18
  85. package/dist/email/types.d.ts.map +1 -1
  86. package/dist/email/types.js +5 -1
  87. package/dist/email/types.js.map +1 -1
  88. package/dist/exports/database.d.ts +1 -1
  89. package/dist/exports/database.d.ts.map +1 -1
  90. package/dist/exports/database.js.map +1 -1
  91. package/dist/exports/node.d.ts +3 -0
  92. package/dist/exports/node.d.ts.map +1 -1
  93. package/dist/exports/node.js +3 -1
  94. package/dist/exports/node.js.map +1 -1
  95. package/dist/exports/operations.d.ts +1 -0
  96. package/dist/exports/operations.d.ts.map +1 -1
  97. package/dist/exports/operations.js +1 -0
  98. package/dist/exports/operations.js.map +1 -1
  99. package/dist/exports/types.d.ts +1 -0
  100. package/dist/exports/types.d.ts.map +1 -1
  101. package/dist/exports/types.js.map +1 -1
  102. package/dist/exports/utilities.d.ts +3 -0
  103. package/dist/exports/utilities.d.ts.map +1 -1
  104. package/dist/exports/utilities.js +3 -1
  105. package/dist/exports/utilities.js.map +1 -1
  106. package/dist/fields/config/client.d.ts +26 -1
  107. package/dist/fields/config/client.d.ts.map +1 -1
  108. package/dist/fields/config/client.js +2 -1
  109. package/dist/fields/config/client.js.map +1 -1
  110. package/dist/fields/config/schema.d.ts.map +1 -1
  111. package/dist/fields/config/schema.js +7 -1
  112. package/dist/fields/config/schema.js.map +1 -1
  113. package/dist/fields/config/types.d.ts +12 -3
  114. package/dist/fields/config/types.d.ts.map +1 -1
  115. package/dist/fields/config/types.js.map +1 -1
  116. package/dist/fields/validations.d.ts +2 -0
  117. package/dist/fields/validations.d.ts.map +1 -1
  118. package/dist/fields/validations.js +44 -1
  119. package/dist/fields/validations.js.map +1 -1
  120. package/dist/globals/config/client.d.ts +1 -1
  121. package/dist/globals/config/client.d.ts.map +1 -1
  122. package/dist/globals/config/client.js +2 -1
  123. package/dist/globals/config/client.js.map +1 -1
  124. package/dist/globals/config/schema.d.ts.map +1 -1
  125. package/dist/globals/config/schema.js +1 -0
  126. package/dist/globals/config/schema.js.map +1 -1
  127. package/dist/globals/config/types.d.ts +3 -1
  128. package/dist/globals/config/types.d.ts.map +1 -1
  129. package/dist/globals/config/types.js.map +1 -1
  130. package/dist/index.d.ts +13 -6
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +25 -13
  133. package/dist/index.js.map +1 -1
  134. package/dist/uploads/getExternalFile.d.ts +1 -1
  135. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  136. package/dist/uploads/getExternalFile.js +1 -1
  137. package/dist/uploads/getExternalFile.js.map +1 -1
  138. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  139. package/dist/utilities/importWithoutClientFiles.js +8 -5
  140. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  141. package/dist/utilities/telemetry/index.d.ts +3 -0
  142. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  143. package/dist/utilities/telemetry/index.js +32 -6
  144. package/dist/utilities/telemetry/index.js.map +1 -1
  145. package/package.json +5 -5
  146. package/dist/email/build.d.ts +0 -5
  147. package/dist/email/build.d.ts.map +0 -1
  148. package/dist/email/build.js +0 -63
  149. package/dist/email/build.js.map +0 -1
  150. package/dist/email/mockHandler.d.ts +0 -5
  151. package/dist/email/mockHandler.d.ts.map +0 -1
  152. package/dist/email/mockHandler.js +0 -24
  153. package/dist/email/mockHandler.js.map +0 -1
  154. package/src/index.ts +0 -499
@@ -1,3 +1,4 @@
1
+ import count from './count.js';
1
2
  import create from './create.js';
2
3
  import deleteLocal from './delete.js';
3
4
  import { duplicate } from './duplicate.js';
@@ -16,6 +17,7 @@ declare const _default: {
16
17
  unlock: typeof import("../../../auth/operations/local/unlock.js").default;
17
18
  verifyEmail: typeof import("../../../auth/operations/local/verifyEmail.js").default;
18
19
  };
20
+ count: typeof count;
19
21
  create: typeof create;
20
22
  deleteLocal: typeof deleteLocal;
21
23
  duplicate: typeof duplicate;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,WAAW,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAClD,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAChD,OAAO,MAAM,MAAM,aAAa,CAAA;;;;;;;;;;;;;;;;;;;;AAEhC,wBAWC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,WAAW,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAClD,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAChD,OAAO,MAAM,MAAM,aAAa,CAAA;;;;;;;;;;;;;;;;;;;;;AAEhC,wBAYC"}
@@ -1,4 +1,5 @@
1
1
  import auth from '../../../auth/operations/local/index.js';
2
+ import count from './count.js';
2
3
  import create from './create.js';
3
4
  import deleteLocal from './delete.js';
4
5
  import { duplicate } from './duplicate.js';
@@ -10,6 +11,7 @@ import restoreVersion from './restoreVersion.js';
10
11
  import update from './update.js';
11
12
  export default {
12
13
  auth,
14
+ count,
13
15
  create,
14
16
  deleteLocal,
15
17
  duplicate,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/local/index.ts"],"sourcesContent":["import auth from '../../../auth/operations/local/index.js'\nimport create from './create.js'\nimport deleteLocal from './delete.js'\nimport { duplicate } from './duplicate.js'\nimport find from './find.js'\nimport findByID from './findByID.js'\nimport findVersionByID from './findVersionByID.js'\nimport findVersions from './findVersions.js'\nimport restoreVersion from './restoreVersion.js'\nimport update from './update.js'\n\nexport default {\n auth,\n create,\n deleteLocal,\n duplicate,\n find,\n findByID,\n findVersionByID,\n findVersions,\n restoreVersion,\n update,\n}\n"],"names":["auth","create","deleteLocal","duplicate","find","findByID","findVersionByID","findVersions","restoreVersion","update"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,UAAU,0CAAyC;AAC1D,OAAOC,YAAY,cAAa;AAChC,OAAOC,iBAAiB,cAAa;AACrC,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,OAAOC,UAAU,YAAW;AAC5B,OAAOC,cAAc,gBAAe;AACpC,OAAOC,qBAAqB,uBAAsB;AAClD,OAAOC,kBAAkB,oBAAmB;AAC5C,OAAOC,oBAAoB,sBAAqB;AAChD,OAAOC,YAAY,cAAa;AAEhC,eAAe;IACbT;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/collections/operations/local/index.ts"],"sourcesContent":["import auth from '../../../auth/operations/local/index.js'\nimport count from './count.js'\nimport create from './create.js'\nimport deleteLocal from './delete.js'\nimport { duplicate } from './duplicate.js'\nimport find from './find.js'\nimport findByID from './findByID.js'\nimport findVersionByID from './findVersionByID.js'\nimport findVersions from './findVersions.js'\nimport restoreVersion from './restoreVersion.js'\nimport update from './update.js'\n\nexport default {\n auth,\n count,\n create,\n deleteLocal,\n duplicate,\n find,\n findByID,\n findVersionByID,\n findVersions,\n restoreVersion,\n update,\n}\n"],"names":["auth","count","create","deleteLocal","duplicate","find","findByID","findVersionByID","findVersions","restoreVersion","update"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,UAAU,0CAAyC;AAC1D,OAAOC,WAAW,aAAY;AAC9B,OAAOC,YAAY,cAAa;AAChC,OAAOC,iBAAiB,cAAa;AACrC,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,OAAOC,UAAU,YAAW;AAC5B,OAAOC,cAAc,gBAAe;AACpC,OAAOC,qBAAqB,uBAAsB;AAClD,OAAOC,kBAAkB,oBAAmB;AAC5C,OAAOC,oBAAoB,sBAAqB;AAChD,OAAOC,YAAY,cAAa;AAEhC,eAAe;IACbV;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAsBnD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,oBAAoB,KAAK,CAAC,CAiXpC,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAsBnD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,oBAAoB,KAAK,CAAC,CAkXpC,CAAA"}
@@ -73,6 +73,7 @@ export const updateOperation = async (incomingArgs)=>{
73
73
  const query = await payload.db.queryDrafts({
74
74
  collection: collectionConfig.slug,
75
75
  locale,
76
+ pagination: false,
76
77
  req,
77
78
  where: versionsWhere
78
79
  });
@@ -188,7 +189,7 @@ export const updateOperation = async (incomingArgs)=>{
188
189
  global: null,
189
190
  operation: 'update',
190
191
  req,
191
- skipValidation: shouldSaveDraft || data._status === 'draft'
192
+ skipValidation: Boolean(collectionConfig.versions?.drafts) && data._status !== 'published'
192
193
  });
193
194
  // /////////////////////////////////////
194
195
  // Update
@@ -213,7 +214,6 @@ export const updateOperation = async (incomingArgs)=>{
213
214
  ...result,
214
215
  createdAt: doc.createdAt
215
216
  },
216
- draft: shouldSaveDraft,
217
217
  payload,
218
218
  req
219
219
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { BulkOperationResult, Collection } from '../config/types.js'\nimport type { CreateUpdateType } from './create.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<T extends CreateUpdateType> = {\n collection: Collection\n data: DeepPartial<T>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const updateOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<BulkOperationResult<TSlug>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\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: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.update)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const fullWhere = combineQueries(where, accessResult)\n\n let docs\n\n if (collectionConfig.versions?.drafts && shouldSaveDraft) {\n const versionsWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(collection.config),\n where: versionsWhere,\n })\n\n const query = await payload.db.queryDrafts<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig.slug,\n locale,\n req,\n where: versionsWhere,\n })\n\n docs = query.docs\n } else {\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit: 0,\n locale,\n pagination: false,\n req,\n where: fullWhere,\n })\n\n docs = query.docs\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data: bulkUpdateData,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const errors = []\n\n const promises = docs.map(async (doc) => {\n const { id } = doc\n let data = {\n ...newFileData,\n ...bulkUpdateData,\n }\n\n try {\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: doc,\n global: null,\n operation: 'update',\n req,\n skipValidation: shouldSaveDraft || data._status === 'draft',\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: result,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n collection: collectionConfig,\n docWithLocales: {\n ...result,\n createdAt: doc.createdAt,\n },\n draft: shouldSaveDraft,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n fallbackLocale: null,\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 req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error) {\n errors.push({\n id,\n message: error.message,\n })\n }\n return null\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'update',\n result,\n })\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","combineQueries","validateQueryPaths","APIError","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","saveVersion","buildAfterOperation","updateOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","draft","draftArg","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","showHiddenFields","where","BAD_REQUEST","data","bulkUpdateData","shouldSaveDraft","Boolean","versions","drafts","accessResult","access","update","fullWhere","docs","versionsWhere","versionFields","query","db","queryDrafts","slug","find","limit","pagination","newFileData","files","filesToUpload","throwOnMissingFile","errors","promises","map","doc","id","originalDoc","global","overrideDelete","upload","disableLocalStorage","result","docWithLocales","skipValidation","_status","updateOne","createdAt","previousDoc","error","push","message","awaitedDocs","all","filter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { BulkOperationResult, Collection } from '../config/types.js'\nimport type { CreateUpdateType } from './create.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<T extends CreateUpdateType> = {\n collection: Collection\n data: DeepPartial<T>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const updateOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<BulkOperationResult<TSlug>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\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: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.update)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const fullWhere = combineQueries(where, accessResult)\n\n let docs\n\n if (collectionConfig.versions?.drafts && shouldSaveDraft) {\n const versionsWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(collection.config),\n where: versionsWhere,\n })\n\n const query = await payload.db.queryDrafts<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig.slug,\n locale,\n pagination: false,\n req,\n where: versionsWhere,\n })\n\n docs = query.docs\n } else {\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit: 0,\n locale,\n pagination: false,\n req,\n where: fullWhere,\n })\n\n docs = query.docs\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data: bulkUpdateData,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const errors = []\n\n const promises = docs.map(async (doc) => {\n const { id } = doc\n let data = {\n ...newFileData,\n ...bulkUpdateData,\n }\n\n try {\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: doc,\n global: null,\n operation: 'update',\n req,\n skipValidation:\n Boolean(collectionConfig.versions?.drafts) && data._status !== 'published',\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: result,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n collection: collectionConfig,\n docWithLocales: {\n ...result,\n createdAt: doc.createdAt,\n },\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n fallbackLocale: null,\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 req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error) {\n errors.push({\n id,\n message: error.message,\n })\n }\n return null\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'update',\n result,\n })\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","combineQueries","validateQueryPaths","APIError","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","saveVersion","buildAfterOperation","updateOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","draft","draftArg","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","showHiddenFields","where","BAD_REQUEST","data","bulkUpdateData","shouldSaveDraft","Boolean","versions","drafts","accessResult","access","update","fullWhere","docs","versionsWhere","versionFields","query","db","queryDrafts","slug","pagination","find","limit","newFileData","files","filesToUpload","throwOnMissingFile","errors","promises","map","doc","id","originalDoc","global","overrideDelete","upload","disableLocalStorage","result","docWithLocales","skipValidation","_status","updateOne","createdAt","previousDoc","error","push","message","awaitedDocs","all","filter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -170,7 +170,7 @@ export const updateByIDOperation = async (incomingArgs)=>{
170
170
  global: null,
171
171
  operation: 'update',
172
172
  req,
173
- skipValidation: shouldSaveDraft || data._status === 'draft'
173
+ skipValidation: Boolean(collectionConfig.versions?.drafts) && data._status !== 'published'
174
174
  });
175
175
  // /////////////////////////////////////
176
176
  // Handle potential password update
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { generatePasswordSaltHash } from '../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<T extends { [field: number | string | symbol]: unknown }> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<T>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const updateByIDOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\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: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n const password = data?.password\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n const shouldSavePassword = Boolean(password && collectionConfig.auth && !shouldSaveDraft)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, data, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n const docWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales && !hasWherePolicy) throw new NotFound(req.t)\n if (!docWithLocales && hasWherePolicy) throw new Forbidden(req.t)\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: docWithLocales,\n fallbackLocale: null,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales,\n global: null,\n operation: 'update',\n req,\n skipValidation: shouldSaveDraft || data._status === 'draft',\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({ password })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: {\n ...result,\n createdAt: docWithLocales.createdAt,\n },\n draft: shouldSaveDraft,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\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 req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n result,\n })\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","generatePasswordSaltHash","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","updateByIDOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","id","autosave","collectionConfig","depth","draft","draftArg","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","showHiddenFields","BAD_REQUEST","data","password","shouldSaveDraft","Boolean","versions","drafts","shouldSavePassword","auth","accessResults","access","update","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","originalDoc","doc","global","newFileData","files","filesToUpload","throwOnMissingFile","overrideDelete","upload","disableLocalStorage","result","skipValidation","_status","dataToUpdate","hash","salt","db","updateOne","createdAt","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { generatePasswordSaltHash } from '../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<T extends { [field: number | string | symbol]: unknown }> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<T>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const updateByIDOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\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: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n const password = data?.password\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n const shouldSavePassword = Boolean(password && collectionConfig.auth && !shouldSaveDraft)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, data, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n const docWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales && !hasWherePolicy) throw new NotFound(req.t)\n if (!docWithLocales && hasWherePolicy) throw new Forbidden(req.t)\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: docWithLocales,\n fallbackLocale: null,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales,\n global: null,\n operation: 'update',\n req,\n skipValidation: Boolean(collectionConfig.versions?.drafts) && data._status !== 'published',\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({ password })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: {\n ...result,\n createdAt: docWithLocales.createdAt,\n },\n draft: shouldSaveDraft,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\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 req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n result,\n })\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","generatePasswordSaltHash","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","updateByIDOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","id","autosave","collectionConfig","depth","draft","draftArg","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","showHiddenFields","BAD_REQUEST","data","password","shouldSaveDraft","Boolean","versions","drafts","shouldSavePassword","auth","accessResults","access","update","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","originalDoc","doc","global","newFileData","files","filesToUpload","throwOnMissingFile","overrideDelete","upload","disableLocalStorage","result","skipValidation","_status","dataToUpdate","hash","salt","db","updateOne","createdAt","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -3,6 +3,7 @@ import type { loginOperation } from '../../auth/operations/login.js';
3
3
  import type { refreshOperation } from '../../auth/operations/refresh.js';
4
4
  import type { PayloadRequest } from '../../types/index.js';
5
5
  import type { SanitizedCollectionConfig, TypeWithID } from '../config/types.js';
6
+ import type { countOperation } from './count.js';
6
7
  import type { createOperation } from './create.js';
7
8
  import type { deleteOperation } from './delete.js';
8
9
  import type { deleteByIDOperation } from './deleteByID.js';
@@ -11,6 +12,7 @@ import type { findByIDOperation } from './findByID.js';
11
12
  import type { updateOperation } from './update.js';
12
13
  import type { updateByIDOperation } from './updateByID.js';
13
14
  export type AfterOperationMap<T extends TypeWithID> = {
15
+ count: typeof countOperation;
14
16
  create: typeof createOperation;
15
17
  delete: typeof deleteOperation;
16
18
  deleteByID: typeof deleteByIDOperation;
@@ -27,6 +29,10 @@ export type AfterOperationArg<T extends TypeWithID> = {
27
29
  collection: SanitizedCollectionConfig;
28
30
  req: PayloadRequest;
29
31
  } & ({
32
+ args: Parameters<AfterOperationMap<T>['count']>[0];
33
+ operation: 'count';
34
+ result: Awaited<ReturnType<AfterOperationMap<T>['count']>>;
35
+ } | {
30
36
  args: Parameters<AfterOperationMap<T>['create']>[0];
31
37
  operation: 'create';
32
38
  result: Awaited<ReturnType<AfterOperationMap<T>['create']>>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAsB,yBAAyB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI;IACpD,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,UAAU,EAAE,OAAO,mBAAmB,CAAA;IACtC,IAAI,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAA;IAC7B,QAAQ,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACrC,cAAc,EAAE,OAAO,uBAAuB,CAAA;IAC9C,KAAK,EAAE,OAAO,cAAc,CAAA;IAC5B,OAAO,EAAE,OAAO,gBAAgB,CAAA;IAChC,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,UAAU,EAAE,OAAO,mBAAmB,CAAA;CACvC,CAAA;AACD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI;IACpD,qDAAqD;IACrD,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,CACA;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC5D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC5D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;CAChE,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAC1D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;CAC9D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,SAAS,EAAE,gBAAgB,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACpE,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAC3D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;CAC7D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,QAAQ,CAAA;IACnB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC5D,GACD;IACE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;CAChE,CACJ,CAAA;AAID,eAAO,MAAM,mBAAmB,iHAIf,KAAK,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,KAClE,QAAQ,QAAQ,WAAW,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAyBtD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/utils.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../auth/operations/login.js'\nimport type { refreshOperation } from '../../auth/operations/refresh.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { AfterOperationHook, SanitizedCollectionConfig, TypeWithID } from '../config/types.js'\nimport type { createOperation } from './create.js'\nimport type { deleteOperation } from './delete.js'\nimport type { deleteByIDOperation } from './deleteByID.js'\nimport type { findOperation } from './find.js'\nimport type { findByIDOperation } from './findByID.js'\nimport type { updateOperation } from './update.js'\nimport type { updateByIDOperation } from './updateByID.js'\n\nexport type AfterOperationMap<T extends TypeWithID> = {\n create: typeof createOperation // todo: pass correct generic\n delete: typeof deleteOperation // todo: pass correct generic\n deleteByID: typeof deleteByIDOperation // todo: pass correct generic\n find: typeof findOperation<T>\n findByID: typeof findByIDOperation<T>\n forgotPassword: typeof forgotPasswordOperation\n login: typeof loginOperation\n refresh: typeof refreshOperation\n update: typeof updateOperation // todo: pass correct generic\n updateByID: typeof updateByIDOperation // todo: pass correct generic\n}\nexport type AfterOperationArg<T extends TypeWithID> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n req: PayloadRequest\n} & (\n | {\n args: Parameters<AfterOperationMap<T>['create']>[0]\n operation: 'create'\n result: Awaited<ReturnType<AfterOperationMap<T>['create']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['delete']>[0]\n operation: 'delete'\n result: Awaited<ReturnType<AfterOperationMap<T>['delete']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['deleteByID']>[0]\n operation: 'deleteByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['deleteByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['find']>[0]\n operation: 'find'\n result: Awaited<ReturnType<AfterOperationMap<T>['find']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['findByID']>[0]\n operation: 'findByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['findByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['forgotPassword']>[0]\n operation: 'forgotPassword'\n result: Awaited<ReturnType<AfterOperationMap<T>['forgotPassword']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['login']>[0]\n operation: 'login'\n result: Awaited<ReturnType<AfterOperationMap<T>['login']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['refresh']>[0]\n operation: 'refresh'\n result: Awaited<ReturnType<AfterOperationMap<T>['refresh']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['update']>[0]\n operation: 'update'\n result: Awaited<ReturnType<AfterOperationMap<T>['update']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['updateByID']>[0]\n operation: 'updateByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['updateByID']>>\n }\n)\n\n// export type AfterOperationHook = typeof buildAfterOperation;\n\nexport const buildAfterOperation = async <\n T extends TypeWithID = any,\n O extends keyof AfterOperationMap<T> = keyof AfterOperationMap<T>,\n>(\n operationArgs: Omit<AfterOperationArg<T>, 'req'> & { operation: O },\n): Promise<Awaited<ReturnType<AfterOperationMap<T>[O]>>> => {\n const { args, collection, operation, result } = operationArgs\n\n let newResult = result\n\n await args.collection.config.hooks.afterOperation.reduce(\n async (priorHook, hook: AfterOperationHook<T>) => {\n await priorHook\n\n const hookResult = await hook({\n args,\n collection,\n operation,\n req: args.req,\n result: newResult,\n } as AfterOperationArg<T>)\n\n if (hookResult !== undefined) {\n newResult = hookResult\n }\n },\n Promise.resolve(),\n )\n\n return newResult\n}\n"],"names":["buildAfterOperation","operationArgs","args","collection","operation","result","newResult","config","hooks","afterOperation","reduce","priorHook","hook","hookResult","req","undefined","Promise","resolve"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAkFA,+DAA+D;AAE/D,OAAO,MAAMA,sBAAsB,OAIjCC;IAEA,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAAGJ;IAEhD,IAAIK,YAAYD;IAEhB,MAAMH,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,CAACC,cAAc,CAACC,MAAM,CACtD,OAAOC,WAAWC;QAChB,MAAMD;QAEN,MAAME,aAAa,MAAMD,KAAK;YAC5BV;YACAC;YACAC;YACAU,KAAKZ,KAAKY,GAAG;YACbT,QAAQC;QACV;QAEA,IAAIO,eAAeE,WAAW;YAC5BT,YAAYO;QACd;IACF,GACAG,QAAQC,OAAO;IAGjB,OAAOX;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/collections/operations/utils.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../auth/operations/login.js'\nimport type { refreshOperation } from '../../auth/operations/refresh.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { AfterOperationHook, SanitizedCollectionConfig, TypeWithID } from '../config/types.js'\nimport type { countOperation } from './count.js'\nimport type { createOperation } from './create.js'\nimport type { deleteOperation } from './delete.js'\nimport type { deleteByIDOperation } from './deleteByID.js'\nimport type { findOperation } from './find.js'\nimport type { findByIDOperation } from './findByID.js'\nimport type { updateOperation } from './update.js'\nimport type { updateByIDOperation } from './updateByID.js'\n\nexport type AfterOperationMap<T extends TypeWithID> = {\n count: typeof countOperation\n create: typeof createOperation // todo: pass correct generic\n delete: typeof deleteOperation // todo: pass correct generic\n deleteByID: typeof deleteByIDOperation // todo: pass correct generic\n find: typeof findOperation<T>\n findByID: typeof findByIDOperation<T>\n forgotPassword: typeof forgotPasswordOperation\n login: typeof loginOperation\n refresh: typeof refreshOperation\n update: typeof updateOperation // todo: pass correct generic\n updateByID: typeof updateByIDOperation // todo: pass correct generic\n}\nexport type AfterOperationArg<T extends TypeWithID> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n req: PayloadRequest\n} & (\n | {\n args: Parameters<AfterOperationMap<T>['count']>[0]\n operation: 'count'\n result: Awaited<ReturnType<AfterOperationMap<T>['count']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['create']>[0]\n operation: 'create'\n result: Awaited<ReturnType<AfterOperationMap<T>['create']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['delete']>[0]\n operation: 'delete'\n result: Awaited<ReturnType<AfterOperationMap<T>['delete']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['deleteByID']>[0]\n operation: 'deleteByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['deleteByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['find']>[0]\n operation: 'find'\n result: Awaited<ReturnType<AfterOperationMap<T>['find']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['findByID']>[0]\n operation: 'findByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['findByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['forgotPassword']>[0]\n operation: 'forgotPassword'\n result: Awaited<ReturnType<AfterOperationMap<T>['forgotPassword']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['login']>[0]\n operation: 'login'\n result: Awaited<ReturnType<AfterOperationMap<T>['login']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['refresh']>[0]\n operation: 'refresh'\n result: Awaited<ReturnType<AfterOperationMap<T>['refresh']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['update']>[0]\n operation: 'update'\n result: Awaited<ReturnType<AfterOperationMap<T>['update']>>\n }\n | {\n args: Parameters<AfterOperationMap<T>['updateByID']>[0]\n operation: 'updateByID'\n result: Awaited<ReturnType<AfterOperationMap<T>['updateByID']>>\n }\n)\n\n// export type AfterOperationHook = typeof buildAfterOperation;\n\nexport const buildAfterOperation = async <\n T extends TypeWithID = any,\n O extends keyof AfterOperationMap<T> = keyof AfterOperationMap<T>,\n>(\n operationArgs: Omit<AfterOperationArg<T>, 'req'> & { operation: O },\n): Promise<Awaited<ReturnType<AfterOperationMap<T>[O]>>> => {\n const { args, collection, operation, result } = operationArgs\n\n let newResult = result\n\n await args.collection.config.hooks.afterOperation.reduce(\n async (priorHook, hook: AfterOperationHook<T>) => {\n await priorHook\n\n const hookResult = await hook({\n args,\n collection,\n operation,\n req: args.req,\n result: newResult,\n } as AfterOperationArg<T>)\n\n if (hookResult !== undefined) {\n newResult = hookResult\n }\n },\n Promise.resolve(),\n )\n\n return newResult\n}\n"],"names":["buildAfterOperation","operationArgs","args","collection","operation","result","newResult","config","hooks","afterOperation","reduce","priorHook","hook","hookResult","req","undefined","Promise","resolve"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAyFA,+DAA+D;AAE/D,OAAO,MAAMA,sBAAsB,OAIjCC;IAEA,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAAGJ;IAEhD,IAAIK,YAAYD;IAEhB,MAAMH,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,CAACC,cAAc,CAACC,MAAM,CACtD,OAAOC,WAAWC;QAChB,MAAMD;QAEN,MAAME,aAAa,MAAMD,KAAK;YAC5BV;YACAC;YACAC;YACAU,KAAKZ,KAAKY,GAAG;YACbT,QAAQC;QACV;QAEA,IAAIO,eAAeE,WAAW;YAC5BT,YAAYO;QACd;IACF,GACAG,QAAQC,OAAO;IAGjB,OAAOX;AACT,EAAC"}
@@ -2,13 +2,14 @@ import type { TFunction } from '@payloadcms/translations';
2
2
  import type { ClientCollectionConfig } from '../collections/config/client.js';
3
3
  import type { ClientGlobalConfig } from '../globals/config/client.js';
4
4
  import type { LivePreviewConfig, SanitizedConfig, ServerOnlyLivePreviewProperties } from './types.js';
5
- export type ServerOnlyRootProperties = keyof Pick<SanitizedConfig, 'bin' | 'cors' | 'csrf' | 'db' | 'editor' | 'email' | 'endpoints' | 'hooks' | 'onInit' | 'plugins' | 'secret' | 'sharp' | 'typescript'>;
5
+ export type ServerOnlyRootProperties = keyof Pick<SanitizedConfig, 'bin' | 'cors' | 'csrf' | 'custom' | 'db' | 'editor' | 'email' | 'endpoints' | 'hooks' | 'onInit' | 'plugins' | 'secret' | 'sharp' | 'typescript'>;
6
6
  export type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>;
7
7
  export type ClientConfig = Omit<SanitizedConfig, 'admin' | 'collections' | 'globals' | ServerOnlyRootProperties> & {
8
8
  admin: Omit<SanitizedConfig['admin'], ServerOnlyRootAdminProperties & 'livePreview'> & {
9
9
  livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>;
10
10
  };
11
11
  collections: ClientCollectionConfig[];
12
+ custom?: Record<string, any>;
12
13
  globals: ClientGlobalConfig[];
13
14
  };
14
15
  export declare const createClientConfig: ({ config, t, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAKnB,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAC/C,eAAe,EACb,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AAE9F,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,eAAe,EACf,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,wBAAwB,CAC/D,GAAG;IACF,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,aAAa,CAAC,GAAG;QACrF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,WAAW,EAAE,sBAAsB,EAAE,CAAA;IACrC,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,kBAAkB,mBAG5B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,QAAQ,YAAY,CA8DvB,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAKnB,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAC/C,eAAe,EACb,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AAE9F,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,eAAe,EACf,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,wBAAwB,CAC/D,GAAG;IACF,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,aAAa,CAAC,GAAG;QACrF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,WAAW,EAAE,sBAAsB,EAAE,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,kBAAkB,mBAG5B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,CAAC,EAAE,SAAS,CAAA;CAEb,KAAG,QAAQ,YAAY,CA+DvB,CAAA"}
@@ -17,7 +17,8 @@ export const createClientConfig = async ({ config, t })=>{
17
17
  'typescript',
18
18
  'cors',
19
19
  'csrf',
20
- 'email'
20
+ 'email',
21
+ 'custom'
21
22
  ];
22
23
  serverOnlyConfigProperties.forEach((key)=>{
23
24
  if (key in clientConfig) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type { ClientCollectionConfig } from '../collections/config/client.js'\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { ClientGlobalConfig } from '../globals/config/client.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nimport { createClientCollectionConfigs } from '../collections/config/client.js'\nimport { createClientGlobalConfigs } from '../globals/config/client.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'hooks'\n | 'onInit'\n | 'plugins'\n | 'secret'\n | 'sharp'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = Omit<\n SanitizedConfig,\n 'admin' | 'collections' | 'globals' | ServerOnlyRootProperties\n> & {\n admin: Omit<SanitizedConfig['admin'], ServerOnlyRootAdminProperties & 'livePreview'> & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n collections: ClientCollectionConfig[]\n globals: ClientGlobalConfig[]\n}\n\nexport const createClientConfig = async ({\n config,\n t,\n}: {\n config: SanitizedConfig\n t: TFunction\n}): Promise<ClientConfig> => {\n const clientConfig: ClientConfig = { ...config }\n\n const serverOnlyConfigProperties: Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n ]\n\n serverOnlyConfigProperties.forEach((key) => {\n if (key in clientConfig) {\n delete clientConfig[key]\n }\n })\n\n if ('localization' in clientConfig && clientConfig.localization) {\n clientConfig.localization = { ...clientConfig.localization }\n\n clientConfig.localization.locales.forEach((locale) => {\n delete locale.toString\n })\n }\n\n if ('admin' in clientConfig) {\n clientConfig.admin = { ...clientConfig.admin }\n\n const serverOnlyAdminProperties: Partial<ServerOnlyRootAdminProperties>[] = ['components']\n\n serverOnlyAdminProperties.forEach((key) => {\n if (key in clientConfig.admin) {\n delete clientConfig.admin[key]\n }\n })\n\n if ('livePreview' in clientConfig.admin) {\n clientConfig.admin.livePreview = { ...clientConfig.admin.livePreview }\n delete clientConfig.admin.livePreview.url\n }\n }\n\n clientConfig.collections = createClientCollectionConfigs({\n collections: clientConfig.collections as SanitizedCollectionConfig[],\n t,\n })\n\n clientConfig.globals = createClientGlobalConfigs({\n globals: clientConfig.globals as SanitizedGlobalConfig[],\n t,\n })\n\n return clientConfig\n}\n"],"names":["createClientCollectionConfigs","createClientGlobalConfigs","createClientConfig","config","t","clientConfig","serverOnlyConfigProperties","forEach","key","localization","locales","locale","toString","admin","serverOnlyAdminProperties","livePreview","url","collections","globals"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAYA,SAASA,6BAA6B,QAAQ,kCAAiC;AAC/E,SAASC,yBAAyB,QAAQ,8BAA6B;AAgCvE,OAAO,MAAMC,qBAAqB,OAAO,EACvCC,MAAM,EACNC,CAAC,EAIF;IACC,MAAMC,eAA6B;QAAE,GAAGF,MAAM;IAAC;IAE/C,MAAMG,6BAAkE;QACtE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KAED;IAEDA,2BAA2BC,OAAO,CAAC,CAACC;QAClC,IAAIA,OAAOH,cAAc;YACvB,OAAOA,YAAY,CAACG,IAAI;QAC1B;IACF;IAEA,IAAI,kBAAkBH,gBAAgBA,aAAaI,YAAY,EAAE;QAC/DJ,aAAaI,YAAY,GAAG;YAAE,GAAGJ,aAAaI,YAAY;QAAC;QAE3DJ,aAAaI,YAAY,CAACC,OAAO,CAACH,OAAO,CAAC,CAACI;YACzC,OAAOA,OAAOC,QAAQ;QACxB;IACF;IAEA,IAAI,WAAWP,cAAc;QAC3BA,aAAaQ,KAAK,GAAG;YAAE,GAAGR,aAAaQ,KAAK;QAAC;QAE7C,MAAMC,4BAAsE;YAAC;SAAa;QAE1FA,0BAA0BP,OAAO,CAAC,CAACC;YACjC,IAAIA,OAAOH,aAAaQ,KAAK,EAAE;gBAC7B,OAAOR,aAAaQ,KAAK,CAACL,IAAI;YAChC;QACF;QAEA,IAAI,iBAAiBH,aAAaQ,KAAK,EAAE;YACvCR,aAAaQ,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGV,aAAaQ,KAAK,CAACE,WAAW;YAAC;YACrE,OAAOV,aAAaQ,KAAK,CAACE,WAAW,CAACC,GAAG;QAC3C;IACF;IAEAX,aAAaY,WAAW,GAAGjB,8BAA8B;QACvDiB,aAAaZ,aAAaY,WAAW;QACrCb;IACF;IAEAC,aAAaa,OAAO,GAAGjB,0BAA0B;QAC/CiB,SAASb,aAAaa,OAAO;QAC7Bd;IACF;IAEA,OAAOC;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type { ClientCollectionConfig } from '../collections/config/client.js'\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { ClientGlobalConfig } from '../globals/config/client.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nimport { createClientCollectionConfigs } from '../collections/config/client.js'\nimport { createClientGlobalConfigs } from '../globals/config/client.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'hooks'\n | 'onInit'\n | 'plugins'\n | 'secret'\n | 'sharp'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = Omit<\n SanitizedConfig,\n 'admin' | 'collections' | 'globals' | ServerOnlyRootProperties\n> & {\n admin: Omit<SanitizedConfig['admin'], ServerOnlyRootAdminProperties & 'livePreview'> & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n collections: ClientCollectionConfig[]\n custom?: Record<string, any>\n globals: ClientGlobalConfig[]\n}\n\nexport const createClientConfig = async ({\n config,\n t,\n}: {\n config: SanitizedConfig\n t: TFunction\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<ClientConfig> => {\n const clientConfig: ClientConfig = { ...config }\n\n const serverOnlyConfigProperties: Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n 'custom',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n ]\n\n serverOnlyConfigProperties.forEach((key) => {\n if (key in clientConfig) {\n delete clientConfig[key]\n }\n })\n\n if ('localization' in clientConfig && clientConfig.localization) {\n clientConfig.localization = { ...clientConfig.localization }\n\n clientConfig.localization.locales.forEach((locale) => {\n delete locale.toString\n })\n }\n\n if ('admin' in clientConfig) {\n clientConfig.admin = { ...clientConfig.admin }\n\n const serverOnlyAdminProperties: Partial<ServerOnlyRootAdminProperties>[] = ['components']\n\n serverOnlyAdminProperties.forEach((key) => {\n if (key in clientConfig.admin) {\n delete clientConfig.admin[key]\n }\n })\n\n if ('livePreview' in clientConfig.admin) {\n clientConfig.admin.livePreview = { ...clientConfig.admin.livePreview }\n delete clientConfig.admin.livePreview.url\n }\n }\n\n clientConfig.collections = createClientCollectionConfigs({\n collections: clientConfig.collections as SanitizedCollectionConfig[],\n t,\n })\n\n clientConfig.globals = createClientGlobalConfigs({\n globals: clientConfig.globals as SanitizedGlobalConfig[],\n t,\n })\n\n return clientConfig\n}\n"],"names":["createClientCollectionConfigs","createClientGlobalConfigs","createClientConfig","config","t","clientConfig","serverOnlyConfigProperties","forEach","key","localization","locales","locale","toString","admin","serverOnlyAdminProperties","livePreview","url","collections","globals"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAYA,SAASA,6BAA6B,QAAQ,kCAAiC;AAC/E,SAASC,yBAAyB,QAAQ,8BAA6B;AAkCvE,OAAO,MAAMC,qBAAqB,OAAO,EACvCC,MAAM,EACNC,CAAC,EAKF;IACC,MAAMC,eAA6B;QAAE,GAAGF,MAAM;IAAC;IAE/C,MAAMG,6BAAkE;QACtE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KAED;IAEDA,2BAA2BC,OAAO,CAAC,CAACC;QAClC,IAAIA,OAAOH,cAAc;YACvB,OAAOA,YAAY,CAACG,IAAI;QAC1B;IACF;IAEA,IAAI,kBAAkBH,gBAAgBA,aAAaI,YAAY,EAAE;QAC/DJ,aAAaI,YAAY,GAAG;YAAE,GAAGJ,aAAaI,YAAY;QAAC;QAE3DJ,aAAaI,YAAY,CAACC,OAAO,CAACH,OAAO,CAAC,CAACI;YACzC,OAAOA,OAAOC,QAAQ;QACxB;IACF;IAEA,IAAI,WAAWP,cAAc;QAC3BA,aAAaQ,KAAK,GAAG;YAAE,GAAGR,aAAaQ,KAAK;QAAC;QAE7C,MAAMC,4BAAsE;YAAC;SAAa;QAE1FA,0BAA0BP,OAAO,CAAC,CAACC;YACjC,IAAIA,OAAOH,aAAaQ,KAAK,EAAE;gBAC7B,OAAOR,aAAaQ,KAAK,CAACL,IAAI;YAChC;QACF;QAEA,IAAI,iBAAiBH,aAAaQ,KAAK,EAAE;YACvCR,aAAaQ,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGV,aAAaQ,KAAK,CAACE,WAAW;YAAC;YACrE,OAAOV,aAAaQ,KAAK,CAACE,WAAW,CAACC,GAAG;QAC3C;IACF;IAEAX,aAAaY,WAAW,GAAGjB,8BAA8B;QACvDiB,aAAaZ,aAAaY,WAAW;QACrCb;IACF;IAEAC,aAAaa,OAAO,GAAGjB,0BAA0B;QAC/CiB,SAASb,aAAaa,OAAO;QAC7Bd;IACF;IAEA,OAAOC;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAyC7D,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,CA0C7D,CAAA"}
@@ -2,6 +2,7 @@ export const defaults = {
2
2
  admin: {
3
3
  avatar: 'default',
4
4
  components: {},
5
+ custom: {},
5
6
  dateFormat: 'MMMM do yyyy, h:mm a',
6
7
  disable: false,
7
8
  inactivityRoute: '/logout-inactivity',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/defaults.ts"],"sourcesContent":["import type { Config } from './types.js'\n\nexport const defaults: Omit<Config, 'db' | 'editor' | 'secret'> = {\n admin: {\n avatar: 'default',\n components: {},\n dateFormat: 'MMMM do yyyy, h:mm a',\n disable: false,\n inactivityRoute: '/logout-inactivity',\n logoutRoute: '/logout',\n meta: {\n titleSuffix: '- Payload',\n },\n },\n bin: [],\n collections: [],\n cookiePrefix: 'payload',\n cors: [],\n csrf: [],\n custom: {},\n defaultDepth: 2,\n defaultMaxTextLength: 40000,\n endpoints: [],\n globals: [],\n graphQL: {\n disablePlaygroundInProduction: true,\n maxComplexity: 1000,\n },\n hooks: {},\n localization: false,\n maxDepth: 10,\n routes: {\n admin: '/admin',\n api: '/api',\n graphQL: '/graphql',\n graphQLPlayground: '/graphql-playground',\n },\n serverURL: '',\n telemetry: true,\n typescript: {\n outputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/payload-types.ts`,\n },\n upload: {},\n}\n"],"names":["defaults","admin","avatar","components","dateFormat","disable","inactivityRoute","logoutRoute","meta","titleSuffix","bin","collections","cookiePrefix","cors","csrf","custom","defaultDepth","defaultMaxTextLength","endpoints","globals","graphQL","disablePlaygroundInProduction","maxComplexity","hooks","localization","maxDepth","routes","api","graphQLPlayground","serverURL","telemetry","typescript","outputFile","process","cwd","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAO,MAAMA,WAAqD;IAChEC,OAAO;QACLC,QAAQ;QACRC,YAAY,CAAC;QACbC,YAAY;QACZC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;QACbC,MAAM;YACJC,aAAa;QACf;IACF;IACAC,KAAK,EAAE;IACPC,aAAa,EAAE;IACfC,cAAc;IACdC,MAAM,EAAE;IACRC,MAAM,EAAE;IACRC,QAAQ,CAAC;IACTC,cAAc;IACdC,sBAAsB;IACtBC,WAAW,EAAE;IACbC,SAAS,EAAE;IACXC,SAAS;QACPC,+BAA+B;QAC/BC,eAAe;IACjB;IACAC,OAAO,CAAC;IACRC,cAAc;IACdC,UAAU;IACVC,QAAQ;QACNzB,OAAO;QACP0B,KAAK;QACLP,SAAS;QACTQ,mBAAmB;IACrB;IACAC,WAAW;IACXC,WAAW;IACXC,YAAY;QACVC,YAAY,CAAC,EAAE,OAAOC,SAASC,QAAQ,aAAaD,QAAQC,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC3F;IACAC,QAAQ,CAAC;AACX,EAAC"}
1
+ {"version":3,"sources":["../../src/config/defaults.ts"],"sourcesContent":["import type { Config } from './types.js'\n\nexport const defaults: Omit<Config, 'db' | 'editor' | 'secret'> = {\n admin: {\n avatar: 'default',\n components: {},\n custom: {},\n dateFormat: 'MMMM do yyyy, h:mm a',\n disable: false,\n inactivityRoute: '/logout-inactivity',\n logoutRoute: '/logout',\n meta: {\n titleSuffix: '- Payload',\n },\n },\n bin: [],\n collections: [],\n cookiePrefix: 'payload',\n cors: [],\n csrf: [],\n custom: {},\n defaultDepth: 2,\n defaultMaxTextLength: 40000,\n endpoints: [],\n globals: [],\n graphQL: {\n disablePlaygroundInProduction: true,\n maxComplexity: 1000,\n },\n hooks: {},\n localization: false,\n maxDepth: 10,\n routes: {\n admin: '/admin',\n api: '/api',\n graphQL: '/graphql',\n graphQLPlayground: '/graphql-playground',\n },\n serverURL: '',\n telemetry: true,\n typescript: {\n outputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/payload-types.ts`,\n },\n upload: {},\n}\n"],"names":["defaults","admin","avatar","components","custom","dateFormat","disable","inactivityRoute","logoutRoute","meta","titleSuffix","bin","collections","cookiePrefix","cors","csrf","defaultDepth","defaultMaxTextLength","endpoints","globals","graphQL","disablePlaygroundInProduction","maxComplexity","hooks","localization","maxDepth","routes","api","graphQLPlayground","serverURL","telemetry","typescript","outputFile","process","cwd","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAO,MAAMA,WAAqD;IAChEC,OAAO;QACLC,QAAQ;QACRC,YAAY,CAAC;QACbC,QAAQ,CAAC;QACTC,YAAY;QACZC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;QACbC,MAAM;YACJC,aAAa;QACf;IACF;IACAC,KAAK,EAAE;IACPC,aAAa,EAAE;IACfC,cAAc;IACdC,MAAM,EAAE;IACRC,MAAM,EAAE;IACRX,QAAQ,CAAC;IACTY,cAAc;IACdC,sBAAsB;IACtBC,WAAW,EAAE;IACbC,SAAS,EAAE;IACXC,SAAS;QACPC,+BAA+B;QAC/BC,eAAe;IACjB;IACAC,OAAO,CAAC;IACRC,cAAc;IACdC,UAAU;IACVC,QAAQ;QACNzB,OAAO;QACP0B,KAAK;QACLP,SAAS;QACTQ,mBAAmB;IACrB;IACAC,WAAW;IACXC,WAAW;IACXC,YAAY;QACVC,YAAY,CAAC,EAAE,OAAOC,SAASC,QAAQ,aAAaD,QAAQC,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC3F;IACAC,QAAQ,CAAC;AACX,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAOrB,eAAO,MAAM,eAAe,6BAa3B,CAAA;;AAED,wBAiKE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAOrB,eAAO,MAAM,eAAe,6BAa3B,CAAA;;AAED,wBAkKE"}
@@ -40,6 +40,7 @@ export default joi.object({
40
40
  Dashboard: joi.alternatives().try(component, adminViewSchema)
41
41
  }), joi.object().pattern(joi.string(), component))
42
42
  }),
43
+ custom: joi.object().pattern(joi.string(), joi.any()),
43
44
  dateFormat: joi.string(),
44
45
  disable: joi.bool(),
45
46
  inactivityRoute: joi.string(),