@payloadcms/live-preview 0.1.6 → 0.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessage.d.ts","sourceRoot":"","sources":["../src/handleMessage.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa;eACb,MAAM;YACT,MAAM;WACP,YAAY;;eAER,MAAM;gBAmClB,CAAA"}
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;gBAsClB,CAAA"}
@@ -15,6 +15,9 @@ 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
23
  if (event.origin === serverURL && event.data) {
@@ -31,15 +34,17 @@ const handleMessage = async (args)=>{
31
34
  const mergedData = await (0, _.mergeData)({
32
35
  apiRoute,
33
36
  depth,
37
+ externallyUpdatedRelationship: eventData.externallyUpdatedRelationship,
34
38
  fieldSchema: payloadLivePreviewFieldSchema,
35
39
  incomingData: eventData.data,
36
- initialData,
40
+ initialData: payloadLivePreviewPreviousData || initialData,
37
41
  serverURL
38
42
  });
43
+ payloadLivePreviewPreviousData = mergedData;
39
44
  return mergedData;
40
45
  }
41
46
  }
42
47
  return initialData;
43
48
  };
44
49
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGF0YSB9IGZyb20gJy4nXG5cbi8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBgZmllbGRTY2hlbWFKU09OYCB3aWxsIG9ubHkgYmUgc2VudCBvbmNlIG9uIHRoZSBpbml0aWFsIG1lc3NhZ2Vcbi8vIFdlIG5lZWQgdG8gY2FjaGUgdGhpcyB2YWx1ZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdWJzZXF1ZW50IG1lc3NhZ2VzXG4vLyBUbyBkbyB0aGlzLCBzYXZlIGBmaWVsZFNjaGVtYUpTT05gIHdoZW4gaXQgYXJyaXZlcyBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuLy8gU2VuZCB0aGlzIGNhY2hlZCB2YWx1ZSB0byBgbWVyZ2VEYXRhYCwgaW5zdGVhZCBvZiBgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTmAgZGlyZWN0bHlcbmxldCBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IHVuZGVmaW5lZCAvLyBUT0RPOiB0eXBlIHRoaXMgZnJvbSBgZmllbGRTY2hlbWFUb0pTT05gIHJldHVybiB0eXBlXG5cbmV4cG9ydCBjb25zdCBoYW5kbGVNZXNzYWdlID0gYXN5bmMgPFQ+KGFyZ3M6IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg/OiBudW1iZXJcbiAgZXZlbnQ6IE1lc3NhZ2VFdmVudFxuICBpbml0aWFsRGF0YTogVFxuICBzZXJ2ZXJVUkw6IHN0cmluZ1xufSk6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCB7IGFwaVJvdXRlLCBkZXB0aCwgZXZlbnQsIGluaXRpYWxEYXRhLCBzZXJ2ZXJVUkwgfSA9IGFyZ3NcblxuICBpZiAoZXZlbnQub3JpZ2luID09PSBzZXJ2ZXJVUkwgJiYgZXZlbnQuZGF0YSkge1xuICAgIGNvbnN0IGV2ZW50RGF0YSA9IEpTT04ucGFyc2UoZXZlbnQ/LmRhdGEpXG5cbiAgICBpZiAoZXZlbnREYXRhLnR5cGUgPT09ICdwYXlsb2FkLWxpdmUtcHJldmlldycpIHtcbiAgICAgIGlmICghcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEgJiYgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTikge1xuICAgICAgICBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IGV2ZW50RGF0YS5maWVsZFNjaGVtYUpTT05cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1BheWxvYWQgTGl2ZSBQcmV2aWV3OiBObyBgZmllbGRTY2hlbWFKU09OYCB3YXMgcmVjZWl2ZWQgZnJvbSB0aGUgcGFyZW50IHdpbmRvdy4gVW5hYmxlIHRvIG1lcmdlIGRhdGEuJyxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBpbml0aWFsRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXJnZWREYXRhID0gYXdhaXQgbWVyZ2VEYXRhPFQ+KHtcbiAgICAgICAgYXBpUm91dGUsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBmaWVsZFNjaGVtYTogcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEsXG4gICAgICAgIGluY29taW5nRGF0YTogZXZlbnREYXRhLmRhdGEsXG4gICAgICAgIGluaXRpYWxEYXRhLFxuICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gbWVyZ2VkRGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbml0aWFsRGF0YVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZU1lc3NhZ2UiLCJwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSIsInVuZGVmaW5lZCIsImFyZ3MiLCJhcGlSb3V0ZSIsImRlcHRoIiwiZXZlbnQiLCJpbml0aWFsRGF0YSIsInNlcnZlclVSTCIsIm9yaWdpbiIsImRhdGEiLCJldmVudERhdGEiLCJKU09OIiwicGFyc2UiLCJ0eXBlIiwiZmllbGRTY2hlbWFKU09OIiwiY29uc29sZSIsIndhcm4iLCJtZXJnZWREYXRhIiwibWVyZ2VEYXRhIiwiZmllbGRTY2hlbWEiLCJpbmNvbWluZ0RhdGEiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7OztrQkFSYTtBQUUxQiwyRkFBMkY7QUFDM0YsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSx5RkFBeUY7QUFDekYsSUFBSUMsZ0NBQWdDQyxVQUFVLHVEQUF1RDs7QUFFOUYsTUFBTUYsZ0JBQWdCLE9BQVVHO0lBT3JDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUUsR0FBR0w7SUFFM0QsSUFBSUcsTUFBTUcsTUFBTSxLQUFLRCxhQUFhRixNQUFNSSxJQUFJLEVBQUU7UUFDNUMsTUFBTUMsWUFBWUMsS0FBS0MsS0FBSyxDQUFDUCxPQUFPSTtRQUVwQyxJQUFJQyxVQUFVRyxJQUFJLEtBQUssd0JBQXdCO1lBQzdDLElBQUksQ0FBQ2IsaUNBQWlDVSxVQUFVSSxlQUFlLEVBQUU7Z0JBQy9EZCxnQ0FBZ0NVLFVBQVVJLGVBQWU7WUFDM0Q7WUFFQSxJQUFJLENBQUNkLCtCQUErQjtnQkFDbEMsc0NBQXNDO2dCQUN0Q2UsUUFBUUMsSUFBSSxDQUNWO2dCQUdGLE9BQU9WO1lBQ1Q7WUFFQSxNQUFNVyxhQUFhLE1BQU1DLElBQUFBLFdBQVMsRUFBSTtnQkFDcENmO2dCQUNBQztnQkFDQWUsYUFBYW5CO2dCQUNib0IsY0FBY1YsVUFBVUQsSUFBSTtnQkFDNUJIO2dCQUNBQztZQUNGO1lBRUEsT0FBT1U7UUFDVDtJQUNGO0lBRUEsT0FBT1g7QUFDVCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGF0YSB9IGZyb20gJy4nXG5cbi8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBgZmllbGRTY2hlbWFKU09OYCB3aWxsIG9ubHkgYmUgc2VudCBvbmNlIG9uIHRoZSBpbml0aWFsIG1lc3NhZ2Vcbi8vIFdlIG5lZWQgdG8gY2FjaGUgdGhpcyB2YWx1ZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdWJzZXF1ZW50IG1lc3NhZ2VzXG4vLyBUbyBkbyB0aGlzLCBzYXZlIGBmaWVsZFNjaGVtYUpTT05gIHdoZW4gaXQgYXJyaXZlcyBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuLy8gU2VuZCB0aGlzIGNhY2hlZCB2YWx1ZSB0byBgbWVyZ2VEYXRhYCwgaW5zdGVhZCBvZiBgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTmAgZGlyZWN0bHlcbmxldCBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IHVuZGVmaW5lZCAvLyBUT0RPOiB0eXBlIHRoaXMgZnJvbSBgZmllbGRTY2hlbWFUb0pTT05gIHJldHVybiB0eXBlXG5cbi8vIEVhY2ggdGltZSB0aGUgZGF0YSBpcyBtZXJnZWQsIGNhY2hlIHRoZSByZXN1bHQgYXMgYSBgcHJldmlvdXNEYXRhYCB2YXJpYWJsZVxuLy8gVGhpcyB3aWxsIGVuc3VyZSBjaGFuZ2VzIGNvbXBvdW5kIG92ZXJ0b3Agb2YgZWFjaCBvdGhlclxubGV0IHBheWxvYWRMaXZlUHJldmlld1ByZXZpb3VzRGF0YSA9IHVuZGVmaW5lZFxuXG5leHBvcnQgY29uc3QgaGFuZGxlTWVzc2FnZSA9IGFzeW5jIDxUPihhcmdzOiB7XG4gIGFwaVJvdXRlPzogc3RyaW5nXG4gIGRlcHRoPzogbnVtYmVyXG4gIGV2ZW50OiBNZXNzYWdlRXZlbnRcbiAgaW5pdGlhbERhdGE6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgeyBhcGlSb3V0ZSwgZGVwdGgsIGV2ZW50LCBpbml0aWFsRGF0YSwgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gc2VydmVyVVJMICYmIGV2ZW50LmRhdGEpIHtcbiAgICBjb25zdCBldmVudERhdGEgPSBKU09OLnBhcnNlKGV2ZW50Py5kYXRhKVxuXG4gICAgaWYgKGV2ZW50RGF0YS50eXBlID09PSAncGF5bG9hZC1saXZlLXByZXZpZXcnKSB7XG4gICAgICBpZiAoIXBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hICYmIGV2ZW50RGF0YS5maWVsZFNjaGVtYUpTT04pIHtcbiAgICAgICAgcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEgPSBldmVudERhdGEuZmllbGRTY2hlbWFKU09OXG4gICAgICB9XG5cbiAgICAgIGlmICghcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQYXlsb2FkIExpdmUgUHJldmlldzogTm8gYGZpZWxkU2NoZW1hSlNPTmAgd2FzIHJlY2VpdmVkIGZyb20gdGhlIHBhcmVudCB3aW5kb3cuIFVuYWJsZSB0byBtZXJnZSBkYXRhLicsXG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gaW5pdGlhbERhdGFcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVyZ2VkRGF0YSA9IGF3YWl0IG1lcmdlRGF0YTxUPih7XG4gICAgICAgIGFwaVJvdXRlLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA6IGV2ZW50RGF0YS5leHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgZmllbGRTY2hlbWE6IHBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hLFxuICAgICAgICBpbmNvbWluZ0RhdGE6IGV2ZW50RGF0YS5kYXRhLFxuICAgICAgICBpbml0aWFsRGF0YTogcGF5bG9hZExpdmVQcmV2aWV3UHJldmlvdXNEYXRhIHx8IGluaXRpYWxEYXRhLFxuICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICB9KVxuXG4gICAgICBwYXlsb2FkTGl2ZVByZXZpZXdQcmV2aW91c0RhdGEgPSBtZXJnZWREYXRhXG5cbiAgICAgIHJldHVybiBtZXJnZWREYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluaXRpYWxEYXRhXG59XG4iXSwibmFtZXMiOlsiaGFuZGxlTWVzc2FnZSIsInBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hIiwidW5kZWZpbmVkIiwicGF5bG9hZExpdmVQcmV2aWV3UHJldmlvdXNEYXRhIiwiYXJncyIsImFwaVJvdXRlIiwiZGVwdGgiLCJldmVudCIsImluaXRpYWxEYXRhIiwic2VydmVyVVJMIiwib3JpZ2luIiwiZGF0YSIsImV2ZW50RGF0YSIsIkpTT04iLCJwYXJzZSIsInR5cGUiLCJmaWVsZFNjaGVtYUpTT04iLCJjb25zb2xlIiwid2FybiIsIm1lcmdlZERhdGEiLCJtZXJnZURhdGEiLCJleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCIsImZpZWxkU2NoZW1hIiwiaW5jb21pbmdEYXRhIl0sIm1hcHBpbmdzIjoiOzs7OytCQVlhQTs7O2VBQUFBOzs7a0JBWmE7QUFFMUIsMkZBQTJGO0FBQzNGLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUseUZBQXlGO0FBQ3pGLElBQUlDLGdDQUFnQ0MsVUFBVSx1REFBdUQ7O0FBRXJHLDhFQUE4RTtBQUM5RSwwREFBMEQ7QUFDMUQsSUFBSUMsaUNBQWlDRDtBQUU5QixNQUFNRixnQkFBZ0IsT0FBVUk7SUFPckMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLFNBQVMsRUFBRSxHQUFHTDtJQUUzRCxJQUFJRyxNQUFNRyxNQUFNLEtBQUtELGFBQWFGLE1BQU1JLElBQUksRUFBRTtRQUM1QyxNQUFNQyxZQUFZQyxLQUFLQyxLQUFLLENBQUNQLE9BQU9JO1FBRXBDLElBQUlDLFVBQVVHLElBQUksS0FBSyx3QkFBd0I7WUFDN0MsSUFBSSxDQUFDZCxpQ0FBaUNXLFVBQVVJLGVBQWUsRUFBRTtnQkFDL0RmLGdDQUFnQ1csVUFBVUksZUFBZTtZQUMzRDtZQUVBLElBQUksQ0FBQ2YsK0JBQStCO2dCQUNsQyxzQ0FBc0M7Z0JBQ3RDZ0IsUUFBUUMsSUFBSSxDQUNWO2dCQUdGLE9BQU9WO1lBQ1Q7WUFFQSxNQUFNVyxhQUFhLE1BQU1DLElBQUFBLFdBQVMsRUFBSTtnQkFDcENmO2dCQUNBQztnQkFDQWUsK0JBQStCVCxVQUFVUyw2QkFBNkI7Z0JBQ3RFQyxhQUFhckI7Z0JBQ2JzQixjQUFjWCxVQUFVRCxJQUFJO2dCQUM1QkgsYUFBYUwsa0NBQWtDSztnQkFDL0NDO1lBQ0Y7WUFFQU4saUNBQWlDZ0I7WUFFakMsT0FBT0E7UUFDVDtJQUNGO0lBRUEsT0FBT1g7QUFDVCJ9
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"mergeData.d.ts","sourceRoot":"","sources":["../src/mergeData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI1D,eAAO,MAAM,SAAS;eACT,MAAM;YACT,MAAM;iBACD,WAAW,wBAAwB,CAAC;;;6BAGxB,OAAO;eACrB,MAAM;;wBAGK,MAAM;EAiC7B,CAAA"}
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 populationPromises = [];
17
+ const populationsByCollection = {};
18
18
  (0, _traverseFields.traverseFields)({
19
- apiRoute,
20
- depth,
19
+ externallyUpdatedRelationship,
21
20
  fieldSchema,
22
21
  incomingData,
23
- populationPromises,
24
- result,
25
- serverURL
22
+ populationsByCollection,
23
+ result
26
24
  });
