@payloadcms/live-preview 0.1.5 → 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,5 +1,6 @@
1
1
  export declare const handleMessage: <T>(args: {
2
- depth: number;
2
+ apiRoute?: string;
3
+ depth?: number;
3
4
  event: MessageEvent;
4
5
  initialData: T;
5
6
  serverURL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessage.d.ts","sourceRoot":"","sources":["../src/handleMessage.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa;WACjB,MAAM;WACN,YAAY;;eAER,MAAM;gBAwBlB,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,25 +15,36 @@ 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
- const { depth, event, initialData, serverURL } = args;
22
+ const { apiRoute, depth, event, initialData, serverURL } = args;
20
23
  if (event.origin === serverURL && event.data) {
21
24
  const eventData = JSON.parse(event?.data);
22
25
  if (eventData.type === 'payload-live-preview') {
23
26
  if (!payloadLivePreviewFieldSchema && eventData.fieldSchemaJSON) {
24
27
  payloadLivePreviewFieldSchema = eventData.fieldSchemaJSON;
25
28
  }
29
+ if (!payloadLivePreviewFieldSchema) {
30
+ // eslint-disable-next-line no-console
31
+ console.warn('Payload Live Preview: No `fieldSchemaJSON` was received from the parent window. Unable to merge data.');
32
+ return initialData;
33
+ }
26
34
  const mergedData = await (0, _.mergeData)({
35
+ apiRoute,
27
36
  depth,
37
+ externallyUpdatedRelationship: eventData.externallyUpdatedRelationship,
28
38
  fieldSchema: payloadLivePreviewFieldSchema,
29
39
  incomingData: eventData.data,
30
- initialData,
40
+ initialData: payloadLivePreviewPreviousData || initialData,
31
41
  serverURL
32
42
  });
43
+ payloadLivePreviewPreviousData = mergedData;
33
44
  return mergedData;
34
45
  }
35
46
  }
36
47
  return initialData;
37
48
  };
38
49
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGF0YSB9IGZyb20gJy4nXG5cbi8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBgZmllbGRTY2hlbWFKU09OYCB3aWxsIG9ubHkgYmUgc2VudCBvbmNlIG9uIHRoZSBpbml0aWFsIG1lc3NhZ2Vcbi8vIFdlIG5lZWQgdG8gY2FjaGUgdGhpcyB2YWx1ZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdWJzZXF1ZW50IG1lc3NhZ2VzXG4vLyBUbyBkbyB0aGlzLCBzYXZlIGBmaWVsZFNjaGVtYUpTT05gIHdoZW4gaXQgYXJyaXZlcyBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuLy8gU2VuZCB0aGlzIGNhY2hlZCB2YWx1ZSB0byBgbWVyZ2VEYXRhYCwgaW5zdGVhZCBvZiBgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTmAgZGlyZWN0bHlcbmxldCBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IHVuZGVmaW5lZCAvLyBUT0RPOiB0eXBlIHRoaXMgZnJvbSBgZmllbGRTY2hlbWFUb0pTT05gIHJldHVybiB0eXBlXG5cbmV4cG9ydCBjb25zdCBoYW5kbGVNZXNzYWdlID0gYXN5bmMgPFQ+KGFyZ3M6IHtcbiAgZGVwdGg6IG51bWJlclxuICBldmVudDogTWVzc2FnZUV2ZW50XG4gIGluaXRpYWxEYXRhOiBUXG4gIHNlcnZlclVSTDogc3RyaW5nXG59KTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHsgZGVwdGgsIGV2ZW50LCBpbml0aWFsRGF0YSwgc2VydmVyVVJMIH0gPSBhcmdzXG4gIGlmIChldmVudC5vcmlnaW4gPT09IHNlcnZlclVSTCAmJiBldmVudC5kYXRhKSB7XG4gICAgY29uc3QgZXZlbnREYXRhID0gSlNPTi5wYXJzZShldmVudD8uZGF0YSlcblxuICAgIGlmIChldmVudERhdGEudHlwZSA9PT0gJ3BheWxvYWQtbGl2ZS1wcmV2aWV3Jykge1xuICAgICAgaWYgKCFwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSAmJiBldmVudERhdGEuZmllbGRTY2hlbWFKU09OKSB7XG4gICAgICAgIHBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hID0gZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTlxuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXJnZWREYXRhID0gYXdhaXQgbWVyZ2VEYXRhPFQ+KHtcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGZpZWxkU2NoZW1hOiBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSxcbiAgICAgICAgaW5jb21pbmdEYXRhOiBldmVudERhdGEuZGF0YSxcbiAgICAgICAgaW5pdGlhbERhdGEsXG4gICAgICAgIHNlcnZlclVSTCxcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBtZXJnZWREYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluaXRpYWxEYXRhXG59XG4iXSwibmFtZXMiOlsiaGFuZGxlTWVzc2FnZSIsInBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hIiwidW5kZWZpbmVkIiwiYXJncyIsImRlcHRoIiwiZXZlbnQiLCJpbml0aWFsRGF0YSIsInNlcnZlclVSTCIsIm9yaWdpbiIsImRhdGEiLCJldmVudERhdGEiLCJKU09OIiwicGFyc2UiLCJ0eXBlIiwiZmllbGRTY2hlbWFKU09OIiwibWVyZ2VkRGF0YSIsIm1lcmdlRGF0YSIsImZpZWxkU2NoZW1hIiwiaW5jb21pbmdEYXRhIl0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7a0JBUmE7QUFFMUIsMkZBQTJGO0FBQzNGLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUseUZBQXlGO0FBQ3pGLElBQUlDLGdDQUFnQ0MsVUFBVSx1REFBdUQ7O0FBRTlGLE1BQU1GLGdCQUFnQixPQUFVRztJQU1yQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLFNBQVMsRUFBRSxHQUFHSjtJQUNqRCxJQUFJRSxNQUFNRyxNQUFNLEtBQUtELGFBQWFGLE1BQU1JLElBQUksRUFBRTtRQUM1QyxNQUFNQyxZQUFZQyxLQUFLQyxLQUFLLENBQUNQLE9BQU9JO1FBRXBDLElBQUlDLFVBQVVHLElBQUksS0FBSyx3QkFBd0I7WUFDN0MsSUFBSSxDQUFDWixpQ0FBaUNTLFVBQVVJLGVBQWUsRUFBRTtnQkFDL0RiLGdDQUFnQ1MsVUFBVUksZUFBZTtZQUMzRDtZQUVBLE1BQU1DLGFBQWEsTUFBTUMsSUFBQUEsV0FBUyxFQUFJO2dCQUNwQ1o7Z0JBQ0FhLGFBQWFoQjtnQkFDYmlCLGNBQWNSLFVBQVVELElBQUk7Z0JBQzVCSDtnQkFDQUM7WUFDRjtZQUVBLE9BQU9RO1FBQ1Q7SUFDRjtJQUVBLE9BQU9UO0FBQ1QifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVNZXNzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGF0YSB9IGZyb20gJy4nXG5cbi8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBgZmllbGRTY2hlbWFKU09OYCB3aWxsIG9ubHkgYmUgc2VudCBvbmNlIG9uIHRoZSBpbml0aWFsIG1lc3NhZ2Vcbi8vIFdlIG5lZWQgdG8gY2FjaGUgdGhpcyB2YWx1ZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdWJzZXF1ZW50IG1lc3NhZ2VzXG4vLyBUbyBkbyB0aGlzLCBzYXZlIGBmaWVsZFNjaGVtYUpTT05gIHdoZW4gaXQgYXJyaXZlcyBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuLy8gU2VuZCB0aGlzIGNhY2hlZCB2YWx1ZSB0byBgbWVyZ2VEYXRhYCwgaW5zdGVhZCBvZiBgZXZlbnREYXRhLmZpZWxkU2NoZW1hSlNPTmAgZGlyZWN0bHlcbmxldCBwYXlsb2FkTGl2ZVByZXZpZXdGaWVsZFNjaGVtYSA9IHVuZGVmaW5lZCAvLyBUT0RPOiB0eXBlIHRoaXMgZnJvbSBgZmllbGRTY2hlbWFUb0pTT05gIHJldHVybiB0eXBlXG5cbi8vIEVhY2ggdGltZSB0aGUgZGF0YSBpcyBtZXJnZWQsIGNhY2hlIHRoZSByZXN1bHQgYXMgYSBgcHJldmlvdXNEYXRhYCB2YXJpYWJsZVxuLy8gVGhpcyB3aWxsIGVuc3VyZSBjaGFuZ2VzIGNvbXBvdW5kIG92ZXJ0b3Agb2YgZWFjaCBvdGhlclxubGV0IHBheWxvYWRMaXZlUHJldmlld1ByZXZpb3VzRGF0YSA9IHVuZGVmaW5lZFxuXG5leHBvcnQgY29uc3QgaGFuZGxlTWVzc2FnZSA9IGFzeW5jIDxUPihhcmdzOiB7XG4gIGFwaVJvdXRlPzogc3RyaW5nXG4gIGRlcHRoPzogbnVtYmVyXG4gIGV2ZW50OiBNZXNzYWdlRXZlbnRcbiAgaW5pdGlhbERhdGE6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgeyBhcGlSb3V0ZSwgZGVwdGgsIGV2ZW50LCBpbml0aWFsRGF0YSwgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gc2VydmVyVVJMICYmIGV2ZW50LmRhdGEpIHtcbiAgICBjb25zdCBldmVudERhdGEgPSBKU09OLnBhcnNlKGV2ZW50Py5kYXRhKVxuXG4gICAgaWYgKGV2ZW50RGF0YS50eXBlID09PSAncGF5bG9hZC1saXZlLXByZXZpZXcnKSB7XG4gICAgICBpZiAoIXBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hICYmIGV2ZW50RGF0YS5maWVsZFNjaGVtYUpTT04pIHtcbiAgICAgICAgcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEgPSBldmVudERhdGEuZmllbGRTY2hlbWFKU09OXG4gICAgICB9XG5cbiAgICAgIGlmICghcGF5bG9hZExpdmVQcmV2aWV3RmllbGRTY2hlbWEpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQYXlsb2FkIExpdmUgUHJldmlldzogTm8gYGZpZWxkU2NoZW1hSlNPTmAgd2FzIHJlY2VpdmVkIGZyb20gdGhlIHBhcmVudCB3aW5kb3cuIFVuYWJsZSB0byBtZXJnZSBkYXRhLicsXG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gaW5pdGlhbERhdGFcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVyZ2VkRGF0YSA9IGF3YWl0IG1lcmdlRGF0YTxUPih7XG4gICAgICAgIGFwaVJvdXRlLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA6IGV2ZW50RGF0YS5leHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCxcbiAgICAgICAgZmllbGRTY2hlbWE6IHBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hLFxuICAgICAgICBpbmNvbWluZ0RhdGE6IGV2ZW50RGF0YS5kYXRhLFxuICAgICAgICBpbml0aWFsRGF0YTogcGF5bG9hZExpdmVQcmV2aWV3UHJldmlvdXNEYXRhIHx8IGluaXRpYWxEYXRhLFxuICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICB9KVxuXG4gICAgICBwYXlsb2FkTGl2ZVByZXZpZXdQcmV2aW91c0RhdGEgPSBtZXJnZWREYXRhXG5cbiAgICAgIHJldHVybiBtZXJnZWREYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluaXRpYWxEYXRhXG59XG4iXSwibmFtZXMiOlsiaGFuZGxlTWVzc2FnZSIsInBheWxvYWRMaXZlUHJldmlld0ZpZWxkU2NoZW1hIiwidW5kZWZpbmVkIiwicGF5bG9hZExpdmVQcmV2aWV3UHJldmlvdXNEYXRhIiwiYXJncyIsImFwaVJvdXRlIiwiZGVwdGgiLCJldmVudCIsImluaXRpYWxEYXRhIiwic2VydmVyVVJMIiwib3JpZ2luIiwiZGF0YSIsImV2ZW50RGF0YSIsIkpTT04iLCJwYXJzZSIsInR5cGUiLCJmaWVsZFNjaGVtYUpTT04iLCJjb25zb2xlIiwid2FybiIsIm1lcmdlZERhdGEiLCJtZXJnZURhdGEiLCJleHRlcm5hbGx5VXBkYXRlZFJlbGF0aW9uc2hpcCIsImZpZWxkU2NoZW1hIiwiaW5jb21pbmdEYXRhIl0sIm1hcHBpbmdzIjoiOzs7OytCQVlhQTs7O2VBQUFBOzs7a0JBWmE7QUFFMUIsMkZBQTJGO0FBQzNGLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUseUZBQXlGO0FBQ3pGLElBQUlDLGdDQUFnQ0MsVUFBVSx1REFBdUQ7O0FBRXJHLDhFQUE4RTtBQUM5RSwwREFBMEQ7QUFDMUQsSUFBSUMsaUNBQWlDRDtBQUU5QixNQUFNRixnQkFBZ0IsT0FBVUk7SUFPckMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLFNBQVMsRUFBRSxHQUFHTDtJQUUzRCxJQUFJRyxNQUFNRyxNQUFNLEtBQUtELGFBQWFGLE1BQU1JLElBQUksRUFBRTtRQUM1QyxNQUFNQyxZQUFZQyxLQUFLQyxLQUFLLENBQUNQLE9BQU9JO1FBRXBDLElBQUlDLFVBQVVHLElBQUksS0FBSyx3QkFBd0I7WUFDN0MsSUFBSSxDQUFDZCxpQ0FBaUNXLFVBQVVJLGVBQWUsRUFBRTtnQkFDL0RmLGdDQUFnQ1csVUFBVUksZUFBZTtZQUMzRDtZQUVBLElBQUksQ0FBQ2YsK0JBQStCO2dCQUNsQyxzQ0FBc0M7Z0JBQ3RDZ0IsUUFBUUMsSUFBSSxDQUNWO2dCQUdGLE9BQU9WO1lBQ1Q7WUFFQSxNQUFNVyxhQUFhLE1BQU1DLElBQUFBLFdBQVMsRUFBSTtnQkFDcENmO2dCQUNBQztnQkFDQWUsK0JBQStCVCxVQUFVUyw2QkFBNkI7Z0JBQ3RFQyxhQUFhckI7Z0JBQ2JzQixjQUFjWCxVQUFVRCxJQUFJO2dCQUM1QkgsYUFBYUwsa0NBQWtDSztnQkFDL0NDO1lBQ0Y7WUFFQU4saUNBQWlDZ0I7WUFFakMsT0FBT0E7UUFDVDtJQUNGO0lBRUEsT0FBT1g7QUFDVCJ9
@@ -1,11 +1,15 @@
1
1
  import type { fieldSchemaToJSON } from 'payload/utilities';
2
- export type MergeLiveDataArgs<T> = {
2
+ import type { UpdatedDocument } from './types';
3
+ export declare const mergeData: <T>(args: {
3
4
  apiRoute?: string;
4
- depth: number;
5
+ depth?: number;
6
+ externallyUpdatedRelationship?: UpdatedDocument;
5
7
  fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
6
8
  incomingData: Partial<T>;
7
9
  initialData: T;
10
+ returnNumberOfRequests?: boolean;
8
11
  serverURL: string;
9
- };
10
- export declare const mergeData: <T>({ apiRoute, depth, fieldSchema, incomingData, initialData, serverURL, }: MergeLiveDataArgs<T>) => Promise<T>;
12
+ }) => Promise<T & {
13
+ _numberOfRequests?: number;
14
+ }>;
11
15
  //# sourceMappingURL=mergeData.d.ts.map
@@ -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,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACjD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxB,WAAW,EAAE,CAAC,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,SAAS,kHAyBrB,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
@@ -9,22 +9,50 @@ Object.defineProperty(exports, "mergeData", {
9
9
  }
10
10
  });
