payload 3.0.0-beta.67 → 3.0.0-beta.68

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 (223) hide show
  1. package/dist/admin/RichText.d.ts +4 -4
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/auth/operations/resetPassword.js +1 -1
  5. package/dist/auth/operations/resetPassword.js.map +1 -1
  6. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  7. package/dist/auth/strategies/jwt.js +29 -0
  8. package/dist/auth/strategies/jwt.js.map +1 -1
  9. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  10. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  11. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  12. package/dist/auth/strategies/local/register.d.ts +2 -2
  13. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  14. package/dist/auth/strategies/local/register.js.map +1 -1
  15. package/dist/bin/generateTypes.js +2 -2
  16. package/dist/bin/generateTypes.js.map +1 -1
  17. package/dist/collections/config/client.d.ts.map +1 -1
  18. package/dist/collections/config/defaults.d.ts +4 -69
  19. package/dist/collections/config/defaults.d.ts.map +1 -1
  20. package/dist/collections/config/defaults.js.map +1 -1
  21. package/dist/collections/config/reservedFieldNames.d.ts +15 -0
  22. package/dist/collections/config/reservedFieldNames.d.ts.map +1 -0
  23. package/dist/collections/config/reservedFieldNames.js +104 -0
  24. package/dist/collections/config/reservedFieldNames.js.map +1 -0
  25. package/dist/collections/config/reservedFieldNames.spec.js +148 -0
  26. package/dist/collections/config/reservedFieldNames.spec.js.map +1 -0
  27. package/dist/collections/config/sanitize.d.ts.map +1 -1
  28. package/dist/collections/config/sanitize.js +13 -9
  29. package/dist/collections/config/sanitize.js.map +1 -1
  30. package/dist/collections/config/types.d.ts +2 -2
  31. package/dist/collections/config/types.d.ts.map +1 -1
  32. package/dist/collections/config/types.js.map +1 -1
  33. package/dist/collections/dataloader.d.ts.map +1 -1
  34. package/dist/collections/dataloader.js.map +1 -1
  35. package/dist/collections/operations/create.d.ts.map +1 -1
  36. package/dist/collections/operations/create.js.map +1 -1
  37. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  38. package/dist/collections/operations/deleteByID.js.map +1 -1
  39. package/dist/collections/operations/duplicate.js.map +1 -1
  40. package/dist/collections/operations/update.js.map +1 -1
  41. package/dist/collections/operations/updateByID.js.map +1 -1
  42. package/dist/config/client.d.ts.map +1 -1
  43. package/dist/config/client.js +26 -26
  44. package/dist/config/client.js.map +1 -1
  45. package/dist/config/sanitize.d.ts.map +1 -1
  46. package/dist/config/sanitize.js +4 -7
  47. package/dist/config/sanitize.js.map +1 -1
  48. package/dist/config/types.d.ts +3 -4
  49. package/dist/config/types.d.ts.map +1 -1
  50. package/dist/config/types.js.map +1 -1
  51. package/dist/errors/APIError.d.ts +1 -0
  52. package/dist/errors/APIError.d.ts.map +1 -1
  53. package/dist/errors/APIError.js +3 -0
  54. package/dist/errors/APIError.js.map +1 -1
  55. package/dist/errors/ValidationError.d.ts +1 -0
  56. package/dist/errors/ValidationError.d.ts.map +1 -1
  57. package/dist/errors/ValidationError.js +3 -0
  58. package/dist/errors/ValidationError.js.map +1 -1
  59. package/dist/errors/index.d.ts +2 -2
  60. package/dist/errors/index.d.ts.map +1 -1
  61. package/dist/errors/index.js +2 -2
  62. package/dist/errors/index.js.map +1 -1
  63. package/dist/exports/shared.d.ts +3 -2
  64. package/dist/exports/shared.d.ts.map +1 -1
  65. package/dist/exports/shared.js +3 -2
  66. package/dist/exports/shared.js.map +1 -1
  67. package/dist/fields/config/sanitize.d.ts +3 -2
  68. package/dist/fields/config/sanitize.d.ts.map +1 -1
  69. package/dist/fields/config/sanitize.js +8 -16
  70. package/dist/fields/config/sanitize.js.map +1 -1
  71. package/dist/fields/config/sanitize.spec.js +1 -17
  72. package/dist/fields/config/sanitize.spec.js.map +1 -1
  73. package/dist/fields/getDefaultValue.d.ts +5 -5
  74. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  75. package/dist/fields/getDefaultValue.js +4 -6
  76. package/dist/fields/getDefaultValue.js.map +1 -1
  77. package/dist/fields/hooks/afterChange/index.d.ts +6 -6
  78. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  79. package/dist/fields/hooks/afterChange/index.js +2 -2
  80. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  81. package/dist/fields/hooks/afterChange/promise.d.ts +7 -7
  82. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  83. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  84. package/dist/fields/hooks/afterChange/traverseFields.d.ts +7 -7
  85. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  86. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  87. package/dist/fields/hooks/afterRead/index.d.ts +4 -4
  88. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  89. package/dist/fields/hooks/afterRead/index.js +2 -2
  90. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  91. package/dist/fields/hooks/afterRead/promise.d.ts +3 -3
  92. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  93. package/dist/fields/hooks/afterRead/promise.js +2 -2
  94. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  95. package/dist/fields/hooks/afterRead/traverseFields.d.ts +3 -3
  96. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  97. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  98. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts +2 -1
  99. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  100. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -1
  101. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts +2 -1
  102. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  103. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -1
  104. package/dist/fields/hooks/beforeChange/index.d.ts +6 -6
  105. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  106. package/dist/fields/hooks/beforeChange/index.js +2 -2
  107. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  108. package/dist/fields/hooks/beforeChange/promise.d.ts +7 -7
  109. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  110. package/dist/fields/hooks/beforeChange/promise.js +3 -7
  111. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  112. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +7 -7
  113. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  114. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  115. package/dist/fields/hooks/beforeValidate/index.d.ts +5 -5
  116. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  117. package/dist/fields/hooks/beforeValidate/index.js +2 -2
  118. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  119. package/dist/fields/hooks/beforeValidate/promise.d.ts +3 -3
  120. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  121. package/dist/fields/hooks/beforeValidate/promise.js +2 -2
  122. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  123. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +3 -3
  124. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  125. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  126. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  127. package/dist/fields/mergeBaseFields.js +2 -2
  128. package/dist/fields/mergeBaseFields.js.map +1 -1
  129. package/dist/globals/operations/findOne.d.ts.map +1 -1
  130. package/dist/globals/operations/findOne.js.map +1 -1
  131. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  132. package/dist/globals/operations/findVersionByID.js +2 -1
  133. package/dist/globals/operations/findVersionByID.js.map +1 -1
  134. package/dist/globals/operations/findVersions.js.map +1 -1
  135. package/dist/globals/operations/update.d.ts.map +1 -1
  136. package/dist/globals/operations/update.js +2 -1
  137. package/dist/globals/operations/update.js.map +1 -1
  138. package/dist/index.d.ts +11 -10
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +8 -12
  141. package/dist/index.js.map +1 -1
  142. package/dist/types/index.d.ts +8 -2
  143. package/dist/types/index.d.ts.map +1 -1
  144. package/dist/types/index.js.map +1 -1
  145. package/dist/uploads/imageResizer.d.ts.map +1 -1
  146. package/dist/uploads/imageResizer.js +16 -18
  147. package/dist/uploads/imageResizer.js.map +1 -1
  148. package/dist/utilities/deepCopyObject.d.ts +18 -1
  149. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  150. package/dist/utilities/deepCopyObject.js +147 -16
  151. package/dist/utilities/deepCopyObject.js.map +1 -1
  152. package/dist/utilities/deepMerge.d.ts +18 -1
  153. package/dist/utilities/deepMerge.d.ts.map +1 -1
  154. package/dist/utilities/deepMerge.js +38 -13
  155. package/dist/utilities/deepMerge.js.map +1 -1
  156. package/dist/utilities/isPlainObject.d.ts +1 -1
  157. package/dist/utilities/isPlainObject.d.ts.map +1 -1
  158. package/dist/utilities/isPlainObject.js +4 -18
  159. package/dist/utilities/isPlainObject.js.map +1 -1
  160. package/dist/utilities/logger.d.ts +5 -7
  161. package/dist/utilities/logger.d.ts.map +1 -1
  162. package/dist/utilities/logger.js +4 -7
  163. package/dist/utilities/logger.js.map +1 -1
  164. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  165. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  166. package/dist/versions/baseFields.d.ts.map +1 -1
  167. package/dist/versions/baseFields.js +1 -0
  168. package/dist/versions/baseFields.js.map +1 -1
  169. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  170. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +2 -1
  171. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  172. package/dist/versions/saveVersion.d.ts.map +1 -1
  173. package/dist/versions/saveVersion.js +2 -2
  174. package/dist/versions/saveVersion.js.map +1 -1
  175. package/package.json +5 -7
  176. package/dist/collections/config/schema.d.ts +0 -4
  177. package/dist/collections/config/schema.d.ts.map +0 -1
  178. package/dist/collections/config/schema.js +0 -191
  179. package/dist/collections/config/schema.js.map +0 -1
  180. package/dist/config/schema.d.ts +0 -5
  181. package/dist/config/schema.d.ts.map +0 -1
  182. package/dist/config/schema.js +0 -179
  183. package/dist/config/schema.js.map +0 -1
  184. package/dist/config/shared/adminViewSchema.d.ts +0 -3
  185. package/dist/config/shared/adminViewSchema.d.ts.map +0 -1
  186. package/dist/config/shared/adminViewSchema.js +0 -11
  187. package/dist/config/shared/adminViewSchema.js.map +0 -1
  188. package/dist/config/shared/componentSchema.d.ts +0 -16
  189. package/dist/config/shared/componentSchema.d.ts.map +0 -1
  190. package/dist/config/shared/componentSchema.js +0 -27
  191. package/dist/config/shared/componentSchema.js.map +0 -1
  192. package/dist/config/shared/openGraphSchema.d.ts +0 -3
  193. package/dist/config/shared/openGraphSchema.d.ts.map +0 -1
  194. package/dist/config/shared/openGraphSchema.js +0 -16
  195. package/dist/config/shared/openGraphSchema.js.map +0 -1
  196. package/dist/config/validate.d.ts +0 -4
  197. package/dist/config/validate.d.ts.map +0 -1
  198. package/dist/config/validate.js +0 -89
  199. package/dist/config/validate.js.map +0 -1
  200. package/dist/fields/config/schema.d.ts +0 -29
  201. package/dist/fields/config/schema.d.ts.map +0 -1
  202. package/dist/fields/config/schema.js +0 -508
  203. package/dist/fields/config/schema.js.map +0 -1
  204. package/dist/globals/config/schema.d.ts +0 -4
  205. package/dist/globals/config/schema.d.ts.map +0 -1
  206. package/dist/globals/config/schema.js +0 -79
  207. package/dist/globals/config/schema.js.map +0 -1
  208. package/dist/utilities/combineMerge.d.ts +0 -2
  209. package/dist/utilities/combineMerge.d.ts.map +0 -1
  210. package/dist/utilities/combineMerge.js +0 -16
  211. package/dist/utilities/combineMerge.js.map +0 -1
  212. package/dist/utilities/convertData.d.ts +0 -5
  213. package/dist/utilities/convertData.d.ts.map +0 -1
  214. package/dist/utilities/convertData.js +0 -16
  215. package/dist/utilities/convertData.js.map +0 -1
  216. package/dist/utilities/getCSSVariable.d.ts +0 -3
  217. package/dist/utilities/getCSSVariable.d.ts.map +0 -1
  218. package/dist/utilities/getCSSVariable.js +0 -3
  219. package/dist/utilities/getCSSVariable.js.map +0 -1
  220. package/dist/utilities/overwriteMerge.d.ts +0 -3
  221. package/dist/utilities/overwriteMerge.d.ts.map +0 -1
  222. package/dist/utilities/overwriteMerge.js +0 -4
  223. package/dist/utilities/overwriteMerge.js.map +0 -1