27
- await Promise.all(populationPromises);
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: populationPromises.length
53
+ _numberOfRequests: Object.keys(populationsByCollection).length
32
54
  } : {}
33
55
  };
34
56
  };
35
57
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBmaWVsZFNjaGVtYVRvSlNPTiB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbmV4cG9ydCBjb25zdCBtZXJnZURhdGEgPSBhc3luYyA8VD4oYXJnczoge1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBkZXB0aD86IG51bWJlclxuICBmaWVsZFNjaGVtYTogUmV0dXJuVHlwZTx0eXBlb2YgZmllbGRTY2hlbWFUb0pTT04+XG4gIGluY29taW5nRGF0YTogUGFydGlhbDxUPlxuICBpbml0aWFsRGF0YTogVFxuICByZXR1cm5OdW1iZXJPZlJlcXVlc3RzPzogYm9vbGVhblxuICBzZXJ2ZXJVUkw6IHN0cmluZ1xufSk6IFByb21pc2U8XG4gIFQgJiB7XG4gICAgX251bWJlck9mUmVxdWVzdHM/OiBudW1iZXJcbiAgfVxuPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBhcGlSb3V0ZSxcbiAgICBkZXB0aCxcbiAgICBmaWVsZFNjaGVtYSxcbiAgICBpbmNvbWluZ0RhdGEsXG4gICAgaW5pdGlhbERhdGEsXG4gICAgcmV0dXJuTnVtYmVyT2ZSZXF1ZXN0cyxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0gPSBhcmdzXG5cbiAgY29uc3QgcmVzdWx0ID0geyAuLi5pbml0aWFsRGF0YSB9XG5cbiAgY29uc3QgcG9wdWxhdGlvblByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXVxuXG4gIHRyYXZlcnNlRmllbGRzKHtcbiAgICBhcGlSb3V0ZSxcbiAgICBkZXB0aCxcbiAgICBmaWVsZFNjaGVtYSxcbiAgICBpbmNvbWluZ0RhdGEsXG4gICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgIHJlc3VsdCxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0pXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwocG9wdWxhdGlvblByb21pc2VzKVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzdWx0LFxuICAgIC4uLihyZXR1cm5OdW1iZXJPZlJlcXVlc3RzID8geyBfbnVtYmVyT2ZSZXF1ZXN0czogcG9wdWxhdGlvblByb21pc2VzLmxlbmd0aCB9IDoge30pLFxuICB9XG59XG4iXSwibmFtZXMiOlsibWVyZ2VEYXRhIiwiYXJncyIsImFwaVJvdXRlIiwiZGVwdGgiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSIsImluaXRpYWxEYXRhIiwicmV0dXJuTnVtYmVyT2ZSZXF1ZXN0cyIsInNlcnZlclVSTCIsInJlc3VsdCIsInBvcHVsYXRpb25Qcm9taXNlcyIsInRyYXZlcnNlRmllbGRzIiwiUHJvbWlzZSIsImFsbCIsIl9udW1iZXJPZlJlcXVlc3RzIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7OytCQUlhQTs7O2VBQUFBOzs7Z0NBRmtCO0FBRXhCLE1BQU1BLFlBQVksT0FBVUM7SUFhakMsTUFBTSxFQUNKQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsc0JBQXNCLEVBQ3RCQyxTQUFTLEVBQ1YsR0FBR1A7SUFFSixNQUFNUSxTQUFTO1FBQUUsR0FBR0gsV0FBVztJQUFDO0lBRWhDLE1BQU1JLHFCQUFzQyxFQUFFO0lBRTlDQyxJQUFBQSw4QkFBYyxFQUFDO1FBQ2JUO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FLO1FBQ0FEO1FBQ0FEO0lBQ0Y7SUFFQSxNQUFNSSxRQUFRQyxHQUFHLENBQUNIO0lBRWxCLE9BQU87UUFDTCxHQUFHRCxNQUFNO1FBQ1QsR0FBSUYseUJBQXlCO1lBQUVPLG1CQUFtQkosbUJBQW1CSyxNQUFNO1FBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEY7QUFDRiJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZWREb2NzIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgZmllbGRTY2hlbWFUb0pTT04gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcblxuaW1wb3J0IHR5cGUgeyBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiwgVXBkYXRlZERvY3VtZW50IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG5leHBvcnQgY29uc3QgbWVyZ2VEYXRhID0gYXN5bmMgPFQ+KGFyZ3M6IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg/OiBudW1iZXJcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/OiBVcGRhdGVkRG9jdW1lbnRcbiAgZmllbGRTY2hlbWE6IFJldHVyblR5cGU8dHlwZW9mIGZpZWxkU2NoZW1hVG9KU09OPlxuICBpbmNvbWluZ0RhdGE6IFBhcnRpYWw8VD5cbiAgaW5pdGlhbERhdGE6IFRcbiAgcmV0dXJuTnVtYmVyT2ZSZXF1ZXN0cz86IGJvb2xlYW5cbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFxuICBUICYge1xuICAgIF9udW1iZXJPZlJlcXVlc3RzPzogbnVtYmVyXG4gIH1cbj4gPT4ge1xuICBjb25zdCB7XG4gICAgYXBpUm91dGUsXG4gICAgZGVwdGgsXG4gICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gICAgZmllbGRTY2hlbWEsXG4gICAgaW5jb21pbmdEYXRhLFxuICAgIGluaXRpYWxEYXRhLFxuICAgIHJldHVybk51bWJlck9mUmVxdWVzdHMsXG4gICAgc2VydmVyVVJMLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uaW5pdGlhbERhdGEgfVxuXG4gIGNvbnN0IHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uOiBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiA9IHt9XG5cbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGluY29taW5nRGF0YSxcbiAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICByZXN1bHQsXG4gIH0pXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmVudHJpZXMocG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24pLm1hcChhc3luYyAoW2NvbGxlY3Rpb24sIHBvcHVsYXRpb25zXSkgPT4ge1xuICAgICAgY29uc3QgaWRzID0gbmV3IFNldChwb3B1bGF0aW9ucy5tYXAoKHsgaWQgfSkgPT4gaWQpKVxuICAgICAgY29uc3QgdXJsID0gYCR7c2VydmVyVVJMfSR7XG4gICAgICAgIGFwaVJvdXRlIHx8ICcvYXBpJ1xuICAgICAgfS8ke2NvbGxlY3Rpb259P2RlcHRoPSR7ZGVwdGh9JndoZXJlW2lkXVtpbl09JHtBcnJheS5mcm9tKGlkcykuam9pbignLCcpfWBcblxuICAgICAgbGV0IHJlczogUGFnaW5hdGVkRG9jc1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXG4gICAgICAgIGlmIChyZXM/LmRvY3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXMuZG9jcy5mb3JFYWNoKChkb2MpID0+IHtcbiAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2NvbGxlY3Rpb25dLmZvckVhY2goKHBvcHVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBvcHVsYXRpb24uaWQgPT09IGRvYy5pZCkge1xuICAgICAgICAgICAgICAgIHBvcHVsYXRpb24ucmVmW3BvcHVsYXRpb24uYWNjZXNzb3JdID0gZG9jXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICAgIH1cbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzdWx0LFxuICAgIC4uLihyZXR1cm5OdW1iZXJPZlJlcXVlc3RzXG4gICAgICA/IHsgX251bWJlck9mUmVxdWVzdHM6IE9iamVjdC5rZXlzKHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uKS5sZW5ndGggfVxuICAgICAgOiB7fSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtZXJnZURhdGEiLCJhcmdzIiwiYXBpUm91dGUiLCJkZXB0aCIsImV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwIiwiZmllbGRTY2hlbWEiLCJpbmNvbWluZ0RhdGEiLCJpbml0aWFsRGF0YSIsInJldHVybk51bWJlck9mUmVxdWVzdHMiLCJzZXJ2ZXJVUkwiLCJyZXN1bHQiLCJwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiIsInRyYXZlcnNlRmllbGRzIiwiUHJvbWlzZSIsImFsbCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJjb2xsZWN0aW9uIiwicG9wdWxhdGlvbnMiLCJpZHMiLCJTZXQiLCJpZCIsInVybCIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJyZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsInRoZW4iLCJqc29uIiwiZG9jcyIsImxlbmd0aCIsImZvckVhY2giLCJkb2MiLCJwb3B1bGF0aW9uIiwicmVmIiwiYWNjZXNzb3IiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJfbnVtYmVyT2ZSZXF1ZXN0cyIsImtleXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBT2FBOzs7ZUFBQUE7OztnQ0FGa0I7QUFFeEIsTUFBTUEsWUFBWSxPQUFVQztJQWNqQyxNQUFNLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyw2QkFBNkIsRUFDN0JDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLHNCQUFzQixFQUN0QkMsU0FBUyxFQUNWLEdBQUdSO0lBRUosTUFBTVMsU0FBUztRQUFFLEdBQUdILFdBQVc7SUFBQztJQUVoQyxNQUFNSSwwQkFBbUQsQ0FBQztJQUUxREMsSUFBQUEsOEJBQWMsRUFBQztRQUNiUjtRQUNBQztRQUNBQztRQUNBSztRQUNBRDtJQUNGO0lBRUEsTUFBTUcsUUFBUUMsR0FBRyxDQUNmQyxPQUFPQyxPQUFPLENBQUNMLHlCQUF5Qk0sR0FBRyxDQUFDLE9BQU8sQ0FBQ0MsWUFBWUMsWUFBWTtRQUMxRSxNQUFNQyxNQUFNLElBQUlDLElBQUlGLFlBQVlGLEdBQUcsQ0FBQyxDQUFDLEVBQUVLLEVBQUUsRUFBRSxHQUFLQTtRQUNoRCxNQUFNQyxNQUFNLENBQUMsRUFBRWQsVUFBVSxFQUN2QlAsWUFBWSxPQUNiLENBQUMsRUFBRWdCLFdBQVcsT0FBTyxFQUFFZixNQUFNLGVBQWUsRUFBRXFCLE1BQU1DLElBQUksQ0FBQ0wsS0FBS00sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxRSxJQUFJQztRQUVKLElBQUk7WUFDRkEsTUFBTSxNQUFNQyxNQUFNTCxLQUFLO2dCQUNyQk0sYUFBYTtnQkFDYkMsU0FBUztvQkFDUCxnQkFBZ0I7Z0JBQ2xCO1lBQ0YsR0FBR0MsSUFBSSxDQUFDLENBQUNKLE1BQVFBLElBQUlLLElBQUk7WUFFekIsSUFBSUwsS0FBS00sTUFBTUMsU0FBUyxHQUFHO2dCQUN6QlAsSUFBSU0sSUFBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0M7b0JBQ2hCekIsdUJBQXVCLENBQUNPLFdBQVcsQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDRTt3QkFDM0MsSUFBSUEsV0FBV2YsRUFBRSxLQUFLYyxJQUFJZCxFQUFFLEVBQUU7NEJBQzVCZSxXQUFXQyxHQUFHLENBQUNELFdBQVdFLFFBQVEsQ0FBQyxHQUFHSDt3QkFDeEM7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGLEVBQUUsT0FBT0ksS0FBSztZQUNaQyxRQUFRQyxLQUFLLENBQUNGLEtBQUssaUNBQWlDOztRQUN0RDtJQUNGO0lBR0YsT0FBTztRQUNMLEdBQUc5QixNQUFNO1FBQ1QsR0FBSUYseUJBQ0E7WUFBRW1DLG1CQUFtQjVCLE9BQU82QixJQUFJLENBQUNqQyx5QkFBeUJ1QixNQUFNO1FBQUMsSUFDakUsQ0FBQyxDQUFDO0lBQ1I7QUFDRiJ9
@@ -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
- apiRoute?: string;
4
- depth?: number;
4
+ externallyUpdatedRelationship?: UpdatedDocument;
5
5
  fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
