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.
- package/dist/admin/RichText.d.ts +4 -4
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/auth/operations/resetPassword.js +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/strategies/jwt.d.ts.map +1 -1
- package/dist/auth/strategies/jwt.js +29 -0
- package/dist/auth/strategies/jwt.js.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/auth/strategies/local/register.d.ts +2 -2
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/register.js.map +1 -1
- package/dist/bin/generateTypes.js +2 -2
- package/dist/bin/generateTypes.js.map +1 -1
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/defaults.d.ts +4 -69
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/reservedFieldNames.d.ts +15 -0
- package/dist/collections/config/reservedFieldNames.d.ts.map +1 -0
- package/dist/collections/config/reservedFieldNames.js +104 -0
- package/dist/collections/config/reservedFieldNames.js.map +1 -0
- package/dist/collections/config/reservedFieldNames.spec.js +148 -0
- package/dist/collections/config/reservedFieldNames.spec.js.map +1 -0
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +13 -9
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/types.d.ts +2 -2
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/dataloader.js.map +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/duplicate.js.map +1 -1
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +26 -26
- package/dist/config/client.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +4 -7
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +3 -4
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/errors/APIError.d.ts +1 -0
- package/dist/errors/APIError.d.ts.map +1 -1
- package/dist/errors/APIError.js +3 -0
- package/dist/errors/APIError.js.map +1 -1
- package/dist/errors/ValidationError.d.ts +1 -0
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/errors/ValidationError.js +3 -0
- package/dist/errors/ValidationError.js.map +1 -1
- package/dist/errors/index.d.ts +2 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/exports/shared.d.ts +3 -2
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +3 -2
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts +3 -2
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +8 -16
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitize.spec.js +1 -17
- package/dist/fields/config/sanitize.spec.js.map +1 -1
- package/dist/fields/getDefaultValue.d.ts +5 -5
- package/dist/fields/getDefaultValue.d.ts.map +1 -1
- package/dist/fields/getDefaultValue.js +4 -6
- package/dist/fields/getDefaultValue.js.map +1 -1
- package/dist/fields/hooks/afterChange/index.d.ts +6 -6
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/index.js +2 -2
- package/dist/fields/hooks/afterChange/index.js.map +1 -1
- package/dist/fields/hooks/afterChange/promise.d.ts +7 -7
- package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.d.ts +7 -7
- package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
- package/dist/fields/hooks/afterRead/index.d.ts +4 -4
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js +2 -2
- package/dist/fields/hooks/afterRead/index.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts +3 -3
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +2 -2
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +3 -3
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts +2 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -1
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts +2 -1
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -1
- package/dist/fields/hooks/beforeChange/index.d.ts +6 -6
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.js +2 -2
- package/dist/fields/hooks/beforeChange/index.js.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts +7 -7
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -7
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +7 -7
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts +5 -5
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.js +2 -2
- package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts +3 -3
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +2 -2
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +3 -3
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
- package/dist/fields/mergeBaseFields.d.ts.map +1 -1
- package/dist/fields/mergeBaseFields.js +2 -2
- package/dist/fields/mergeBaseFields.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +2 -1
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +2 -1
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/index.d.ts +11 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -12
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +16 -18
- package/dist/uploads/imageResizer.js.map +1 -1
- package/dist/utilities/deepCopyObject.d.ts +18 -1
- package/dist/utilities/deepCopyObject.d.ts.map +1 -1
- package/dist/utilities/deepCopyObject.js +147 -16
- package/dist/utilities/deepCopyObject.js.map +1 -1
- package/dist/utilities/deepMerge.d.ts +18 -1
- package/dist/utilities/deepMerge.d.ts.map +1 -1
- package/dist/utilities/deepMerge.js +38 -13
- package/dist/utilities/deepMerge.js.map +1 -1
- package/dist/utilities/isPlainObject.d.ts +1 -1
- package/dist/utilities/isPlainObject.d.ts.map +1 -1
- package/dist/utilities/isPlainObject.js +4 -18
- package/dist/utilities/isPlainObject.js.map +1 -1
- package/dist/utilities/logger.d.ts +5 -7
- package/dist/utilities/logger.d.ts.map +1 -1
- package/dist/utilities/logger.js +4 -7
- package/dist/utilities/logger.js.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +1 -0
- package/dist/versions/baseFields.js.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +2 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +2 -2
- package/dist/versions/saveVersion.js.map +1 -1
- package/package.json +5 -7
- package/dist/collections/config/schema.d.ts +0 -4
- package/dist/collections/config/schema.d.ts.map +0 -1
- package/dist/collections/config/schema.js +0 -191
- package/dist/collections/config/schema.js.map +0 -1
- package/dist/config/schema.d.ts +0 -5
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -179
- package/dist/config/schema.js.map +0 -1
- package/dist/config/shared/adminViewSchema.d.ts +0 -3
- package/dist/config/shared/adminViewSchema.d.ts.map +0 -1
- package/dist/config/shared/adminViewSchema.js +0 -11
- package/dist/config/shared/adminViewSchema.js.map +0 -1
- package/dist/config/shared/componentSchema.d.ts +0 -16
- package/dist/config/shared/componentSchema.d.ts.map +0 -1
- package/dist/config/shared/componentSchema.js +0 -27
- package/dist/config/shared/componentSchema.js.map +0 -1
- package/dist/config/shared/openGraphSchema.d.ts +0 -3
- package/dist/config/shared/openGraphSchema.d.ts.map +0 -1
- package/dist/config/shared/openGraphSchema.js +0 -16
- package/dist/config/shared/openGraphSchema.js.map +0 -1
- package/dist/config/validate.d.ts +0 -4
- package/dist/config/validate.d.ts.map +0 -1
- package/dist/config/validate.js +0 -89
- package/dist/config/validate.js.map +0 -1
- package/dist/fields/config/schema.d.ts +0 -29
- package/dist/fields/config/schema.d.ts.map +0 -1
- package/dist/fields/config/schema.js +0 -508
- package/dist/fields/config/schema.js.map +0 -1
- package/dist/globals/config/schema.d.ts +0 -4
- package/dist/globals/config/schema.d.ts.map +0 -1
- package/dist/globals/config/schema.js +0 -79
- package/dist/globals/config/schema.js.map +0 -1
- package/dist/utilities/combineMerge.d.ts +0 -2
- package/dist/utilities/combineMerge.d.ts.map +0 -1
- package/dist/utilities/combineMerge.js +0 -16
- package/dist/utilities/combineMerge.js.map +0 -1
- package/dist/utilities/convertData.d.ts +0 -5
- package/dist/utilities/convertData.d.ts.map +0 -1
- package/dist/utilities/convertData.js +0 -16
- package/dist/utilities/convertData.js.map +0 -1
- package/dist/utilities/getCSSVariable.d.ts +0 -3
- package/dist/utilities/getCSSVariable.d.ts.map +0 -1
- package/dist/utilities/getCSSVariable.js +0 -3
- package/dist/utilities/getCSSVariable.js.map +0 -1
- package/dist/utilities/overwriteMerge.d.ts +0 -3
- package/dist/utilities/overwriteMerge.d.ts.map +0 -1
- package/dist/utilities/overwriteMerge.js +0 -4
- package/dist/utilities/overwriteMerge.js.map +0 -1
|
@@ -1,19 +1,150 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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":["
|
|
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:
|
|
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":"
|
|
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
|
-
|
|
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 (
|
|
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
|
-
//
|
|
22
|
-
return
|
|
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":["
|
|
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
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
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,
|
|
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"}
|
package/dist/utilities/logger.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
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 =
|
|
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
|
|
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":"
|
|
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 {
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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;
|
|
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 =
|
|
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 =
|
|
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,
|
|
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 {
|
|
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 =
|
|
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'
|
|
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":"AAKA,SAASA,oBAAoB,QAAQ,cAAa;AAClD,OAAOC,4BAA4B,yCAAwC;AAC3E,SAASC,kBAAkB,QAAQ,0BAAyB;AAa5D,OAAO,MAAMC,cAAc,OAAO,EAChCC,EAAE,EACFC,QAAQ,EACRC,UAAU,EACVC,gBAAgBC,GAAG,EACnBC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,GAAG,EACE;IACL,IAAIC;IACJ,IAAIC,mBAAmB;IACvB,MAAMC,MAAM,IAAIC,OAAOC,WAAW;IAClC,MAAMC,cAAclB,qBAAqBQ;IACzC,IAAIC,OAAOS,YAAYC,OAAO,GAAG;IACjC,IAAID,YAAYE,GAAG,EAAE,OAAOF,YAAYE,GAAG;IAE3C,IAAI;QACF,IAAIf,UAAU;YACZ,IAAIgB;YACJ,MAAMC,kBAAkB;gBACtBC,OAAO;gBACPC,YAAY;gBACZZ;gBACAa,MAAM;YACR;YACA,IAAInB,YAAY;gBACZ,CAAA,EAAEe,IAAI,EAAE,GAAG,MAAMV,QAAQe,EAAE,CAACC,YAAY,CAAC;oBACzC,GAAGL,eAAe;oBAClBhB,YAAYA,WAAWsB,IAAI;oBAC3BhB;oBACAiB,OAAO;wBACLC,QAAQ;4BACNC,QAAQ3B;wBACV;oBACF;gBACF,EAAC;YACH,OAAO;gBACH,CAAA,EAAEiB,IAAI,EAAE,GAAG,MAAMV,QAAQe,EAAE,CAACM,kBAAkB,CAAC;oBAC/C,GAAGV,eAAe;oBAClBZ,QAAQA,OAAOkB,IAAI;oBACnBhB;gBACF,EAAC;YACH;YACA,MAAM,CAACqB,cAAc,GAAGZ;YAExB,uDAAuD;YACvD,IAAIY,eAAe5B,aAAa,MAAM;gBACpCS,mBAAmB;gBAEnB,MAAMoB,OAAgC;oBACpCC,WAAW,IAAInB,KAAKiB,cAAcE,SAAS,EAAElB,WAAW;oBACxDmB,WAAW3B,QAAQM,MAAM,IAAIC,KAAKR,IAAI4B,SAAS,EAAEnB,WAAW;oBAC5DoB,SAASnB;gBACX;gBAEA,MAAMoB,oBAAoB;oBACxBlC,IAAI6B,cAAc7B,EAAE;oBACpBQ;oBACAM,aAAagB;gBACf;gBAEA,IAAI5B,YAAY;oBACdO,SAAS,MAAMF,QAAQe,EAAE,CAACa,aAAa,CAAC;wBACtC,GAAGD,iBAAiB;wBACpBhC,YAAYA,WAAWsB,IAAI;wBAC3BhB;oBACF;gBACF,OAAO;oBACLC,SAAS,MAAMF,QAAQe,EAAE,CAACc,mBAAmB,CAAC;wBAC5C,GAAGF,iBAAiB;wBACpB5B,QAAQA,OAAOkB,IAAI;wBACnBhB;oBACF;gBACF;YACF;QACF;QAEA,IAAIE,kBAAkB;YACpB,IAAIR,YAAY;gBACdO,SAAS,MAAMF,QAAQe,EAAE,CAACe,aAAa,CAAC;oBACtCpC,UAAUqC,QAAQrC;oBAClBsC,gBAAgBrC,WAAWsB,IAAI;oBAC/BO,WAAW3B,KAAK2B,YAAY,IAAInB,KAAKR,IAAI2B,SAAS,EAAElB,WAAW,KAAKF;oBACpEe,QAAQxB,aAAaF,KAAKwC;oBAC1BhC;oBACAwB,WAAW3B,QAAQM,MAAM,IAAIC,KAAKR,IAAI4B,SAAS,EAAEnB,WAAW;oBAC5DC;gBACF;YACF;YAEA,IAAIR,QAAQ;gBACVG,SAAS,MAAMF,QAAQe,EAAE,CAACmB,mBAAmB,CAAC;oBAC5CxC,UAAUqC,QAAQrC;oBAClB8B,WAAW3B,KAAK2B,YAAY,IAAInB,KAAKR,IAAI2B,SAAS,EAAElB,WAAW,KAAKF;oBACpE+B,YAAYpC,OAAOkB,IAAI;oBACvBE,QAAQxB,aAAaF,KAAKwC;oBAC1BhC;oBACAwB,WAAW3B,QAAQM,MAAM,IAAIC,KAAKR,IAAI4B,SAAS,EAAEnB,WAAW;oBAC5DC;gBACF;YACF;QACF;IACF,EAAE,OAAO6B,KAAK;QACZ,IAAIC;QAEJ,IAAI1C,YACF0C,eAAe,CAAC,kDAAkD,EAAE1C,WAAW2C,MAAM,CAACC,QAAQ,CAAC,SAAS,EAAE9C,GAAG,CAAC,CAAC;QACjH,IAAIM,QACFsC,eAAe,CAAC,yDAAyD,EAAEtC,OAAOyC,KAAK,CAAC,CAAC,CAAC;QAC5FxC,QAAQyC,MAAM,CAACC,KAAK,CAACL;QACrBrC,QAAQyC,MAAM,CAACC,KAAK,CAACN;QACrB;IACF;IAEA,IAAIO,MAAM;IAEV,IAAIhD,cAAc,OAAOA,WAAWiD,QAAQ,CAACC,SAAS,KAAK,UACzDF,MAAMhD,WAAWiD,QAAQ,CAACC,SAAS;IACrC,IAAI9C,UAAU,OAAOA,OAAO6C,QAAQ,CAACD,GAAG,KAAK,UAAUA,MAAM5C,OAAO6C,QAAQ,CAACD,GAAG;IAEhF,IAAIxC,oBAAoBwC,MAAM,GAAG;QAC/B,MAAMpD,mBAAmB;YACvBE;YACAE;YACAI;YACA4C;YACA3C;YACAC;QACF;IACF;IAEA,IAAI6C,iBAAiB5C,OAAOwB,OAAO;IACnCoB,eAAetB,SAAS,GAAGtB,OAAOsB,SAAS;IAC3CsB,eAAerB,SAAS,GAAGvB,OAAOuB,SAAS;IAE3CqB,iBAAiBxD,uBAAuBwD;IACxCA,eAAerD,EAAE,GAAGS,OAAOiB,MAAM;IAEjC,OAAO2B;AACT,EAAC"}
|