@@ -1,19 +1,150 @@
1
- export const deepCopyObject = (inObject)=>{
2
- if (inObject instanceof Date) return inObject;
3
- if (inObject instanceof Set) return new Set(inObject);
4
- if (inObject instanceof Map) return new Map(inObject);
5
- if (typeof inObject !== 'object' || inObject === null) {
6
- return inObject // Return the value if inObject is not an object
7
- ;
8
- }
9
- // Create an array or object to hold the values
10
- const outObject = Array.isArray(inObject) ? [] : {};
11
- Object.keys(inObject).forEach((key)=>{
12
- const value = inObject[key];
13
- // Recursively (deep) copy for nested objects, including arrays
14
- outObject[key] = typeof value === 'object' && value !== null ? deepCopyObject(value) : value;
15
- });
16
- return outObject;
1
+ /*
2
+ Main deepCopyObject handling - from rfdc: https://github.com/davidmarkclements/rfdc/blob/master/index.js
3
+
4
+ Copyright 2019 "David Mark Clements <david.mark.clements@gmail.com>"
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
7
+ documentation files (the "Software"), to deal in the Software without restriction, including without limitation
8
+ the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
9
+ to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions
12
+ of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
15
+ TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
17
+ CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
18
+ IN THE SOFTWARE.
19
+ */ function copyBuffer(cur) {
20
+ if (cur instanceof Buffer) {
21
+ return Buffer.from(cur);
22
+ }
23
+ return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);
24
+ }
25
+ const constructorHandlers = new Map();
26
+ constructorHandlers.set(Date, (o)=>new Date(o));
27
+ constructorHandlers.set(Map, (o, fn)=>new Map(cloneArray(Array.from(o), fn)));
28
+ constructorHandlers.set(Set, (o, fn)=>new Set(cloneArray(Array.from(o), fn)));
29
+ let handler = null;
30
+ function cloneArray(a, fn) {
31
+ const keys = Object.keys(a);
32
+ const a2 = new Array(keys.length);
33
+ for(let i = 0; i < keys.length; i++){
34
+ const k = keys[i];
35
+ const cur = a[k];
36
+ if (typeof cur !== 'object' || cur === null) {
37
+ a2[k] = cur;
38
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
39
+ a2[k] = handler(cur, fn);
40
+ } else if (ArrayBuffer.isView(cur)) {
41
+ a2[k] = copyBuffer(cur);
42
+ } else {
43
+ a2[k] = fn(cur);
44
+ }
45
+ }
46
+ return a2;
47
+ }
48
+ export const deepCopyObject = (o)=>{
49
+ if (typeof o !== 'object' || o === null) return o;
50
+ if (Array.isArray(o)) return cloneArray(o, deepCopyObject);
51
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
52
+ return handler(o, deepCopyObject);
53
+ }
54
+ const o2 = {};
55
+ for(const k in o){
56
+ if (Object.hasOwnProperty.call(o, k) === false) continue;
57
+ const cur = o[k];
58
+ if (typeof cur !== 'object' || cur === null) {
59
+ o2[k] = cur;
60
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
61
+ o2[k] = handler(cur, deepCopyObject);
62
+ } else if (ArrayBuffer.isView(cur)) {
63
+ o2[k] = copyBuffer(cur);
64
+ } else {
65
+ o2[k] = deepCopyObject(cur);
66
+ }
67
+ }
68
+ return o2;
17
69
  };
70
+ /*
71
+ Fast deepCopyObjectSimple handling - from fast-json-clone: https://github.com/rhysd/fast-json-clone
72
+
73
+ Benchmark: https://github.com/AlessioGr/fastest-deep-clone-json/blob/main/test/benchmark.js
74
+ */ /**
75
+ * A deepCopyObject implementation which only works for JSON objects and arrays, and is faster than
76
+ * JSON.parse(JSON.stringify(obj))
77
+ *
78
+ * @param value The JSON value to be cloned. There are two invariants. 1) It must not contain circles
79
+ * as JSON does not allow it. This function will cause infinite loop for such values by
80
+ * design. 2) It must contain JSON values only. Other values like `Date`, `Regexp`, `Map`,
81
+ * `Set`, `Buffer`, ... are not allowed.
82
+ * @returns The cloned JSON value.
83
+ */ export function deepCopyObjectSimple(value) {
84
+ if (typeof value !== 'object' || value === null) {
85
+ return value;
86
+ } else if (Array.isArray(value)) {
87
+ return value.map((e)=>typeof e !== 'object' || e === null ? e : deepCopyObjectSimple(e));
88
+ } else {
89
+ if (value instanceof Date) return new Date(value);
90
+ const ret = {};
91
+ for(const k in value){
92
+ const v = value[k];
93
+ ret[k] = typeof v !== 'object' || v === null ? v : deepCopyObjectSimple(v);
94
+ }
95
+ return ret;
96
+ }
97
+ }
98
+ /**
99
+ * A deepCopyObject implementation which is slower than deepCopyObject, but more correct.
100
+ * Can be used if correctness is more important than speed. Supports circular dependencies
101
+ */ export function deepCopyObjectComplex(object, cache = new WeakMap()) {
102
+ if (object === null) return null;
103
+ if (cache.has(object)) {
104
+ return cache.get(object);
105
+ }
106
+ // Handle Date
107
+ if (object instanceof Date) {
108
+ return new Date(object.getTime());
109
+ }
110
+ // Handle RegExp
111
+ if (object instanceof RegExp) {
112
+ return new RegExp(object.source, object.flags);
113
+ }
114
+ // Handle Map
115
+ if (object instanceof Map) {
116
+ const clonedMap = new Map();
117
+ cache.set(object, clonedMap);
118
+ for (const [key, value] of object.entries()){
119
+ clonedMap.set(key, deepCopyObjectComplex(value, cache));
120
+ }
121
+ return clonedMap;
122
+ }
123
+ // Handle Set
124
+ if (object instanceof Set) {
125
+ const clonedSet = new Set();
126
+ cache.set(object, clonedSet);
127
+ for (const value of object.values()){
128
+ clonedSet.add(deepCopyObjectComplex(value, cache));
129
+ }
130
+ return clonedSet;
131
+ }
132
+ // Handle Array and Object
133
+ if (typeof object === 'object' && object !== null) {
134
+ if ('$$typeof' in object && typeof object.$$typeof === 'symbol') {
135
+ return object;
136
+ }
137
+ const clonedObject = Array.isArray(object) ? [] : Object.create(Object.getPrototypeOf(object));
138
+ cache.set(object, clonedObject);
139
+ for(const key in object){
140
+ if (Object.prototype.hasOwnProperty.call(object, key) || Object.getOwnPropertySymbols(object).includes(key)) {
141
+ clonedObject[key] = deepCopyObjectComplex(object[key], cache);
142
+ }
143
+ }
144
+ return clonedObject;
145
+ }
146
+ // Handle all other cases
147
+ return object;
148
+ }
18
149
 