11
11
  const _traverseFields = require("./traverseFields");
12
- const mergeData = async ({ apiRoute, depth, fieldSchema, incomingData, initialData, serverURL })=>{
12
+ const mergeData = async (args)=>{
13
+ const { apiRoute, depth, externallyUpdatedRelationship, fieldSchema, incomingData, initialData, returnNumberOfRequests, serverURL } = args;
13
14
  const result = {
14
15
  ...initialData
15
16
  };
16
- const populationPromises = [];
17
+ const populationsByCollection = {};
17
18
  (0, _traverseFields.traverseFields)({
18
- apiRoute,
19
- depth,
19
+ externallyUpdatedRelationship,
20
20
  fieldSchema,
21
21
  incomingData,
22
- populationPromises,
23
- result,
24
- serverURL
22
+ populationsByCollection,
23
+ result
25
24
  });
26
- await Promise.all(populationPromises);
27
- return result;
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
+ }));
50
+ return {
51
+ ...result,
52
+ ...returnNumberOfRequests ? {
53
+ _numberOfRequests: Object.keys(populationsByCollection).length
54
+ } : {}
55
+ };
28
56
  };
29
57
 
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBmaWVsZFNjaGVtYVRvSlNPTiB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbmV4cG9ydCB0eXBlIE1lcmdlTGl2ZURhdGFBcmdzPFQ+ID0ge1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBkZXB0aDogbnVtYmVyXG4gIGZpZWxkU2NoZW1hOiBSZXR1cm5UeXBlPHR5cGVvZiBmaWVsZFNjaGVtYVRvSlNPTj5cbiAgaW5jb21pbmdEYXRhOiBQYXJ0aWFsPFQ+XG4gIGluaXRpYWxEYXRhOiBUXG4gIHNlcnZlclVSTDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBtZXJnZURhdGEgPSBhc3luYyA8VD4oe1xuICBhcGlSb3V0ZSxcbiAgZGVwdGgsXG4gIGZpZWxkU2NoZW1hLFxuICBpbmNvbWluZ0RhdGEsXG4gIGluaXRpYWxEYXRhLFxuICBzZXJ2ZXJVUkwsXG59OiBNZXJnZUxpdmVEYXRhQXJnczxUPik6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCByZXN1bHQgPSB7IC4uLmluaXRpYWxEYXRhIH1cblxuICBjb25zdCBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdXG5cbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGFwaVJvdXRlLFxuICAgIGRlcHRoLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGluY29taW5nRGF0YSxcbiAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgcmVzdWx0LFxuICAgIHNlcnZlclVSTCxcbiAgfSlcblxuICBhd2FpdCBQcm9taXNlLmFsbChwb3B1bGF0aW9uUHJvbWlzZXMpXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIm1lcmdlRGF0YSIsImFwaVJvdXRlIiwiZGVwdGgiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSIsImluaXRpYWxEYXRhIiwic2VydmVyVVJMIiwicmVzdWx0IiwicG9wdWxhdGlvblByb21pc2VzIiwidHJhdmVyc2VGaWVsZHMiLCJQcm9taXNlIiwiYWxsIl0sIm1hcHBpbmdzIjoiOzs7OytCQWFhQTs7O2VBQUFBOzs7Z0NBWGtCO0FBV3hCLE1BQU1BLFlBQVksT0FBVSxFQUNqQ0MsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFNBQVMsRUFDWTtJQUNyQixNQUFNQyxTQUFTO1FBQUUsR0FBR0YsV0FBVztJQUFDO0lBRWhDLE1BQU1HLHFCQUFzQyxFQUFFO0lBRTlDQyxJQUFBQSw4QkFBYyxFQUFDO1FBQ2JSO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FJO1FBQ0FEO1FBQ0FEO0lBQ0Y7SUFFQSxNQUFNSSxRQUFRQyxHQUFHLENBQUNIO0lBRWxCLE9BQU9EO0FBQ1QifQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZWREb2NzIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgZmllbGRTY2hlbWFUb0pTT04gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcblxuaW1wb3J0IHR5cGUgeyBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiwgVXBkYXRlZERvY3VtZW50IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG5leHBvcnQgY29uc3QgbWVyZ2VEYXRhID0gYXN5bmMgPFQ+KGFyZ3M6IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg/OiBudW1iZXJcbiAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXA/OiBVcGRhdGVkRG9jdW1lbnRcbiAgZmllbGRTY2hlbWE6IFJldHVyblR5cGU8dHlwZW9mIGZpZWxkU2NoZW1hVG9KU09OPlxuICBpbmNvbWluZ0RhdGE6IFBhcnRpYWw8VD5cbiAgaW5pdGlhbERhdGE6IFRcbiAgcmV0dXJuTnVtYmVyT2ZSZXF1ZXN0cz86IGJvb2xlYW5cbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiBQcm9taXNlPFxuICBUICYge1xuICAgIF9udW1iZXJPZlJlcXVlc3RzPzogbnVtYmVyXG4gIH1cbj4gPT4ge1xuICBjb25zdCB7XG4gICAgYXBpUm91dGUsXG4gICAgZGVwdGgsXG4gICAgZXh0ZXJuYWxseVVwZGF0ZWRSZWxhdGlvbnNoaXAsXG4gICAgZmllbGRTY2hlbWEsXG4gICAgaW5jb21pbmdEYXRhLFxuICAgIGluaXRpYWxEYXRhLFxuICAgIHJldHVybk51bWJlck9mUmVxdWVzdHMsXG4gICAgc2VydmVyVVJMLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uaW5pdGlhbERhdGEgfVxuXG4gIGNvbnN0IHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uOiBQb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiA9IHt9XG5cbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGluY29taW5nRGF0YSxcbiAgICBwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbixcbiAgICByZXN1bHQsXG4gIH0pXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmVudHJpZXMocG9wdWxhdGlvbnNCeUNvbGxlY3Rpb24pLm1hcChhc3luYyAoW2NvbGxlY3Rpb24sIHBvcHVsYXRpb25zXSkgPT4ge1xuICAgICAgY29uc3QgaWRzID0gbmV3IFNldChwb3B1bGF0aW9ucy5tYXAoKHsgaWQgfSkgPT4gaWQpKVxuICAgICAgY29uc3QgdXJsID0gYCR7c2VydmVyVVJMfSR7XG4gICAgICAgIGFwaVJvdXRlIHx8ICcvYXBpJ1xuICAgICAgfS8ke2NvbGxlY3Rpb259P2RlcHRoPSR7ZGVwdGh9JndoZXJlW2lkXVtpbl09JHtBcnJheS5mcm9tKGlkcykuam9pbignLCcpfWBcblxuICAgICAgbGV0IHJlczogUGFnaW5hdGVkRG9jc1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXG4gICAgICAgIGlmIChyZXM/LmRvY3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXMuZG9jcy5mb3JFYWNoKChkb2MpID0+IHtcbiAgICAgICAgICAgIHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uW2NvbGxlY3Rpb25dLmZvckVhY2goKHBvcHVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBvcHVsYXRpb24uaWQgPT09IGRvYy5pZCkge1xuICAgICAgICAgICAgICAgIHBvcHVsYXRpb24ucmVmW3BvcHVsYXRpb24uYWNjZXNzb3JdID0gZG9jXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICAgIH1cbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzdWx0LFxuICAgIC4uLihyZXR1cm5OdW1iZXJPZlJlcXVlc3RzXG4gICAgICA/IHsgX251bWJlck9mUmVxdWVzdHM6IE9iamVjdC5rZXlzKHBvcHVsYXRpb25zQnlDb2xsZWN0aW9uKS5sZW5ndGggfVxuICAgICAgOiB7fSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtZXJnZURhdGEiLCJhcmdzIiwiYXBpUm91dGUiLCJkZXB0aCIsImV4dGVybmFsbHlVcGRhdGVkUmVsYXRpb25zaGlwIiwiZmllbGRTY2hlbWEiLCJpbmNvbWluZ0RhdGEiLCJpbml0aWFsRGF0YSIsInJldHVybk51bWJlck9mUmVxdWVzdHMiLCJzZXJ2ZXJVUkwiLCJyZXN1bHQiLCJwb3B1bGF0aW9uc0J5Q29sbGVjdGlvbiIsInRyYXZlcnNlRmllbGRzIiwiUHJvbWlzZSIsImFsbCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJjb2xsZWN0aW9uIiwicG9wdWxhdGlvbnMiLCJpZHMiLCJTZXQiLCJpZCIsInVybCIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJyZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsInRoZW4iLCJqc29uIiwiZG9jcyIsImxlbmd0aCIsImZvckVhY2giLCJkb2MiLCJwb3B1bGF0aW9uIiwicmVmIiwiYWNjZXNzb3IiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJfbnVtYmVyT2ZSZXF1ZXN0cyIsImtleXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBT2FBOzs7ZUFBQUE7OztnQ0FGa0I7QUFFeEIsTUFBTUEsWUFBWSxPQUFVQztJQWNqQyxNQUFNLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyw2QkFBNkIsRUFDN0JDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLHNCQUFzQixFQUN0QkMsU0FBUyxFQUNWLEdBQUdSO0lBRUosTUFBTVMsU0FBUztRQUFFLEdBQUdILFdBQVc7SUFBQztJQUVoQyxNQUFNSSwwQkFBbUQsQ0FBQztJQUUxREMsSUFBQUEsOEJBQWMsRUFBQztRQUNiUjtRQUNBQztRQUNBQztRQUNBSztRQUNBRDtJQUNGO0lBRUEsTUFBTUcsUUFBUUMsR0FBRyxDQUNmQyxPQUFPQyxPQUFPLENBQUNMLHlCQUF5Qk0sR0FBRyxDQUFDLE9BQU8sQ0FBQ0MsWUFBWUMsWUFBWTtRQUMxRSxNQUFNQyxNQUFNLElBQUlDLElBQUlGLFlBQVlGLEdBQUcsQ0FBQyxDQUFDLEVBQUVLLEVBQUUsRUFBRSxHQUFLQTtRQUNoRCxNQUFNQyxNQUFNLENBQUMsRUFBRWQsVUFBVSxFQUN2QlAsWUFBWSxPQUNiLENBQUMsRUFBRWdCLFdBQVcsT0FBTyxFQUFFZixNQUFNLGVBQWUsRUFBRXFCLE1BQU1DLElBQUksQ0FBQ0wsS0FBS00sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxRSxJQUFJQztRQUVKLElBQUk7WUFDRkEsTUFBTSxNQUFNQyxNQUFNTCxLQUFLO2dCQUNyQk0sYUFBYTtnQkFDYkMsU0FBUztvQkFDUCxnQkFBZ0I7Z0JBQ2xCO1lBQ0YsR0FBR0MsSUFBSSxDQUFDLENBQUNKLE1BQVFBLElBQUlLLElBQUk7WUFFekIsSUFBSUwsS0FBS00sTUFBTUMsU0FBUyxHQUFHO2dCQUN6QlAsSUFBSU0sSUFBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0M7b0JBQ2hCekIsdUJBQXVCLENBQUNPLFdBQVcsQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDRTt3QkFDM0MsSUFBSUEsV0FBV2YsRUFBRSxLQUFLYyxJQUFJZCxFQUFFLEVBQUU7NEJBQzVCZSxXQUFXQyxHQUFHLENBQUNELFdBQVdFLFFBQVEsQ0FBQyxHQUFHSDt3QkFDeEM7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGLEVBQUUsT0FBT0ksS0FBSztZQUNaQyxRQUFRQyxLQUFLLENBQUNGLEtBQUssaUNBQWlDOztRQUN0RDtJQUNGO0lBR0YsT0FBTztRQUNMLEdBQUc5QixNQUFNO1FBQ1QsR0FBSUYseUJBQ0E7WUFBRW1DLG1CQUFtQjVCLE9BQU82QixJQUFJLENBQUNqQyx5QkFBeUJ1QixNQUFNO1FBQUMsSUFDakUsQ0FBQyxDQUFDO0lBQ1I7QUFDRiJ9
@@ -1,6 +1,7 @@
1
1
  export declare const subscribe: <T>(args: {
2
+ apiRoute?: string;
2
3
  callback: (data: T) => void;
3
- depth: number;
4
+ depth?: number;
4
5
  initialData: T;
5
6
  serverURL: string;
6
7
  }) => (event: MessageEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;2BACG,IAAI;WACpB,MAAM;;eAEF,MAAM;cACN,YAAY,KAAK,IAa7B,CAAA"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;eACT,MAAM;2BACM,IAAI;YACnB,MAAM;;eAEH,MAAM;cACN,YAAY,KAAK,IAa7B,CAAA"}
