@payloadcms/live-preview 0.1.6 → 0.2.1
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/handleMessage.d.ts.map +1 -1
- package/dist/handleMessage.js +24 -21
- package/dist/mergeData.d.ts +2 -0
- package/dist/mergeData.d.ts.map +1 -1
- package/dist/mergeData.js +32 -10
- package/dist/ready.js +3 -3
- package/dist/traverseFields.d.ts +3 -4
- package/dist/traverseFields.d.ts.map +1 -1
- package/dist/traverseFields.js +57 -51
- package/dist/traverseRichText.d.ts +8 -0
- package/dist/traverseRichText.d.ts.map +1 -0
- package/dist/traverseRichText.js +77 -0
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -5
- package/dist/promise.d.ts +0 -10
- package/dist/promise.d.ts.map +0 -1
- package/dist/promise.js +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleMessage.d.ts","sourceRoot":"","sources":["../src/handleMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleMessage.d.ts","sourceRoot":"","sources":["../src/handleMessage.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,aAAa;eACb,MAAM;YACT,MAAM;WACP,YAAY;;eAER,MAAM;gBAyClB,CAAA"}
|
package/dist/handleMessage.js
CHANGED
|
@@ -15,31 +15,34 @@ const _ = require(".");
|
|
|
15
15
|
// Send this cached value to `mergeData`, instead of `eventData.fieldSchemaJSON` directly
|
|
16
16
|
let payloadLivePreviewFieldSchema = undefined // TODO: type this from `fieldSchemaToJSON` return type
|
|
17
17
|
;
|
|
18
|
+
// Each time the data is merged, cache the result as a `previousData` variable
|
|
19
|
+
// This will ensure changes compound overtop of each other
|
|
20
|
+
let payloadLivePreviewPreviousData = undefined;
|
|
18
21
|
const handleMessage = async (args)=>{
|
|
19
22
|
const { apiRoute, depth, event, initialData, serverURL } = args;
|
|
20
|
-
if (event.origin === serverURL && event.data) {
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
payloadLivePreviewFieldSchema = eventData.fieldSchemaJSON;
|
|
25
|
-
}
|
|
26
|
-
if (!payloadLivePreviewFieldSchema) {
|
|
27
|
-
// eslint-disable-next-line no-console
|
|
28
|
-
console.warn('Payload Live Preview: No `fieldSchemaJSON` was received from the parent window. Unable to merge data.');
|
|
29
|
-
return initialData;
|
|
30
|
-
}
|
|
31
|
-
const mergedData = await (0, _.mergeData)({
|
|
32
|
-
apiRoute,
|
|
33
|
-
depth,
|
|
34
|
-
fieldSchema: payloadLivePreviewFieldSchema,
|
|
35
|
-
incomingData: eventData.data,
|
|
36
|
-
initialData,
|
|
37
|
-
serverURL
|
|
38
|
-
});
|
|
39
|
-
return mergedData;
|
|
23
|
+
if (event.origin === serverURL && event.data && typeof event.data === 'object' && event.data.type === 'payload-live-preview') {
|
|
24
|
+
const { data, externallyUpdatedRelationship, fieldSchemaJSON } = event.data;
|
|
25
|
+
if (!payloadLivePreviewFieldSchema && fieldSchemaJSON) {
|
|
26
|
+
payloadLivePreviewFieldSchema = fieldSchemaJSON;
|
|
40
27
|
}
|
|
28
|
+
if (!payloadLivePreviewFieldSchema) {
|
|
29
|
+
// eslint-disable-next-line no-console
|
|
30
|
+
console.warn('Payload Live Preview: No `fieldSchemaJSON` was received from the parent window. Unable to merge data.');
|
|
31
|
+
return initialData;
|
|
32
|
+
}
|
|
33
|
+
const mergedData = await (0, _.mergeData)({
|
|
34
|
+
apiRoute,
|
|
35
|
+
depth,
|
|
36
|
+
externallyUpdatedRelationship,
|
|
37
|
+
fieldSchema: payloadLivePreviewFieldSchema,
|
|
38
|
+
incomingData: data,
|
|
39
|
+
initialData: payloadLivePreviewPreviousData || initialData,
|
|
40
|
+
serverURL
|
|
41
|
+
});
|
|
42
|
+
payloadLivePreviewPreviousData = mergedData;
|
|
43
|
+
return mergedData;
|
|
41
44
|
}
|
|
42
45
|
return initialData;
|
|
43
46
|
};
|
|
44
47
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGF0YSB9IGZyb20gJy4nXG5cbi8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBgZmllbGRTY2hlbWFKU09OYCB3aWxsIG9ubHkgYmUgc2VudCBvbmNlIG9uIHRoZSBpbml0aWFsIG1lc3NhZ2Vcbi8vIFdlIG5lZWQgdG8gY2FjaGUgdGhpcyB2YWx1ZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdWJzZXF1ZW50IG1lc3NhZ2VzXG4vLyBUbyBkbyB0aGlzLCBzYXZlIGBmaWVsZFNjaGVtYUpTT05gIHdoZW4gaXQgYXJyaXZlcyBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuLy8gU2VuZCB0aGlzIGNhY2hlZCB2YWx1ZSB0byBgbWVyZ2VEYXRhYCwgaW5zdGVhZCBvZiBgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTmAgZGlyZWN0bHlcbmxldCBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IHVuZGVmaW5lZCAvLyBUT0RPOiB0eXBlIHRoaXMgZnJvbSBgZmllbGRTY2hlbWFUb0pTT05gIHJldHVybiB0eXBlXG5cbi8vIEVhY2ggdGltZSB0aGUgZGF0YSBpcyBtZXJnZWQsIGNhY2hlIHRoZSByZXN1bHQgYXMgYSBgcHJldmlvdXNEYXRhYCB2YXJpYWJsZVxuLy8gVGhpcyB3aWxsIGVuc3VyZSBjaGFuZ2VzIGNvbXBvdW5kIG92ZXJ0b3Agb2YgZWFjaCBvdGhlclxubGV0IHBheWxvYWRMaXZlUHJldmlld1ByZXZpb3VzRGF0YSA9IHVuZGVmaW5lZFxuXG5leHBvcnQgY29uc3QgaGFuZGxlTWVzc2FnZSA9IGFzeW5jIDxUPihhcmdzOiB7XG4gIGFwaVJvdXRlPzogc3RyaW5nXG4gIGRlcHRoPzogbnVtYmVyXG4gIGV2ZW50OiBNZXNzYWdlRXZlbnRcbiAgaW5pdGlhbERhdGE6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgeyBhcGlSb3V0ZSwgZGVwdGgsIGV2ZW50LCBpbml0aWFsRGF0YSwgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgaWYgKFxuICAgIGV2ZW50Lm9yaWdpbiA9PT0gc2VydmVyVVJMICYmXG4gICAgZXZlbnQuZGF0YSAmJlxuICAgIHR5cGVvZiBldmVudC5kYXRhID09PSAnb2JqZWN0JyAmJlxuICAgIGV2ZW50LmRhdGEudHlwZSA9PT0gJ3BheWxvYWQtbGl2ZS1wcmV2aWV3J1xuICApIHtcbiAgICBjb25zdCB7IGRhdGEsIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLCBmaWVsZFNjaGVtYUpTT04gfSA9IGV2ZW50LmRhdGFcblxuICAgIGlmICghcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEgJiYgZmllbGRTY2hlbWFKU09OKSB7XG4gICAgICBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IGZpZWxkU2NoZW1hSlNPTlxuICAgIH1cblxuICAgIGlmICghcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdQYXlsb2FkIExpdmUgUHJldmlldzogTm8gYGZpZWxkU2NoZW1hSlNPTmAgd2FzIHJlY2VpdmVkIGZyb20gdGhlIHBhcmVudCB3aW5kb3cuIFVuYWJsZSB0byBtZXJnZSBkYXRhLicsXG4gICAgICApXG5cbiAgICAgIHJldHVybiBpbml0aWFsRGF0YVxuICAgIH1cblxuICAgIGNvbnN0IG1lcmdlZERhdGEgPSBhd2FpdCBtZXJnZURhdGE8VD4oe1xuICAgICAgYXBpUm91dGUsXG4gICAgICBkZXB0aCxcbiAgICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgICAgZmllbGRTY2hlbWE6IHBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hLFxuICAgICAgaW5jb21pbmdEYXRhOiBkYXRhLFxuICAgICAgaW5pdGlhbERhdGE6IHBheWxvYWRMaXZlUHJldmlld1ByZXZpb3VzRGF0YSB8fCBpbml0aWFsRGF0YSxcbiAgICAgIHNlcnZlclVSTCxcbiAgICB9KVxuXG4gICAgcGF5bG9hZExpdmVQcmV2aWV3UHJldmlvdXNEYXRhID0gbWVyZ2VkRGF0YVxuXG4gICAgcmV0dXJuIG1lcmdlZERhdGFcbiAgfVxuXG4gIHJldHVybiBpbml0aWFsRGF0YVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZU1lc3NhZ2UiLCJwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSIsInVuZGVmaW5lZCIsInBheWxvYWRMaXZlUHJldmlld1ByZXZpb3VzRGF0YSIsImFyZ3MiLCJhcGlSb3V0ZSIsImRlcHRoIiwiZXZlbnQiLCJpbml0aWFsRGF0YSIsInNlcnZlclVSTCIsIm9yaWdpbiIsImRhdGEiLCJ0eXBlIiwiZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAiLCJmaWVsZFNjaGVtYUpTT04iLCJjb25zb2xlIiwid2FybiIsIm1lcmdlZERhdGEiLCJtZXJnZURhdGEiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFZYUE7OztlQUFBQTs7O2tCQVphO0FBRTFCLDJGQUEyRjtBQUMzRixnRkFBZ0Y7QUFDaEYsMEVBQTBFO0FBQzFFLHlGQUF5RjtBQUN6RixJQUFJQyxnQ0FBZ0NDLFVBQVUsdURBQXVEOztBQUVyRyw4RUFBOEU7QUFDOUUsMERBQTBEO0FBQzFELElBQUlDLGlDQUFpQ0Q7QUFFOUIsTUFBTUYsZ0JBQWdCLE9BQVVJO0lBT3JDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUUsR0FBR0w7SUFFM0QsSUFDRUcsTUFBTUcsTUFBTSxLQUFLRCxhQUNqQkYsTUFBTUksSUFBSSxJQUNWLE9BQU9KLE1BQU1JLElBQUksS0FBSyxZQUN0QkosTUFBTUksSUFBSSxDQUFDQyxJQUFJLEtBQUssd0JBQ3BCO1FBQ0EsTUFBTSxFQUFFRCxJQUFJLEVBQUVFLDZCQUE2QixFQUFFQyxlQUFlLEVBQUUsR0FBR1AsTUFBTUksSUFBSTtRQUUzRSxJQUFJLENBQUNWLGlDQUFpQ2EsaUJBQWlCO1lBQ3JEYixnQ0FBZ0NhO1FBQ2xDO1FBRUEsSUFBSSxDQUFDYiwrQkFBK0I7WUFDbEMsc0NBQXNDO1lBQ3RDYyxRQUFRQyxJQUFJLENBQ1Y7WUFHRixPQUFPUjtRQUNUO1FBRUEsTUFBTVMsYUFBYSxNQUFNQyxJQUFBQSxXQUFTLEVBQUk7WUFDcENiO1lBQ0FDO1lBQ0FPO1lBQ0FNLGFBQWFsQjtZQUNibUIsY0FBY1Q7WUFDZEgsYUFBYUwsa0NBQWtDSztZQUMvQ0M7UUFDRjtRQUVBTixpQ0FBaUNjO1FBRWpDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPVDtBQUNUIn0=
|
package/dist/mergeData.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { fieldSchemaToJSON } from 'payload/utilities';
|
|
2
|
+
import type { UpdatedDocument } from './types';
|
|
2
3
|
export declare const mergeData: <T>(args: {
|
|
3
4
|
apiRoute?: string;
|
|
4
5
|
depth?: number;
|
|
6
|
+
externallyUpdatedRelationship?: UpdatedDocument;
|
|
5
7
|
fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
|
|
6
8
|
incomingData: Partial<T>;
|
|
7
9
|
initialData: T;
|
package/dist/mergeData.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeData.d.ts","sourceRoot":"","sources":["../src/mergeData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mergeData.d.ts","sourceRoot":"","sources":["../src/mergeData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAA2B,eAAe,EAAE,MAAM,SAAS,CAAA;AAIvE,eAAO,MAAM,SAAS;eACT,MAAM;YACT,MAAM;oCACkB,eAAe;iBAClC,WAAW,wBAAwB,CAAC;;;6BAGxB,OAAO;eACrB,MAAM;;wBAGK,MAAM;EAgE7B,CAAA"}
|
package/dist/mergeData.js
CHANGED
|
@@ -10,27 +10,49 @@ Object.defineProperty(exports, "mergeData", {
|
|
|
10
10
|
});
|
|
11
11
|
const _traverseFields = require("./traverseFields");
|
|
12
12
|
const mergeData = async (args)=>{
|
|
13
|
-
const { apiRoute, depth, fieldSchema, incomingData, initialData, returnNumberOfRequests, serverURL } = args;
|
|
13
|
+
const { apiRoute, depth, externallyUpdatedRelationship, fieldSchema, incomingData, initialData, returnNumberOfRequests, serverURL } = args;
|
|
14
14
|
const result = {
|
|
15
15
|
...initialData
|
|
16
16
|
};
|
|
17
|
-
const
|
|
17
|
+
const populationsByCollection = {};
|
|
18
18
|
(0, _traverseFields.traverseFields)({
|
|
19
|
-
|
|
20
|
-
depth,
|
|
19
|
+
externallyUpdatedRelationship,
|
|
21
20
|
fieldSchema,
|
|
22
21
|
incomingData,
|
|
23
|
-
|
|
24
|
-
result
|
|
25
|
-
serverURL
|
|
22
|
+
populationsByCollection,
|
|
23
|
+
result
|
|
26
24
|
});
|
|
27
|
-
await Promise.all(
|
|
25
|
+
await Promise.all(Object.entries(populationsByCollection).map(async ([collection, populations])=>{
|
|
26
|
+
const ids = new Set(populations.map(({ id })=>id));
|
|
27
|
+
const url = `${serverURL}${apiRoute || '/api'}/${collection}?depth=${depth}&where[id][in]=${Array.from(ids).join(',')}`;
|
|
28
|
+
let res;
|
|
29
|
+
try {
|
|
30
|
+
res = await fetch(url, {
|
|
31
|
+
credentials: 'include',
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': 'application/json'
|
|
34
|
+
}
|
|
35
|
+
}).then((res)=>res.json());
|
|
36
|
+
if (res?.docs?.length > 0) {
|
|
37
|
+
res.docs.forEach((doc)=>{
|
|
38
|
+
populationsByCollection[collection].forEach((population)=>{
|
|
39
|
+
if (population.id === doc.id) {
|
|
40
|
+
population.ref[population.accessor] = doc;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
console.error(err) // eslint-disable-line no-console
|
|
47
|
+
;
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
28
50
|
return {
|
|
29
51
|
...result,
|
|
30
52
|
...returnNumberOfRequests ? {
|
|
31
|
-
_numberOfRequests:
|
|
53
|
+
_numberOfRequests: Object.keys(populationsByCollection).length
|
|
32
54
|
} : {}
|
|
33
55
|
};
|
|
34
56
|
};
|
|
35
57
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZWREb2NzIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgZmllbGRTY2hlbWFUb0pTT04gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcblxuaW1wb3J0IHR5cGUgeyBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiwgVXBkYXRlZERvY3VtZW50IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG5leHBvcnQgY29uc3QgbWVyZ2VEYXRhID0gYXN5bmMgPFQ+KGFyZ3M6IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg/OiBudW1iZXJcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/OiBVcGRhdGVkRG9jdW1lbnRcbiAgZmllbGRTY2hlbWE6IFJldHVyblR5cGU8dHlwZW9mIGZpZWxkU2NoZW1hVG9KU09OPlxuICBpbmNvbWluZ0RhdGE6IFBhcnRpYWw8VD5cbiAgaW5pdGlhbERhdGE6IFRcbiAgcmV0dXJuTnVtYmVyT2ZSZXF1ZXN0cz86IGJvb2xlYW5cbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFxuICBUICYge1xuICAgIF9udW1iZXJPZlJlcXVlc3RzPzogbnVtYmVyXG4gIH1cbj4gPT4ge1xuICBjb25zdCB7XG4gICAgYXBpUm91dGUsXG4gICAgZGVwdGgsXG4gICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gICAgZmllbGRTY2hlbWEsXG4gICAgaW5jb21pbmdEYXRhLFxuICAgIGluaXRpYWxEYXRhLFxuICAgIHJldHVybk51bWJlck9mUmVxdWVzdHMsXG4gICAgc2VydmVyVVJMLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uaW5pdGlhbERhdGEgfVxuXG4gIGNvbnN0IHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uOiBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiA9IHt9XG5cbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGluY29taW5nRGF0YSxcbiAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICByZXN1bHQsXG4gIH0pXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmVudHJpZXMocG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24pLm1hcChhc3luYyAoW2NvbGxlY3Rpb24sIHBvcHVsYXRpb25zXSkgPT4ge1xuICAgICAgY29uc3QgaWRzID0gbmV3IFNldChwb3B1bGF0aW9ucy5tYXAoKHsgaWQgfSkgPT4gaWQpKVxuICAgICAgY29uc3QgdXJsID0gYCR7c2VydmVyVVJMfSR7XG4gICAgICAgIGFwaVJvdXRlIHx8ICcvYXBpJ1xuICAgICAgfS8ke2NvbGxlY3Rpb259P2RlcHRoPSR7ZGVwdGh9JndoZXJlW2lkXVtpbl09JHtBcnJheS5mcm9tKGlkcykuam9pbignLCcpfWBcblxuICAgICAgbGV0IHJlczogUGFnaW5hdGVkRG9jc1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXG4gICAgICAgIGlmIChyZXM/LmRvY3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXMuZG9jcy5mb3JFYWNoKChkb2MpID0+IHtcbiAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2NvbGxlY3Rpb25dLmZvckVhY2goKHBvcHVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBvcHVsYXRpb24uaWQgPT09IGRvYy5pZCkge1xuICAgICAgICAgICAgICAgIHBvcHVsYXRpb24ucmVmW3BvcHVsYXRpb24uYWNjZXNzb3JdID0gZG9jXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICAgIH1cbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzdWx0LFxuICAgIC4uLihyZXR1cm5OdW1iZXJPZlJlcXVlc3RzXG4gICAgICA/IHsgX251bWJlck9mUmVxdWVzdHM6IE9iamVjdC5rZXlzKHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uKS5sZW5ndGggfVxuICAgICAgOiB7fSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtZXJnZURhdGEiLCJhcmdzIiwiYXBpUm91dGUiLCJkZXB0aCIsImV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwIiwiZmllbGRTY2hlbWEiLCJpbmNvbWluZ0RhdGEiLCJpbml0aWFsRGF0YSIsInJldHVybk51bWJlck9mUmVxdWVzdHMiLCJzZXJ2ZXJVUkwiLCJyZXN1bHQiLCJwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiIsInRyYXZlcnNlRmllbGRzIiwiUHJvbWlzZSIsImFsbCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJjb2xsZWN0aW9uIiwicG9wdWxhdGlvbnMiLCJpZHMiLCJTZXQiLCJpZCIsInVybCIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJyZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsInRoZW4iLCJqc29uIiwiZG9jcyIsImxlbmd0aCIsImZvckVhY2giLCJkb2MiLCJwb3B1bGF0aW9uIiwicmVmIiwiYWNjZXNzb3IiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJfbnVtYmVyT2ZSZXF1ZXN0cyIsImtleXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBT2FBOzs7ZUFBQUE7OztnQ0FGa0I7QUFFeEIsTUFBTUEsWUFBWSxPQUFVQztJQWNqQyxNQUFNLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyw2QkFBNkIsRUFDN0JDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLHNCQUFzQixFQUN0QkMsU0FBUyxFQUNWLEdBQUdSO0lBRUosTUFBTVMsU0FBUztRQUFFLEdBQUdILFdBQVc7SUFBQztJQUVoQyxNQUFNSSwwQkFBbUQsQ0FBQztJQUUxREMsSUFBQUEsOEJBQWMsRUFBQztRQUNiUjtRQUNBQztRQUNBQztRQUNBSztRQUNBRDtJQUNGO0lBRUEsTUFBTUcsUUFBUUMsR0FBRyxDQUNmQyxPQUFPQyxPQUFPLENBQUNMLHlCQUF5Qk0sR0FBRyxDQUFDLE9BQU8sQ0FBQ0MsWUFBWUMsWUFBWTtRQUMxRSxNQUFNQyxNQUFNLElBQUlDLElBQUlGLFlBQVlGLEdBQUcsQ0FBQyxDQUFDLEVBQUVLLEVBQUUsRUFBRSxHQUFLQTtRQUNoRCxNQUFNQyxNQUFNLENBQUMsRUFBRWQsVUFBVSxFQUN2QlAsWUFBWSxPQUNiLENBQUMsRUFBRWdCLFdBQVcsT0FBTyxFQUFFZixNQUFNLGVBQWUsRUFBRXFCLE1BQU1DLElBQUksQ0FBQ0wsS0FBS00sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxRSxJQUFJQztRQUVKLElBQUk7WUFDRkEsTUFBTSxNQUFNQyxNQUFNTCxLQUFLO2dCQUNyQk0sYUFBYTtnQkFDYkMsU0FBUztvQkFDUCxnQkFBZ0I7Z0JBQ2xCO1lBQ0YsR0FBR0MsSUFBSSxDQUFDLENBQUNKLE1BQVFBLElBQUlLLElBQUk7WUFFekIsSUFBSUwsS0FBS00sTUFBTUMsU0FBUyxHQUFHO2dCQUN6QlAsSUFBSU0sSUFBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0M7b0JBQ2hCekIsdUJBQXVCLENBQUNPLFdBQVcsQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDRTt3QkFDM0MsSUFBSUEsV0FBV2YsRUFBRSxLQUFLYyxJQUFJZCxFQUFFLEVBQUU7NEJBQzVCZSxXQUFXQyxHQUFHLENBQUNELFdBQVdFLFFBQVEsQ0FBQyxHQUFHSDt3QkFDeEM7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGLEVBQUUsT0FBT0ksS0FBSztZQUNaQyxRQUFRQyxLQUFLLENBQUNGLEtBQUssaUNBQWlDOztRQUN0RDtJQUNGO0lBR0YsT0FBTztRQUNMLEdBQUc5QixNQUFNO1FBQ1QsR0FBSUYseUJBQ0E7WUFBRW1DLG1CQUFtQjVCLE9BQU82QixJQUFJLENBQUNqQyx5QkFBeUJ1QixNQUFNO1FBQUMsSUFDakUsQ0FBQyxDQUFDO0lBQ1I7QUFDRiJ9
|
package/dist/ready.js
CHANGED
|
@@ -15,11 +15,11 @@ const ready = (args)=>{
|
|
|
15
15
|
// We need to report 'ready' to the parent window, whichever it may be
|
|
16
16
|
// i.e. `window?.opener` for popups, `window?.parent` for iframes
|
|
17
17
|
const windowToPostTo = window?.opener || window?.parent;
|
|
18
|
-
windowToPostTo?.postMessage(
|
|
18
|
+
windowToPostTo?.postMessage({
|
|
19
19
|
ready: true,
|
|
20
20
|
type: 'payload-live-preview'
|
|
21
|
-
}
|
|
21
|
+
}, serverURL);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVhZHkgPSAoYXJnczogeyBzZXJ2ZXJVUkw6IHN0cmluZyB9KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gVGhpcyBzdWJzY3JpcHRpb24gbWF5IGhhdmUgYmVlbiBmcm9tIGVpdGhlciBhbiBpZnJhbWUgb3IgYSBwb3B1cFxuICAgIC8vIFdlIG5lZWQgdG8gcmVwb3J0ICdyZWFkeScgdG8gdGhlIHBhcmVudCB3aW5kb3csIHdoaWNoZXZlciBpdCBtYXkgYmVcbiAgICAvLyBpLmUuIGB3aW5kb3c/Lm9wZW5lcmAgZm9yIHBvcHVwcywgYHdpbmRvdz8ucGFyZW50YCBmb3IgaWZyYW1lc1xuICAgIGNvbnN0IHdpbmRvd1RvUG9zdFRvOiBXaW5kb3cgPSB3aW5kb3c/Lm9wZW5lciB8fCB3aW5kb3c/LnBhcmVudFxuXG4gICAgd2luZG93VG9Qb3N0VG8/
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVhZHkgPSAoYXJnczogeyBzZXJ2ZXJVUkw6IHN0cmluZyB9KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gVGhpcyBzdWJzY3JpcHRpb24gbWF5IGhhdmUgYmVlbiBmcm9tIGVpdGhlciBhbiBpZnJhbWUgb3IgYSBwb3B1cFxuICAgIC8vIFdlIG5lZWQgdG8gcmVwb3J0ICdyZWFkeScgdG8gdGhlIHBhcmVudCB3aW5kb3csIHdoaWNoZXZlciBpdCBtYXkgYmVcbiAgICAvLyBpLmUuIGB3aW5kb3c/Lm9wZW5lcmAgZm9yIHBvcHVwcywgYHdpbmRvdz8ucGFyZW50YCBmb3IgaWZyYW1lc1xuICAgIGNvbnN0IHdpbmRvd1RvUG9zdFRvOiBXaW5kb3cgPSB3aW5kb3c/Lm9wZW5lciB8fCB3aW5kb3c/LnBhcmVudFxuXG4gICAgd2luZG93VG9Qb3N0VG8/LnBvc3RNZXNzYWdlKFxuICAgICAge1xuICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3BheWxvYWQtbGl2ZS1wcmV2aWV3JyxcbiAgICAgIH0sXG4gICAgICBzZXJ2ZXJVUkwsXG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsicmVhZHkiLCJhcmdzIiwic2VydmVyVVJMIiwid2luZG93Iiwid2luZG93VG9Qb3N0VG8iLCJvcGVuZXIiLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFFBQVEsQ0FBQ0M7SUFDcEIsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Q7SUFFdEIsSUFBSSxPQUFPRSxXQUFXLGFBQWE7UUFDakMsbUVBQW1FO1FBQ25FLHNFQUFzRTtRQUN0RSxpRUFBaUU7UUFDakUsTUFBTUMsaUJBQXlCRCxRQUFRRSxVQUFVRixRQUFRRztRQUV6REYsZ0JBQWdCRyxZQUNkO1lBQ0VQLE9BQU87WUFDUFEsTUFBTTtRQUNSLEdBQ0FOO0lBRUo7QUFDRiJ9
|
package/dist/traverseFields.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { fieldSchemaToJSON } from 'payload/utilities';
|
|
2
|
+
import type { PopulationsByCollection, UpdatedDocument } from './types';
|
|
2
3
|
export declare const traverseFields: <T>(args: {
|
|
3
|
-
|
|
4
|
-
depth?: number;
|
|
4
|
+
externallyUpdatedRelationship?: UpdatedDocument;
|
|
5
5
|
fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
|
|
6
6
|
incomingData: T;
|
|
7
|
-
|
|
7
|
+
populationsByCollection: PopulationsByCollection;
|
|
8
8
|
result: T;
|
|
9
|
-
serverURL: string;
|
|
10
9
|
}) => void;
|
|
11
10
|
//# sourceMappingURL=traverseFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../src/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../src/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIvE,eAAO,MAAM,cAAc;oCACO,eAAe;iBAClC,WAAW,wBAAwB,CAAC;;6BAExB,uBAAuB;;MAE9C,IA4QH,CAAA"}
|
package/dist/traverseFields.js
CHANGED
|
@@ -8,13 +8,21 @@ Object.defineProperty(exports, "traverseFields", {
|
|
|
8
8
|
return traverseFields;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const
|
|
11
|
+
const _traverseRichText = require("./traverseRichText");
|
|
12
12
|
const traverseFields = (args)=>{
|
|
13
|
-
const {
|
|
13
|
+
const { externallyUpdatedRelationship, fieldSchema: fieldSchemas, incomingData, populationsByCollection, result } = args;
|
|
14
14
|
fieldSchemas.forEach((fieldSchema)=>{
|
|
15
15
|
if ('name' in fieldSchema && typeof fieldSchema.name === 'string') {
|
|
16
16
|
const fieldName = fieldSchema.name;
|
|
17
17
|
switch(fieldSchema.type){
|
|
18
|
+
case 'richText':
|
|
19
|
+
result[fieldName] = (0, _traverseRichText.traverseRichText)({
|
|
20
|
+
externallyUpdatedRelationship,
|
|
21
|
+
incomingData: incomingData[fieldName],
|
|
22
|
+
populationsByCollection,
|
|
23
|
+
result: result[fieldName]
|
|
24
|
+
});
|
|
25
|
+
break;
|
|
18
26
|
case 'array':
|
|
19
27
|
if (Array.isArray(incomingData[fieldName])) {
|
|
20
28
|
result[fieldName] = incomingData[fieldName].map((incomingRow, i)=>{
|
|
@@ -25,13 +33,11 @@ const traverseFields = (args)=>{
|
|
|
25
33
|
result[fieldName][i] = {};
|
|
26
34
|
}
|
|
27
35
|
traverseFields({
|
|
28
|
-
|
|
29
|
-
depth,
|
|
36
|
+
externallyUpdatedRelationship,
|
|
30
37
|
fieldSchema: fieldSchema.fields,
|
|
31
38
|
incomingData: incomingRow,
|
|
32
|
-
|
|
33
|
-
result: result[fieldName][i]
|
|
34
|
-
serverURL
|
|
39
|
+
populationsByCollection,
|
|
40
|
+
result: result[fieldName][i]
|
|
35
41
|
});
|
|
36
42
|
return result[fieldName][i];
|
|
37
43
|
});
|
|
@@ -50,13 +56,11 @@ const traverseFields = (args)=>{
|
|
|
50
56
|
};
|
|
51
57
|
}
|
|
52
58
|
traverseFields({
|
|
53
|
-
|
|
54
|
-
depth,
|
|
59
|
+
externallyUpdatedRelationship,
|
|
55
60
|
fieldSchema: incomingBlockJSON.fields,
|
|
56
61
|
incomingData: incomingBlock,
|
|
57
|
-
|
|
58
|
-
result: result[fieldName][i]
|
|
59
|
-
serverURL
|
|
62
|
+
populationsByCollection,
|
|
63
|
+
result: result[fieldName][i]
|
|
60
64
|
});
|
|
61
65
|
return result[fieldName][i];
|
|
62
66
|
});
|
|
@@ -70,20 +74,18 @@ const traverseFields = (args)=>{
|
|
|
70
74
|
result[fieldName] = {};
|
|
71
75
|
}
|
|
72
76
|
traverseFields({
|
|
73
|
-
|
|
74
|
-
depth,
|
|
77
|
+
externallyUpdatedRelationship,
|
|
75
78
|
fieldSchema: fieldSchema.fields,
|
|
76
79
|
incomingData: incomingData[fieldName] || {},
|
|
77
|
-
|
|
78
|
-
result: result[fieldName]
|
|
79
|
-
serverURL
|
|
80
|
+
populationsByCollection,
|
|
81
|
+
result: result[fieldName]
|
|
80
82
|
});
|
|
81
83
|
break;
|
|
82
84
|
case 'upload':
|
|
83
85
|
case 'relationship':
|
|
84
86
|
// Handle `hasMany` relationships
|
|
85
87
|
if (fieldSchema.hasMany && Array.isArray(incomingData[fieldName])) {
|
|
86
|
-
if (!result[fieldName]) {
|
|
88
|
+
if (!result[fieldName] || !incomingData[fieldName].length) {
|
|
87
89
|
result[fieldName] = [];
|
|
88
90
|
}
|
|
89
91
|
incomingData[fieldName].forEach((incomingRelation, i)=>{
|
|
@@ -100,29 +102,31 @@ const traverseFields = (args)=>{
|
|
|
100
102
|
const oldRelation = result[fieldName][i]?.relationTo;
|
|
101
103
|
const newID = incomingRelation.value;
|
|
102
104
|
const newRelation = incomingRelation.relationTo;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
const hasChanged = newID !== oldID || newRelation !== oldRelation;
|
|
106
|
+
const hasUpdated = newRelation === externallyUpdatedRelationship?.entitySlug && newID === externallyUpdatedRelationship?.id;
|
|
107
|
+
if (hasChanged || hasUpdated) {
|
|
108
|
+
if (!populationsByCollection[newRelation]) {
|
|
109
|
+
populationsByCollection[newRelation] = [];
|
|
110
|
+
}
|
|
111
|
+
populationsByCollection[newRelation].push({
|
|
105
112
|
id: incomingRelation.value,
|
|
106
113
|
accessor: 'value',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
depth,
|
|
110
|
-
ref: result[fieldName][i],
|
|
111
|
-
serverURL
|
|
112
|
-
}));
|
|
114
|
+
ref: result[fieldName][i]
|
|
115
|
+
});
|
|
113
116
|
}
|
|
114
117
|
} else {
|
|
115
118
|
// Handle `hasMany` monomorphic
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
const hasChanged = incomingRelation !== result[fieldName][i]?.id;
|
|
120
|
+
const hasUpdated = fieldSchema.relationTo === externallyUpdatedRelationship?.entitySlug && incomingRelation === externallyUpdatedRelationship?.id;
|
|
121
|
+
if (hasChanged || hasUpdated) {
|
|
122
|
+
if (!populationsByCollection[fieldSchema.relationTo]) {
|
|
123
|
+
populationsByCollection[fieldSchema.relationTo] = [];
|
|
124
|
+
}
|
|
125
|
+
populationsByCollection[fieldSchema.relationTo].push({
|
|
118
126
|
id: incomingRelation,
|
|
119
127
|
accessor: i,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
depth,
|
|
123
|
-
ref: result[fieldName],
|
|
124
|
-
serverURL
|
|
125
|
-
}));
|
|
128
|
+
ref: result[fieldName]
|
|
129
|
+
});
|
|
126
130
|
}
|
|
127
131
|
}
|
|
128
132
|
});
|
|
@@ -142,21 +146,22 @@ const traverseFields = (args)=>{
|
|
|
142
146
|
const oldID = hasOldValue ? typeof result[fieldName].value === 'object' ? result[fieldName].value.id : result[fieldName].value : '';
|
|
143
147
|
const newRelation = hasNewValue ? incomingData[fieldName].relationTo : '';
|
|
144
148
|
const oldRelation = hasOldValue ? result[fieldName].relationTo : '';
|
|
149
|
+
const hasChanged = newID !== oldID || newRelation !== oldRelation;
|
|
150
|
+
const hasUpdated = newRelation === externallyUpdatedRelationship?.entitySlug && newID === externallyUpdatedRelationship?.id;
|
|
145
151
|
// if the new value/relation is different from the old value/relation
|
|
146
152
|
// populate the new value, otherwise leave it alone
|
|
147
|
-
if (
|
|
153
|
+
if (hasChanged || hasUpdated) {
|
|
148
154
|
// if the new value is not empty, populate it
|
|
149
155
|
// otherwise set the value to null
|
|
150
156
|
if (newID) {
|
|
151
|
-
|
|
157
|
+
if (!populationsByCollection[newRelation]) {
|
|
158
|
+
populationsByCollection[newRelation] = [];
|
|
159
|
+
}
|
|
160
|
+
populationsByCollection[newRelation].push({
|
|
152
161
|
id: newID,
|
|
153
162
|
accessor: 'value',
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
depth,
|
|
157
|
-
ref: result[fieldName],
|
|
158
|
-
serverURL
|
|
159
|
-
}));
|
|
163
|
+
ref: result[fieldName]
|
|
164
|
+
});
|
|
160
165
|
} else {
|
|
161
166
|
result[fieldName] = null;
|
|
162
167
|
}
|
|
@@ -165,21 +170,22 @@ const traverseFields = (args)=>{
|
|
|
165
170
|
// Handle `hasOne` monomorphic
|
|
166
171
|
const newID = incomingData[fieldName] && typeof incomingData[fieldName] === 'object' && incomingData[fieldName].id || incomingData[fieldName];
|
|
167
172
|
const oldID = result[fieldName] && typeof result[fieldName] === 'object' && result[fieldName].id || result[fieldName];
|
|
173
|
+
const hasChanged = newID !== oldID;
|
|
174
|
+
const hasUpdated = fieldSchema.relationTo === externallyUpdatedRelationship?.entitySlug && newID === externallyUpdatedRelationship?.id;
|
|
168
175
|
// if the new value is different from the old value
|
|
169
176
|
// populate the new value, otherwise leave it alone
|
|
170
|
-
if (
|
|
177
|
+
if (hasChanged || hasUpdated) {
|
|
171
178
|
// if the new value is not empty, populate it
|
|
172
179
|
// otherwise set the value to null
|
|
173
180
|
if (newID) {
|
|
174
|
-
|
|
181
|
+
if (!populationsByCollection[fieldSchema.relationTo]) {
|
|
182
|
+
populationsByCollection[fieldSchema.relationTo] = [];
|
|
183
|
+
}
|
|
184
|
+
populationsByCollection[fieldSchema.relationTo].push({
|
|
175
185
|
id: newID,
|
|
176
186
|
accessor: fieldName,
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
depth,
|
|
180
|
-
ref: result,
|
|
181
|
-
serverURL
|
|
182
|
-
}));
|
|
187
|
+
ref: result
|
|
188
|
+
});
|
|
183
189
|
} else {
|
|
184
190
|
result[fieldName] = null;
|
|
185
191
|
}
|
|
@@ -194,4 +200,4 @@ const traverseFields = (args)=>{
|
|
|
194
200
|
});
|
|
195
201
|
};
|
|
196
202
|
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGZpZWxkU2NoZW1hVG9KU09OIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZpZWxkcyA9IDxUPihhcmdzOiB7XG4gIGFwaVJvdXRlPzogc3RyaW5nXG4gIGRlcHRoPzogbnVtYmVyXG4gIGZpZWxkU2NoZW1hOiBSZXR1cm5UeXBlPHR5cGVvZiBmaWVsZFNjaGVtYVRvSlNPTj5cbiAgaW5jb21pbmdEYXRhOiBUXG4gIHBvcHVsYXRpb25Qcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIHJlc3VsdDogVFxuICBzZXJ2ZXJVUkw6IHN0cmluZ1xufSk6IHZvaWQgPT4ge1xuICBjb25zdCB7XG4gICAgYXBpUm91dGUsXG4gICAgZGVwdGgsXG4gICAgZmllbGRTY2hlbWE6IGZpZWxkU2NoZW1hcyxcbiAgICBpbmNvbWluZ0RhdGEsXG4gICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgIHJlc3VsdCxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0gPSBhcmdzXG5cbiAgZmllbGRTY2hlbWFzLmZvckVhY2goKGZpZWxkU2NoZW1hKSA9PiB7XG4gICAgaWYgKCduYW1lJyBpbiBmaWVsZFNjaGVtYSAmJiB0eXBlb2YgZmllbGRTY2hlbWEubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkU2NoZW1hLm5hbWVcblxuICAgICAgc3dpdGNoIChmaWVsZFNjaGVtYS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ubWFwKChpbmNvbWluZ1JvdywgaSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBbXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKCFyZXN1bHRbZmllbGROYW1lXVtpXSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldID0ge31cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGRTY2hlbWEuZmllbGRzLFxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdSb3csXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzdWx0W2ZpZWxkTmFtZV1baV0sXG4gICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHRbZmllbGROYW1lXVtpXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGluY29taW5nRGF0YVtmaWVsZE5hbWVdKSkge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5tYXAoKGluY29taW5nQmxvY2ssIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaW5jb21pbmdCbG9ja0pTT04gPSBmaWVsZFNjaGVtYS5ibG9ja3NbaW5jb21pbmdCbG9jay5ibG9ja1R5cGVdXG5cbiAgICAgICAgICAgICAgaWYgKCFyZXN1bHRbZmllbGROYW1lXSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gW11cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhcmVzdWx0W2ZpZWxkTmFtZV1baV0gfHxcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXS5pZCAhPT0gaW5jb21pbmdCbG9jay5pZCB8fFxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldLmJsb2NrVHlwZSAhPT0gaW5jb21pbmdCbG9jay5ibG9ja1R5cGVcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0gPSB7XG4gICAgICAgICAgICAgICAgICBibG9ja1R5cGU6IGluY29taW5nQmxvY2suYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogaW5jb21pbmdCbG9ja0pTT04uZmllbGRzLFxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdCbG9jayxcbiAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgcmVzdWx0OiByZXN1bHRbZmllbGROYW1lXVtpXSxcbiAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtmaWVsZE5hbWVdW2ldXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IFtdXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICd0YWJzJzpcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgZmllbGRTY2hlbWE6IGZpZWxkU2NoZW1hLmZpZWxkcyxcbiAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gfHwge30sXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtmaWVsZE5hbWVdLFxuICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICAgICAgLy8gSGFuZGxlIGBoYXNNYW55YCByZWxhdGlvbnNoaXBzXG4gICAgICAgICAgaWYgKGZpZWxkU2NoZW1hLmhhc01hbnkgJiYgQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBbXVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5mb3JFYWNoKChpbmNvbWluZ1JlbGF0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzTWFueWAgcG9seW1vcnBoaWNcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRTY2hlbWEucmVsYXRpb25UbykpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZmllbGQgZG9lc24ndCBleGlzdCBvbiB0aGUgcmVzdWx0LCBjcmVhdGUgaXRcbiAgICAgICAgICAgICAgICAvLyB0aGUgdmFsdWUgd2lsbCBiZSBwb3B1bGF0ZWQgbGF0ZXJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdW2ldKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogaW5jb21pbmdSZWxhdGlvbi5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG9sZElEID0gcmVzdWx0W2ZpZWxkTmFtZV1baV0/LnZhbHVlPy5pZFxuICAgICAgICAgICAgICAgIGNvbnN0IG9sZFJlbGF0aW9uID0gcmVzdWx0W2ZpZWxkTmFtZV1baV0/LnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJRCA9IGluY29taW5nUmVsYXRpb24udmFsdWVcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdSZWxhdGlvbiA9IGluY29taW5nUmVsYXRpb24ucmVsYXRpb25Ub1xuXG4gICAgICAgICAgICAgICAgaWYgKG9sZElEICE9PSBuZXdJRCB8fCBvbGRSZWxhdGlvbiAhPT0gbmV3UmVsYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogaW5jb21pbmdSZWxhdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBuZXdSZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgICAgICByZWY6IHJlc3VsdFtmaWVsZE5hbWVdW2ldLFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzTWFueWAgbW9ub21vcnBoaWNcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0W2ZpZWxkTmFtZV1baV0/LmlkICE9PSBpbmNvbWluZ1JlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGluY29taW5nUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6IGksXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogU3RyaW5nKGZpZWxkU2NoZW1hLnJlbGF0aW9uVG8pLFxuICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0W2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzT25lYCBwb2x5bW9ycGhpY1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRTY2hlbWEucmVsYXRpb25UbykpIHtcbiAgICAgICAgICAgICAgLy8gaWYgdGhlIGZpZWxkIGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHJlc3VsdCwgY3JlYXRlIGl0XG4gICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSB3aWxsIGJlIHBvcHVsYXRlZCBsYXRlclxuICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXT8ucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBoYXNOZXdWYWx1ZSA9XG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBoYXNPbGRWYWx1ZSA9XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdJRCA9IGhhc05ld1ZhbHVlXG4gICAgICAgICAgICAgICAgPyB0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0udmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICA/IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLnZhbHVlLmlkXG4gICAgICAgICAgICAgICAgICA6IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAnJ1xuXG4gICAgICAgICAgICAgIGNvbnN0IG9sZElEID0gaGFzT2xkVmFsdWVcbiAgICAgICAgICAgICAgICA/IHR5cGVvZiByZXN1bHRbZmllbGROYW1lXS52YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgID8gcmVzdWx0W2ZpZWxkTmFtZV0udmFsdWUuaWRcbiAgICAgICAgICAgICAgICAgIDogcmVzdWx0W2ZpZWxkTmFtZV0udmFsdWVcbiAgICAgICAgICAgICAgICA6ICcnXG5cbiAgICAgICAgICAgICAgY29uc3QgbmV3UmVsYXRpb24gPSBoYXNOZXdWYWx1ZSA/IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBvbGRSZWxhdGlvbiA9IGhhc09sZFZhbHVlID8gcmVzdWx0W2ZpZWxkTmFtZV0ucmVsYXRpb25UbyA6ICcnXG5cbiAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyB2YWx1ZS9yZWxhdGlvbiBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkIHZhbHVlL3JlbGF0aW9uXG4gICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBuZXcgdmFsdWUsIG90aGVyd2lzZSBsZWF2ZSBpdCBhbG9uZVxuICAgICAgICAgICAgICBpZiAobmV3SUQgIT09IG9sZElEIHx8IG5ld1JlbGF0aW9uICE9PSBvbGRSZWxhdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgbm90IGVtcHR5LCBwb3B1bGF0ZSBpdFxuICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIHRvIG51bGxcbiAgICAgICAgICAgICAgICBpZiAobmV3SUQpIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3SUQsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogbmV3UmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzT25lYCBtb25vbW9ycGhpY1xuICAgICAgICAgICAgICBjb25zdCBuZXdJRDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgICAgICAoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmlkKSB8fFxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkSUQ6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICAgICAgKHJlc3VsdFtmaWVsZE5hbWVdICYmXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXS5pZCkgfHxcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVxuXG4gICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbmV3IHZhbHVlLCBvdGhlcndpc2UgbGVhdmUgaXQgYWxvbmVcbiAgICAgICAgICAgICAgaWYgKG5ld0lEICE9PSBvbGRJRCkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgbm90IGVtcHR5LCBwb3B1bGF0ZSBpdFxuICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIHRvIG51bGxcbiAgICAgICAgICAgICAgICBpZiAobmV3SUQpIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3SUQsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6IGZpZWxkTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBTdHJpbmcoZmllbGRTY2hlbWEucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhcmdzIiwiYXBpUm91dGUiLCJkZXB0aCIsImZpZWxkU2NoZW1hIiwiZmllbGRTY2hlbWFzIiwiaW5jb21pbmdEYXRhIiwicG9wdWxhdGlvblByb21pc2VzIiwicmVzdWx0Iiwic2VydmVyVVJMIiwiZm9yRWFjaCIsIm5hbWUiLCJmaWVsZE5hbWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaW5jb21pbmdSb3ciLCJpIiwiZmllbGRzIiwiaW5jb21pbmdCbG9jayIsImluY29taW5nQmxvY2tKU09OIiwiYmxvY2tzIiwiYmxvY2tUeXBlIiwiaWQiLCJoYXNNYW55IiwiaW5jb21pbmdSZWxhdGlvbiIsInJlbGF0aW9uVG8iLCJvbGRJRCIsInZhbHVlIiwib2xkUmVsYXRpb24iLCJuZXdJRCIsIm5ld1JlbGF0aW9uIiwicHVzaCIsInByb21pc2UiLCJhY2Nlc3NvciIsImNvbGxlY3Rpb24iLCJyZWYiLCJTdHJpbmciLCJoYXNOZXdWYWx1ZSIsImhhc09sZFZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUlhQTs7O2VBQUFBOzs7eUJBRlc7QUFFakIsTUFBTUEsaUJBQWlCLENBQUlDO0lBU2hDLE1BQU0sRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLGFBQWFDLFlBQVksRUFDekJDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxNQUFNLEVBQ05DLFNBQVMsRUFDVixHQUFHUjtJQUVKSSxhQUFhSyxPQUFPLENBQUMsQ0FBQ047UUFDcEIsSUFBSSxVQUFVQSxlQUFlLE9BQU9BLFlBQVlPLElBQUksS0FBSyxVQUFVO1lBQ2pFLE1BQU1DLFlBQVlSLFlBQVlPLElBQUk7WUFFbEMs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
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGZpZWxkU2NoZW1hVG9KU09OIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB0eXBlIHsgUG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sIFVwZGF0ZWREb2N1bWVudCB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHRyYXZlcnNlUmljaFRleHQgfSBmcm9tICcuL3RyYXZlcnNlUmljaFRleHQnXG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZpZWxkcyA9IDxUPihhcmdzOiB7XG4gIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwPzogVXBkYXRlZERvY3VtZW50XG4gIGZpZWxkU2NoZW1hOiBSZXR1cm5UeXBlPHR5cGVvZiBmaWVsZFNjaGVtYVRvSlNPTj5cbiAgaW5jb21pbmdEYXRhOiBUXG4gIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uOiBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvblxuICByZXN1bHQ6IFRcbn0pOiB2b2lkID0+IHtcbiAgY29uc3Qge1xuICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgIGZpZWxkU2NoZW1hOiBmaWVsZFNjaGVtYXMsXG4gICAgaW5jb21pbmdEYXRhLFxuICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uLFxuICAgIHJlc3VsdCxcbiAgfSA9IGFyZ3NcblxuICBmaWVsZFNjaGVtYXMuZm9yRWFjaCgoZmllbGRTY2hlbWEpID0+IHtcbiAgICBpZiAoJ25hbWUnIGluIGZpZWxkU2NoZW1hICYmIHR5cGVvZiBmaWVsZFNjaGVtYS5uYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGRTY2hlbWEubmFtZVxuXG4gICAgICBzd2l0Y2ggKGZpZWxkU2NoZW1hLnR5cGUpIHtcbiAgICAgICAgY2FzZSAncmljaFRleHQnOlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gdHJhdmVyc2VSaWNoVGV4dCh7XG4gICAgICAgICAgICBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICAgICAgICAgIHJlc3VsdDogcmVzdWx0W2ZpZWxkTmFtZV0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGluY29taW5nRGF0YVtmaWVsZE5hbWVdKSkge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5tYXAoKGluY29taW5nUm93LCBpKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IFtdXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0gPSB7fVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZFNjaGVtYS5maWVsZHMsXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiBpbmNvbWluZ1JvdyxcbiAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtmaWVsZE5hbWVdW2ldLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHRbZmllbGROYW1lXVtpXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ2Jsb2Nrcyc6XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0pKSB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLm1hcCgoaW5jb21pbmdCbG9jaywgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpbmNvbWluZ0Jsb2NrSlNPTiA9IGZpZWxkU2NoZW1hLmJsb2Nrc1tpbmNvbWluZ0Jsb2NrLmJsb2NrVHlwZV1cblxuICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBbXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFyZXN1bHRbZmllbGROYW1lXVtpXSB8fFxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldLmlkICE9PSBpbmNvbWluZ0Jsb2NrLmlkIHx8XG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0uYmxvY2tUeXBlICE9PSBpbmNvbWluZ0Jsb2NrLmJsb2NrVHlwZVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogaW5jb21pbmdCbG9jay5ibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBpbmNvbWluZ0Jsb2NrSlNPTi5maWVsZHMsXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiBpbmNvbWluZ0Jsb2NrLFxuICAgICAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzdWx0W2ZpZWxkTmFtZV1baV0sXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtmaWVsZE5hbWVdW2ldXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IFtdXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICd0YWJzJzpcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZFNjaGVtYS5maWVsZHMsXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGE6IGluY29taW5nRGF0YVtmaWVsZE5hbWVdIHx8IHt9LFxuICAgICAgICAgICAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sXG4gICAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtmaWVsZE5hbWVdLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICAgICAgLy8gSGFuZGxlIGBoYXNNYW55YCByZWxhdGlvbnNoaXBzXG4gICAgICAgICAgaWYgKGZpZWxkU2NoZW1hLmhhc01hbnkgJiYgQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV0gfHwgIWluY29taW5nRGF0YVtmaWVsZE5hbWVdLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IFtdXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmZvckVhY2goKGluY29taW5nUmVsYXRpb24sIGkpID0+IHtcbiAgICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNNYW55YCBwb2x5bW9ycGhpY1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFNjaGVtYS5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBmaWVsZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSByZXN1bHQsIGNyZWF0ZSBpdFxuICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSB3aWxsIGJlIHBvcHVsYXRlZCBsYXRlclxuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0W2ZpZWxkTmFtZV1baV0pIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldID0ge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBpbmNvbWluZ1JlbGF0aW9uLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkSUQgPSByZXN1bHRbZmllbGROYW1lXVtpXT8udmFsdWU/LmlkXG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkUmVsYXRpb24gPSByZXN1bHRbZmllbGROYW1lXVtpXT8ucmVsYXRpb25Ub1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lEID0gaW5jb21pbmdSZWxhdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JlbGF0aW9uID0gaW5jb21pbmdSZWxhdGlvbi5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGFuZ2VkID0gbmV3SUQgIT09IG9sZElEIHx8IG5ld1JlbGF0aW9uICE9PSBvbGRSZWxhdGlvblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1VwZGF0ZWQgPVxuICAgICAgICAgICAgICAgICAgbmV3UmVsYXRpb24gPT09IGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwPy5lbnRpdHlTbHVnICYmXG4gICAgICAgICAgICAgICAgICBuZXdJRCA9PT0gZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/LmlkXG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzQ2hhbmdlZCB8fCBoYXNVcGRhdGVkKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW25ld1JlbGF0aW9uXSkge1xuICAgICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltuZXdSZWxhdGlvbl0gPSBbXVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltuZXdSZWxhdGlvbl0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBpbmNvbWluZ1JlbGF0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXVtpXSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzTWFueWAgbW9ub21vcnBoaWNcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGFuZ2VkID0gaW5jb21pbmdSZWxhdGlvbiAhPT0gcmVzdWx0W2ZpZWxkTmFtZV1baV0/LmlkXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzVXBkYXRlZCA9XG4gICAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYS5yZWxhdGlvblRvID09PSBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcD8uZW50aXR5U2x1ZyAmJlxuICAgICAgICAgICAgICAgICAgaW5jb21pbmdSZWxhdGlvbiA9PT0gZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/LmlkXG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzQ2hhbmdlZCB8fCBoYXNVcGRhdGVkKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2ZpZWxkU2NoZW1hLnJlbGF0aW9uVG9dKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2ZpZWxkU2NoZW1hLnJlbGF0aW9uVG9dID0gW11cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb25bZmllbGRTY2hlbWEucmVsYXRpb25Ub10ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBpbmNvbWluZ1JlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogaSxcbiAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYGhhc09uZWAgcG9seW1vcnBoaWNcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkU2NoZW1hLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgICAgIC8vIGlmIHRoZSBmaWVsZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSByZXN1bHQsIGNyZWF0ZSBpdFxuICAgICAgICAgICAgICAvLyB0aGUgdmFsdWUgd2lsbCBiZSBwb3B1bGF0ZWQgbGF0ZXJcbiAgICAgICAgICAgICAgaWYgKCFyZXN1bHRbZmllbGROYW1lXSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0/LnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaGFzTmV3VmFsdWUgPVxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGluY29taW5nRGF0YVtmaWVsZE5hbWVdID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdICE9PSBudWxsXG5cbiAgICAgICAgICAgICAgY29uc3QgaGFzT2xkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdICE9PSBudWxsXG5cbiAgICAgICAgICAgICAgY29uc3QgbmV3SUQgPSBoYXNOZXdWYWx1ZVxuICAgICAgICAgICAgICAgID8gdHlwZW9mIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLnZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgICAgPyBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS52YWx1ZS5pZFxuICAgICAgICAgICAgICAgICAgOiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS52YWx1ZVxuICAgICAgICAgICAgICAgIDogJydcblxuICAgICAgICAgICAgICBjb25zdCBvbGRJRCA9IGhhc09sZFZhbHVlXG4gICAgICAgICAgICAgICAgPyB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV0udmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICA/IHJlc3VsdFtmaWVsZE5hbWVdLnZhbHVlLmlkXG4gICAgICAgICAgICAgICAgICA6IHJlc3VsdFtmaWVsZE5hbWVdLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAnJ1xuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1JlbGF0aW9uID0gaGFzTmV3VmFsdWUgPyBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5yZWxhdGlvblRvIDogJydcbiAgICAgICAgICAgICAgY29uc3Qgb2xkUmVsYXRpb24gPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuXG4gICAgICAgICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBuZXdJRCAhPT0gb2xkSUQgfHwgbmV3UmVsYXRpb24gIT09IG9sZFJlbGF0aW9uXG4gICAgICAgICAgICAgIGNvbnN0IGhhc1VwZGF0ZWQgPVxuICAgICAgICAgICAgICAgIG5ld1JlbGF0aW9uID09PSBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcD8uZW50aXR5U2x1ZyAmJlxuICAgICAgICAgICAgICAgIG5ld0lEID09PSBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcD8uaWRcblxuICAgICAgICAgICAgICAvLyBpZiB0aGUgbmV3IHZhbHVlL3JlbGF0aW9uIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbGQgdmFsdWUvcmVsYXRpb25cbiAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIG5ldyB2YWx1ZSwgb3RoZXJ3aXNlIGxlYXZlIGl0IGFsb25lXG4gICAgICAgICAgICAgIGlmIChoYXNDaGFuZ2VkIHx8IGhhc1VwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgbmV3IHZhbHVlIGlzIG5vdCBlbXB0eSwgcG9wdWxhdGUgaXRcbiAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ugc2V0IHRoZSB2YWx1ZSB0byBudWxsXG4gICAgICAgICAgICAgICAgaWYgKG5ld0lEKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW25ld1JlbGF0aW9uXSkge1xuICAgICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltuZXdSZWxhdGlvbl0gPSBbXVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltuZXdSZWxhdGlvbl0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBuZXdJRCxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0W2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzT25lYCBtb25vbW9ycGhpY1xuICAgICAgICAgICAgICBjb25zdCBuZXdJRDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgICAgICAoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmlkKSB8fFxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkSUQ6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICAgICAgKHJlc3VsdFtmaWVsZE5hbWVdICYmXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXS5pZCkgfHxcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVxuXG4gICAgICAgICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBuZXdJRCAhPT0gb2xkSURcbiAgICAgICAgICAgICAgY29uc3QgaGFzVXBkYXRlZCA9XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEucmVsYXRpb25UbyA9PT0gZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/LmVudGl0eVNsdWcgJiZcbiAgICAgICAgICAgICAgICBuZXdJRCA9PT0gZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/LmlkXG5cbiAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkIHZhbHVlXG4gICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBuZXcgdmFsdWUsIG90aGVyd2lzZSBsZWF2ZSBpdCBhbG9uZVxuICAgICAgICAgICAgICBpZiAoaGFzQ2hhbmdlZCB8fCBoYXNVcGRhdGVkKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyB2YWx1ZSBpcyBub3QgZW1wdHksIHBvcHVsYXRlIGl0XG4gICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHNldCB0aGUgdmFsdWUgdG8gbnVsbFxuICAgICAgICAgICAgICAgIGlmIChuZXdJRCkge1xuICAgICAgICAgICAgICAgICAgaWYgKCFwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltmaWVsZFNjaGVtYS5yZWxhdGlvblRvXSkge1xuICAgICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltmaWVsZFNjaGVtYS5yZWxhdGlvblRvXSA9IFtdXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2ZpZWxkU2NoZW1hLnJlbGF0aW9uVG9dLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogbmV3SUQsXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yOiBmaWVsZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhcmdzIiwiZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAiLCJmaWVsZFNjaGVtYSIsImZpZWxkU2NoZW1hcyIsImluY29taW5nRGF0YSIsInBvcHVsYXRpb25zQnlDb2xsZWN0aW9uIiwicmVzdWx0IiwiZm9yRWFjaCIsIm5hbWUiLCJmaWVsZE5hbWUiLCJ0eXBlIiwidHJhdmVyc2VSaWNoVGV4dCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImluY29taW5nUm93IiwiaSIsImZpZWxkcyIsImluY29taW5nQmxvY2siLCJpbmNvbWluZ0Jsb2NrSlNPTiIsImJsb2NrcyIsImJsb2NrVHlwZSIsImlkIiwiaGFzTWFueSIsImxlbmd0aCIsImluY29taW5nUmVsYXRpb24iLCJyZWxhdGlvblRvIiwib2xkSUQiLCJ2YWx1ZSIsIm9sZFJlbGF0aW9uIiwibmV3SUQiLCJuZXdSZWxhdGlvbiIsImhhc0NoYW5nZWQiLCJoYXNVcGRhdGVkIiwiZW50aXR5U2x1ZyIsInB1c2giLCJhY2Nlc3NvciIsInJlZiIsImhhc05ld1ZhbHVlIiwiaGFzT2xkVmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBTWFBOzs7ZUFBQUE7OztrQ0FGb0I7QUFFMUIsTUFBTUEsaUJBQWlCLENBQUlDO0lBT2hDLE1BQU0sRUFDSkMsNkJBQTZCLEVBQzdCQyxhQUFhQyxZQUFZLEVBQ3pCQyxZQUFZLEVBQ1pDLHVCQUF1QixFQUN2QkMsTUFBTSxFQUNQLEdBQUdOO0lBRUpHLGFBQWFJLE9BQU8sQ0FBQyxDQUFDTDtRQUNwQixJQUFJLFVBQVVBLGVBQWUsT0FBT0EsWUFBWU0sSUFBSSxLQUFLLFVBQVU7WUFDakUsTUFBTUMsWUFBWVAsWUFBWU0sSUFBSTtZQUVsQyxPQUFRTixZQUFZUSxJQUFJO2dCQUN0QixLQUFLO29CQUNISixNQUFNLENBQUNHLFVBQVUsR0FBR0UsSUFBQUEsa0NBQWdCLEVBQUM7d0JBQ25DVjt3QkFDQUcsY0FBY0EsWUFBWSxDQUFDSyxVQUFVO3dCQUNyQ0o7d0JBQ0FDLFFBQVFBLE1BQU0sQ0FBQ0csVUFBVTtvQkFDM0I7b0JBRUE7Z0JBRUYsS0FBSztvQkFDSCxJQUFJRyxNQUFNQyxPQUFPLENBQUNULFlBQVksQ0FBQ0ssVUFBVSxHQUFHO3dCQUMxQ0gsTUFBTSxDQUFDRyxVQUFVLEdBQUdMLFlBQVksQ0FBQ0ssVUFBVSxDQUFDSyxHQUFHLENBQUMsQ0FBQ0MsYUFBYUM7NEJBQzVELElBQUksQ0FBQ1YsTUFBTSxDQUFDRyxVQUFVLEVBQUU7Z0NBQ3RCSCxNQUFNLENBQUNHLFVBQVUsR0FBRyxFQUFFOzRCQUN4Qjs0QkFFQSxJQUFJLENBQUNILE1BQU0sQ0FBQ0csVUFBVSxDQUFDTyxFQUFFLEVBQUU7Z0NBQ3pCVixNQUFNLENBQUNHLFVBQVUsQ0FBQ08sRUFBRSxHQUFHLENBQUM7NEJBQzFCOzRCQUVBakIsZUFBZTtnQ0FDYkU7Z0NBQ0FDLGFBQWFBLFlBQVllLE1BQU07Z0NBQy9CYixjQUFjVztnQ0FDZFY7Z0NBQ0FDLFFBQVFBLE1BQU0sQ0FB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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PopulationsByCollection, UpdatedDocument } from './types';
|
|
2
|
+
export declare const traverseRichText: ({ externallyUpdatedRelationship, incomingData, populationsByCollection, result, }: {
|
|
3
|
+
externallyUpdatedRelationship?: UpdatedDocument;
|
|
4
|
+
incomingData: any;
|
|
5
|
+
populationsByCollection: PopulationsByCollection;
|
|
6
|
+
result: any;
|
|
7
|
+
}) => any;
|
|
8
|
+
//# sourceMappingURL=traverseRichText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverseRichText.d.ts","sourceRoot":"","sources":["../src/traverseRichText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvE,eAAO,MAAM,gBAAgB;oCAMK,eAAe;kBACjC,GAAG;6BACQ,uBAAuB;YACxC,GAAG;MACT,GA0FH,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "traverseRichText", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return traverseRichText;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const traverseRichText = ({ externallyUpdatedRelationship, incomingData, populationsByCollection, result })=>{
|
|
12
|
+
if (Array.isArray(incomingData)) {
|
|
13
|
+
if (!result) {
|
|
14
|
+
result = [];
|
|
15
|
+
}
|
|
16
|
+
result = incomingData.map((item, index)=>{
|
|
17
|
+
if (!result[index]) {
|
|
18
|
+
result[index] = item;
|
|
19
|
+
}
|
|
20
|
+
return traverseRichText({
|
|
21
|
+
externallyUpdatedRelationship,
|
|
22
|
+
incomingData: item,
|
|
23
|
+
populationsByCollection,
|
|
24
|
+
result: result[index]
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
} else if (incomingData && typeof incomingData === 'object') {
|
|
28
|
+
if (!result) {
|
|
29
|
+
result = {};
|
|
30
|
+
}
|
|
31
|
+
// Remove keys from `result` that do not appear in `incomingData`
|
|
32
|
+
// There's likely another way to do this,
|
|
33
|
+
// But recursion and references make this very difficult
|
|
34
|
+
Object.keys(result).forEach((key)=>{
|
|
35
|
+
if (!(key in incomingData)) {
|
|
36
|
+
delete result[key];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
// Iterate over the keys of `incomingData` and populate `result`
|
|
40
|
+
Object.keys(incomingData).forEach((key)=>{
|
|
41
|
+
if (!result[key]) {
|
|
42
|
+
// Instantiate the key in `result` if it doesn't exist
|
|
43
|
+
// Ensure its type matches the type of the `incomingData`
|
|
44
|
+
// We don't have a schema to check against here
|
|
45
|
+
result[key] = incomingData[key] && typeof incomingData[key] === 'object' ? Array.isArray(incomingData[key]) ? [] : {} : undefined;
|
|
46
|
+
}
|
|
47
|
+
const isRelationship = key === 'value' && 'relationTo' in incomingData;
|
|
48
|
+
if (isRelationship) {
|
|
49
|
+
// or if there are no keys besides id
|
|
50
|
+
const needsPopulation = !result.value || typeof result.value !== 'object' || typeof result.value === 'object' && Object.keys(result.value).length === 1 && 'id' in result.value;
|
|
51
|
+
const hasChanged = result && typeof result === 'object' && result.value.id === externallyUpdatedRelationship?.id;
|
|
52
|
+
if (needsPopulation || hasChanged) {
|
|
53
|
+
if (!populationsByCollection[incomingData.relationTo]) {
|
|
54
|
+
populationsByCollection[incomingData.relationTo] = [];
|
|
55
|
+
}
|
|
56
|
+
populationsByCollection[incomingData.relationTo].push({
|
|
57
|
+
id: incomingData[key] && typeof incomingData[key] === 'object' ? incomingData[key].id : incomingData[key],
|
|
58
|
+
accessor: 'value',
|
|
59
|
+
ref: result
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
result[key] = traverseRichText({
|
|
64
|
+
externallyUpdatedRelationship,
|
|
65
|
+
incomingData: incomingData[key],
|
|
66
|
+
populationsByCollection,
|
|
67
|
+
result: result[key]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
} else {
|
|
72
|
+
result = incomingData;
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZVJpY2hUZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sIFVwZGF0ZWREb2N1bWVudCB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZVJpY2hUZXh0ID0gKHtcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gIGluY29taW5nRGF0YSxcbiAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sXG4gIHJlc3VsdCxcbn06IHtcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/OiBVcGRhdGVkRG9jdW1lbnRcbiAgaW5jb21pbmdEYXRhOiBhbnlcbiAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb246IFBvcHVsYXRpb25zQnlDb2xsZWN0aW9uXG4gIHJlc3VsdDogYW55XG59KTogYW55ID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhKSkge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSBbXVxuICAgIH1cblxuICAgIHJlc3VsdCA9IGluY29taW5nRGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdFtpbmRleF0pIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZW1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRyYXZlcnNlUmljaFRleHQoe1xuICAgICAgICBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgaW5jb21pbmdEYXRhOiBpdGVtLFxuICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICAgICAgcmVzdWx0OiByZXN1bHRbaW5kZXhdLFxuICAgICAgfSlcbiAgICB9KVxuICB9IGVsc2UgaWYgKGluY29taW5nRGF0YSAmJiB0eXBlb2YgaW5jb21pbmdEYXRhID09PSAnb2JqZWN0Jykge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSB7fVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBrZXlzIGZyb20gYHJlc3VsdGAgdGhhdCBkbyBub3QgYXBwZWFyIGluIGBpbmNvbWluZ0RhdGFgXG4gICAgLy8gVGhlcmUncyBsaWtlbHkgYW5vdGhlciB3YXkgdG8gZG8gdGhpcyxcbiAgICAvLyBCdXQgcmVjdXJzaW9uIGFuZCByZWZlcmVuY2VzIG1ha2UgdGhpcyB2ZXJ5IGRpZmZpY3VsdFxuICAgIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIShrZXkgaW4gaW5jb21pbmdEYXRhKSkge1xuICAgICAgICBkZWxldGUgcmVzdWx0W2tleV1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSBrZXlzIG9mIGBpbmNvbWluZ0RhdGFgIGFuZCBwb3B1bGF0ZSBgcmVzdWx0YFxuICAgIE9iamVjdC5rZXlzKGluY29taW5nRGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdFtrZXldKSB7XG4gICAgICAgIC8vIEluc3RhbnRpYXRlIHRoZSBrZXkgaW4gYHJlc3VsdGAgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAgICAvLyBFbnN1cmUgaXRzIHR5cGUgbWF0Y2hlcyB0aGUgdHlwZSBvZiB0aGUgYGluY29taW5nRGF0YWBcbiAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHNjaGVtYSB0byBjaGVjayBhZ2FpbnN0IGhlcmVcbiAgICAgICAgcmVzdWx0W2tleV0gPVxuICAgICAgICAgIGluY29taW5nRGF0YVtrZXldICYmIHR5cGVvZiBpbmNvbWluZ0RhdGFba2V5XSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgID8gQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFba2V5XSlcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IHt9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICBjb25zdCBpc1JlbGF0aW9uc2hpcCA9IGtleSA9PT0gJ3ZhbHVlJyAmJiAncmVsYXRpb25UbycgaW4gaW5jb21pbmdEYXRhXG5cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcCkge1xuICAgICAgICAvLyBvciBpZiB0aGVyZSBhcmUgbm8ga2V5cyBiZXNpZGVzIGlkXG4gICAgICAgIGNvbnN0IG5lZWRzUG9wdWxhdGlvbiA9XG4gICAgICAgICAgIXJlc3VsdC52YWx1ZSB8fFxuICAgICAgICAgIHR5cGVvZiByZXN1bHQudmFsdWUgIT09ICdvYmplY3QnIHx8XG4gICAgICAgICAgKHR5cGVvZiByZXN1bHQudmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHQudmFsdWUpLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgJ2lkJyBpbiByZXN1bHQudmFsdWUpXG5cbiAgICAgICAgY29uc3QgaGFzQ2hhbmdlZCA9XG4gICAgICAgICAgcmVzdWx0ICYmXG4gICAgICAgICAgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICByZXN1bHQudmFsdWUuaWQgPT09IGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwPy5pZFxuXG4gICAgICAgIGlmIChuZWVkc1BvcHVsYXRpb24gfHwgaGFzQ2hhbmdlZCkge1xuICAgICAgICAgIGlmICghcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb25baW5jb21pbmdEYXRhLnJlbGF0aW9uVG9dKSB7XG4gICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltpbmNvbWluZ0RhdGEucmVsYXRpb25Ub10gPSBbXVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2luY29taW5nRGF0YS5yZWxhdGlvblRvXS5wdXNoKHtcbiAgICAgICAgICAgIGlkOlxuICAgICAgICAgICAgICBpbmNvbWluZ0RhdGFba2V5XSAmJiB0eXBlb2YgaW5jb21pbmdEYXRhW2tleV0gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyBpbmNvbWluZ0RhdGFba2V5XS5pZFxuICAgICAgICAgICAgICAgIDogaW5jb21pbmdEYXRhW2tleV0sXG4gICAgICAgICAgICBhY2Nlc3NvcjogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHJlZjogcmVzdWx0LFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJhdmVyc2VSaWNoVGV4dCh7XG4gICAgICAgICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gICAgICAgICAgaW5jb21pbmdEYXRhOiBpbmNvbWluZ0RhdGFba2V5XSxcbiAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtrZXldLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gaW5jb21pbmdEYXRhXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VSaWNoVGV4dCIsImV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwIiwiaW5jb21pbmdEYXRhIiwicG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24iLCJyZXN1bHQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInVuZGVmaW5lZCIsImlzUmVsYXRpb25zaGlwIiwibmVlZHNQb3B1bGF0aW9uIiwidmFsdWUiLCJsZW5ndGgiLCJoYXNDaGFuZ2VkIiwiaWQiLCJyZWxhdGlvblRvIiwicHVzaCIsImFjY2Vzc29yIiwicmVmIl0sIm1hcHBpbmdzIjoiOzs7OytCQUVhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxtQkFBbUIsQ0FBQyxFQUMvQkMsNkJBQTZCLEVBQzdCQyxZQUFZLEVBQ1pDLHVCQUF1QixFQUN2QkMsTUFBTSxFQU1QO0lB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
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
export type LivePreviewArgs = {};
|
|
2
2
|
export type LivePreview = void;
|
|
3
|
+
export type PopulationsByCollection = {
|
|
4
|
+
[slug: string]: Array<{
|
|
5
|
+
accessor: number | string;
|
|
6
|
+
id: number | string;
|
|
7
|
+
ref: Record<string, unknown>;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export type UpdatedDocument = {
|
|
11
|
+
entitySlug: string;
|
|
12
|
+
id?: number | string;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
};
|
|
3
15
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,IAAI,CAAA;AAE9B,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;QACzB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC7B,CAAC,CAAA;CACH,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/live-preview",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "The official live preview JavaScript SDK for Payload",
|
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,10 +10,7 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@payloadcms/eslint-config": "1.0.0",
|
|
13
|
-
"payload": "2.
|
|
14
|
-
},
|
|
15
|
-
"peerDependencies": {
|
|
16
|
-
"payload": "^2.0.0"
|
|
13
|
+
"payload": "2.4.0"
|
|
17
14
|
},
|
|
18
15
|
"exports": null,
|
|
19
16
|
"publishConfig": {
|
package/dist/promise.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const promise: (args: {
|
|
2
|
-
accessor: number | string;
|
|
3
|
-
apiRoute?: string;
|
|
4
|
-
collection: string;
|
|
5
|
-
depth: number;
|
|
6
|
-
id: number | string;
|
|
7
|
-
ref: Record<string, unknown>;
|
|
8
|
-
serverURL: string;
|
|
9
|
-
}) => Promise<void>;
|
|
10
|
-
//# sourceMappingURL=promise.d.ts.map
|
package/dist/promise.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,SAAgB;IAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,GAAG,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,QAAQ,IAAI,CAmBf,CAAA"}
|
package/dist/promise.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "promise", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return promise;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const promise = async (args)=>{
|
|
12
|
-
const { id, accessor, apiRoute, collection, depth, ref, serverURL } = args;
|
|
13
|
-
const url = `${serverURL}${apiRoute || '/api'}/${collection}/${id}?depth=${depth}`;
|
|
14
|
-
let res = null;
|
|
15
|
-
try {
|
|
16
|
-
res = await fetch(url, {
|
|
17
|
-
credentials: 'include',
|
|
18
|
-
headers: {
|
|
19
|
-
'Content-Type': 'application/json'
|
|
20
|
-
}
|
|
21
|
-
}).then((res)=>res.json());
|
|
22
|
-
} catch (err) {
|
|
23
|
-
console.error(err) // eslint-disable-line no-console
|
|
24
|
-
;
|
|
25
|
-
}
|
|
26
|
-
ref[accessor] = res;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9taXNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcm9taXNlID0gYXN5bmMgKGFyZ3M6IHtcbiAgYWNjZXNzb3I6IG51bWJlciB8IHN0cmluZ1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxuICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gIHJlZjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgeyBpZCwgYWNjZXNzb3IsIGFwaVJvdXRlLCBjb2xsZWN0aW9uLCBkZXB0aCwgcmVmLCBzZXJ2ZXJVUkwgfSA9IGFyZ3NcblxuICBjb25zdCB1cmwgPSBgJHtzZXJ2ZXJVUkx9JHthcGlSb3V0ZSB8fCAnL2FwaSd9LyR7Y29sbGVjdGlvbn0vJHtpZH0/ZGVwdGg9JHtkZXB0aH1gXG5cbiAgbGV0IHJlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbFxuXG4gIHRyeSB7XG4gICAgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9KS50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgfVxuXG4gIHJlZlthY2Nlc3Nvcl0gPSByZXNcbn1cbiJdLCJuYW1lcyI6WyJwcm9taXNlIiwiYXJncyIsImlkIiwiYWNjZXNzb3IiLCJhcGlSb3V0ZSIsImNvbGxlY3Rpb24iLCJkZXB0aCIsInJlZiIsInNlcnZlclVSTCIsInVybCIsInJlcyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwidGhlbiIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFVBQVUsT0FBT0M7SUFTNUIsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsR0FBRyxFQUFFQyxTQUFTLEVBQUUsR0FBR1A7SUFFdEUsTUFBTVEsTUFBTSxDQUFDLEVBQUVELFVBQVUsRUFBRUosWUFBWSxPQUFPLENBQUMsRUFBRUMsV0FBVyxDQUFDLEVBQUVILEdBQUcsT0FBTyxFQUFFSSxNQUFNLENBQUM7SUFFbEYsSUFBSUksTUFBa0Q7SUFFdEQsSUFBSTtRQUNGQSxNQUFNLE1BQU1DLE1BQU1GLEtBQUs7WUFDckJHLGFBQWE7WUFDYkMsU0FBUztnQkFDUCxnQkFBZ0I7WUFDbEI7UUFDRixHQUFHQyxJQUFJLENBQUMsQ0FBQ0osTUFBUUEsSUFBSUssSUFBSTtJQUMzQixFQUFFLE9BQU9DLEtBQUs7UUFDWkMsUUFBUUMsS0FBSyxDQUFDRixLQUFLLGlDQUFpQzs7SUFDdEQ7SUFFQVQsR0FBRyxDQUFDSixTQUFTLEdBQUdPO0FBQ2xCIn0=
|