6
6
  incomingData: T;
7
- populationPromises: Promise<void>[];
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;AAI1D,eAAO,MAAM,cAAc;eACd,MAAM;YACT,MAAM;iBACD,WAAW,wBAAwB,CAAC;;wBAE7B,QAAQ,IAAI,CAAC,EAAE;;eAExB,MAAM;MACf,IA6PH,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"}
@@ -8,13 +8,21 @@ Object.defineProperty(exports, "traverseFields", {
8
8
  return traverseFields;
9
9
  }
10
10
  });
11
- const _promise = require("./promise");
11
+ const _traverseRichText = require("./traverseRichText");
12
12
  const traverseFields = (args)=>{
13
- const { apiRoute, depth, fieldSchema: fieldSchemas, incomingData, populationPromises, result, serverURL } = args;
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
- apiRoute,
29
- depth,
36
+ externallyUpdatedRelationship,
30
37
  fieldSchema: fieldSchema.fields,
31
38
  incomingData: incomingRow,
32
- populationPromises,
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
- apiRoute,
54
- depth,
59
+ externallyUpdatedRelationship,
55
60
  fieldSchema: incomingBlockJSON.fields,
56
61
  incomingData: incomingBlock,
57
- populationPromises,
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
- apiRoute,
74
- depth,
77
+ externallyUpdatedRelationship,
75
78
  fieldSchema: fieldSchema.fields,
76
79
  incomingData: incomingData[fieldName] || {},
77
- populationPromises,
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
- if (oldID !== newID || oldRelation !== newRelation) {
104
- populationPromises.push((0, _promise.promise)({
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
- apiRoute,
108
- collection: newRelation,
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
- if (result[fieldName][i]?.id !== incomingRelation) {
117
- populationPromises.push((0, _promise.promise)({
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
- apiRoute,
121
- collection: String(fieldSchema.relationTo),
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 (newID !== oldID || newRelation !== oldRelation) {
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
- populationPromises.push((0, _promise.promise)({
157
+ if (!populationsByCollection[newRelation]) {
158
+ populationsByCollection[newRelation] = [];
159
+ }
160
+ populationsByCollection[newRelation].push({
152
161
  id: newID,
153
162
  accessor: 'value',
154
- apiRoute,
155
- collection: newRelation,
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 (newID !== oldID) {
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
- populationPromises.push((0, _promise.promise)({
181
+ if (!populationsByCollection[fieldSchema.relationTo]) {
182
+ populationsByCollection[fieldSchema.relationTo] = [];
183
+ }
184
+ populationsByCollection[fieldSchema.relationTo].push({
175
185
  id: newID,
176
186
  accessor: fieldName,
177
- apiRoute,
178
- collection: String(fieldSchema.relationTo),
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/IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBvbGRSZWxhdGlvbiA9IGhhc09sZFZhbHVlID8gcmVzdWx0W2ZpZWxkTmFtZV0ucmVsYXRpb25UbyA6ICcnXG5cbiAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyB2YWx1ZS9yZWxhdGlvbiBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkIHZhbHVlL3JlbGF0aW9uXG4gICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBuZXcgdmFsdWUsIG90aGVyd2lzZSBsZWF2ZSBpdCBhbG9uZVxuICAgICAgICAgICAgICBpZiAobmV3SUQgIT09IG9sZElEIHx8IG5ld1JlbGF0aW9uICE9PSBvbGRSZWxhdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgbm90IGVtcHR5LCBwb3B1bGF0ZSBpdFxuICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIHRvIG51bGxcbiAgICAgICAgICAgICAgICBpZiAobmV3SUQpIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3SUQsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogbmV3UmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzT25lYCBtb25vbW9ycGhpY1xuICAgICAgICAgICAgICBjb25zdCBuZXdJRDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgICAgICAoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmlkKSB8fFxuICAgICAgICAgICAgICAgIGluY29taW5nRGF0YVtmaWVsZE5hbWVdXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkSUQ6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICAgICAgKHJlc3VsdFtmaWVsZE5hbWVdICYmXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXS5pZCkgfHxcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVxuXG4gICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbmV3IHZhbHVlLCBvdGhlcndpc2UgbGVhdmUgaXQgYWxvbmVcbiAgICAgICAgICAgICAgaWYgKG5ld0lEICE9PSBvbGRJRCkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBuZXcgdmFsdWUgaXMgbm90IGVtcHR5LCBwb3B1bGF0ZSBpdFxuICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIHRvIG51bGxcbiAgICAgICAgICAgICAgICBpZiAobmV3SUQpIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3SUQsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6IGZpZWxkTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBTdHJpbmcoZmllbGRTY2hlbWEucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhcmdzIiwiYXBpUm91dGUiLCJkZXB0aCIsImZpZWxkU2NoZW1hIiwiZmllbGRTY2hlbWFzIiwiaW5jb21pbmdEYXRhIiwicG9wdWxhdGlvblByb21pc2VzIiwicmVzdWx0Iiwic2VydmVyVVJMIiwiZm9yRWFjaCIsIm5hbWUiLCJmaWVsZE5hbWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaW5jb21pbmdSb3ciLCJpIiwiZmllbGRzIiwiaW5jb21pbmdCbG9jayIsImluY29taW5nQmxvY2tKU09OIiwiYmxvY2tzIiwiYmxvY2tUeXBlIiwiaWQiLCJoYXNNYW55IiwiaW5jb21pbmdSZWxhdGlvbiIsInJlbGF0aW9uVG8iLCJvbGRJRCIsInZhbHVlIiwib2xkUmVsYXRpb24iLCJuZXdJRCIsIm5ld1JlbGF0aW9uIiwicHVzaCIsInByb21pc2UiLCJhY2Nlc3NvciIsImNvbGxlY3Rpb24iLCJyZWYiLCJTdHJpbmciLCJoYXNOZXdWYWx1ZSIsImhhc09sZFZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUlhQTs7O2VBQUFBOzs7eUJBRlc7QUFFakIsTUFBTUEsaUJBQWlCLENBQUlDO0lBU2hDLE1BQU0sRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLGFBQWFDLFlBQVksRUFDekJDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxNQUFNLEVBQ05DLFNBQVMsRUFDVixHQUFHUjtJQUVKSSxhQUFhSyxPQUFPLENBQUMsQ0FBQ047UUFDcEIsSUFBSSxVQUFVQSxlQUFlLE9BQU9BLFlBQVlPLElBQUksS0FBSyxVQUFVO1lBQ2pFLE1BQU1DLFlBQVlSLFlBQVlPLElBQUk7WUFFbEMsT0FBUVAsWUFBWVMsSUFBSTtnQkFDdEIsS0FBSztvQkFDSCxJQUFJQyxNQUFNQyxPQUFPLENBQUNULFlBQVksQ0FBQ00sVUFBVSxHQUFHO3dCQUMxQ0osTUFBTSxDQUFDSSxVQUFVLEdBQUdOLFlBQVksQ0FBQ00sVUFBVSxDQUFDSSxHQUFHLENBQUMsQ0FBQ0MsYUFBYUM7NEJBQzVELElBQUksQ0FBQ1YsTUFBTSxDQUFDSSxVQUFVLEVBQUU7Z0NBQ3RCSixNQUFNLENBQUNJLFVBQVUsR0FBRyxFQUFFOzRCQUN4Qjs0QkFFQSxJQUFJLENBQUNKLE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFLEVBQUU7Z0NBQ3pCVixNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRSxHQUFHLENBQUM7NEJBQzFCOzRCQUVBbEIsZUFBZTtnQ0FDYkU7Z0NBQ0FDO2dDQUNBQyxhQUFhQSxZQUFZZSxNQUFNO2dDQUMvQmIsY0FBY1c7Z0NBQ2RWO2dDQUNBQyxRQUFRQSxNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRTtnQ0FDNUJUOzRCQUNGOzRCQUVBLE9BQU9ELE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFO3dCQUM3QjtvQkFDRjtvQkFDQTtnQkFFRixLQUFLO29CQUNILElBQUlKLE1BQU1DLE9BQU8sQ0FBQ1QsWUFBWSxDQUFDTSxVQUFVLEdBQUc7d0JBQzFDSixNQUFNLENBQUNJLFVBQVUsR0FBR04sWUFBWSxDQUFDTSxVQUFVLENBQUNJLEdBQUcsQ0FBQyxDQUFDSSxlQUFlRjs0QkFDOUQsTUFBTUcsb0JBQW9CakIsWUFBWWtCLE1BQU0sQ0FBQ0YsY0FBY0csU0FBUyxDQUFDOzRCQUVyRSxJQUFJLENBQUNmLE1BQU0sQ0FBQ0ksVUFBVSxFQUFFO2dDQUN0QkosTUFBTSxDQUFDSSxVQUFVLEdBQUcsRUFBRTs0QkFDeEI7NEJBRUEsSUFDRSxDQUFDSixNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRSxJQUNyQlYsTUFBTSxDQUFDSSxVQUFVLENBQUNNLEVBQUUsQ0FBQ00sRUFBRSxLQUFLSixjQUFjSSxFQUFFLElBQzVDaEIsTUFBTSxDQUFDSSxVQUFVLENBQUNNLEVBQUUsQ0FBQ0ssU0FBUyxLQUFLSCxjQUFjRyxTQUFTLEVBQzFEO2dDQUNBZixNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRSxHQUFHO29DQUNyQkssV0FBV0gsY0FBY0csU0FBUztnQ0FDcEM7NEJBQ0Y7NEJBRUF2QixlQUFlO2dDQUNiRTtnQ0FDQUM7Z0NBQ0FDLGFBQWFpQixrQkFBa0JGLE1BQU07Z0NBQ3JDYixjQUFjYztnQ0FDZGI7Z0NBQ0FDLFFBQVFBLE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFO2dDQUM1QlQ7NEJBQ0Y7NEJBRUEsT0FBT0QsTUFBTSxDQUFDSSxVQUFVLENBQUNNLEVBQUU7d0JBQzdCO29CQUNGLE9BQU87d0JBQ0xWLE1BQU0sQ0FBQ0ksVUFBVSxHQUFHLEVBQUU7b0JBQ3hCO29CQUVBO2dCQUVGLEtBQUs7Z0JBQ0wsS0FBSztvQkFDSCxJQUFJLENBQUNKLE1BQU0sQ0FBQ0ksVUFBVSxFQUFFO3dCQUN0QkosTUFBTSxDQUFDSSxVQUFVLEdBQUcsQ0FBQztvQkFDdkI7b0JBRUFaLGVBQWU7d0JBQ2JFO3dCQUNBQzt3QkFDQUMsYUFBYUEsWUFBWWUsTUFBTTt3QkFDL0JiLGNBQWNBLFlBQVksQ0FBQ00sVUFBVSxJQUFJLENBQUM7d0JBQzFDTDt3QkFDQUMsUUFBUUEsTUFBTSxDQUFDSSxVQUFVO3dCQUN6Qkg7b0JBQ0Y7b0JBRUE7Z0JBRUYsS0FBSztnQkFDTCxLQUFLO29CQUNILGlDQUFpQztvQkFDakMsSUFBSUwsWUFBWXFCLE9BQU8sSUFBSVgsTUFBTUMsT0FBTyxDQUFDVCxZQUFZLENBQUNNLFVBQVUsR0FBRzt3QkFDakUsSUFBSSxDQUFDSixNQUFNLENBQUNJLFVBQVUsRUFBRTs0QkFDdEJKLE1BQU0sQ0FBQ0ksVUFBVSxHQUFHLEVBQUU7d0JBQ3hCO3dCQUVBTixZQUFZLENBQUNNLFVBQVUsQ0FBQ0YsT0FBTyxDQUFDLENBQUNnQixrQkFBa0JSOzRCQUNqRCwrQkFBK0I7NEJBQy9CLElBQUlKLE1BQU1DLE9BQU8sQ0FBQ1gsWUFBWXVCLFVBQVUsR0FBRztnQ0FDekMsc0RBQXNEO2dDQUN0RCxvQ0FBb0M7Z0NBQ3BDLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFLEVBQUU7b0NBQ3pCVixNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRSxHQUFHO3dDQUNyQlMsWUFBWUQsaUJBQWlCQyxVQUFVO29DQUN6QztnQ0FDRjtnQ0FFQSxNQUFNQyxRQUFRcEIsTUFBTSxDQUFDSSxVQUFVLENBQUNNLEVBQUUsRUFBRVcsT0FBT0w7Z0NBQzNDLE1BQU1NLGNBQWN0QixNQUFNLENBQUNJLFVBQVUsQ0FBQ00sRUFBRSxFQUFFUztnQ0FDMUMsTUFBTUksUUFBUUwsaUJBQWlCRyxLQUFLO2dDQUNwQyxNQUFNRyxjQUFjTixpQkFBaUJDLFVBQVU7Z0NBRS9DLElBQUlDLFVBQVVHLFNBQVNELGdCQUFnQkUsYUFBYTtvQ0FDbER6QixtQkFBbUIwQixJQUFJLENBQ3JCQyxJQUFBQSxnQkFBTyxFQUFDO3dDQUNOVixJQUFJRSxpQkFBaUJHLEtBQUs7d0NBQzFCTSxVQUFVO3dDQUNWakM7d0NBQ0FrQyxZQUFZSjt3Q0FDWjdCO3dDQUNBa0MsS0FBSzdCLE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFO3dDQUN6QlQ7b0NBQ0Y7Z0NBRUo7NEJBQ0YsT0FBTztnQ0FDTCwrQkFBK0I7Z0NBQy9CLElBQUlELE1BQU0sQ0FBQ0ksVUFBVSxDQUFDTSxFQUFFLEVBQUVNLE9BQU9FLGtCQUFrQjtvQ0FDakRuQixtQkFBbUIwQixJQUFJLENBQ3JCQyxJQUFBQSxnQkFBTyxFQUFDO3dDQUNOVixJQUFJRTt3Q0FDSlMsVUFBVWpCO3dDQUNWaEI7d0NBQ0FrQyxZQUFZRSxPQUFPbEMsWUFBWXVCLFVBQVU7d0NBQ3pDeEI7d0NBQ0FrQyxLQUFLN0IsTUFBTSxDQUFDSSxVQUFVO3dDQUN0Qkg7b0NBQ0Y7Z0NBRUo7NEJBQ0Y7d0JBQ0Y7b0JBQ0YsT0FBTzt3QkFDTCw4QkFBOEI7d0JBQzlCLElBQUlLLE1BQU1DLE9BQU8sQ0FBQ1gsWUFBWXVCLFVBQVUsR0FBRzs0QkFDekMsc0RBQXNEOzRCQUN0RCxvQ0FBb0M7NEJBQ3BDLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ0ksVUFBVSxFQUFFO2dDQUN0QkosTUFBTSxDQUFDSSxVQUFVLEdBQUc7b0NBQ2xCZSxZQUFZckIsWUFBWSxDQUFDTSxVQUFVLEVBQUVlO2dDQUN2Qzs0QkFDRjs0QkFFQSxNQUFNWSxjQUNKakMsWUFBWSxDQUFDTSxVQUFVLElBQ3ZCLE9BQU9OLFlBQVksQ0FBQ00sVUFBVSxLQUFLLFlBQ25DTixZQUFZLENBQUNNLFVBQVUsS0FBSzs0QkFFOUIsTUFBTTRCLGNBQ0poQyxNQUFNLENBQUNJLFVBQVUsSUFDakIsT0FBT0osTUFBTSxDQUFDSSxVQUFVLEtBQUssWUFDN0JKLE1BQU0sQ0FBQ0ksVUFBVSxLQUFLOzRCQUV4QixNQUFNbUIsUUFBUVEsY0FDVixPQUFPakMsWUFBWSxDQUFDTSxVQUFVLENBQUNpQixLQUFLLEtBQUssV0FDdkN2QixZQUFZLENBQUNNLFVBQVUsQ0FBQ2lCLEtBQUssQ0FBQ0wsRUFBRSxHQUNoQ2xCLFlBQVksQ0FBQ00sVUFBVSxDQUFDaUIsS0FBSyxHQUMvQjs0QkFFSixNQUFNRCxRQUFRWSxjQUNWLE9BQU9oQyxNQUFNLENBQUNJLFVBQVUsQ0FBQ2lCLEtBQUssS0FBSyxXQUNqQ3JCLE1BQU0sQ0FBQ0ksVUFBVSxDQUFDaUIsS0FBSyxDQUFDTCxFQUFFLEdBQzFCaEIsTUFBTSxDQUFDSSxVQUFVLENBQUNpQixLQUFLLEdBQ3pCOzRCQUVKLE1BQU1HLGNBQWNPLGNBQWNqQyxZQUFZLENBQUNNLFVBQVUsQ0FBQ2UsVUFBVSxHQUFHOzRCQUN2RSxNQUFNRyxjQUFjVSxjQUFjaEMsTUFBTSxDQUFDSSxVQUFVLENBQUNlLFVBQVUsR0FBRzs0QkFFakUscUVBQXFFOzRCQUNyRSxtREFBbUQ7NEJBQ25ELElBQUlJLFVBQVVILFNBQVNJLGdCQUFnQkYsYUFBYTtnQ0FDbEQsNkNBQTZDO2dDQUM3QyxrQ0FBa0M7Z0NBQ2xDLElBQUlDLE9BQU87b0NBQ1R4QixtQkFBbUIwQixJQUFJLENBQ3JCQyxJQUFBQSxnQkFBTyxFQUFDO3dDQUNOVixJQUFJTzt3Q0FDSkksVUFBVTt3Q0FDVmpDO3dDQUNBa0MsWUFBWUo7d0NBQ1o3Qjt3Q0FDQWtDLEtBQUs3QixNQUFNLENBQUNJLFVBQVU7d0NBQ3RCSDtvQ0FDRjtnQ0FFSixPQUFPO29DQUNMRCxNQUFNLENBQUNJLFVBQVUsR0FBRztnQ0FDdEI7NEJBQ0Y7d0JBQ0YsT0FBTzs0QkFDTCw4QkFBOEI7NEJBQzlCLE1BQU1tQixRQUNKLEFBQUN6QixZQUFZLENBQUNNLFVBQVUsSUFDdEIsT0FBT04sWUFBWSxDQUFDTSxVQUFVLEtBQUssWUFDbkNOLFlBQVksQ0FBQ00sVUFBVSxDQUFDWSxFQUFFLElBQzVCbEIsWUFBWSxDQUFDTSxVQUFVOzRCQUV6QixNQUFNZ0IsUUFDSixBQUFDcEIsTUFBTSxDQUFDSSxVQUFVLElBQ2hCLE9BQU9KLE1BQU0sQ0FBQ0ksVUFBVSxLQUFLLFlBQzdCSixNQUFNLENBQUNJLFVBQVUsQ0FBQ1ksRUFBRSxJQUN0QmhCLE1BQU0sQ0FBQ0ksVUFBVTs0QkFFbkIsbURBQW1EOzRCQUNuRCxtREFBbUQ7NEJBQ25ELElBQUltQixVQUFVSCxPQUFPO2dDQUNuQiw2Q0FBNkM7Z0NBQzdDLGtDQUFrQztnQ0FDbEMsSUFBSUcsT0FBTztvQ0FDVHhCLG1CQUFtQjBCLElBQUksQ0FDckJDLElBQUFBLGdCQUFPLEVBQUM7d0NBQ05WLElBQUlPO3dDQUNKSSxVQUFVdkI7d0NBQ1ZWO3dDQUNBa0MsWUFBWUUsT0FBT2xDLFlBQVl1QixVQUFVO3dDQUN6Q3hCO3dDQUNBa0MsS0FBSzdCO3dDQUNMQztvQ0FDRjtnQ0FFSixPQUFPO29DQUNMRCxNQUFNLENBQUNJLFVBQVUsR0FBRztnQ0FDdEI7NEJBQ0Y7d0JBQ0Y7b0JBQ0Y7b0JBRUE7Z0JBRUY7b0JBQ0VKLE1BQU0sQ0FBQ0ksVUFBVSxHQUFHTixZQUFZLENBQUNNLFVBQVU7WUFDL0M7UUFDRjtJQUNGO0FBQ0YifQ==
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,GAgFH,CAAA"}
@@ -0,0 +1,76 @@
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]) ? [] : {} : incomingData[key];
46
+ }
47
+ const isRelationship = key === 'value' && 'relationTo' in incomingData;
48
+ if (isRelationship) {
49
+ const needsPopulation = !result.value || typeof result.value !== 'object';
50
+ const hasChanged = result && typeof result === 'object' && result.value.id === externallyUpdatedRelationship?.id;
51
+ if (needsPopulation || hasChanged) {
52
+ if (!populationsByCollection[incomingData.relationTo]) {
53
+ populationsByCollection[incomingData.relationTo] = [];
54
+ }
55
+ populationsByCollection[incomingData.relationTo].push({
56
+ id: incomingData[key],
57
+ accessor: 'value',
58
+ ref: result
59
+ });
60
+ }
61
+ } else {
62
+ result[key] = traverseRichText({
63
+ externallyUpdatedRelationship,
64
+ incomingData: incomingData[key],
65
+ populationsByCollection,
66
+ result: result[key]
67
+ });
68
+ }
69
+ });
70
+ } else {
71
+ result = incomingData;
72
+ }
73
+ return result;
74
+ };
75
+
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZVJpY2hUZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sIFVwZGF0ZWREb2N1bWVudCB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZVJpY2hUZXh0ID0gKHtcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gIGluY29taW5nRGF0YSxcbiAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24sXG4gIHJlc3VsdCxcbn06IHtcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/OiBVcGRhdGVkRG9jdW1lbnRcbiAgaW5jb21pbmdEYXRhOiBhbnlcbiAgcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb246IFBvcHVsYXRpb25zQnlDb2xsZWN0aW9uXG4gIHJlc3VsdDogYW55XG59KTogYW55ID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhKSkge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSBbXVxuICAgIH1cblxuICAgIHJlc3VsdCA9IGluY29taW5nRGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdFtpbmRleF0pIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZW1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRyYXZlcnNlUmljaFRleHQoe1xuICAgICAgICBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgaW5jb21pbmdEYXRhOiBpdGVtLFxuICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICAgICAgcmVzdWx0OiByZXN1bHRbaW5kZXhdLFxuICAgICAgfSlcbiAgICB9KVxuICB9IGVsc2UgaWYgKGluY29taW5nRGF0YSAmJiB0eXBlb2YgaW5jb21pbmdEYXRhID09PSAnb2JqZWN0Jykge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSB7fVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBrZXlzIGZyb20gYHJlc3VsdGAgdGhhdCBkbyBub3QgYXBwZWFyIGluIGBpbmNvbWluZ0RhdGFgXG4gICAgLy8gVGhlcmUncyBsaWtlbHkgYW5vdGhlciB3YXkgdG8gZG8gdGhpcyxcbiAgICAvLyBCdXQgcmVjdXJzaW9uIGFuZCByZWZlcmVuY2VzIG1ha2UgdGhpcyB2ZXJ5IGRpZmZpY3VsdFxuICAgIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIShrZXkgaW4gaW5jb21pbmdEYXRhKSkge1xuICAgICAgICBkZWxldGUgcmVzdWx0W2tleV1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSBrZXlzIG9mIGBpbmNvbWluZ0RhdGFgIGFuZCBwb3B1bGF0ZSBgcmVzdWx0YFxuICAgIE9iamVjdC5rZXlzKGluY29taW5nRGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdFtrZXldKSB7XG4gICAgICAgIC8vIEluc3RhbnRpYXRlIHRoZSBrZXkgaW4gYHJlc3VsdGAgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAgICAvLyBFbnN1cmUgaXRzIHR5cGUgbWF0Y2hlcyB0aGUgdHlwZSBvZiB0aGUgYGluY29taW5nRGF0YWBcbiAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHNjaGVtYSB0byBjaGVjayBhZ2FpbnN0IGhlcmVcbiAgICAgICAgcmVzdWx0W2tleV0gPVxuICAgICAgICAgIGluY29taW5nRGF0YVtrZXldICYmIHR5cGVvZiBpbmNvbWluZ0RhdGFba2V5XSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgID8gQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFba2V5XSlcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IHt9XG4gICAgICAgICAgICA6IGluY29taW5nRGF0YVtrZXldXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzUmVsYXRpb25zaGlwID0ga2V5ID09PSAndmFsdWUnICYmICdyZWxhdGlvblRvJyBpbiBpbmNvbWluZ0RhdGFcblxuICAgICAgaWYgKGlzUmVsYXRpb25zaGlwKSB7XG4gICAgICAgIGNvbnN0IG5lZWRzUG9wdWxhdGlvbiA9ICFyZXN1bHQudmFsdWUgfHwgdHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gJ29iamVjdCdcbiAgICAgICAgY29uc3QgaGFzQ2hhbmdlZCA9XG4gICAgICAgICAgcmVzdWx0ICYmXG4gICAgICAgICAgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICByZXN1bHQudmFsdWUuaWQgPT09IGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwPy5pZFxuXG4gICAgICAgIGlmIChuZWVkc1BvcHVsYXRpb24gfHwgaGFzQ2hhbmdlZCkge1xuICAgICAgICAgIGlmICghcG9wdWxhdGlvbnNCeUNvbGxlY3Rpb25baW5jb21pbmdEYXRhLnJlbGF0aW9uVG9dKSB7XG4gICAgICAgICAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbltpbmNvbWluZ0RhdGEucmVsYXRpb25Ub10gPSBbXVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2luY29taW5nRGF0YS5yZWxhdGlvblRvXS5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBpbmNvbWluZ0RhdGFba2V5XSxcbiAgICAgICAgICAgIGFjY2Vzc29yOiAndmFsdWUnLFxuICAgICAgICAgICAgcmVmOiByZXN1bHQsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmF2ZXJzZVJpY2hUZXh0KHtcbiAgICAgICAgICBleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgICBpbmNvbWluZ0RhdGE6IGluY29taW5nRGF0YVtrZXldLFxuICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uLFxuICAgICAgICAgIHJlc3VsdDogcmVzdWx0W2tleV0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBpbmNvbWluZ0RhdGFcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZVJpY2hUZXh0IiwiZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAiLCJpbmNvbWluZ0RhdGEiLCJwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiIsInJlc3VsdCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaXNSZWxhdGlvbnNoaXAiLCJuZWVkc1BvcHVsYXRpb24iLCJ2YWx1ZSIsImhhc0NoYW5nZWQiLCJpZCIsInJlbGF0aW9uVG8iLCJwdXNoIiwiYWNjZXNzb3IiLCJyZWYiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLG1CQUFtQixDQUFDLEVBQy9CQyw2QkFBNkIsRUFDN0JDLFlBQVksRUFDWkMsdUJBQXVCLEVBQ3ZCQyxNQUFNLEVBTVA7SUFDQyxJQUFJQyxNQUFNQyxPQUFPLENBQUNKLGVBQWU7UUFDL0IsSUFBSSxDQUFDRSxRQUFRO1lBQ1hBLFNBQVMsRUFBRTtRQUNiO1FBRUFBLFNBQVNGLGFBQWFLLEdBQUcsQ0FBQyxDQUFDQyxNQUFNQztZQUMvQixJQUFJLENBQUNMLE1BQU0sQ0FBQ0ssTUFBTSxFQUFFO2dCQUNsQkwsTUFBTSxDQUFDSyxNQUFNLEdBQUdEO1lBQ2xCO1lBRUEsT0FBT1IsaUJBQWlCO2dCQUN0QkM7Z0JBQ0FDLGNBQWNNO2dCQUNkTDtnQkFDQUMsUUFBUUEsTUFBTSxDQUFDSyxNQUFNO1lBQ3ZCO1FBQ0Y7SUFDRixPQUFPLElBQUlQLGdCQUFnQixPQUFPQSxpQkFBaUIsVUFBVTtRQUMzRCxJQUFJLENBQUNFLFFBQVE7WUFDWEEsU0FBUyxDQUFDO1FBQ1o7UUFFQSxpRUFBaUU7UUFDakUseUNBQXlDO1FBQ3pDLHdEQUF3RDtRQUN4RE0sT0FBT0MsSUFBSSxDQUFDUCxRQUFRUSxPQUFPLENBQUMsQ0FBQ0M7WUFDM0IsSUFBSSxDQUFFQSxDQUFBQSxPQUFPWCxZQUFXLEdBQUk7Z0JBQzFCLE9BQU9FLE1BQU0sQ0FBQ1MsSUFBSTtZQUNwQjtRQUNGO1FBRUEsZ0VBQWdFO1FBQ2hFSCxPQUFPQyxJQUFJLENBQUNULGNBQWNVLE9BQU8sQ0FBQyxDQUFDQztZQUNqQyxJQUFJLENBQUNULE1BQU0sQ0FBQ1MsSUFBSSxFQUFFO2dCQUNoQixzREFBc0Q7Z0JBQ3RELHlEQUF5RDtnQkFDekQsK0NBQStDO2dCQUMvQ1QsTUFBTSxDQUFDUyxJQUFJLEdBQ1RYLFlBQVksQ0FBQ1csSUFBSSxJQUFJLE9BQU9YLFlBQVksQ0FBQ1csSUFBSSxLQUFLLFdBQzlDUixNQUFNQyxPQUFPLENBQUNKLFlBQVksQ0FBQ1csSUFBSSxJQUM3QixFQUFFLEdBQ0YsQ0FBQyxJQUNIWCxZQUFZLENBQUNXLElBQUk7WUFDekI7WUFFQSxNQUFNQyxpQkFBaUJELFFBQVEsV0FBVyxnQkFBZ0JYO1lBRTFELElBQUlZLGdCQUFnQjtnQkFDbEIsTUFBTUMsa0JBQWtCLENBQUNYLE9BQU9ZLEtBQUssSUFBSSxPQUFPWixPQUFPWSxLQUFLLEtBQUs7Z0JBQ2pFLE1BQU1DLGFBQ0piLFVBQ0EsT0FBT0EsV0FBVyxZQUNsQkEsT0FBT1ksS0FBSyxDQUFDRSxFQUFFLEtBQUtqQiwrQkFBK0JpQjtnQkFFckQsSUFBSUgsbUJBQW1CRSxZQUFZO29CQUNqQyxJQUFJLENBQUNkLHVCQUF1QixDQUFDRCxhQUFhaUIsVUFBVSxDQUFDLEVBQUU7d0JBQ3JEaEIsdUJBQXVCLENBQUNELGFBQWFpQixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUN2RDtvQkFFQWhCLHVCQUF1QixDQUFDRCxhQUFhaUIsVUFBVSxDQUFDLENBQUNDLElBQUksQ0FBQzt3QkFDcERGLElBQUloQixZQUFZLENBQUNXLElBQUk7d0JBQ3JCUSxVQUFVO3dCQUNWQyxLQUFLbEI7b0JBQ1A7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMQSxNQUFNLENBQUNTLElBQUksR0FBR2IsaUJBQWlCO29CQUM3QkM7b0JBQ0FDLGNBQWNBLFlBQVksQ0FBQ1csSUFBSTtvQkFDL0JWO29CQUNBQyxRQUFRQSxNQUFNLENBQUNTLElBQUk7Z0JBQ3JCO1lBQ0Y7UUFDRjtJQUNGLE9BQU87UUFDTFQsU0FBU0Y7SUFDWDtJQUVBLE9BQU9FO0FBQ1QifQ==
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
@@ -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.6",
3
+ "version": "0.2.0",
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.1.1"
14
- },
15
- "peerDependencies": {
16
- "payload": "^2.0.0"
13
+ "payload": "2.3.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
@@ -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=