payload 0.15.13 → 0.16.2

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 (131) hide show
  1. package/.eslintrc.js +2 -1
  2. package/CHANGELOG.md +33 -0
  3. package/dist/admin/components/elements/ReactSelect/types.d.ts +1 -1
  4. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +18 -0
  5. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +158 -0
  6. package/dist/admin/components/forms/Form/{buildStateFromSchema.d.ts → buildStateFromSchema/index.d.ts} +4 -3
  7. package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +25 -0
  8. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +18 -0
  9. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +24 -0
  10. package/dist/admin/components/forms/Form/index.js +2 -6
  11. package/dist/admin/components/forms/RenderFields/index.js +1 -1
  12. package/dist/admin/components/forms/field-types/Array/Array.js +4 -2
  13. package/dist/admin/components/forms/field-types/Blocks/Blocks.js +4 -2
  14. package/dist/admin/components/forms/field-types/Relationship/index.js +3 -1
  15. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.js +4 -2
  16. package/dist/admin/components/views/Account/index.js +2 -2
  17. package/dist/admin/components/views/Global/index.js +4 -4
  18. package/dist/admin/components/views/collections/Edit/index.js +7 -4
  19. package/dist/auth/operations/login.js +6 -8
  20. package/dist/collections/config/types.d.ts +1 -0
  21. package/dist/collections/operations/create.js +21 -20
  22. package/dist/collections/operations/delete.js +6 -7
  23. package/dist/collections/operations/find.js +8 -9
  24. package/dist/collections/operations/findByID.js +7 -9
  25. package/dist/collections/operations/findVersionByID.js +7 -9
  26. package/dist/collections/operations/findVersions.js +8 -10
  27. package/dist/collections/operations/restoreVersion.js +9 -13
  28. package/dist/collections/operations/update.js +26 -33
  29. package/dist/collections/tests/defaultValue.spec.d.ts +1 -0
  30. package/dist/collections/tests/defaultValue.spec.js +95 -0
  31. package/dist/collections/tests/hooks.spec.js +5 -1
  32. package/dist/fields/config/sanitize.d.ts +2 -1
  33. package/dist/fields/config/sanitize.js +5 -5
  34. package/dist/fields/config/sanitize.spec.js +30 -19
  35. package/dist/fields/config/schema.js +16 -15
  36. package/dist/fields/config/types.d.ts +8 -4
  37. package/dist/fields/config/types.js +6 -2
  38. package/dist/fields/getDefaultValue.d.ts +9 -0
  39. package/dist/fields/getDefaultValue.js +14 -0
  40. package/dist/fields/hooks/afterChange/index.d.ts +12 -0
  41. package/dist/fields/hooks/afterChange/index.js +26 -0
  42. package/dist/fields/hooks/afterChange/promise.d.ts +14 -0
  43. package/dist/fields/hooks/afterChange/promise.js +104 -0
  44. package/dist/fields/hooks/afterChange/traverseFields.d.ts +14 -0
  45. package/dist/fields/hooks/afterChange/traverseFields.js +20 -0
  46. package/dist/fields/hooks/afterRead/index.d.ts +16 -0
  47. package/dist/fields/hooks/afterRead/index.js +40 -0
  48. package/dist/fields/hooks/afterRead/promise.d.ts +18 -0
  49. package/dist/fields/hooks/afterRead/promise.js +225 -0
  50. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +13 -0
  51. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +84 -0
  52. package/dist/fields/hooks/afterRead/traverseFields.d.ts +18 -0
  53. package/dist/fields/hooks/afterRead/traverseFields.js +24 -0
  54. package/dist/fields/hooks/beforeChange/index.d.ts +16 -0
  55. package/dist/fields/hooks/beforeChange/index.js +40 -0
  56. package/dist/fields/hooks/beforeChange/promise.d.ts +25 -0
  57. package/dist/fields/hooks/beforeChange/promise.js +236 -0
  58. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +25 -0
  59. package/dist/fields/hooks/beforeChange/traverseFields.js +27 -0
  60. package/dist/fields/hooks/beforeValidate/index.d.ts +14 -0
  61. package/dist/fields/hooks/beforeValidate/index.js +28 -0
  62. package/dist/fields/hooks/beforeValidate/promise.d.ts +16 -0
  63. package/dist/fields/hooks/beforeValidate/promise.js +229 -0
  64. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +16 -0
  65. package/dist/fields/hooks/beforeValidate/traverseFields.js +22 -0
  66. package/dist/fields/richText/populate.d.ts +1 -3
  67. package/dist/fields/richText/populate.js +3 -3
  68. package/dist/fields/richText/recurseNestedFields.d.ts +1 -3
  69. package/dist/fields/richText/recurseNestedFields.js +7 -15
  70. package/dist/fields/richText/relationshipPromise.d.ts +6 -9
  71. package/dist/fields/richText/relationshipPromise.js +11 -15
  72. package/dist/fields/validations.js +3 -4
  73. package/dist/globals/config/types.d.ts +1 -0
  74. package/dist/globals/operations/findOne.js +11 -11
  75. package/dist/globals/operations/findVersionByID.js +5 -8
  76. package/dist/globals/operations/findVersions.js +7 -9
  77. package/dist/globals/operations/restoreVersion.js +12 -14
  78. package/dist/globals/operations/update.js +29 -33
  79. package/dist/graphql/schema/buildObjectType.js +3 -5
  80. package/dist/index.d.ts +0 -2
  81. package/dist/index.js +1 -3
  82. package/dist/localization/middleware.js +1 -2
  83. package/dist/mongoose/buildSchema.js +1 -2
  84. package/dist/uploads/mimeTypeValidator.js +4 -1
  85. package/dist/uploads/mimeTypeValidator.spec.js +7 -1
  86. package/dist/uploads/uploadFile.js +3 -2
  87. package/dist/versions/drafts/saveCollectionDraft.d.ts +1 -1
  88. package/dist/versions/drafts/saveCollectionDraft.js +1 -1
  89. package/dist/versions/ensurePublishedCollectionVersion.js +5 -7
  90. package/dist/versions/ensurePublishedGlobalVersion.js +5 -6
  91. package/dist/versions/saveCollectionVersion.js +6 -7
  92. package/dist/versions/saveGlobalVersion.js +7 -7
  93. package/dist/versions/tests/globals-graphql.spec.js +2 -2
  94. package/dist/webpack/getBaseConfig.js +1 -2
  95. package/docs/fields/array.mdx +1 -1
  96. package/docs/fields/blocks.mdx +1 -1
  97. package/docs/fields/checkbox.mdx +1 -1
  98. package/docs/fields/code.mdx +1 -1
  99. package/docs/fields/date.mdx +1 -1
  100. package/docs/fields/email.mdx +1 -1
  101. package/docs/fields/group.mdx +1 -1
  102. package/docs/fields/number.mdx +1 -1
  103. package/docs/fields/overview.mdx +37 -2
  104. package/docs/fields/point.mdx +1 -1
  105. package/docs/fields/radio.mdx +1 -1
  106. package/docs/fields/relationship.mdx +1 -1
  107. package/docs/fields/rich-text.mdx +1 -1
  108. package/docs/fields/select.mdx +1 -1
  109. package/docs/fields/text.mdx +1 -1
  110. package/docs/fields/textarea.mdx +1 -1
  111. package/docs/fields/upload.mdx +1 -1
  112. package/docs/hooks/collections.mdx +1 -0
  113. package/docs/hooks/fields.mdx +4 -3
  114. package/docs/hooks/globals.mdx +1 -0
  115. package/docs/production/preventing-abuse.mdx +16 -5
  116. package/docs/queries/overview.mdx +1 -1
  117. package/docs/rest-api/overview.mdx +1 -1
  118. package/package.json +4 -1
  119. package/dist/admin/components/forms/Form/buildStateFromSchema.js +0 -140
  120. package/dist/fields/accessPromise.d.ts +0 -22
  121. package/dist/fields/accessPromise.js +0 -39
  122. package/dist/fields/hookPromise.d.ts +0 -16
  123. package/dist/fields/hookPromise.js +0 -53
  124. package/dist/fields/performFieldOperations.d.ts +0 -25
  125. package/dist/fields/performFieldOperations.js +0 -86
  126. package/dist/fields/relationshipPopulationPromise.d.ts +0 -15
  127. package/dist/fields/relationshipPopulationPromise.js +0 -86
  128. package/dist/fields/traverseFields.d.ts +0 -40
  129. package/dist/fields/traverseFields.js +0 -329
  130. package/dist/fields/validationPromise.d.ts +0 -22
  131. package/dist/fields/validationPromise.js +0 -34