package/dist/subscribe.js CHANGED
@@ -10,9 +10,10 @@ Object.defineProperty(exports, "subscribe", {
10
10
  });
11
11
  const _ = require(".");
12
12
  const subscribe = (args)=>{
13
- const { callback, depth, initialData, serverURL } = args;
13
+ const { apiRoute, callback, depth, initialData, serverURL } = args;
14
14
  const onMessage = async (event)=>{
15
15
  const mergedData = await (0, _.handleMessage)({
16
+ apiRoute,
16
17
  depth,
17
18
  event,
18
19
  initialData,
@@ -26,4 +27,4 @@ const subscribe = (args)=>{
26
27
  return onMessage;
27
28
  };
28
29
 
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzY3JpYmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlTWVzc2FnZSB9IGZyb20gJy4nXG5cbmV4cG9ydCBjb25zdCBzdWJzY3JpYmUgPSA8VD4oYXJnczoge1xuICBjYWxsYmFjazogKGRhdGE6IFQpID0+IHZvaWRcbiAgZGVwdGg6IG51bWJlclxuICBpbml0aWFsRGF0YTogVFxuICBzZXJ2ZXJVUkw6IHN0cmluZ1xufSk6ICgoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4gdm9pZCkgPT4ge1xuICBjb25zdCB7IGNhbGxiYWNrLCBkZXB0aCwgaW5pdGlhbERhdGEsIHNlcnZlclVSTCB9ID0gYXJnc1xuXG4gIGNvbnN0IG9uTWVzc2FnZSA9IGFzeW5jIChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGF3YWl0IGhhbmRsZU1lc3NhZ2U8VD4oeyBkZXB0aCwgZXZlbnQsIGluaXRpYWxEYXRhLCBzZXJ2ZXJVUkwgfSlcbiAgICBjYWxsYmFjayhtZXJnZWREYXRhKVxuICB9XG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpXG4gIH1cblxuICByZXR1cm4gb25NZXNzYWdlXG59XG4iXSwibmFtZXMiOlsic3Vic2NyaWJlIiwiYXJncyIsImNhbGxiYWNrIiwiZGVwdGgiLCJpbml0aWFsRGF0YSIsInNlcnZlclVSTCIsIm9uTWVzc2FnZSIsImV2ZW50IiwibWVyZ2VkRGF0YSIsImhhbmRsZU1lc3NhZ2UiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiOzs7OytCQUVhQTs7O2VBQUFBOzs7a0JBRmlCO0FBRXZCLE1BQU1BLFlBQVksQ0FBSUM7SUFNM0IsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUUsR0FBR0o7SUFFcEQsTUFBTUssWUFBWSxPQUFPQztRQUN2QixNQUFNQyxhQUFhLE1BQU1DLElBQUFBLGVBQWEsRUFBSTtZQUFFTjtZQUFPSTtZQUFPSDtZQUFhQztRQUFVO1FBQ2pGSCxTQUFTTTtJQUNYO0lBRUEsSUFBSSxPQUFPRSxXQUFXLGFBQWE7UUFDakNBLE9BQU9DLGdCQUFnQixDQUFDLFdBQVdMO0lBQ3JDO0lBRUEsT0FBT0E7QUFDVCJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzY3JpYmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlTWVzc2FnZSB9IGZyb20gJy4nXG5cbmV4cG9ydCBjb25zdCBzdWJzY3JpYmUgPSA8VD4oYXJnczoge1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBjYWxsYmFjazogKGRhdGE6IFQpID0+IHZvaWRcbiAgZGVwdGg/OiBudW1iZXJcbiAgaW5pdGlhbERhdGE6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn0pOiAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgeyBhcGlSb3V0ZSwgY2FsbGJhY2ssIGRlcHRoLCBpbml0aWFsRGF0YSwgc2VydmVyVVJMIH0gPSBhcmdzXG5cbiAgY29uc3Qgb25NZXNzYWdlID0gYXN5bmMgKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICBjb25zdCBtZXJnZWREYXRhID0gYXdhaXQgaGFuZGxlTWVzc2FnZTxUPih7IGFwaVJvdXRlLCBkZXB0aCwgZXZlbnQsIGluaXRpYWxEYXRhLCBzZXJ2ZXJVUkwgfSlcbiAgICBjYWxsYmFjayhtZXJnZWREYXRhKVxuICB9XG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpXG4gIH1cblxuICByZXR1cm4gb25NZXNzYWdlXG59XG4iXSwibmFtZXMiOlsic3Vic2NyaWJlIiwiYXJncyIsImFwaVJvdXRlIiwiY2FsbGJhY2siLCJkZXB0aCIsImluaXRpYWxEYXRhIiwic2VydmVyVVJMIiwib25NZXNzYWdlIiwiZXZlbnQiLCJtZXJnZWREYXRhIiwiaGFuZGxlTWVzc2FnZSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztrQkFGaUI7QUFFdkIsTUFBTUEsWUFBWSxDQUFJQztJQU8zQixNQUFNLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFLEdBQUdMO0lBRTlELE1BQU1NLFlBQVksT0FBT0M7UUFDdkIsTUFBTUMsYUFBYSxNQUFNQyxJQUFBQSxlQUFhLEVBQUk7WUFBRVI7WUFBVUU7WUFBT0k7WUFBT0g7WUFBYUM7UUFBVTtRQUMzRkgsU0FBU007SUFDWDtJQUVBLElBQUksT0FBT0UsV0FBVyxhQUFhO1FBQ2pDQSxPQUFPQyxnQkFBZ0IsQ0FBQyxXQUFXTDtJQUNyQztJQUVBLE9BQU9BO0FBQ1QifQ==
@@ -1,13 +1,10 @@
1
1
  import type { fieldSchemaToJSON } from 'payload/utilities';
2
- type Args<T> = {
3
- apiRoute?: string;
4
- depth: number;
2
+ import type { PopulationsByCollection, UpdatedDocument } from './types';
3
+ export declare const traverseFields: <T>(args: {
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
- };
11
- export declare const traverseFields: <T>({ apiRoute, depth, fieldSchema, incomingData, populationPromises, result, serverURL, }: Args<T>) => void;
12
- export {};
9
+ }) => void;
13
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,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACjD,YAAY,EAAE,CAAC,CAAA;IACf,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,MAAM,EAAE,CAAC,CAAA;IACT,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc,0GAQd,IAyNZ,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,51 +8,61 @@ Object.defineProperty(exports, "traverseFields", {
8
8
  return traverseFields;
9
9
  }
10
10
  });
11
- const _promise = require("./promise");
12
- const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, populationPromises, result, serverURL })=>{
13
- fieldSchema.forEach((fieldJSON)=>{
14
- if ('name' in fieldJSON && typeof fieldJSON.name === 'string') {
15
- const fieldName = fieldJSON.name;
16
- switch(fieldJSON.type){
11
+ const _traverseRichText = require("./traverseRichText");
12
+ const traverseFields = (args)=>{
13
+ const { externallyUpdatedRelationship, fieldSchema: fieldSchemas, incomingData, populationsByCollection, result } = args;
14
+ fieldSchemas.forEach((fieldSchema)=>{
15
+ if ('name' in fieldSchema && typeof fieldSchema.name === 'string') {
16
+ const fieldName = fieldSchema.name;
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;
17
26
  case 'array':
18
27
  if (Array.isArray(incomingData[fieldName])) {
19
- result[fieldName] = incomingData[fieldName].map((row, i)=>{
20
- const hasExistingRow = Array.isArray(result[fieldName]) && typeof result[fieldName][i] === 'object' && result[fieldName][i] !== null;
21
- const newRow = hasExistingRow ? {
22
- ...result[fieldName][i]
23
- } : {};
28
+ result[fieldName] = incomingData[fieldName].map((incomingRow, i)=>{
29
+ if (!result[fieldName]) {
30
+ result[fieldName] = [];
31
+ }
32
+ if (!result[fieldName][i]) {
33
+ result[fieldName][i] = {};
34
+ }
24
35
  traverseFields({
25
- apiRoute,
26
- depth,
27
- fieldSchema: fieldJSON.fields,
28
- incomingData: row,
29
- populationPromises,
30
- result: newRow,
31
- serverURL
36
+ externallyUpdatedRelationship,
37
+ fieldSchema: fieldSchema.fields,
38
+ incomingData: incomingRow,
39
+ populationsByCollection,
40
+ result: result[fieldName][i]
32
41
  });
33
- return newRow;
42
+ return result[fieldName][i];
34
43
  });
35
44
  }
36
45
  break;
37
46
  case 'blocks':
38
47
  if (Array.isArray(incomingData[fieldName])) {
39
48
  result[fieldName] = incomingData[fieldName].map((incomingBlock, i)=>{
40
- const incomingBlockJSON = fieldJSON.blocks[incomingBlock.blockType];
41
- // Compare the index and id to determine if this block already exists in the result
42
- // If so, we want to use the existing block as the base, otherwise take the incoming block
43
- // Either way, we will traverse the fields of the block to populate relationships
44
- const isExistingBlock = Array.isArray(result[fieldName]) && typeof result[fieldName][i] === 'object' && result[fieldName][i] !== null && result[fieldName][i].id === incomingBlock.id;
45
- const block = isExistingBlock ? result[fieldName][i] : incomingBlock;
49
+ const incomingBlockJSON = fieldSchema.blocks[incomingBlock.blockType];
50
+ if (!result[fieldName]) {
51
+ result[fieldName] = [];
52
+ }
53
+ if (!result[fieldName][i] || result[fieldName][i].id !== incomingBlock.id || result[fieldName][i].blockType !== incomingBlock.blockType) {
54
+ result[fieldName][i] = {
55
+ blockType: incomingBlock.blockType
56
+ };
57
+ }
46
58
  traverseFields({
47
- apiRoute,
48
- depth,
59
+ externallyUpdatedRelationship,
49
60
  fieldSchema: incomingBlockJSON.fields,
50
61
  incomingData: incomingBlock,
51
- populationPromises,
52
- result: block,
53
- serverURL
62
+ populationsByCollection,
63
+ result: result[fieldName][i]
54
64
  });
55
- return block;
65
+ return result[fieldName][i];
56
66
  });
57
67
  } else {
58
68
  result[fieldName] = [];
@@ -64,102 +74,118 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
64
74
  result[fieldName] = {};
65
75
  }
66
76
  traverseFields({
67
- apiRoute,
68
- depth,
69
- fieldSchema: fieldJSON.fields,
77
+ externallyUpdatedRelationship,
78
+ fieldSchema: fieldSchema.fields,
70
79
  incomingData: incomingData[fieldName] || {},
71
- populationPromises,
72
- result: result[fieldName],
73
- serverURL
80
+ populationsByCollection,
81
+ result: result[fieldName]
74
82
  });
75
83
  break;
76
84
  case 'upload':
77
85
  case 'relationship':
78
- if (fieldJSON.hasMany && Array.isArray(incomingData[fieldName])) {
79
- const existingValue = Array.isArray(result[fieldName]) ? [
80
- ...result[fieldName]
81
- ] : [];
82
- result[fieldName] = Array.isArray(result[fieldName]) ? [
83
- ...result[fieldName]
84
- ].slice(0, incomingData[fieldName].length) : [];
85
- incomingData[fieldName].forEach((relation, i)=>{
86
+ // Handle `hasMany` relationships
87
+ if (fieldSchema.hasMany && Array.isArray(incomingData[fieldName])) {
88
+ if (!result[fieldName] || !incomingData[fieldName].length) {
89
+ result[fieldName] = [];
90
+ }
91
+ incomingData[fieldName].forEach((incomingRelation, i)=>{
86
92
  // Handle `hasMany` polymorphic
87
- if (Array.isArray(fieldJSON.relationTo)) {
88
- const existingID = existingValue[i]?.value?.id;
89
- if (existingID !== relation.value || existingValue[i]?.relationTo !== relation.relationTo) {
93
+ if (Array.isArray(fieldSchema.relationTo)) {
94
+ // if the field doesn't exist on the result, create it
95
+ // the value will be populated later
96
+ if (!result[fieldName][i]) {
90
97
  result[fieldName][i] = {
91
- relationTo: relation.relationTo
98
+ relationTo: incomingRelation.relationTo
92
99
  };
93
- populationPromises.push((0, _promise.promise)({
94
- id: relation.value,
100
+ }
101
+ const oldID = result[fieldName][i]?.value?.id;
102
+ const oldRelation = result[fieldName][i]?.relationTo;
103
+ const newID = incomingRelation.value;
104
+ const newRelation = incomingRelation.relationTo;
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({
112
+ id: incomingRelation.value,
95
113
  accessor: 'value',
96
- apiRoute,
97
- collection: relation.relationTo,
98
- depth,
99
- ref: result[fieldName][i],
100
- serverURL
101
- }));
114
+ ref: result[fieldName][i]
115
+ });
102
116
  }
103
117
  } else {
104
118
  // Handle `hasMany` monomorphic
105
- const existingID = existingValue[i]?.id;
106
- if (existingID !== relation) {
107
- populationPromises.push((0, _promise.promise)({
108
- id: relation,
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({
126
+ id: incomingRelation,
109
127
  accessor: i,
110
- apiRoute,
111
- collection: String(fieldJSON.relationTo),
112
- depth,
113
- ref: result[fieldName],
114
- serverURL
115
- }));
128
+ ref: result[fieldName]
129
+ });
116
130
  }
117
131
  }
118
132
  });
119
133
  } else {
120
134
  // Handle `hasOne` polymorphic
121
- if (Array.isArray(fieldJSON.relationTo)) {
122
- const hasNewValue = typeof incomingData[fieldName] === 'object' && incomingData[fieldName] !== null;
123
- const hasOldValue = typeof result[fieldName] === 'object' && result[fieldName] !== null;
124
- const newValue = hasNewValue ? incomingData[fieldName].value : '';
135
+ if (Array.isArray(fieldSchema.relationTo)) {
136
+ // if the field doesn't exist on the result, create it
137
+ // the value will be populated later
138
+ if (!result[fieldName]) {
139
+ result[fieldName] = {
140
+ relationTo: incomingData[fieldName]?.relationTo
141
+ };
142
+ }
143
+ const hasNewValue = incomingData[fieldName] && typeof incomingData[fieldName] === 'object' && incomingData[fieldName] !== null;
144
+ const hasOldValue = result[fieldName] && typeof result[fieldName] === 'object' && result[fieldName] !== null;
145
+ const newID = hasNewValue ? typeof incomingData[fieldName].value === 'object' ? incomingData[fieldName].value.id : incomingData[fieldName].value : '';
146
+ const oldID = hasOldValue ? typeof result[fieldName].value === 'object' ? result[fieldName].value.id : result[fieldName].value : '';
125
147
  const newRelation = hasNewValue ? incomingData[fieldName].relationTo : '';
126
- const oldValue = hasOldValue ? result[fieldName].value : '';
127
148
  const oldRelation = hasOldValue ? result[fieldName].relationTo : '';
128
- if (newValue !== oldValue || newRelation !== oldRelation) {
129
- if (newValue) {
130
- if (!result[fieldName]) {
131
- result[fieldName] = {
132
- relationTo: newRelation
133
- };
149
+ const hasChanged = newID !== oldID || newRelation !== oldRelation;
150
+ const hasUpdated = newRelation === externallyUpdatedRelationship?.entitySlug && newID === externallyUpdatedRelationship?.id;
151
+ // if the new value/relation is different from the old value/relation
152
+ // populate the new value, otherwise leave it alone
153
+ if (hasChanged || hasUpdated) {
154
+ // if the new value is not empty, populate it
155
+ // otherwise set the value to null
156
+ if (newID) {
157
+ if (!populationsByCollection[newRelation]) {
158
+ populationsByCollection[newRelation] = [];
134
159
  }
135
- populationPromises.push((0, _promise.promise)({
136
- id: newValue,
160
+ populationsByCollection[newRelation].push({
161
+ id: newID,
137
162
  accessor: 'value',
138
- apiRoute,
139
- collection: newRelation,
140
- depth,
141
- ref: result[fieldName],
142
- serverURL
143
- }));
163
+ ref: result[fieldName]
164
+ });
165
+ } else {
166
+ result[fieldName] = null;
144
167
  }
145
- } else {
146
- result[fieldName] = null;
147
168
  }
148
169
  } else {
149
170
  // Handle `hasOne` monomorphic
150
- const newID = typeof incomingData[fieldName] === 'string' && incomingData[fieldName] || typeof incomingData[fieldName] === 'object' && incomingData[fieldName] !== null && incomingData[fieldName].id || '';
151
- const oldID = typeof result[fieldName] === 'string' && result[fieldName] || typeof result[fieldName] === 'object' && result[fieldName] !== null && result[fieldName].id || '';
152
- if (newID !== oldID) {
171
+ const newID = incomingData[fieldName] && typeof incomingData[fieldName] === 'object' && incomingData[fieldName].id || incomingData[fieldName];
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;
175
+ // if the new value is different from the old value
176
+ // populate the new value, otherwise leave it alone
177
+ if (hasChanged || hasUpdated) {
178
+ // if the new value is not empty, populate it
179
+ // otherwise set the value to null
153
180
  if (newID) {
154
- populationPromises.push((0, _promise.promise)({
181
+ if (!populationsByCollection[fieldSchema.relationTo]) {
182
+ populationsByCollection[fieldSchema.relationTo] = [];
183
+ }
184
+ populationsByCollection[fieldSchema.relationTo].push({
155
185
  id: newID,
156
186
  accessor: fieldName,
157
- apiRoute,
158
- collection: String(fieldJSON.relationTo),
159
- depth,
160
- ref: result,
161
- serverURL
162
- }));
187
+ ref: result
188
+ });
163
189
  } else {
164
190
  result[fieldName] = null;
165
191
  }
@@ -172,7 +198,6 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
172
198
  }
173
199
  }
174
200
  });
175
- return null;
176
201
  };
177
202
 
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGZpZWxkU2NoZW1hVG9KU09OIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbnR5cGUgQXJnczxUPiA9IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxuICBmaWVsZFNjaGVtYTogUmV0dXJuVHlwZTx0eXBlb2YgZmllbGRTY2hlbWFUb0pTT04+XG4gIGluY29taW5nRGF0YTogVFxuICBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXVxuICByZXN1bHQ6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gPFQ+KHtcbiAgYXBpUm91dGUsXG4gIGRlcHRoLFxuICBmaWVsZFNjaGVtYSxcbiAgaW5jb21pbmdEYXRhLFxuICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gIHJlc3VsdCxcbiAgc2VydmVyVVJMLFxufTogQXJnczxUPik6IHZvaWQgPT4ge1xuICBmaWVsZFNjaGVtYS5mb3JFYWNoKChmaWVsZEpTT04pID0+IHtcbiAgICBpZiAoJ25hbWUnIGluIGZpZWxkSlNPTiAmJiB0eXBlb2YgZmllbGRKU09OLm5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZEpTT04ubmFtZVxuXG4gICAgICBzd2l0Y2ggKGZpZWxkSlNPTi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzRXhpc3RpbmdSb3cgPVxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzdWx0W2ZpZWxkTmFtZV0pICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdW2ldID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldICE9PSBudWxsXG5cbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93ID0gaGFzRXhpc3RpbmdSb3cgPyB7IC4uLnJlc3VsdFtmaWVsZE5hbWVdW2ldIH0gOiB7fVxuXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGRKU09OLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBpbmNvbWluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgcmVzdWx0OiBuZXdSb3csXG4gICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdSb3dcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnYmxvY2tzJzpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ubWFwKChpbmNvbWluZ0Jsb2NrLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGluY29taW5nQmxvY2tKU09OID0gZmllbGRKU09OLmJsb2Nrc1tpbmNvbWluZ0Jsb2NrLmJsb2NrVHlwZV1cblxuICAgICAgICAgICAgICAvLyBDb21wYXJlIHRoZSBpbmRleCBhbmQgaWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYmxvY2sgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlc3VsdFxuICAgICAgICAgICAgICAvLyBJZiBzbywgd2Ugd2FudCB0byB1c2UgdGhlIGV4aXN0aW5nIGJsb2NrIGFzIHRoZSBiYXNlLCBvdGhlcndpc2UgdGFrZSB0aGUgaW5jb21pbmcgYmxvY2tcbiAgICAgICAgICAgICAgLy8gRWl0aGVyIHdheSwgd2Ugd2lsbCB0cmF2ZXJzZSB0aGUgZmllbGRzIG9mIHRoZSBibG9jayB0byBwb3B1bGF0ZSByZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIGNvbnN0IGlzRXhpc3RpbmdCbG9jayA9XG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV1baV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXS5pZCA9PT0gaW5jb21pbmdCbG9jay5pZFxuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gaXNFeGlzdGluZ0Jsb2NrID8gcmVzdWx0W2ZpZWxkTmFtZV1baV0gOiBpbmNvbWluZ0Jsb2NrXG5cbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBpbmNvbWluZ0Jsb2NrSlNPTi5maWVsZHMsXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiBpbmNvbWluZ0Jsb2NrLFxuICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGJsb2NrLFxuICAgICAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gYmxvY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gW11cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3RhYnMnOlxuICAgICAgICBjYXNlICdncm91cCc6XG4gICAgICAgICAgaWYgKCFyZXN1bHRbZmllbGROYW1lXSkge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSB7fVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGRKU09OLmZpZWxkcyxcbiAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gfHwge30sXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtmaWVsZE5hbWVdLFxuICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICAgICAgaWYgKGZpZWxkSlNPTi5oYXNNYW55ICYmIEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0pKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dIDogW11cbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSlcbiAgICAgICAgICAgICAgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dLnNsaWNlKDAsIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmxlbmd0aClcbiAgICAgICAgICAgICAgOiBbXVxuXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5mb3JFYWNoKChyZWxhdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgICAvLyBIYW5kbGUgYGhhc01hbnlgIHBvbHltb3JwaGljXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkSlNPTi5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSUQgPSBleGlzdGluZ1ZhbHVlW2ldPy52YWx1ZT8uaWRcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSUQgIT09IHJlbGF0aW9uLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhbHVlW2ldPy5yZWxhdGlvblRvICE9PSByZWxhdGlvbi5yZWxhdGlvblRvXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVsYXRpb24ucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiByZWxhdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiByZWxhdGlvbi5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0W2ZpZWxkTmFtZV1baV0sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNNYW55YCBtb25vbW9ycGhpY1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSUQgPSBleGlzdGluZ1ZhbHVlW2ldPy5pZFxuXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nSUQgIT09IHJlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yOiBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IFN0cmluZyhmaWVsZEpTT04ucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNPbmVgIHBvbHltb3JwaGljXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZEpTT04ucmVsYXRpb25UbykpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzTmV3VmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gIT09IG51bGxcbiAgICAgICAgICAgICAgY29uc3QgaGFzT2xkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHRbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0udmFsdWUgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBuZXdSZWxhdGlvbiA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ucmVsYXRpb25UbyA6ICcnXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnZhbHVlIDogJydcbiAgICAgICAgICAgICAgY29uc3Qgb2xkUmVsYXRpb24gPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuXG4gICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3UmVsYXRpb24gIT09IG9sZFJlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IG5ld1JlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogbmV3UmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNPbmVgIG1vbm9tb3JwaGljXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0lEOiBzdHJpbmcgPVxuICAgICAgICAgICAgICAgICh0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gPT09ICdzdHJpbmcnICYmIGluY29taW5nRGF0YVtmaWVsZE5hbWVdKSB8fFxuICAgICAgICAgICAgICAgICh0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0uaWQpIHx8XG4gICAgICAgICAgICAgICAgJydcblxuICAgICAgICAgICAgICBjb25zdCBvbGRJRDogc3RyaW5nID1cbiAgICAgICAgICAgICAgICAodHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdID09PSAnc3RyaW5nJyAmJiByZXN1bHRbZmllbGROYW1lXSkgfHxcbiAgICAgICAgICAgICAgICAodHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdLmlkKSB8fFxuICAgICAgICAgICAgICAgICcnXG5cbiAgICAgICAgICAgICAgaWYgKG5ld0lEICE9PSBvbGRJRCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXdJRCkge1xuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBuZXdJRCxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogZmllbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IFN0cmluZyhmaWVsZEpTT04ucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFwaVJvdXRlIiwiZGVwdGgiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlc3VsdCIsInNlcnZlclVSTCIsImZvckVhY2giLCJmaWVsZEpTT04iLCJuYW1lIiwiZmllbGROYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInJvdyIsImkiLCJoYXNFeGlzdGluZ1JvdyIsIm5ld1JvdyIsImZpZWxkcyIsImluY29taW5nQmxvY2siLCJpbmNvbWluZ0Jsb2NrSlNPTiIsImJsb2NrcyIsImJsb2NrVHlwZSIsImlzRXhpc3RpbmdCbG9jayIsImlkIiwiYmxvY2siLCJoYXNNYW55IiwiZXhpc3RpbmdWYWx1ZSIsInNsaWNlIiwibGVuZ3RoIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwiZXhpc3RpbmdJRCIsInZhbHVlIiwicHVzaCIsInByb21pc2UiLCJhY2Nlc3NvciIsImNvbGxlY3Rpb24iLCJyZWYiLCJTdHJpbmciLCJoYXNOZXdWYWx1ZSIsImhhc09sZFZhbHVlIiwibmV3VmFsdWUiLCJuZXdSZWxhdGlvbiIsIm9sZFZhbHVlIiwib2xkUmVsYXRpb24iLCJuZXdJRCIsIm9sZElEIl0sIm1hcHBpbmdzIjoiOzs7OytCQWNhQTs7O2VBQUFBOzs7eUJBWlc7QUFZakIsTUFBTUEsaUJBQWlCLENBQUksRUFDaENDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxNQUFNLEVBQ05DLFNBQVMsRUFDRDtJQUNSSixZQUFZSyxPQUFPLENBQUMsQ0FBQ0M7UUFDbkIsSUFBSSxVQUFVQSxhQUFhLE9BQU9BLFVBQVVD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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,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.5",
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.0.11"
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,12 +0,0 @@
1
- type 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
- };
10
- export declare const promise: ({ id, accessor, apiRoute, collection, depth, ref, serverURL, }: Args) => Promise<void>;
11
- export {};
12
- //# sourceMappingURL=promise.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG;IACV,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,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,OAAO,mEAQjB,IAAI,KAAG,QAAQ,IAAI,CAMrB,CAAA"}
package/dist/promise.js DELETED
@@ -1,16 +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 ({ id, accessor, apiRoute, collection, depth, ref, serverURL })=>{
12
- const res = await fetch(`${serverURL}${apiRoute || '/api'}/${collection}/${id}?depth=${depth}`).then((res)=>res.json());
13
- ref[accessor] = res;
14
- };
15
-
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9taXNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgQXJncyA9IHtcbiAgYWNjZXNzb3I6IG51bWJlciB8IHN0cmluZ1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxuICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gIHJlZjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2VydmVyVVJMOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHByb21pc2UgPSBhc3luYyAoe1xuICBpZCxcbiAgYWNjZXNzb3IsXG4gIGFwaVJvdXRlLFxuICBjb2xsZWN0aW9uLFxuICBkZXB0aCxcbiAgcmVmLFxuICBzZXJ2ZXJVUkwsXG59OiBBcmdzKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJlczogYW55ID0gYXdhaXQgZmV0Y2goXG4gICAgYCR7c2VydmVyVVJMfSR7YXBpUm91dGUgfHwgJy9hcGknfS8ke2NvbGxlY3Rpb259LyR7aWR9P2RlcHRoPSR7ZGVwdGh9YCxcbiAgKS50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG5cbiAgcmVmW2FjY2Vzc29yXSA9IHJlc1xufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJpZCIsImFjY2Vzc29yIiwiYXBpUm91dGUiLCJjb2xsZWN0aW9uIiwiZGVwdGgiLCJyZWYiLCJzZXJ2ZXJVUkwiLCJyZXMiLCJmZXRjaCIsInRoZW4iLCJqc29uIl0sIm1hcHBpbmdzIjoiOzs7OytCQVVhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxVQUFVLE9BQU8sRUFDNUJDLEVBQUUsRUFDRkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLFVBQVUsRUFDVkMsS0FBSyxFQUNMQyxHQUFHLEVBQ0hDLFNBQVMsRUFDSjtJQUNMLE1BQU1DLE1BQVcsTUFBTUMsTUFDckIsQ0FBQyxFQUFFRixVQUFVLEVBQUVKLFlBQVksT0FBTyxDQUFDLEVBQUVDLFdBQVcsQ0FBQyxFQUFFSCxHQUFHLE9BQU8sRUFBRUksTUFBTSxDQUFDLEVBQ3RFSyxJQUFJLENBQUMsQ0FBQ0YsTUFBUUEsSUFBSUcsSUFBSTtJQUV4QkwsR0FBRyxDQUFDSixTQUFTLEdBQUdNO0FBQ2xCIn0=