19
150
  //# sourceMappingURL=deepCopyObject.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/deepCopyObject.ts"],"sourcesContent":["export const deepCopyObject = (inObject) => {\n if (inObject instanceof Date) return inObject\n\n if (inObject instanceof Set) return new Set(inObject)\n\n if (inObject instanceof Map) return new Map(inObject)\n\n if (typeof inObject !== 'object' || inObject === null) {\n return inObject // Return the value if inObject is not an object\n }\n\n // Create an array or object to hold the values\n const outObject = Array.isArray(inObject) ? [] : {}\n\n Object.keys(inObject).forEach((key) => {\n const value = inObject[key]\n\n // Recursively (deep) copy for nested objects, including arrays\n outObject[key] = typeof value === 'object' && value !== null ? deepCopyObject(value) : value\n })\n\n return outObject\n}\n"],"names":["deepCopyObject","inObject","Date","Set","Map","outObject","Array","isArray","Object","keys","forEach","key","value"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,CAACC;IAC7B,IAAIA,oBAAoBC,MAAM,OAAOD;IAErC,IAAIA,oBAAoBE,KAAK,OAAO,IAAIA,IAAIF;IAE5C,IAAIA,oBAAoBG,KAAK,OAAO,IAAIA,IAAIH;IAE5C,IAAI,OAAOA,aAAa,YAAYA,aAAa,MAAM;QACrD,OAAOA,SAAS,gDAAgD;;IAClE;IAEA,+CAA+C;IAC/C,MAAMI,YAAYC,MAAMC,OAAO,CAACN,YAAY,EAAE,GAAG,CAAC;IAElDO,OAAOC,IAAI,CAACR,UAAUS,OAAO,CAAC,CAACC;QAC7B,MAAMC,QAAQX,QAAQ,CAACU,IAAI;QAE3B,+DAA+D;QAC/DN,SAAS,CAACM,IAAI,GAAG,OAAOC,UAAU,YAAYA,UAAU,OAAOZ,eAAeY,SAASA;IACzF;IAEA,OAAOP;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/deepCopyObject.ts"],"sourcesContent":["import type { JsonValue } from '../types/index.js'\n\n/*\nMain deepCopyObject handling - from rfdc: https://github.com/davidmarkclements/rfdc/blob/master/index.js\n\nCopyright 2019 \"David Mark Clements <david.mark.clements@gmail.com>\"\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and\nto permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions\nof the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\nTO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\nTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n*/\n\nfunction copyBuffer(cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nconst constructorHandlers = new Map()\nconstructorHandlers.set(Date, (o) => new Date(o))\nconstructorHandlers.set(Map, (o, fn) => new Map(cloneArray<any>(Array.from(o), fn)))\nconstructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)))\nlet handler = null\n\nfunction cloneArray<T>(a: T, fn): T {\n const keys = Object.keys(a)\n const a2 = new Array(keys.length)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n const cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2 as T\n}\n\nexport const deepCopyObject = <T>(o: T): T => {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, deepCopyObject)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, deepCopyObject)\n }\n const o2 = {}\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k as string] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k as string] = handler(cur, deepCopyObject)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k as string] = copyBuffer(cur)\n } else {\n o2[k as string] = deepCopyObject(cur)\n }\n }\n return o2 as T\n}\n\n/*\nFast deepCopyObjectSimple handling - from fast-json-clone: https://github.com/rhysd/fast-json-clone\n\nBenchmark: https://github.com/AlessioGr/fastest-deep-clone-json/blob/main/test/benchmark.js\n*/\n\n/**\n * A deepCopyObject implementation which only works for JSON objects and arrays, and is faster than\n * JSON.parse(JSON.stringify(obj))\n *\n * @param value The JSON value to be cloned. There are two invariants. 1) It must not contain circles\n * as JSON does not allow it. This function will cause infinite loop for such values by\n * design. 2) It must contain JSON values only. Other values like `Date`, `Regexp`, `Map`,\n * `Set`, `Buffer`, ... are not allowed.\n * @returns The cloned JSON value.\n */\nexport function deepCopyObjectSimple<T extends JsonValue>(value: T): T {\n if (typeof value !== 'object' || value === null) {\n return value\n } else if (Array.isArray(value)) {\n return value.map((e) =>\n typeof e !== 'object' || e === null ? e : deepCopyObjectSimple(e),\n ) as T\n } else {\n if (value instanceof Date) return new Date(value) as unknown as T\n const ret: { [key: string]: T } = {}\n for (const k in value) {\n const v = value[k]\n ret[k] = typeof v !== 'object' || v === null ? v : (deepCopyObjectSimple(v as T) as any)\n }\n return ret as unknown as T\n }\n}\n\n/**\n * A deepCopyObject implementation which is slower than deepCopyObject, but more correct.\n * Can be used if correctness is more important than speed. Supports circular dependencies\n */\nexport function deepCopyObjectComplex<T>(object: T, cache: WeakMap<any, any> = new WeakMap()): T {\n if (object === null) return null\n\n if (cache.has(object)) {\n return cache.get(object)\n }\n\n // Handle Date\n if (object instanceof Date) {\n return new Date(object.getTime()) as unknown as T\n }\n\n // Handle RegExp\n if (object instanceof RegExp) {\n return new RegExp(object.source, object.flags) as unknown as T\n }\n\n // Handle Map\n if (object instanceof Map) {\n const clonedMap = new Map()\n cache.set(object, clonedMap)\n for (const [key, value] of object.entries()) {\n clonedMap.set(key, deepCopyObjectComplex(value, cache))\n }\n return clonedMap as unknown as T\n }\n\n // Handle Set\n if (object instanceof Set) {\n const clonedSet = new Set()\n cache.set(object, clonedSet)\n for (const value of object.values()) {\n clonedSet.add(deepCopyObjectComplex(value, cache))\n }\n return clonedSet as unknown as T\n }\n\n // Handle Array and Object\n if (typeof object === 'object' && object !== null) {\n if ('$$typeof' in object && typeof object.$$typeof === 'symbol') {\n return object\n }\n\n const clonedObject: any = Array.isArray(object)\n ? []\n : Object.create(Object.getPrototypeOf(object))\n cache.set(object, clonedObject)\n\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) ||\n Object.getOwnPropertySymbols(object).includes(key as any)\n ) {\n clonedObject[key] = deepCopyObjectComplex(object[key], cache)\n }\n }\n\n return clonedObject as T\n }\n\n // Handle all other cases\n return object\n}\n"],"names":["copyBuffer","cur","Buffer","from","constructor","buffer","slice","byteOffset","length","constructorHandlers","Map","set","Date","o","fn","cloneArray","Array","Set","handler","a","keys","Object","a2","i","k","get","ArrayBuffer","isView","deepCopyObject","isArray","o2","hasOwnProperty","call","deepCopyObjectSimple","value","map","e","ret","v","deepCopyObjectComplex","object","cache","WeakMap","has","getTime","RegExp","source","flags","clonedMap","key","entries","clonedSet","values","add","$$typeof","clonedObject","create","getPrototypeOf","prototype","getOwnPropertySymbols","includes"],"mappings":"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"}
@@ -1,2 +1,19 @@
1
- export declare function deepMerge(obj1: any, obj2: any): any;
1
+ import deepMerge from 'deepmerge';
2
+ export { deepMerge };
3
+ /**
4
+ * Fully-featured deepMerge.
5
+ *
6
+ * Array handling: Arrays in the target object are combined with the source object's arrays.
7
+ */
8
+ export declare function deepMergeWithCombinedArrays<T extends object>(obj1: object, obj2: object): T;
9
+ /**
10
+ * Fully-featured deepMerge.
11
+ *
12
+ * Array handling: Arrays in the target object are replaced by the source object's arrays.
13
+ */
14
+ export declare function deepMergeWithSourceArrays<T extends object>(obj1: object, obj2: object): T;
15
+ /**
16
+ * Fully-featured deepMerge. Does not clone React components by default.
17
+ */
18
+ export declare function deepMergeWithReactComponents<T extends object>(obj1: object, obj2: object): T;
2
19
  //# sourceMappingURL=deepMerge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,OAcnC"}