@@ -54,7 +54,7 @@ exports.idField = exports.baseField.keys({
54
54
  exports.text = exports.baseField.keys({
55
55
  type: joi_1.default.string().valid('text').required(),
56
56
  name: joi_1.default.string().required(),
57
- defaultValue: joi_1.default.string(),
57
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.func()),
58
58
  minLength: joi_1.default.number(),
59
59
  maxLength: joi_1.default.number(),
60
60
  admin: exports.baseAdminFields.keys({
@@ -65,7 +65,7 @@ exports.text = exports.baseField.keys({
65
65
  exports.number = exports.baseField.keys({
66
66
  type: joi_1.default.string().valid('number').required(),
67
67
  name: joi_1.default.string().required(),
68
- defaultValue: joi_1.default.number(),
68
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.number(), joi_1.default.func()),
69
69
  min: joi_1.default.number(),
70
70
  max: joi_1.default.number(),
71
71
  admin: exports.baseAdminFields.keys({
@@ -77,7 +77,7 @@ exports.number = exports.baseField.keys({
77
77
  exports.textarea = exports.baseField.keys({
78
78
  type: joi_1.default.string().valid('textarea').required(),
79
79
  name: joi_1.default.string().required(),
80
- defaultValue: joi_1.default.string(),
80
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.func()),
81
81
  minLength: joi_1.default.number(),
82
82
  maxLength: joi_1.default.number(),
83
83
  admin: exports.baseAdminFields.keys({
@@ -88,7 +88,7 @@ exports.textarea = exports.baseField.keys({
88
88
  exports.email = exports.baseField.keys({
89
89
  type: joi_1.default.string().valid('email').required(),
90
90
  name: joi_1.default.string().required(),
91
- defaultValue: joi_1.default.string(),
91
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.func()),
92
92
  minLength: joi_1.default.number(),
93
93
  maxLength: joi_1.default.number(),
94
94
  admin: exports.baseAdminFields.keys({
@@ -99,7 +99,7 @@ exports.email = exports.baseField.keys({
99
99
  exports.code = exports.baseField.keys({
100
100
  type: joi_1.default.string().valid('code').required(),
101
101
  name: joi_1.default.string().required(),
102
- defaultValue: joi_1.default.string(),
102
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.func()),
103
103
  admin: exports.baseAdminFields.keys({
104
104
  language: joi_1.default.string(),
105
105
  }),
@@ -112,7 +112,7 @@ exports.select = exports.baseField.keys({
112
112
  label: joi_1.default.string().required(),
113
113
  }))).required(),
114
114
  hasMany: joi_1.default.boolean().default(false),
115
- defaultValue: joi_1.default.alternatives().try(joi_1.default.string().allow(''), joi_1.default.array().items(joi_1.default.string().allow(''))),
115
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string().allow(''), joi_1.default.array().items(joi_1.default.string().allow('')), joi_1.default.func()),
116
116
  });
117
117
  exports.radio = exports.baseField.keys({
118
118
  type: joi_1.default.string().valid('radio').required(),
@@ -121,7 +121,7 @@ exports.radio = exports.baseField.keys({
121
121
  value: joi_1.default.string().required().allow(''),
122
122
  label: joi_1.default.string().required(),
123
123
  }))).required(),
124
- defaultValue: joi_1.default.string().allow(''),
124
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string().allow(''), joi_1.default.func()),
125
125
  admin: exports.baseAdminFields.keys({
126
126
  layout: joi_1.default.string().valid('vertical', 'horizontal'),
127
127
  }),
@@ -139,7 +139,7 @@ exports.group = exports.baseField.keys({
139
139
  type: joi_1.default.string().valid('group').required(),
140
140
  name: joi_1.default.string().required(),
141
141
  fields: joi_1.default.array().items(joi_1.default.link('#field')),
142
- defaultValue: joi_1.default.object(),
142
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.object(), joi_1.default.func()),
143
143
  admin: exports.baseAdminFields.keys({
144
144
  hideGutter: joi_1.default.boolean().default(false),
145
145
  description: joi_1.default.string(),
@@ -155,7 +155,7 @@ exports.array = exports.baseField.keys({
155
155
  singular: joi_1.default.string(),
156
156
  plural: joi_1.default.string(),
157
157
  }),
158
- defaultValue: joi_1.default.array().items(joi_1.default.object()),
158
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.array().items(joi_1.default.object()), joi_1.default.func()),
159
159
  });
160
160
  exports.upload = exports.baseField.keys({
161
161
  type: joi_1.default.string().valid('upload').required(),
@@ -167,12 +167,12 @@ exports.upload = exports.baseField.keys({
167
167
  exports.checkbox = exports.baseField.keys({
168
168
  type: joi_1.default.string().valid('checkbox').required(),
169
169
  name: joi_1.default.string().required(),
170
- defaultValue: joi_1.default.boolean(),
170
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.boolean(), joi_1.default.func()),
171
171
  });
172
172
  exports.point = exports.baseField.keys({
173
173
  type: joi_1.default.string().valid('point').required(),
174
174
  name: joi_1.default.string().required(),
175
- defaultValue: joi_1.default.array().items(joi_1.default.number()).max(2).min(2),
175
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.array().items(joi_1.default.number()).max(2).min(2), joi_1.default.func()),
176
176
  });
177
177
  exports.relationship = exports.baseField.keys({
178
178
  type: joi_1.default.string().valid('relationship').required(),
@@ -181,6 +181,7 @@ exports.relationship = exports.baseField.keys({
181
181
  name: joi_1.default.string().required(),
182
182
  maxDepth: joi_1.default.number(),
183
183
  filterOptions: joi_1.default.alternatives().try(joi_1.default.object(), joi_1.default.func()),
184
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.func()),
184
185
  });
185
186
  exports.blocks = exports.baseField.keys({
186
187
  type: joi_1.default.string().valid('blocks').required(),
@@ -201,12 +202,12 @@ exports.blocks = exports.baseField.keys({
201
202
  }),
202
203
  fields: joi_1.default.array().items(joi_1.default.link('#field')),
203
204
  })),
204
- defaultValue: joi_1.default.array().items(joi_1.default.object()),
205
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.array().items(joi_1.default.object()), joi_1.default.func()),
205
206
  });
206
207
  exports.richText = exports.baseField.keys({
207
208
  type: joi_1.default.string().valid('richText').required(),
208
209
  name: joi_1.default.string().required(),
209
- defaultValue: joi_1.default.array().items(joi_1.default.object()),
210
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.array().items(joi_1.default.object()), joi_1.default.func()),
210
211
  admin: exports.baseAdminFields.keys({
211
212
  placeholder: joi_1.default.string(),
212
213
  elements: joi_1.default.array().items(joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.object({
@@ -232,7 +233,7 @@ exports.richText = exports.baseField.keys({
232
233
  exports.date = exports.baseField.keys({
233
234
  type: joi_1.default.string().valid('date').required(),
234
235
  name: joi_1.default.string().required(),
235
- defaultValue: joi_1.default.string(),
236
+ defaultValue: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.func()),
236
237
  admin: exports.baseAdminFields.keys({
237
238
  placeholder: joi_1.default.string(),
238
239
  date: joi_1.default.object({
@@ -266,4 +267,4 @@ const fieldSchema = joi_1.default.alternatives()
266
267
  .try(exports.text, exports.number, exports.textarea, exports.email, exports.code, exports.select, exports.group, exports.array, exports.row, exports.radio, exports.relationship, exports.checkbox, exports.upload, exports.richText, exports.blocks, exports.date, exports.point, exports.ui)
267
268
  .id('field');
268
269
  exports.default = fieldSchema;
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpZWxkcy9jb25maWcvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFzQjtBQUN0QixxRUFBa0U7QUFFckQsUUFBQSxlQUFlLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUMvQyxXQUFXLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDakMsYUFBRyxDQUFDLE1BQU0sRUFBRSxFQUNaLGlDQUFlLENBQ2hCO0lBQ0QsUUFBUSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO0lBQ25CLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQzdCLFNBQVMsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLFFBQVEsRUFBRSxhQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN0QyxNQUFNLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDcEMsUUFBUSxFQUFFLGFBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3RDLFNBQVMsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksRUFBRSxpQ0FBZTtRQUNyQixLQUFLLEVBQUUsaUNBQWU7UUFDdEIsTUFBTSxFQUFFLGlDQUFlO0tBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRVUsUUFBQSxTQUFTLEdBQUcsYUFBRyxDQUFDLE1B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
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpZWxkcy9jb25maWcvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFzQjtBQUN0QixxRUFBa0U7QUFFckQsUUFBQSxlQUFlLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUMvQyxXQUFXLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDakMsYUFBRyxDQUFDLE1BQU0sRUFBRSxFQUNaLGlDQUFlLENBQ2hCO0lBQ0QsUUFBUSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO0lBQ25CLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQzdCLFNBQVMsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLFFBQVEsRUFBRSxhQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN0QyxNQUFNLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDcEMsUUFBUSxFQUFFLGFBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3RDLFNBQVMsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksRUFBRSxpQ0FBZTtRQUNyQixLQUFLLEVBQUUsaUNBQWU7UUFDdEIsTUFBTSxFQUFFLGlDQUFlO0tBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRVUsUUFBQSxTQUFTLEdBQUcsYUFBRyxDQUFDLE1B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
@@ -6,18 +6,20 @@ import { PayloadRequest } from '../../express/types';
6
6
  import { ConditionalDateProps } from '../../admin/components/elements/DatePicker/types';
7
7
  import { Description } from '../../admin/components/forms/FieldDescription/types';
8
8
  import { User } from '../../auth';
9
+ import { Payload } from '../..';
9
10
  export declare type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {
10
- value?: P;
11
- originalDoc?: T;
12
11
  data?: Partial<T>;
13
- siblingData: Partial<S>;
12
+ findMany?: boolean;
13
+ originalDoc?: T;
14
14
  operation?: 'create' | 'read' | 'update' | 'delete';
15
15
  req: PayloadRequest;
16
+ siblingData: Partial<S>;
17
+ value?: P;
16
18
  };
17
19
  export declare type FieldHook<T extends TypeWithID = any, P = any, S = any> = (args: FieldHookArgs<T, P, S>) => Promise<P> | P;
18
20
  export declare type FieldAccess<T extends TypeWithID = any, P = any> = (args: {
19
21
  req: PayloadRequest;
20
- id?: string;
22
+ id?: string | number;
21
23
  data?: Partial<T>;
22
24
  siblingData?: Partial<P>;
23
25
  doc?: T;
@@ -57,6 +59,7 @@ export declare type ValidateOptions<T, S, F> = {
57
59
  id?: string | number;
58
60
  user?: Partial<User>;
59
61
  operation?: Operation;
62
+ payload?: Payload;
60
63
  } & F;
61
64
  export declare type Validate<T = any, S = any, F = any> = (value?: T, options?: ValidateOptions<F, S, Partial<F>>) => string | true | Promise<string | true>;
62
65
  export declare type OptionObject = {
@@ -195,6 +198,7 @@ export declare type ValueWithRelation = {
195
198
  relationTo: string;
196
199
  value: string | number;
197
200
  };
201
+ export declare function valueIsValueWithRelation(value: unknown): value is ValueWithRelation;
198
202
  export declare type RelationshipValue = (string | number) | (string | number)[] | ValueWithRelation | ValueWithRelation[];
199
203
  declare type RichTextPlugin = (editor: Editor) => Editor;
200
204
  export declare type RichTextCustomElement = {
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldAffectsData = exports.fieldIsPresentationalOnly = exports.fieldHasMaxDepth = exports.fieldSupportsMany = exports.optionIsValue = exports.optionsAreObjects = exports.optionIsObject = exports.fieldIsBlockType = exports.fieldIsArrayType = exports.fieldHasSubFields = void 0;
3
+ exports.fieldAffectsData = exports.fieldIsPresentationalOnly = exports.fieldHasMaxDepth = exports.fieldSupportsMany = exports.optionIsValue = exports.optionsAreObjects = exports.optionIsObject = exports.fieldIsBlockType = exports.fieldIsArrayType = exports.fieldHasSubFields = exports.valueIsValueWithRelation = void 0;
4
+ function valueIsValueWithRelation(value) {
5
+ return typeof value === 'object' && 'relationTo' in value && 'value' in value;
6
+ }
7
+ exports.valueIsValueWithRelation = valueIsValueWithRelation;
4
8
  function fieldHasSubFields(field) {
5
9
  return (field.type === 'group' || field.type === 'array' || field.type === 'row');
6
10
  }
@@ -41,4 +45,4 @@ function fieldAffectsData(field) {
41
45
  return 'name' in field && !fieldIsPresentationalOnly(field);
42
46
  }
43
47
  exports.fieldAffectsData = fieldAffectsData;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGRzL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4WEEsU0FBZ0IsaUJBQWlCLENBQUMsS0FBWTtJQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDaEMsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLENBQUMsQ0FBQyxDQUFBLEtBQUssUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEtBQVk7SUFDNUMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQztBQUNsRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDMUcsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdCLENBQUM7QUFGRCw4REFFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxNQUFNLElBQUksS0FBSyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELDRDQUVDIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGRzL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1T0EsU0FBZ0Isd0JBQXdCLENBQUMsS0FBYztJQUNyRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUM7QUFDaEYsQ0FBQztBQUZELDREQUVDO0FBNEpELFNBQWdCLGlCQUFpQixDQUFDLEtBQVk7SUFDNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDcEYsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQ2hDLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixjQUFjLENBQUMsTUFBYztJQUMzQyxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQztBQUNwQyxDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxPQUFpQjtJQUNqRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRyxDQUFDLENBQUMsQ0FBQSxLQUFLLFFBQVEsQ0FBQztBQUNwRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQztBQUNwQyxDQUFDO0FBRkQsc0NBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFZO0lBQzVDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDbEUsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWTtJQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO0FBQzFHLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLEtBQVk7SUFDcEQsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztBQUM3QixDQUFDO0FBRkQsOERBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sTUFBTSxJQUFJLEtBQUssSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFGRCw0Q0FFQyJ9
@@ -0,0 +1,9 @@
1
+ import { User } from '../auth';
2
+ declare type Args = {
3
+ value?: unknown;
4
+ defaultValue: unknown;
5
+ user: User;
6
+ locale: string | undefined;
7
+ };
8
+ declare const getValueWithDefault: ({ value, defaultValue, locale, user }: Args) => Promise<unknown>;
9
+ export default getValueWithDefault;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getValueWithDefault = async ({ value, defaultValue, locale, user }) => {
4
+ if (typeof value !== 'undefined') {
5
+ return value;
6
+ }
7
+ if (defaultValue && typeof defaultValue === 'function') {
8
+ return defaultValue({ locale, user });
9
+ }
10
+ return defaultValue;
11
+ return undefined;
12
+ };
13
+ exports.default = getValueWithDefault;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RGVmYXVsdFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpZWxkcy9nZXREZWZhdWx0VmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBUSxFQUFvQixFQUFFO0lBQ2xHLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxVQUFVLEVBQUU7UUFDdEQsT0FBTyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN2QztJQUNELE9BQU8sWUFBWSxDQUFDO0lBRXBCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLGtCQUFlLG1CQUFtQixDQUFDIn0=
@@ -0,0 +1,12 @@
1
+ import { SanitizedCollectionConfig } from '../../../collections/config/types';
2
+ import { SanitizedGlobalConfig } from '../../../globals/config/types';
3
+ import { PayloadRequest } from '../../../express/types';
4
+ declare type Args = {
5
+ data: Record<string, unknown>;
6
+ doc: Record<string, unknown>;
7
+ entityConfig: SanitizedCollectionConfig | SanitizedGlobalConfig;
8
+ operation: 'create' | 'update';
9
+ req: PayloadRequest;
10
+ };
11
+ export declare const afterChange: ({ data, doc: incomingDoc, entityConfig, operation, req, }: Args) => Promise<Record<string, unknown>>;
12
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.afterChange = void 0;
7
+ const traverseFields_1 = require("./traverseFields");
8
+ const deepCopyObject_1 = __importDefault(require("../../../utilities/deepCopyObject"));
9
+ const afterChange = async ({ data, doc: incomingDoc, entityConfig, operation, req, }) => {
10
+ const promises = [];
11
+ const doc = (0, deepCopyObject_1.default)(incomingDoc);
12
+ (0, traverseFields_1.traverseFields)({
13
+ data,
14
+ doc,
15
+ fields: entityConfig.fields,
16
+ operation,
17
+ promises,
18
+ req,
19
+ siblingDoc: doc,
20
+ siblingData: data,
21
+ });
22
+ await Promise.all(promises);
23
+ return doc;
24
+ };
25
+ exports.afterChange = afterChange;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLHFEQUFrRDtBQUNsRCx1RkFBK0Q7QUFVeEQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLEVBQ2hDLElBQUksRUFDSixHQUFHLEVBQUUsV0FBVyxFQUNoQixZQUFZLEVBQ1osU0FBUyxFQUNULEdBQUcsR0FDRSxFQUFvQyxFQUFFO0lBQzNDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVwQixNQUFNLEdBQUcsR0FBRyxJQUFBLHdCQUFjLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFFeEMsSUFBQSwrQkFBYyxFQUFDO1FBQ2IsSUFBSTtRQUNKLEdBQUc7UUFDSCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsU0FBUztRQUNULFFBQVE7UUFDUixHQUFHO1FBQ0gsVUFBVSxFQUFFLEdBQUc7UUFDZixXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFNUIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUF6QlcsUUFBQSxXQUFXLGVBeUJ0QiJ9
@@ -0,0 +1,14 @@
1
+ import { PayloadRequest } from '../../../express/types';
2
+ import { Field } from '../../config/types';
3
+ declare type Args = {
4
+ data: Record<string, unknown>;
5
+ doc: Record<string, unknown>;
6
+ field: Field;
7
+ operation: 'create' | 'update';
8
+ promises: Promise<void>[];
9
+ req: PayloadRequest;
10
+ siblingData: Record<string, unknown>;
11
+ siblingDoc: Record<string, unknown>;
12
+ };
13
+ export declare const promise: ({ data, doc, field, operation, promises, req, siblingData, siblingDoc, }: Args) => Promise<void>;
14
+ export {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promise = void 0;
4
+ const types_1 = require("../../config/types");
5
+ const traverseFields_1 = require("./traverseFields");
6
+ // This function is responsible for the following actions, in order:
7
+ // - Execute field hooks
8
+ const promise = async ({ data, doc, field, operation, promises, req, siblingData, siblingDoc, }) => {
9
+ var _a;
10
+ if ((0, types_1.fieldAffectsData)(field)) {
11
+ // Execute hooks
12
+ if ((_a = field.hooks) === null || _a === void 0 ? void 0 : _a.afterChange) {
13
+ await field.hooks.afterChange.reduce(async (priorHook, currentHook) => {
14
+ await priorHook;
15
+ const hookedValue = await currentHook({
16
+ value: siblingData[field.name],
17
+ originalDoc: doc,
18
+ data,
19
+ siblingData,
20
+ operation,
21
+ req,
22
+ });
23
+ if (hookedValue !== undefined) {
24
+ siblingDoc[field.name] = hookedValue;
25
+ }
26
+ }, Promise.resolve());
27
+ }
28
+ }
29
+ // Traverse subfields
30
+ switch (field.type) {
31
+ case 'group': {
32
+ (0, traverseFields_1.traverseFields)({
33
+ data,
34
+ doc,
35
+ fields: field.fields,
36
+ operation,
37
+ promises,
38
+ req,
39
+ siblingData: siblingData[field.name] || {},
40
+ siblingDoc: siblingDoc[field.name],
41
+ });
42
+ break;
43
+ }
44
+ case 'array': {
45
+ const rows = siblingDoc[field.name];
46
+ if (Array.isArray(rows)) {
47
+ rows.forEach((row, i) => {
48
+ var _a;
49
+ (0, traverseFields_1.traverseFields)({
50
+ data,
51
+ doc,
52
+ fields: field.fields,
53
+ operation,
54
+ promises,
55
+ req,
56
+ siblingData: ((_a = siblingData[field.name]) === null || _a === void 0 ? void 0 : _a[i]) || {},
57
+ siblingDoc: { ...row } || {},
58
+ });
59
+ });
60
+ }
61
+ break;
62
+ }
63
+ case 'blocks': {
64
+ const rows = siblingDoc[field.name];
65
+ if (Array.isArray(rows)) {
66
+ rows.forEach((row, i) => {
67
+ var _a;
68
+ const block = field.blocks.find((blockType) => blockType.slug === row.blockType);
69
+ if (block) {
70
+ (0, traverseFields_1.traverseFields)({
71
+ data,
72
+ doc,
73
+ fields: block.fields,
74
+ operation,
75
+ promises,
76
+ req,
77
+ siblingData: ((_a = siblingData[field.name]) === null || _a === void 0 ? void 0 : _a[i]) || {},
78
+ siblingDoc: { ...row } || {},
79
+ });
80
+ }
81
+ });
82
+ }
83
+ break;
84
+ }
85
+ case 'row': {
86
+ (0, traverseFields_1.traverseFields)({
87
+ data,
88
+ doc,
89
+ fields: field.fields,
90
+ operation,
91
+ promises,
92
+ req,
93
+ siblingData: siblingData || {},
94
+ siblingDoc: { ...siblingDoc },
95
+ });
96
+ break;
97
+ }
98
+ default: {
99
+ break;
100
+ }
101
+ }
102
+ };
103
+ exports.promise = promise;
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UvcHJvbWlzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4Q0FBNkQ7QUFDN0QscURBQWtEO0FBYWxELG9FQUFvRTtBQUNwRSx3QkFBd0I7QUFFakIsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQzVCLElBQUksRUFDSixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEdBQ0wsRUFBaUIsRUFBRTs7SUFDeEIsSUFBSSxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzNCLGdCQUFnQjtRQUNoQixJQUFJLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsV0FBVyxFQUFFO1lBQzVCLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUU7Z0JBQ3BFLE1BQU0sU0FBUyxDQUFDO2dCQUVoQixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQztvQkFDcEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUM5QixXQUFXLEVBQUUsR0FBRztvQkFDaEIsSUFBSTtvQkFDSixXQUFXO29CQUNYLFNBQVM7b0JBQ1QsR0FBRztpQkFDSixDQUFDLENBQUM7Z0JBRUgsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO29CQUM3QixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDdkI7S0FDRjtJQUVELHFCQUFxQjtJQUNyQixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDbEIsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUNaLElBQUEsK0JBQWMsRUFBQztnQkFDYixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixTQUFTO2dCQUNULFFBQVE7Z0JBQ1IsR0FBRztnQkFDSCxXQUFXLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTRCLElBQUksRUFBRTtnQkFDckUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUE0QjthQUM5RCxDQUFDLENBQUM7WUFFSCxNQUFNO1NBQ1A7UUFFRCxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ1osTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O29CQUN0QixJQUFBLCtCQUFjLEVBQUM7d0JBQ2IsSUFBSTt3QkFDSixHQUFHO3dCQUNILE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTt3QkFDcEIsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLEdBQUc7d0JBQ0gsV0FBVyxFQUFFLENBQUEsTUFBQSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywwQ0FBRyxDQUFDLENBQUMsS0FBSSxFQUFFO3dCQUMvQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUU7cUJBQzdCLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsTUFBTTtTQUNQO1FBRUQsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUNiLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztvQkFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUVqRixJQUFJLEtBQUssRUFBRTt3QkFDVCxJQUFBLCtCQUFjLEVBQUM7NEJBQ2IsSUFBSTs0QkFDSixHQUFHOzRCQUNILE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTs0QkFDcEIsU0FBUzs0QkFDVCxRQUFROzRCQUNSLEdBQUc7NEJBQ0gsV0FBVyxFQUFFLENBQUEsTUFBQSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywwQ0FBRyxDQUFDLENBQUMsS0FBSSxFQUFFOzRCQUMvQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUU7eUJBQzdCLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsTUFBTTtTQUNQO1FBRUQsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNWLElBQUEsK0JBQWMsRUFBQztnQkFDYixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixTQUFTO2dCQUNULFFBQVE7Z0JBQ1IsR0FBRztnQkFDSCxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBQUU7Z0JBQzlCLFVBQVUsRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFO2FBQzlCLENBQUMsQ0FBQztZQUVILE1BQU07U0FDUDtRQUVELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsTUFBTTtTQUNQO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUFqSFcsUUFBQSxPQUFPLFdBaUhsQiJ9
@@ -0,0 +1,14 @@
1
+ import { Field } from '../../config/types';
2
+ import { PayloadRequest } from '../../../express/types';
3
+ declare type Args = {
4
+ data: Record<string, unknown>;
5
+ doc: Record<string, unknown>;
6
+ fields: Field[];
7
+ operation: 'create' | 'update';
8
+ promises: Promise<void>[];
9
+ req: PayloadRequest;
10
+ siblingData: Record<string, unknown>;
11
+ siblingDoc: Record<string, unknown>;
12
+ };
13
+ export declare const traverseFields: ({ data, doc, fields, operation, promises, req, siblingData, siblingDoc, }: Args) => void;
14
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traverseFields = void 0;
4
+ const promise_1 = require("./promise");
5
+ const traverseFields = ({ data, doc, fields, operation, promises, req, siblingData, siblingDoc, }) => {
6
+ fields.forEach((field) => {
7
+ promises.push((0, promise_1.promise)({
8
+ data,
9
+ doc,
10
+ field,
11
+ operation,
12
+ promises,
13
+ req,
14
+ siblingData,
15
+ siblingDoc,
16
+ }));
17
+ });
18
+ };
19
+ exports.traverseFields = traverseFields;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhdmVyc2VGaWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlL3RyYXZlcnNlRmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVDQUFvQztBQWM3QixNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQzdCLElBQUksRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEdBQ0wsRUFBUSxFQUFFO0lBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSxpQkFBTyxFQUFDO1lBQ3BCLElBQUk7WUFDSixHQUFHO1lBQ0gsS0FBSztZQUNMLFNBQVM7WUFDVCxRQUFRO1lBQ1IsR0FBRztZQUNILFdBQVc7WUFDWCxVQUFVO1NBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQXRCVyxRQUFBLGNBQWMsa0JBc0J6QiJ9
@@ -0,0 +1,16 @@
1
+ import { SanitizedCollectionConfig } from '../../../collections/config/types';
2
+ import { SanitizedGlobalConfig } from '../../../globals/config/types';
3
+ import { PayloadRequest } from '../../../express/types';
4
+ declare type Args = {
5
+ currentDepth?: number;
6
+ depth: number;
7
+ doc: Record<string, unknown>;
8
+ entityConfig: SanitizedCollectionConfig | SanitizedGlobalConfig;
9
+ findMany?: boolean;
10
+ flattenLocales?: boolean;
11
+ req: PayloadRequest;
12
+ overrideAccess: boolean;
13
+ showHiddenFields: boolean;
14
+ };
15
+ export declare function afterRead<T = any>(args: Args): Promise<T>;
16
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.afterRead = void 0;
7
+ const traverseFields_1 = require("./traverseFields");
8
+ const deepCopyObject_1 = __importDefault(require("../../../utilities/deepCopyObject"));
9
+ async function afterRead(args) {
10
+ const { currentDepth: incomingCurrentDepth, depth: incomingDepth, doc: incomingDoc, entityConfig, findMany, flattenLocales = true, req, overrideAccess, showHiddenFields, } = args;
11
+ const doc = (0, deepCopyObject_1.default)(incomingDoc);
12
+ const fieldPromises = [];
13
+ const populationPromises = [];
14
+ let depth = 0;
15
+ if (req.payloadAPI === 'REST' || req.payloadAPI === 'local') {
16
+ depth = (incomingDepth || incomingDepth === 0) ? parseInt(String(incomingDepth), 10) : req.payload.config.defaultDepth;
17
+ if (depth > req.payload.config.maxDepth)
18
+ depth = req.payload.config.maxDepth;
19
+ }
20
+ const currentDepth = incomingCurrentDepth || 1;
21
+ (0, traverseFields_1.traverseFields)({
22
+ currentDepth,
23
+ depth,
24
+ doc,
25
+ fields: entityConfig.fields,
26
+ fieldPromises,
27
+ findMany,
28
+ flattenLocales,
29
+ overrideAccess,
30
+ populationPromises,
31
+ req,
32
+ siblingDoc: doc,
33
+ showHiddenFields,
34
+ });
35
+ await Promise.all(fieldPromises);
36
+ await Promise.all(populationPromises);
37
+ return doc;
38
+ }
39
+ exports.afterRead = afterRead;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmllbGRzL2hvb2tzL2FmdGVyUmVhZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxxREFBa0Q7QUFDbEQsdUZBQStEO0FBY3hELEtBQUssVUFBVSxTQUFTLENBQVUsSUFBVTtJQUNqRCxNQUFNLEVBQ0osWUFBWSxFQUFFLG9CQUFvQixFQUNsQyxLQUFLLEVBQUUsYUFBYSxFQUNwQixHQUFHLEVBQUUsV0FBVyxFQUNoQixZQUFZLEVBQ1osUUFBUSxFQUNSLGNBQWMsR0FBRyxJQUFJLEVBQ3JCLEdBQUcsRUFDSCxjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxHQUFHLEdBQUcsSUFBQSx3QkFBYyxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUU5QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssT0FBTyxFQUFFO1FBQzNELEtBQUssR0FBRyxDQUFDLGFBQWEsSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUV2SCxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztLQUM5RTtJQUVELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUUvQyxJQUFBLCtCQUFjLEVBQUM7UUFDYixZQUFZO1FBQ1osS0FBSztRQUNMLEdBQUc7UUFDSCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsYUFBYTtRQUNiLFFBQVE7UUFDUixjQUFjO1FBQ2QsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixHQUFHO1FBQ0gsVUFBVSxFQUFFLEdBQUc7UUFDZixnQkFBZ0I7S0FDakIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQTlDRCw4QkE4Q0MifQ==
@@ -0,0 +1,18 @@
1
+ import { Field } from '../../config/types';
2
+ import { PayloadRequest } from '../../../express/types';
3
+ declare type Args = {
4
+ currentDepth: number;
5
+ depth: number;
6
+ doc: Record<string, unknown>;
7
+ field: Field;
8
+ fieldPromises: Promise<void>[];
9
+ findMany: boolean;
10
+ flattenLocales: boolean;
11
+ populationPromises: Promise<void>[];
12
+ req: PayloadRequest;
13
+ overrideAccess: boolean;
14
+ siblingDoc: Record<string, unknown>;
15
+ showHiddenFields: boolean;
16
+ };
17
+ export declare const promise: ({ currentDepth, depth, doc, field, fieldPromises, findMany, flattenLocales, overrideAccess, populationPromises, req, siblingDoc, showHiddenFields, }: Args) => Promise<void>;
18
+ export {};