1
+ {"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAIjC,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAiB3F;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAEzF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAI5F"}
@@ -1,17 +1,42 @@
1
- export function deepMerge(obj1, obj2) {
2
- const output = {
3
- ...obj1
4
- };
5
- for(const key in obj2){
6
- if (Object.prototype.hasOwnProperty.call(obj2, key)) {
7
- if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {
8
- output[key] = deepMerge(obj1[key], obj2[key]);
9
- } else {
10
- output[key] = obj2[key];
11
- }
1
+ import deepMerge from 'deepmerge';
2
+ import { isPlainObject } from './isPlainObject.js';
3
+ export { deepMerge };
4
+ /**
5
+ * Fully-featured deepMerge.
6
+ *
7
+ * Array handling: Arrays in the target object are combined with the source object's arrays.
8
+ */ export function deepMergeWithCombinedArrays(obj1, obj2) {
9
+ return deepMerge(obj1, obj2, {
10
+ arrayMerge: (target, source, options)=>{
11
+ const destination = target.slice();
12
+ source.forEach((item, index)=>{
13
+ if (typeof destination[index] === 'undefined') {
14
+ destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);
15
+ } else if (options.isMergeableObject(item)) {
16
+ destination[index] = deepMerge(target[index], item, options);
17
+ } else if (target.indexOf(item) === -1) {
18
+ destination.push(item);
19
+ }
20
+ });
21
+ return destination;
12
22
  }
13
- }
14
- return output;
23
+ });
24
+ }
25
+ /**
26
+ * Fully-featured deepMerge.
27
+ *
28
+ * Array handling: Arrays in the target object are replaced by the source object's arrays.
29
+ */ export function deepMergeWithSourceArrays(obj1, obj2) {
30
+ return deepMerge(obj1, obj2, {
31
+ arrayMerge: (_, source)=>source
32
+ });
33
+ }
34
+ /**
35
+ * Fully-featured deepMerge. Does not clone React components by default.
36
+ */ export function deepMergeWithReactComponents(obj1, obj2) {
37
+ return deepMerge(obj1, obj2, {
38
+ isMergeableObject: isPlainObject
39
+ });
15
40
  }
16
41
 
17
42
  //# sourceMappingURL=deepMerge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/deepMerge.ts"],"sourcesContent":["export function deepMerge(obj1, obj2) {\n const output = { ...obj1 }\n\n for (const key in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {\n output[key] = deepMerge(obj1[key], obj2[key])\n } else {\n output[key] = obj2[key]\n }\n }\n }\n\n return output\n}\n"],"names":["deepMerge","obj1","obj2","output","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"mappings":"AAAA,OAAO,SAASA,UAAUC,IAAI,EAAEC,IAAI;IAClC,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,IAAK,MAAMG,OAAOF,KAAM;QACtB,IAAIG,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACN,MAAME,MAAM;YACnD,IAAI,OAAOF,IAAI,CAACE,IAAI,KAAK,YAAY,CAACK,MAAMC,OAAO,CAACR,IAAI,CAACE,IAAI,KAAKH,IAAI,CAACG,IAAI,EAAE;gBAC3ED,MAAM,CAACC,IAAI,GAAGJ,UAAUC,IAAI,CAACG,IAAI,EAAEF,IAAI,CAACE,IAAI;YAC9C,OAAO;gBACLD,MAAM,CAACC,IAAI,GAAGF,IAAI,CAACE,IAAI;YACzB;QACF;IACF;IAEA,OAAOD;AACT"}
1
+ {"version":3,"sources":["../../src/utilities/deepMerge.ts"],"sourcesContent":["import deepMerge from 'deepmerge'\n\nimport { isPlainObject } from './isPlainObject.js'\n\nexport { deepMerge }\n/**\n * Fully-featured deepMerge.\n *\n * Array handling: Arrays in the target object are combined with the source object's arrays.\n */\nexport function deepMergeWithCombinedArrays<T extends object>(obj1: object, obj2: object): T {\n return deepMerge<T>(obj1, obj2, {\n arrayMerge: (target, source, options) => {\n const destination = target.slice()\n\n source.forEach((item, index) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options)\n } else if (options.isMergeableObject(item)) {\n destination[index] = deepMerge(target[index], item, options)\n } else if (target.indexOf(item) === -1) {\n destination.push(item)\n }\n })\n return destination\n },\n })\n}\n\n/**\n * Fully-featured deepMerge.\n *\n * Array handling: Arrays in the target object are replaced by the source object's arrays.\n */\nexport function deepMergeWithSourceArrays<T extends object>(obj1: object, obj2: object): T {\n return deepMerge<T>(obj1, obj2, { arrayMerge: (_, source) => source })\n}\n\n/**\n * Fully-featured deepMerge. Does not clone React components by default.\n */\nexport function deepMergeWithReactComponents<T extends object>(obj1: object, obj2: object): T {\n return deepMerge<T>(obj1, obj2, {\n isMergeableObject: isPlainObject,\n })\n}\n"],"names":["deepMerge","isPlainObject","deepMergeWithCombinedArrays","obj1","obj2","arrayMerge","target","source","options","destination","slice","forEach","item","index","cloneUnlessOtherwiseSpecified","isMergeableObject","indexOf","push","deepMergeWithSourceArrays","_","deepMergeWithReactComponents"],"mappings":"AAAA,OAAOA,eAAe,YAAW;AAEjC,SAASC,aAAa,QAAQ,qBAAoB;AAElD,SAASD,SAAS,GAAE;AACpB;;;;CAIC,GACD,OAAO,SAASE,4BAA8CC,IAAY,EAAEC,IAAY;IACtF,OAAOJ,UAAaG,MAAMC,MAAM;QAC9BC,YAAY,CAACC,QAAQC,QAAQC;YAC3B,MAAMC,cAAcH,OAAOI,KAAK;YAEhCH,OAAOI,OAAO,CAAC,CAACC,MAAMC;gBACpB,IAAI,OAAOJ,WAAW,CAACI,MAAM,KAAK,aAAa;oBAC7CJ,WAAW,CAACI,MAAM,GAAGL,QAAQM,6BAA6B,CAACF,MAAMJ;gBACnE,OAAO,IAAIA,QAAQO,iBAAiB,CAACH,OAAO;oBAC1CH,WAAW,CAACI,MAAM,GAAGb,UAAUM,MAAM,CAACO,MAAM,EAAED,MAAMJ;gBACtD,OAAO,IAAIF,OAAOU,OAAO,CAACJ,UAAU,CAAC,GAAG;oBACtCH,YAAYQ,IAAI,CAACL;gBACnB;YACF;YACA,OAAOH;QACT;IACF;AACF;AAEA;;;;CAIC,GACD,OAAO,SAASS,0BAA4Cf,IAAY,EAAEC,IAAY;IACpF,OAAOJ,UAAaG,MAAMC,MAAM;QAAEC,YAAY,CAACc,GAAGZ,SAAWA;IAAO;AACtE;AAEA;;CAEC,GACD,OAAO,SAASa,6BAA+CjB,IAAY,EAAEC,IAAY;IACvF,OAAOJ,UAAaG,MAAMC,MAAM;QAC9BW,mBAAmBd;IACrB;AACF"}
@@ -1,2 +1,2 @@
1
- export declare function isPlainObject(o: unknown): boolean;
1
+ export declare function isPlainObject(o: any): boolean;
2
2
  //# sourceMappingURL=isPlainObject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isPlainObject.d.ts","sourceRoot":"","sources":["../../src/utilities/isPlainObject.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAwBjD"}
1
+ {"version":3,"file":"isPlainObject.d.ts","sourceRoot":"","sources":["../../src/utilities/isPlainObject.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAQ7C"}
@@ -1,25 +1,11 @@
1
- function isObject(o) {
2
- return Object.prototype.toString.call(o) === '[object Object]';
3
- }
1
+ import { isReactComponentOrFunction } from './isReactComponent.js';
4
2
  export function isPlainObject(o) {
5
3
  // Is this a React component?
6
- if (typeof o === 'object' && '$$typeof' in o && typeof o.$$typeof === 'symbol') {
7
- return false;
8
- }
9
- if (isObject(o) === false) return false;
10
- // If has modified constructor
11
- const ctor = o.constructor;
12
- if (ctor === undefined) return true;
13
- // If has modified prototype
14
- const prot = ctor.prototype;
15
- if (isObject(prot) === false) return false;
16
- // If constructor does not have an Object-specific method
17
- // eslint-disable-next-line no-prototype-builtins
18
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
4
+ if (isReactComponentOrFunction(o)) {
19
5
  return false;
20
6
  }
21
- // Most likely a plain Object
22
- return true;
7
+ // from https://github.com/fastify/deepmerge/blob/master/index.js#L77
8
+ return typeof o === 'object' && o !== null && !(o instanceof RegExp) && !(o instanceof Date);
23
9
  }
24
10
 
25
11
  //# sourceMappingURL=isPlainObject.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/isPlainObject.ts"],"sourcesContent":["function isObject(o: unknown): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isPlainObject(o: unknown): boolean {\n // Is this a React component?\n if (typeof o === 'object' && '$$typeof' in o && typeof o.$$typeof === 'symbol') {\n return false\n }\n\n if (isObject(o) === false) return false\n\n // If has modified constructor\n const ctor = o.constructor\n if (ctor === undefined) return true\n\n // If has modified prototype\n const prot = ctor.prototype\n if (isObject(prot) === false) return false\n\n // If constructor does not have an Object-specific method\n // eslint-disable-next-line no-prototype-builtins\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n"],"names":["isObject","o","Object","prototype","toString","call","isPlainObject","$$typeof","ctor","constructor","undefined","prot","hasOwnProperty"],"mappings":"AAAA,SAASA,SAASC,CAAU;IAC1B,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OAAO;AAC/C;AAEA,OAAO,SAASK,cAAcL,CAAU;IACtC,6BAA6B;IAC7B,IAAI,OAAOA,MAAM,YAAY,cAAcA,KAAK,OAAOA,EAAEM,QAAQ,KAAK,UAAU;QAC9E,OAAO;IACT;IAEA,IAAIP,SAASC,OAAO,OAAO,OAAO;IAElC,8BAA8B;IAC9B,MAAMO,OAAOP,EAAEQ,WAAW;IAC1B,IAAID,SAASE,WAAW,OAAO;IAE/B,4BAA4B;IAC5B,MAAMC,OAAOH,KAAKL,SAAS;IAC3B,IAAIH,SAASW,UAAU,OAAO,OAAO;IAErC,yDAAyD;IACzD,iDAAiD;IACjD,IAAIA,KAAKC,cAAc,CAAC,qBAAqB,OAAO;QAClD,OAAO;IACT;IAEA,6BAA6B;IAC7B,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/utilities/isPlainObject.ts"],"sourcesContent":["import { isReactComponentOrFunction } from './isReactComponent.js'\n\nexport function isPlainObject(o: any): boolean {\n // Is this a React component?\n if (isReactComponentOrFunction(o)) {\n return false\n }\n\n // from https://github.com/fastify/deepmerge/blob/master/index.js#L77\n return typeof o === 'object' && o !== null && !(o instanceof RegExp) && !(o instanceof Date)\n}\n"],"names":["isReactComponentOrFunction","isPlainObject","o","RegExp","Date"],"mappings":"AAAA,SAASA,0BAA0B,QAAQ,wBAAuB;AAElE,OAAO,SAASC,cAAcC,CAAM;IAClC,6BAA6B;IAC7B,IAAIF,2BAA2BE,IAAI;QACjC,OAAO;IACT;IAEA,qEAAqE;IACrE,OAAO,OAAOA,MAAM,YAAYA,MAAM,QAAQ,CAAEA,CAAAA,aAAaC,MAAK,KAAM,CAAED,CAAAA,aAAaE,IAAG;AAC5F"}
@@ -1,8 +1,6 @@
1
- import pinoImport from 'pino';
2
- import pinoPrettyImport from 'pino-pretty';
3
- export type PayloadLogger = pinoImport.default.Logger;
4
- export declare const defaultLoggerOptions: pinoImport.default.LoggerOptions;
5
- export declare const prettySyncLoggerDestination: pinoPrettyImport.PinoPretty.PrettyStream;
6
- declare const getLogger: (name?: string, options?: pinoImport.default.LoggerOptions, destination?: pinoImport.default.DestinationStream) => PayloadLogger;
7
- export default getLogger;
1
+ import { type DestinationStream, type Logger, type LoggerOptions } from 'pino';
2
+ export type PayloadLogger = Logger;
3
+ export declare const defaultLoggerOptions: LoggerOptions;
4
+ export declare const prettySyncLoggerDestination: import("pino-pretty").default.PrettyStream;
5
+ export declare const getLogger: (name?: string, options?: LoggerOptions, destination?: DestinationStream) => PayloadLogger;
8
6
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utilities/logger.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,MAAM,CAAA;AAC7B,OAAO,gBAAgB,MAAM,aAAa,CAAA;AAM1C,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAA;AAQrD,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,aAKrD,CAAA;AAED,eAAO,MAAM,2BAA2B,0CAItC,CAAA;AAEF,QAAA,MAAM,SAAS,4BAEH,UAAU,CAAC,OAAO,CAAC,aAAa,gBAC5B,UAAU,CAAC,OAAO,CAAC,iBAAiB,KACjD,aAaF,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utilities/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAQ,MAAM,MAAM,CAAA;AAGpF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAQlC,eAAO,MAAM,oBAAoB,EAAE,aAKlC,CAAA;AAED,eAAO,MAAM,2BAA2B,4CAItC,CAAA;AAEF,eAAO,MAAM,SAAS,4BAEV,aAAa,gBACT,iBAAiB,KAC9B,aAaF,CAAA"}
@@ -1,7 +1,5 @@
1
- import pinoImport from 'pino';
2
- import pinoPrettyImport from 'pino-pretty';
3
- const pino = pinoImport.default || pinoImport;
4
- const pinoPretty = pinoPrettyImport.default || pinoPrettyImport;
1
+ import { pino } from 'pino';
2
+ import { build } from 'pino-pretty';
5
3
  const prettyOptions = {
6
4
  colorize: true,
7
5
  ignore: 'pid,hostname',
@@ -13,12 +11,12 @@ export const defaultLoggerOptions = {
13
11
  target: 'pino-pretty'
14
12
  }
15
13
  };
16
- export const prettySyncLoggerDestination = pinoPretty({
14
+ export const prettySyncLoggerDestination = build({
17
15
  ...prettyOptions,
18
16
  destination: 1,
19
17
  sync: true
20
18
  });
21
- const getLogger = (name = 'payload', options, destination)=>{
19
+ export const getLogger = (name = 'payload', options, destination)=>{
22
20
  if (options) {
23
21
  return pino({
24
22
  name: options?.name || name,
@@ -28,6 +26,5 @@ const getLogger = (name = 'payload', options, destination)=>{
28
26
  }
29
27
  return pino(prettySyncLoggerDestination);
30
28
  };
31
- export default getLogger;
32
29
 
33
30
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/logger.ts"],"sourcesContent":["import pinoImport from 'pino'\nimport pinoPrettyImport from 'pino-pretty'\n\nconst pino = (pinoImport.default || pinoImport) as unknown as typeof pinoImport.default\nconst pinoPretty = (pinoPrettyImport.default ||\n pinoPrettyImport) as unknown as typeof pinoPrettyImport.default\n\nexport type PayloadLogger = pinoImport.default.Logger\n\nconst prettyOptions: pinoPrettyImport.PrettyOptions = {\n colorize: true,\n ignore: 'pid,hostname',\n translateTime: 'SYS:HH:MM:ss',\n}\n\nexport const defaultLoggerOptions: pinoImport.default.LoggerOptions = {\n transport: {\n options: prettyOptions,\n target: 'pino-pretty',\n },\n}\n\nexport const prettySyncLoggerDestination = pinoPretty({\n ...prettyOptions,\n destination: 1, // stdout\n sync: true,\n})\n\nconst getLogger = (\n name = 'payload',\n options?: pinoImport.default.LoggerOptions,\n destination?: pinoImport.default.DestinationStream,\n): PayloadLogger => {\n if (options) {\n return pino(\n {\n name: options?.name || name,\n enabled: process.env.DISABLE_LOGGING !== 'true',\n ...(options || defaultLoggerOptions),\n },\n destination,\n )\n }\n\n return pino(prettySyncLoggerDestination)\n}\n\nexport default getLogger\n"],"names":["pinoImport","pinoPrettyImport","pino","default","pinoPretty","prettyOptions","colorize","ignore","translateTime","defaultLoggerOptions","transport","options","target","prettySyncLoggerDestination","destination","sync","getLogger","name","enabled","process","env","DISABLE_LOGGING"],"mappings":"AAAA,OAAOA,gBAAgB,OAAM;AAC7B,OAAOC,sBAAsB,cAAa;AAE1C,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AACpC,MAAMI,aAAcH,iBAAiBE,OAAO,IAC1CF;AAIF,MAAMI,gBAAgD;IACpDC,UAAU;IACVC,QAAQ;IACRC,eAAe;AACjB;AAEA,OAAO,MAAMC,uBAAyD;IACpEC,WAAW;QACTC,SAASN;QACTO,QAAQ;IACV;AACF,EAAC;AAED,OAAO,MAAMC,8BAA8BT,WAAW;IACpD,GAAGC,aAAa;IAChBS,aAAa;IACbC,MAAM;AACR,GAAE;AAEF,MAAMC,YAAY,CAChBC,OAAO,SAAS,EAChBN,SACAG;IAEA,IAAIH,SAAS;QACX,OAAOT,KACL;YACEe,MAAMN,SAASM,QAAQA;YACvBC,SAASC,QAAQC,GAAG,CAACC,eAAe,KAAK;YACzC,GAAIV,WAAWF,oBAAoB;QACrC,GACAK;IAEJ;IAEA,OAAOZ,KAAKW;AACd;AAEA,eAAeG,UAAS"}
1
+ {"version":3,"sources":["../../src/utilities/logger.ts"],"sourcesContent":["import { type DestinationStream, type Logger, type LoggerOptions, pino } from 'pino'\nimport { type PrettyOptions, build } from 'pino-pretty'\n\nexport type PayloadLogger = Logger\n\nconst prettyOptions: PrettyOptions = {\n colorize: true,\n ignore: 'pid,hostname',\n translateTime: 'SYS:HH:MM:ss',\n}\n\nexport const defaultLoggerOptions: LoggerOptions = {\n transport: {\n options: prettyOptions,\n target: 'pino-pretty',\n },\n}\n\nexport const prettySyncLoggerDestination = build({\n ...prettyOptions,\n destination: 1, // stdout\n sync: true,\n})\n\nexport const getLogger = (\n name = 'payload',\n options?: LoggerOptions,\n destination?: DestinationStream,\n): PayloadLogger => {\n if (options) {\n return pino(\n {\n name: options?.name || name,\n enabled: process.env.DISABLE_LOGGING !== 'true',\n ...(options || defaultLoggerOptions),\n },\n destination,\n )\n }\n\n return pino(prettySyncLoggerDestination)\n}\n"],"names":["pino","build","prettyOptions","colorize","ignore","translateTime","defaultLoggerOptions","transport","options","target","prettySyncLoggerDestination","destination","sync","getLogger","name","enabled","process","env","DISABLE_LOGGING"],"mappings":"AAAA,SAAkEA,IAAI,QAAQ,OAAM;AACpF,SAA6BC,KAAK,QAAQ,cAAa;AAIvD,MAAMC,gBAA+B;IACnCC,UAAU;IACVC,QAAQ;IACRC,eAAe;AACjB;AAEA,OAAO,MAAMC,uBAAsC;IACjDC,WAAW;QACTC,SAASN;QACTO,QAAQ;IACV;AACF,EAAC;AAED,OAAO,MAAMC,8BAA8BT,MAAM;IAC/C,GAAGC,aAAa;IAChBS,aAAa;IACbC,MAAM;AACR,GAAE;AAEF,OAAO,MAAMC,YAAY,CACvBC,OAAO,SAAS,EAChBN,SACAG;IAEA,IAAIH,SAAS;QACX,OAAOR,KACL;YACEc,MAAMN,SAASM,QAAQA;YACvBC,SAASC,QAAQC,GAAG,CAACC,eAAe,KAAK;YACzC,GAAIV,WAAWF,oBAAoB;QACrC,GACAK;IAEJ;IAEA,OAAOX,KAAKU;AACd,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adminInit.d.ts","sourceRoot":"","sources":["../../../../src/utilities/telemetry/events/adminInit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAK7D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,CAAA;AACD,eAAO,MAAM,SAAS,+BAAgC,IAAI,KAAG,IAuB5D,CAAA"}
1
+ {"version":3,"file":"adminInit.d.ts","sourceRoot":"","sources":["../../../../src/utilities/telemetry/events/adminInit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAK7D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,CAAA;AACD,eAAO,MAAM,SAAS,+BAAgC,IAAI,KAAG,IAuB5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utilities/telemetry/events/adminInit.ts"],"sourcesContent":["import type { User } from '../../../auth/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\n\nimport { sendEvent } from '../index.js'\nimport { oneWayHash } from '../oneWayHash.js'\n\nexport type AdminInitEvent = {\n domainID?: string\n type: 'admin-init'\n userID?: string\n}\n\ntype Args = {\n headers: Request['headers']\n payload: Payload\n user: PayloadRequest['user']\n}\nexport const adminInit = ({ headers, payload, user }: Args): void => {\n const host = headers.get('host')\n\n let domainID: string\n let userID: string\n\n if (host) {\n domainID = oneWayHash(host, payload.secret)\n }\n\n if (user?.id) {\n userID = oneWayHash(String(user.id), payload.secret)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendEvent({\n event: {\n type: 'admin-init',\n domainID,\n userID,\n },\n payload,\n })\n}\n"],"names":["sendEvent","oneWayHash","adminInit","headers","payload","user","host","get","domainID","userID","secret","id","String","event","type"],"mappings":"AAIA,SAASA,SAAS,QAAQ,cAAa;AACvC,SAASC,UAAU,QAAQ,mBAAkB;AAa7C,OAAO,MAAMC,YAAY,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAQ;IACxD,MAAMC,OAAOH,QAAQI,GAAG,CAAC;IAEzB,IAAIC;IACJ,IAAIC;IAEJ,IAAIH,MAAM;QACRE,WAAWP,WAAWK,MAAMF,QAAQM,MAAM;IAC5C;IAEA,IAAIL,MAAMM,IAAI;QACZF,SAASR,WAAWW,OAAOP,KAAKM,EAAE,GAAGP,QAAQM,MAAM;IACrD;IAEA,mEAAmE;IACnEV,UAAU;QACRa,OAAO;YACLC,MAAM;YACNN;YACAC;QACF;QACAL;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/utilities/telemetry/events/adminInit.ts"],"sourcesContent":["import type { Payload } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\n\nimport { sendEvent } from '../index.js'\nimport { oneWayHash } from '../oneWayHash.js'\n\nexport type AdminInitEvent = {\n domainID?: string\n type: 'admin-init'\n userID?: string\n}\n\ntype Args = {\n headers: Request['headers']\n payload: Payload\n user: PayloadRequest['user']\n}\nexport const adminInit = ({ headers, payload, user }: Args): void => {\n const host = headers.get('host')\n\n let domainID: string\n let userID: string\n\n if (host) {\n domainID = oneWayHash(host, payload.secret)\n }\n\n if (user?.id) {\n userID = oneWayHash(String(user.id), payload.secret)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendEvent({\n event: {\n type: 'admin-init',\n domainID,\n userID,\n },\n payload,\n })\n}\n"],"names":["sendEvent","oneWayHash","adminInit","headers","payload","user","host","get","domainID","userID","secret","id","String","event","type"],"mappings":"AAGA,SAASA,SAAS,QAAQ,cAAa;AACvC,SAASC,UAAU,QAAQ,mBAAkB;AAa7C,OAAO,MAAMC,YAAY,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAQ;IACxD,MAAMC,OAAOH,QAAQI,GAAG,CAAC;IAEzB,IAAIC;IACJ,IAAIC;IAEJ,IAAIH,MAAM;QACRE,WAAWP,WAAWK,MAAMF,QAAQM,MAAM;IAC5C;IAEA,IAAIL,MAAMM,IAAI;QACZF,SAASR,WAAWW,OAAOP,KAAKM,EAAE,GAAGP,QAAQM,MAAM;IACrD;IAEA,mEAAmE;IACnEV,UAAU;QACRa,OAAO;YACLC,MAAM;YACNN;YACAC;QACF;QACAL;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseFields.d.ts","sourceRoot":"","sources":["../../src/versions/baseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD,eAAO,MAAM,QAAQ;;;;;GASpB,CAAA;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,EAc7B,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"baseFields.d.ts","sourceRoot":"","sources":["../../src/versions/baseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD,eAAO,MAAM,QAAQ;;;;;GASpB,CAAA;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,EAe7B,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -19,6 +19,7 @@ const baseVersionFields = [
19
19
  disableBulkEdit: true
20
20
  },
21
21
  defaultValue: 'draft',
22
+ index: true,
22
23
  label: ({ t })=>t('version:status'),
23
24
  options: statuses
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/baseFields.ts"],"sourcesContent":["import type { Field } from '../fields/config/types.js'\n\nexport const statuses = [\n {\n label: ({ t }) => t('version:draft'),\n value: 'draft',\n },\n {\n label: ({ t }) => t('version:published'),\n value: 'published',\n },\n]\n\nconst baseVersionFields: Field[] = [\n {\n name: '_status',\n type: 'select',\n admin: {\n components: {\n Field: () => null,\n },\n disableBulkEdit: true,\n },\n defaultValue: 'draft',\n label: ({ t }) => t('version:status'),\n options: statuses,\n },\n]\n\nexport default baseVersionFields\n"],"names":["statuses","label","t","value","baseVersionFields","name","type","admin","components","Field","disableBulkEdit","defaultValue","options"],"mappings":"AAEA,OAAO,MAAMA,WAAW;IACtB;QACEC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;IACA;QACEF,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;CACD,CAAA;AAED,MAAMC,oBAA6B;IACjC;QACEC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;YACAC,iBAAiB;QACnB;QACAC,cAAc;QACdV,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBU,SAASZ;IACX;CACD;AAED,eAAeI,kBAAiB"}
1
+ {"version":3,"sources":["../../src/versions/baseFields.ts"],"sourcesContent":["import type { Field } from '../fields/config/types.js'\n\nexport const statuses = [\n {\n label: ({ t }) => t('version:draft'),\n value: 'draft',\n },\n {\n label: ({ t }) => t('version:published'),\n value: 'published',\n },\n]\n\nconst baseVersionFields: Field[] = [\n {\n name: '_status',\n type: 'select',\n admin: {\n components: {\n Field: () => null,\n },\n disableBulkEdit: true,\n },\n defaultValue: 'draft',\n index: true,\n label: ({ t }) => t('version:status'),\n options: statuses,\n },\n]\n\nexport default baseVersionFields\n"],"names":["statuses","label","t","value","baseVersionFields","name","type","admin","components","Field","disableBulkEdit","defaultValue","index","options"],"mappings":"AAEA,OAAO,MAAMA,WAAW;IACtB;QACEC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;IACA;QACEF,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;CACD,CAAA;AAED,MAAMC,oBAA6B;IACjC;QACEC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;YACAC,iBAAiB;QACnB;QACAC,cAAc;QACdC,OAAO;QACPX,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBW,SAASb;IACX;CACD;AAED,eAAeI,kBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"replaceWithDraftIfAvailable.d.ts","sourceRoot":"","sources":["../../../src/versions/drafts/replaceWithDraftIfAvailable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAQjE,KAAK,SAAS,CAAC,CAAC,IAAI;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IACzD,UAAU,EAAE,YAAY,GAAG,QAAQ,CAAA;IACnC,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,2BAA2B,GAAU,CAAC,SAAS,UAAU,mDAM5D,SAAS,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CA4E1B,CAAA;AAED,eAAe,2BAA2B,CAAA"}
1
+ {"version":3,"file":"replaceWithDraftIfAvailable.d.ts","sourceRoot":"","sources":["../../../src/versions/drafts/replaceWithDraftIfAvailable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AASjE,KAAK,SAAS,CAAC,CAAC,IAAI;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IACzD,UAAU,EAAE,YAAY,GAAG,QAAQ,CAAA;IACnC,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,2BAA2B,GAAU,CAAC,SAAS,UAAU,mDAM5D,SAAS,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CA4E1B,CAAA;AAED,eAAe,2BAA2B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { hasWhereAccessResult } from '../../auth/index.js';
2
2
  import { combineQueries } from '../../database/combineQueries.js';
3
3
  import { docHasTimestamps } from '../../types/index.js';
4
+ import { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js';
4
5
  import sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js';
5
6
  import { appendVersionToQueryKey } from './appendVersionToQueryKey.js';
6
7
  const replaceWithDraftIfAvailable = async ({ accessResult, doc, entity, entityType, req })=>{
@@ -52,7 +53,7 @@ const replaceWithDraftIfAvailable = async ({ accessResult, doc, entity, entityTy
52
53
  if (!draft) {
53
54
  return doc;
54
55
  }
55
- draft = JSON.parse(JSON.stringify(draft));
56
+ draft = deepCopyObjectSimple(draft);
56
57
  draft = sanitizeInternalFields(draft);
57
58
  // Patch globalType onto version doc
58
59
  if (entityType === 'global' && 'globalType' in doc) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/versions/drafts/replaceWithDraftIfAvailable.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { AccessResult } from '../../config/types.js'\nimport type { FindGlobalVersionsArgs, FindVersionsArgs } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\n\nimport { hasWhereAccessResult } from '../../auth/index.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { docHasTimestamps } from '../../types/index.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { appendVersionToQueryKey } from './appendVersionToQueryKey.js'\n\ntype Arguments<T> = {\n accessResult: AccessResult\n doc: T\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n entityType: 'collection' | 'global'\n overrideAccess: boolean\n req: PayloadRequest\n}\n\nconst replaceWithDraftIfAvailable = async <T extends TypeWithID>({\n accessResult,\n doc,\n entity,\n entityType,\n req,\n}: Arguments<T>): Promise<T> => {\n const { locale } = req\n\n const queryToBuild: Where = {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n ],\n }\n\n if (entityType === 'collection') {\n queryToBuild.and.push({\n parent: {\n equals: doc.id,\n },\n })\n }\n\n if (docHasTimestamps(doc)) {\n queryToBuild.and.push({\n updatedAt: {\n greater_than: doc.updatedAt,\n },\n })\n }\n\n let versionAccessResult\n\n if (hasWhereAccessResult(accessResult)) {\n versionAccessResult = appendVersionToQueryKey(accessResult)\n }\n\n const findVersionsArgs: FindGlobalVersionsArgs & FindVersionsArgs = {\n collection: entity.slug,\n global: entity.slug,\n limit: 1,\n locale,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: combineQueries(queryToBuild, versionAccessResult),\n }\n\n let versionDocs\n if (entityType === 'global') {\n versionDocs = (await req.payload.db.findGlobalVersions<T>(findVersionsArgs)).docs\n } else {\n versionDocs = (await req.payload.db.findVersions<T>(findVersionsArgs)).docs\n }\n\n let draft = versionDocs[0]\n\n if (!draft) {\n return doc\n }\n\n draft = JSON.parse(JSON.stringify(draft))\n draft = sanitizeInternalFields(draft)\n\n // Patch globalType onto version doc\n if (entityType === 'global' && 'globalType' in doc) {\n draft.version.globalType = doc.globalType\n }\n\n // Disregard all other draft content at this point,\n // Only interested in the version itself.\n // Operations will handle firing hooks, etc.\n return {\n id: doc.id,\n ...draft.version,\n createdAt: draft.createdAt,\n updatedAt: draft.updatedAt,\n }\n}\n\nexport default replaceWithDraftIfAvailable\n"],"names":["hasWhereAccessResult","combineQueries","docHasTimestamps","sanitizeInternalFields","appendVersionToQueryKey","replaceWithDraftIfAvailable","accessResult","doc","entity","entityType","req","locale","queryToBuild","and","equals","push","parent","id","updatedAt","greater_than","versionAccessResult","findVersionsArgs","collection","slug","global","limit","pagination","sort","where","versionDocs","payload","db","findGlobalVersions","docs","findVersions","draft","JSON","parse","stringify","version","globalType","createdAt"],"mappings":"AAMA,SAASA,oBAAoB,QAAQ,sBAAqB;AAC1D,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,gBAAgB,QAAQ,uBAAsB;AACvD,OAAOC,4BAA4B,4CAA2C;AAC9E,SAASC,uBAAuB,QAAQ,+BAA8B;AAWtE,MAAMC,8BAA8B,OAA6B,EAC/DC,YAAY,EACZC,GAAG,EACHC,MAAM,EACNC,UAAU,EACVC,GAAG,EACU;IACb,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,MAAME,eAAsB;QAC1BC,KAAK;YACH;gBACE,mBAAmB;oBACjBC,QAAQ;gBACV;YACF;SACD;IACH;IAEA,IAAIL,eAAe,cAAc;QAC/BG,aAAaC,GAAG,CAACE,IAAI,CAAC;YACpBC,QAAQ;gBACNF,QAAQP,IAAIU,EAAE;YAChB;QACF;IACF;IAEA,IAAIf,iBAAiBK,MAAM;QACzBK,aAAaC,GAAG,CAACE,IAAI,CAAC;YACpBG,WAAW;gBACTC,cAAcZ,IAAIW,SAAS;YAC7B;QACF;IACF;IAEA,IAAIE;IAEJ,IAAIpB,qBAAqBM,eAAe;QACtCc,sBAAsBhB,wBAAwBE;IAChD;IAEA,MAAMe,mBAA8D;QAClEC,YAAYd,OAAOe,IAAI;QACvBC,QAAQhB,OAAOe,IAAI;QACnBE,OAAO;QACPd;QACAe,YAAY;QACZhB;QACAiB,MAAM;QACNC,OAAO3B,eAAeW,cAAcQ;IACtC;IAEA,IAAIS;IACJ,IAAIpB,eAAe,UAAU;QAC3BoB,cAAc,AAAC,CAAA,MAAMnB,IAAIoB,OAAO,CAACC,EAAE,CAACC,kBAAkB,CAAIX,iBAAgB,EAAGY,IAAI;IACnF,OAAO;QACLJ,cAAc,AAAC,CAAA,MAAMnB,IAAIoB,OAAO,CAACC,EAAE,CAACG,YAAY,CAAIb,iBAAgB,EAAGY,IAAI;IAC7E;IAEA,IAAIE,QAAQN,WAAW,CAAC,EAAE;IAE1B,IAAI,CAACM,OAAO;QACV,OAAO5B;IACT;IAEA4B,QAAQC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACH;IAClCA,QAAQhC,uBAAuBgC;IAE/B,oCAAoC;IACpC,IAAI1B,eAAe,YAAY,gBAAgBF,KAAK;QAClD4B,MAAMI,OAAO,CAACC,UAAU,GAAGjC,IAAIiC,UAAU;IAC3C;IAEA,mDAAmD;IACnD,yCAAyC;IACzC,4CAA4C;IAC5C,OAAO;QACLvB,IAAIV,IAAIU,EAAE;QACV,GAAGkB,MAAMI,OAAO;QAChBE,WAAWN,MAAMM,SAAS;QAC1BvB,WAAWiB,MAAMjB,SAAS;IAC5B;AACF;AAEA,eAAeb,4BAA2B"}
1
+ {"version":3,"sources":["../../../src/versions/drafts/replaceWithDraftIfAvailable.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { AccessResult } from '../../config/types.js'\nimport type { FindGlobalVersionsArgs, FindVersionsArgs } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\n\nimport { hasWhereAccessResult } from '../../auth/index.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { docHasTimestamps } from '../../types/index.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { appendVersionToQueryKey } from './appendVersionToQueryKey.js'\n\ntype Arguments<T> = {\n accessResult: AccessResult\n doc: T\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n entityType: 'collection' | 'global'\n overrideAccess: boolean\n req: PayloadRequest\n}\n\nconst replaceWithDraftIfAvailable = async <T extends TypeWithID>({\n accessResult,\n doc,\n entity,\n entityType,\n req,\n}: Arguments<T>): Promise<T> => {\n const { locale } = req\n\n const queryToBuild: Where = {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n ],\n }\n\n if (entityType === 'collection') {\n queryToBuild.and.push({\n parent: {\n equals: doc.id,\n },\n })\n }\n\n if (docHasTimestamps(doc)) {\n queryToBuild.and.push({\n updatedAt: {\n greater_than: doc.updatedAt,\n },\n })\n }\n\n let versionAccessResult\n\n if (hasWhereAccessResult(accessResult)) {\n versionAccessResult = appendVersionToQueryKey(accessResult)\n }\n\n const findVersionsArgs: FindGlobalVersionsArgs & FindVersionsArgs = {\n collection: entity.slug,\n global: entity.slug,\n limit: 1,\n locale,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: combineQueries(queryToBuild, versionAccessResult),\n }\n\n let versionDocs\n if (entityType === 'global') {\n versionDocs = (await req.payload.db.findGlobalVersions<T>(findVersionsArgs)).docs\n } else {\n versionDocs = (await req.payload.db.findVersions<T>(findVersionsArgs)).docs\n }\n\n let draft = versionDocs[0]\n\n if (!draft) {\n return doc\n }\n\n draft = deepCopyObjectSimple(draft)\n draft = sanitizeInternalFields(draft)\n\n // Patch globalType onto version doc\n if (entityType === 'global' && 'globalType' in doc) {\n draft.version.globalType = doc.globalType\n }\n\n // Disregard all other draft content at this point,\n // Only interested in the version itself.\n // Operations will handle firing hooks, etc.\n return {\n id: doc.id,\n ...draft.version,\n createdAt: draft.createdAt,\n updatedAt: draft.updatedAt,\n }\n}\n\nexport default replaceWithDraftIfAvailable\n"],"names":["hasWhereAccessResult","combineQueries","docHasTimestamps","deepCopyObjectSimple","sanitizeInternalFields","appendVersionToQueryKey","replaceWithDraftIfAvailable","accessResult","doc","entity","entityType","req","locale","queryToBuild","and","equals","push","parent","id","updatedAt","greater_than","versionAccessResult","findVersionsArgs","collection","slug","global","limit","pagination","sort","where","versionDocs","payload","db","findGlobalVersions","docs","findVersions","draft","version","globalType","createdAt"],"mappings":"AAMA,SAASA,oBAAoB,QAAQ,sBAAqB;AAC1D,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,gBAAgB,QAAQ,uBAAsB;AACvD,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,OAAOC,4BAA4B,4CAA2C;AAC9E,SAASC,uBAAuB,QAAQ,+BAA8B;AAWtE,MAAMC,8BAA8B,OAA6B,EAC/DC,YAAY,EACZC,GAAG,EACHC,MAAM,EACNC,UAAU,EACVC,GAAG,EACU;IACb,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,MAAME,eAAsB;QAC1BC,KAAK;YACH;gBACE,mBAAmB;oBACjBC,QAAQ;gBACV;YACF;SACD;IACH;IAEA,IAAIL,eAAe,cAAc;QAC/BG,aAAaC,GAAG,CAACE,IAAI,CAAC;YACpBC,QAAQ;gBACNF,QAAQP,IAAIU,EAAE;YAChB;QACF;IACF;IAEA,IAAIhB,iBAAiBM,MAAM;QACzBK,aAAaC,GAAG,CAACE,IAAI,CAAC;YACpBG,WAAW;gBACTC,cAAcZ,IAAIW,SAAS;YAC7B;QACF;IACF;IAEA,IAAIE;IAEJ,IAAIrB,qBAAqBO,eAAe;QACtCc,sBAAsBhB,wBAAwBE;IAChD;IAEA,MAAMe,mBAA8D;QAClEC,YAAYd,OAAOe,IAAI;QACvBC,QAAQhB,OAAOe,IAAI;QACnBE,OAAO;QACPd;QACAe,YAAY;QACZhB;QACAiB,MAAM;QACNC,OAAO5B,eAAeY,cAAcQ;IACtC;IAEA,IAAIS;IACJ,IAAIpB,eAAe,UAAU;QAC3BoB,cAAc,AAAC,CAAA,MAAMnB,IAAIoB,OAAO,CAACC,EAAE,CAACC,kBAAkB,CAAIX,iBAAgB,EAAGY,IAAI;IACnF,OAAO;QACLJ,cAAc,AAAC,CAAA,MAAMnB,IAAIoB,OAAO,CAACC,EAAE,CAACG,YAAY,CAAIb,iBAAgB,EAAGY,IAAI;IAC7E;IAEA,IAAIE,QAAQN,WAAW,CAAC,EAAE;IAE1B,IAAI,CAACM,OAAO;QACV,OAAO5B;IACT;IAEA4B,QAAQjC,qBAAqBiC;IAC7BA,QAAQhC,uBAAuBgC;IAE/B,oCAAoC;IACpC,IAAI1B,eAAe,YAAY,gBAAgBF,KAAK;QAClD4B,MAAMC,OAAO,CAACC,UAAU,GAAG9B,IAAI8B,UAAU;IAC3C;IAEA,mDAAmD;IACnD,yCAAyC;IACzC,4CAA4C;IAC5C,OAAO;QACLpB,IAAIV,IAAIU,EAAE;QACV,GAAGkB,MAAMC,OAAO;QAChBE,WAAWH,MAAMG,SAAS;QAC1BpB,WAAWiB,MAAMjB,SAAS;IAC5B;AACF;AAEA,eAAeb,4BAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,oFASrB,IAAI,KAAG,OAAO,CAAC,UAAU,CAmI3B,CAAA"}
1
+ {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,oFASrB,IAAI,KAAG,OAAO,CAAC,UAAU,CAmI3B,CAAA"}
@@ -1,11 +1,11 @@
1
- import { deepCopyObject } from '../utilities/deepCopyObject.js';
1
+ import { deepCopyObjectSimple } from '../index.js';
2
2
  import sanitizeInternalFields from '../utilities/sanitizeInternalFields.js';
3
3
  import { enforceMaxVersions } from './enforceMaxVersions.js';
4
4
  export const saveVersion = async ({ id, autosave, collection, docWithLocales: doc, draft, global, payload, req })=>{
5
5
  let result;
6
6
  let createNewVersion = true;
7
7
  const now = new Date().toISOString();
8
- const versionData = deepCopyObject(doc);
8
+ const versionData = deepCopyObjectSimple(doc);
9
9
  if (draft) versionData._status = 'draft';
10
10
  if (versionData._id) delete versionData._id;
11
11
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObject } from '../utilities/deepCopyObject.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n req,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObject(doc)\n if (draft) versionData._status = 'draft'\n if (versionData._id) delete versionData._id\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n version: versionData,\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n if (collection) {\n result = await payload.db.createVersion({\n autosave: Boolean(autosave),\n collectionSlug: collection.slug,\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n\n if (global) {\n result = await payload.db.createGlobalVersion({\n autosave: Boolean(autosave),\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n globalSlug: global.slug,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection)\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n if (global)\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number')\n max = collection.versions.maxPerDoc\n if (global && typeof global.versions.max === 'number') max = global.versions.max\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n createdVersion.createdAt = result.createdAt\n createdVersion.updatedAt = result.updatedAt\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObject","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","req","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersion","Boolean","collectionSlug","undefined","createGlobalVersion","globalSlug","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js';\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n req,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObjectSimple(doc)\n if (draft) versionData._status = 'draft'\n if (versionData._id) delete versionData._id\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n version: versionData,\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n if (collection) {\n result = await payload.db.createVersion({\n autosave: Boolean(autosave),\n collectionSlug: collection.slug,\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n\n if (global) {\n result = await payload.db.createGlobalVersion({\n autosave: Boolean(autosave),\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n globalSlug: global.slug,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection)\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n if (global)\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number')\n max = collection.versions.maxPerDoc\n if (global && typeof global.versions.max === 'number') max = global.versions.max\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n createdVersion.createdAt = result.createdAt\n createdVersion.updatedAt = result.updatedAt\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","req","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersion","Boolean","collectionSlug","undefined","createGlobalVersion","globalSlug","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"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"}