@payloadcms/live-preview 0.1.4 → 0.1.5

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,8 +1,9 @@
1
+ import type { fieldSchemaToJSON } from 'payload/utilities';
1
2
  export type MergeLiveDataArgs<T> = {
2
3
  apiRoute?: string;
3
4
  depth: number;
4
- fieldSchema: Record<string, unknown>[];
5
- incomingData: T;
5
+ fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
6
+ incomingData: Partial<T>;
6
7
  initialData: T;
7
8
  serverURL: string;
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mergeData.d.ts","sourceRoot":"","sources":["../src/mergeData.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACtC,YAAY,EAAE,CAAC,CAAA;IACf,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":"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"}
package/dist/mergeData.js CHANGED
@@ -27,4 +27,4 @@ const mergeData = async ({ apiRoute, depth, fieldSchema, incomingData, initialDa
27
27
  return result;
28
28
  };
29
29
 
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG5leHBvcnQgdHlwZSBNZXJnZUxpdmVEYXRhQXJnczxUPiA9IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxuICBmaWVsZFNjaGVtYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICBpbmNvbWluZ0RhdGE6IFRcbiAgaW5pdGlhbERhdGE6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IG1lcmdlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGFwaVJvdXRlLFxuICBkZXB0aCxcbiAgZmllbGRTY2hlbWEsXG4gIGluY29taW5nRGF0YSxcbiAgaW5pdGlhbERhdGEsXG4gIHNlcnZlclVSTCxcbn06IE1lcmdlTGl2ZURhdGFBcmdzPFQ+KTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uaW5pdGlhbERhdGEgfVxuXG4gIGNvbnN0IHBvcHVsYXRpb25Qcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW11cblxuICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgYXBpUm91dGUsXG4gICAgZGVwdGgsXG4gICAgZmllbGRTY2hlbWEsXG4gICAgaW5jb21pbmdEYXRhLFxuICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICByZXN1bHQsXG4gICAgc2VydmVyVVJMLFxuICB9KVxuXG4gIGF3YWl0IFByb21pc2UuYWxsKHBvcHVsYXRpb25Qcm9taXNlcylcblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsibWVyZ2VEYXRhIiwiYXBpUm91dGUiLCJkZXB0aCIsImZpZWxkU2NoZW1hIiwiaW5jb21pbmdEYXRhIiwiaW5pdGlhbERhdGEiLCJzZXJ2ZXJVUkwiLCJyZXN1bHQiLCJwb3B1bGF0aW9uUHJvbWlzZXMiLCJ0cmF2ZXJzZUZpZWxkcyIsIlByb21pc2UiLCJhbGwiXSwibWFwcGluZ3MiOiI7Ozs7K0JBV2FBOzs7ZUFBQUE7OztnQ0FYa0I7QUFXeEIsTUFBTUEsWUFBWSxPQUFVLEVBQ2pDQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsU0FBUyxFQUNZO0lBQ3JCLE1BQU1DLFNBQVM7UUFBRSxHQUFHRixXQUFXO0lBQUM7SUFFaEMsTUFBTUcscUJBQXNDLEVBQUU7SUFFOUNDLElBQUFBLDhCQUFjLEVBQUM7UUFDYlI7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUk7UUFDQUQ7UUFDQUQ7SUFDRjtJQUVBLE1BQU1JLFFBQVFDLEdBQUcsQ0FBQ0g7SUFFbEIsT0FBT0Q7QUFDVCJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBmaWVsZFNjaGVtYVRvSlNPTiB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbmV4cG9ydCB0eXBlIE1lcmdlTGl2ZURhdGFBcmdzPFQ+ID0ge1xuICBhcGlSb3V0ZT86IHN0cmluZ1xuICBkZXB0aDogbnVtYmVyXG4gIGZpZWxkU2NoZW1hOiBSZXR1cm5UeXBlPHR5cGVvZiBmaWVsZFNjaGVtYVRvSlNPTj5cbiAgaW5jb21pbmdEYXRhOiBQYXJ0aWFsPFQ+XG4gIGluaXRpYWxEYXRhOiBUXG4gIHNlcnZlclVSTDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBtZXJnZURhdGEgPSBhc3luYyA8VD4oe1xuICBhcGlSb3V0ZSxcbiAgZGVwdGgsXG4gIGZpZWxkU2NoZW1hLFxuICBpbmNvbWluZ0RhdGEsXG4gIGluaXRpYWxEYXRhLFxuICBzZXJ2ZXJVUkwsXG59OiBNZXJnZUxpdmVEYXRhQXJnczxUPik6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCByZXN1bHQgPSB7IC4uLmluaXRpYWxEYXRhIH1cblxuICBjb25zdCBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdXG5cbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGFwaVJvdXRlLFxuICAgIGRlcHRoLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGluY29taW5nRGF0YSxcbiAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgcmVzdWx0LFxuICAgIHNlcnZlclVSTCxcbiAgfSlcblxuICBhd2FpdCBQcm9taXNlLmFsbChwb3B1bGF0aW9uUHJvbWlzZXMpXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIm1lcmdlRGF0YSIsImFwaVJvdXRlIiwiZGVwdGgiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSIsImluaXRpYWxEYXRhIiwic2VydmVyVVJMIiwicmVzdWx0IiwicG9wdWxhdGlvblByb21pc2VzIiwidHJhdmVyc2VGaWVsZHMiLCJQcm9taXNlIiwiYWxsIl0sIm1hcHBpbmdzIjoiOzs7OytCQWFhQTs7O2VBQUFBOzs7Z0NBWGtCO0FBV3hCLE1BQU1BLFlBQVksT0FBVSxFQUNqQ0MsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFNBQVMsRUFDWTtJQUNyQixNQUFNQyxTQUFTO1FBQUUsR0FBR0YsV0FBVztJQUFDO0lBRWhDLE1BQU1HLHFCQUFzQyxFQUFFO0lBRTlDQyxJQUFBQSw4QkFBYyxFQUFDO1FBQ2JSO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FJO1FBQ0FEO1FBQ0FEO0lBQ0Y7SUFFQSxNQUFNSSxRQUFRQyxHQUFHLENBQUNIO0lBRWxCLE9BQU9EO0FBQ1QifQ==
@@ -1,7 +1,8 @@
1
+ import type { fieldSchemaToJSON } from 'payload/utilities';
1
2
  type Args<T> = {
2
3
  apiRoute?: string;
3
4
  depth: number;
4
- fieldSchema: Record<string, unknown>[];
5
+ fieldSchema: ReturnType<typeof fieldSchemaToJSON>;
5
6
  incomingData: T;
6
7
  populationPromises: Promise<void>[];
7
8
  result: T;
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../src/traverseFields.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACtC,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,IAkNZ,CAAA"}
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"}
@@ -10,11 +10,10 @@ Object.defineProperty(exports, "traverseFields", {
10
10
  });
11
11
  const _promise = require("./promise");
12
12
  const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, populationPromises, result, serverURL })=>{
13
- fieldSchema.forEach((field)=>{
14
- if ('name' in field && typeof field.name === 'string') {
15
- // TODO: type this
16
- const fieldName = field.name;
17
- switch(field.type){
13
+ fieldSchema.forEach((fieldJSON)=>{
14
+ if ('name' in fieldJSON && typeof fieldJSON.name === 'string') {
15
+ const fieldName = fieldJSON.name;
16
+ switch(fieldJSON.type){
18
17
  case 'array':
19
18
  if (Array.isArray(incomingData[fieldName])) {
20
19
  result[fieldName] = incomingData[fieldName].map((row, i)=>{
@@ -25,7 +24,7 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
25
24
  traverseFields({
26
25
  apiRoute,
27
26
  depth,
28
- fieldSchema: field.fields,
27
+ fieldSchema: fieldJSON.fields,
29
28
  incomingData: row,
30
29
  populationPromises,
31
30
  result: newRow,
@@ -37,28 +36,29 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
37
36
  break;
38
37
  case 'blocks':
39
38
  if (Array.isArray(incomingData[fieldName])) {
40
- result[fieldName] = incomingData[fieldName].map((row, i)=>{
41
- const matchedBlock = field.blocks[row.blockType];
42
- const hasExistingRow = Array.isArray(result[fieldName]) && typeof result[fieldName][i] === 'object' && result[fieldName][i] !== null && result[fieldName][i].blockType === row.blockType;
43
- const newRow = hasExistingRow ? {
44
- ...result[fieldName][i]
45
- } : {
46
- blockType: matchedBlock.slug
47
- };
39
+ 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;
48
46
  traverseFields({
49
47
  apiRoute,
50
48
  depth,
51
- fieldSchema: matchedBlock.fields,
52
- incomingData: row,
49
+ fieldSchema: incomingBlockJSON.fields,
50
+ incomingData: incomingBlock,
53
51
  populationPromises,
54
- result: newRow,
52
+ result: block,
55
53
  serverURL
56
54
  });
57
- return newRow;
55
+ return block;
58
56
  });
57
+ } else {
58
+ result[fieldName] = [];
59
59
  }
60
60
  break;
61
- case 'tab':
61
+ case 'tabs':
62
62
  case 'group':
63
63
  if (!result[fieldName]) {
64
64
  result[fieldName] = {};
@@ -66,7 +66,7 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
66
66
  traverseFields({
67
67
  apiRoute,
68
68
  depth,
69
- fieldSchema: field.fields,
69
+ fieldSchema: fieldJSON.fields,
70
70
  incomingData: incomingData[fieldName] || {},
71
71
  populationPromises,
72
72
  result: result[fieldName],
@@ -75,7 +75,7 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
75
75
  break;
76
76
  case 'upload':
77
77
  case 'relationship':
78
- if (field.hasMany && Array.isArray(incomingData[fieldName])) {
78
+ if (fieldJSON.hasMany && Array.isArray(incomingData[fieldName])) {
79
79
  const existingValue = Array.isArray(result[fieldName]) ? [
80
80
  ...result[fieldName]
81
81
  ] : [];
@@ -84,7 +84,7 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
84
84
  ].slice(0, incomingData[fieldName].length) : [];
85
85
  incomingData[fieldName].forEach((relation, i)=>{
86
86
  // Handle `hasMany` polymorphic
87
- if (Array.isArray(field.relationTo)) {
87
+ if (Array.isArray(fieldJSON.relationTo)) {
88
88
  const existingID = existingValue[i]?.value?.id;
89
89
  if (existingID !== relation.value || existingValue[i]?.relationTo !== relation.relationTo) {
90
90
  result[fieldName][i] = {
@@ -101,14 +101,14 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
101
101
  }));
102
102
  }
103
103
  } else {
104
- // Handle `hasMany` singular
104
+ // Handle `hasMany` monomorphic
105
105
  const existingID = existingValue[i]?.id;
106
106
  if (existingID !== relation) {
107
107
  populationPromises.push((0, _promise.promise)({
108
108
  id: relation,
109
109
  accessor: i,
110
110
  apiRoute,
111
- collection: String(field.relationTo),
111
+ collection: String(fieldJSON.relationTo),
112
112
  depth,
113
113
  ref: result[fieldName],
114
114
  serverURL
@@ -118,7 +118,7 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
118
118
  });
119
119
  } else {
120
120
  // Handle `hasOne` polymorphic
121
- if (Array.isArray(field.relationTo)) {
121
+ if (Array.isArray(fieldJSON.relationTo)) {
122
122
  const hasNewValue = typeof incomingData[fieldName] === 'object' && incomingData[fieldName] !== null;
123
123
  const hasOldValue = typeof result[fieldName] === 'object' && result[fieldName] !== null;
124
124
  const newValue = hasNewValue ? incomingData[fieldName].value : '';
@@ -146,24 +146,23 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
146
146
  result[fieldName] = null;
147
147
  }
148
148
  } else {
149
- const hasNewValue = typeof incomingData[fieldName] === 'object' && incomingData[fieldName] !== null;
150
- const hasOldValue = typeof result[fieldName] === 'object' && result[fieldName] !== null;
151
- const newValue = hasNewValue ? incomingData[fieldName].value : '';
152
- const oldValue = hasOldValue ? result[fieldName].value : '';
153
- if (newValue !== oldValue) {
154
- if (newValue) {
149
+ // 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) {
153
+ if (newID) {
155
154
  populationPromises.push((0, _promise.promise)({
156
- id: newValue,
155
+ id: newID,
157
156
  accessor: fieldName,
158
157
  apiRoute,
159
- collection: String(field.relationTo),
158
+ collection: String(fieldJSON.relationTo),
160
159
  depth,
161
160
  ref: result,
162
161
  serverURL
163
162
  }));
163
+ } else {
164
+ result[fieldName] = null;
164
165
  }
165
- } else {
166
- result[fieldName] = null;
167
166
  }
168
167
  }
169
168
  }
@@ -176,4 +175,4 @@ const traverseFields = ({ apiRoute, depth, fieldSchema, incomingData, population
176
175
  return null;
177
176
  };
178
177
 
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlIH0gZnJvbSAnLi9wcm9taXNlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGFwaVJvdXRlPzogc3RyaW5nXG4gIGRlcHRoOiBudW1iZXJcbiAgZmllbGRTY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgaW5jb21pbmdEYXRhOiBUXG4gIHBvcHVsYXRpb25Qcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIHJlc3VsdDogVFxuICBzZXJ2ZXJVUkw6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSA8VD4oe1xuICBhcGlSb3V0ZSxcbiAgZGVwdGgsXG4gIGZpZWxkU2NoZW1hLFxuICBpbmNvbWluZ0RhdGEsXG4gIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgcmVzdWx0LFxuICBzZXJ2ZXJVUkwsXG59OiBBcmdzPFQ+KTogdm9pZCA9PiB7XG4gIGZpZWxkU2NoZW1hLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCduYW1lJyBpbiBmaWVsZCAmJiB0eXBlb2YgZmllbGQubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRPRE86IHR5cGUgdGhpc1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQubmFtZVxuXG4gICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGluY29taW5nRGF0YVtmaWVsZE5hbWVdKSkge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBoYXNFeGlzdGluZ1JvdyA9XG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV1baV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdSb3cgPSBoYXNFeGlzdGluZ1JvdyA/IHsgLi4ucmVzdWx0W2ZpZWxkTmFtZV1baV0gfSA6IHt9XG5cbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZC5maWVsZHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSwgLy8gVE9ETzogdHlwZSB0aGlzXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiByb3csXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogbmV3Um93LFxuICAgICAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gbmV3Um93XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ2Jsb2Nrcyc6XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0pKSB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IGluY29taW5nRGF0YVtmaWVsZE5hbWVdLm1hcCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRCbG9jayA9IGZpZWxkLmJsb2Nrc1tyb3cuYmxvY2tUeXBlXVxuXG4gICAgICAgICAgICAgIGNvbnN0IGhhc0V4aXN0aW5nUm93ID1cbiAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3VsdFtmaWVsZE5hbWVdKSAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHRbZmllbGROYW1lXVtpXSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldLmJsb2NrVHlwZSA9PT0gcm93LmJsb2NrVHlwZVxuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1JvdyA9IGhhc0V4aXN0aW5nUm93XG4gICAgICAgICAgICAgICAgPyB7IC4uLnJlc3VsdFtmaWVsZE5hbWVdW2ldIH1cbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tUeXBlOiBtYXRjaGVkQmxvY2suc2x1ZyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWE6IG1hdGNoZWRCbG9jay5maWVsZHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSwgLy8gVE9ETzogdHlwZSB0aGlzXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiByb3csXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogbmV3Um93LFxuICAgICAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gbmV3Um93XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcbiAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZC5maWVsZHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSwgLy8gVE9ETzogdHlwZSB0aGlzXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGE6IGluY29taW5nRGF0YVtmaWVsZE5hbWVdIHx8IHt9LFxuICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgcmVzdWx0OiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICd1cGxvYWQnOlxuICAgICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOlxuICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55ICYmIEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0pKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dIDogW11cbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSlcbiAgICAgICAgICAgICAgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dLnNsaWNlKDAsIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmxlbmd0aClcbiAgICAgICAgICAgICAgOiBbXVxuXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5mb3JFYWNoKChyZWxhdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgICAvLyBIYW5kbGUgYGhhc01hbnlgIHBvbHltb3JwaGljXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdJRCA9IGV4aXN0aW5nVmFsdWVbaV0/LnZhbHVlPy5pZFxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdJRCAhPT0gcmVsYXRpb24udmFsdWUgfHxcbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVmFsdWVbaV0/LnJlbGF0aW9uVG8gIT09IHJlbGF0aW9uLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldID0ge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGlvbi5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlbGF0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yOiAndmFsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IHJlbGF0aW9uLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXVtpXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYGhhc01hbnlgIHNpbmd1bGFyXG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdJRCA9IGV4aXN0aW5nVmFsdWVbaV0/LmlkXG5cbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdJRCAhPT0gcmVsYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6IGksXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogU3RyaW5nKGZpZWxkLnJlbGF0aW9uVG8pLFxuICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0W2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBgaGFzT25lYCBwb2x5bW9ycGhpY1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzTmV3VmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gIT09IG51bGxcbiAgICAgICAgICAgICAgY29uc3QgaGFzT2xkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHRbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0udmFsdWUgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBuZXdSZWxhdGlvbiA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ucmVsYXRpb25UbyA6ICcnXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnZhbHVlIDogJydcbiAgICAgICAgICAgICAgY29uc3Qgb2xkUmVsYXRpb24gPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuXG4gICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3UmVsYXRpb24gIT09IG9sZFJlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IG5ld1JlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogbmV3UmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzTmV3VmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gIT09IG51bGxcbiAgICAgICAgICAgICAgY29uc3QgaGFzT2xkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHRbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0udmFsdWUgOiAnJ1xuXG4gICAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gaGFzT2xkVmFsdWUgPyByZXN1bHRbZmllbGROYW1lXS52YWx1ZSA6ICcnXG5cbiAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogZmllbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IFN0cmluZyhmaWVsZC5yZWxhdGlvblRvKSxcbiAgICAgICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgICAgICByZWY6IHJlc3VsdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IGluY29taW5nRGF0YVtmaWVsZE5hbWVdXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhcGlSb3V0ZSIsImRlcHRoIiwiZmllbGRTY2hlbWEiLCJpbmNvbWluZ0RhdGEiLCJwb3B1bGF0aW9uUHJvbWlzZXMiLCJyZXN1bHQiLCJzZXJ2ZXJVUkwiLCJmb3JFYWNoIiwiZmllbGQiLCJuYW1lIiwiZmllbGROYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInJvdyIsImkiLCJoYXNFeGlzdGluZ1JvdyIsIm5ld1JvdyIsImZpZWxkcyIsIm1hdGNoZWRCbG9jayIsImJsb2NrcyIsImJsb2NrVHlwZSIsInNsdWciLCJoYXNNYW55IiwiZXhpc3RpbmdWYWx1ZSIsInNsaWNlIiwibGVuZ3RoIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwiZXhpc3RpbmdJRCIsInZhbHVlIiwiaWQiLCJwdXNoIiwicHJvbWlzZSIsImFjY2Vzc29yIiwiY29sbGVjdGlvbiIsInJlZiIsIlN0cmluZyIsImhhc05ld1ZhbHVlIiwiaGFzT2xkVmFsdWUiLCJuZXdWYWx1ZSIsIm5ld1JlbGF0aW9uIiwib2xkVmFsdWUiLCJvbGRSZWxhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFZYUE7OztlQUFBQTs7O3lCQVpXO0FBWWpCLE1BQU1BLGlCQUFpQixDQUFJLEVBQ2hDQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsTUFBTSxFQUNOQyxTQUFTLEVBQ0Q7SUFDUkosWUFBWUssT0FBTyxDQUFDLENBQUNDO1FBQ25CLElBQUksVUFBVUEsU0FBUyxPQUFPQSxNQUFNQyxJQUFJLEtBQUssVUFBVTtZQUNyRCxrQkFBa0I7WUFDbEIsTUFBTUMsWUFBWUYsTUFBTUMsSUFBSTtZQUU1QixPQUFRRCxNQUFNRyxJQUFJO2dCQUNoQixLQUFLO29CQUNILElBQUlDLE1BQU1DLE9BQU8sQ0FBQ1YsWUFBWSxDQUFDTyxVQUFVLEdBQUc7d0JBQzFDTCxNQUFNLENBQUNLLFVBQVUsR0FBR1AsWUFBWSxDQUFDTyxVQUFVLENBQUNJLEdBQUcsQ0FBQyxDQUFDQyxLQUFLQzs0QkFDcEQsTUFBTUMsaUJBQ0pMLE1BQU1DLE9BQU8sQ0FBQ1IsTUFBTSxDQUFDSyxVQUFVLEtBQy9CLE9BQU9MLE1BQU0sQ0FBQ0ssVUFBVSxDQUFDTSxFQUFFLEtBQUssWUFDaENYLE1BQU0sQ0FBQ0ssVUFBVSxDQUFDTSxFQUFFLEtBQUs7NEJBRTNCLE1BQU1FLFNBQVNELGlCQUFpQjtnQ0FBRSxHQUFHWixNQUFNLENBQUNLLFVBQVUsQ0FBQ00sRUFBRTs0QkFBQyxJQUFJLENBQUM7NEJBRS9EakIsZUFBZTtnQ0FDYkM7Z0NBQ0FDO2dDQUNBQyxhQUFhTSxNQUFNVyxNQUFNO2dDQUN6QmhCLGNBQWNZO2dDQUNkWDtnQ0FDQUMsUUFBUWE7Z0NBQ1JaOzRCQUNGOzRCQUVBLE9BQU9ZO3dCQUNU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
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmF2ZXJzZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGZpZWxkU2NoZW1hVG9KU09OIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbnR5cGUgQXJnczxUPiA9IHtcbiAgYXBpUm91dGU/OiBzdHJpbmdcbiAgZGVwdGg6IG51bWJlclxuICBmaWVsZFNjaGVtYTogUmV0dXJuVHlwZTx0eXBlb2YgZmllbGRTY2hlbWFUb0pTT04+XG4gIGluY29taW5nRGF0YTogVFxuICBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXVxuICByZXN1bHQ6IFRcbiAgc2VydmVyVVJMOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gPFQ+KHtcbiAgYXBpUm91dGUsXG4gIGRlcHRoLFxuICBmaWVsZFNjaGVtYSxcbiAgaW5jb21pbmdEYXRhLFxuICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gIHJlc3VsdCxcbiAgc2VydmVyVVJMLFxufTogQXJnczxUPik6IHZvaWQgPT4ge1xuICBmaWVsZFNjaGVtYS5mb3JFYWNoKChmaWVsZEpTT04pID0+IHtcbiAgICBpZiAoJ25hbWUnIGluIGZpZWxkSlNPTiAmJiB0eXBlb2YgZmllbGRKU09OLm5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZEpTT04ubmFtZVxuXG4gICAgICBzd2l0Y2ggKGZpZWxkSlNPTi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzRXhpc3RpbmdSb3cgPVxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzdWx0W2ZpZWxkTmFtZV0pICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdW2ldID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdW2ldICE9PSBudWxsXG5cbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93ID0gaGFzRXhpc3RpbmdSb3cgPyB7IC4uLnJlc3VsdFtmaWVsZE5hbWVdW2ldIH0gOiB7fVxuXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGRKU09OLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBpbmNvbWluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgcmVzdWx0OiBuZXdSb3csXG4gICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdSb3dcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnYmxvY2tzJzpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmNvbWluZ0RhdGFbZmllbGROYW1lXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ubWFwKChpbmNvbWluZ0Jsb2NrLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGluY29taW5nQmxvY2tKU09OID0gZmllbGRKU09OLmJsb2Nrc1tpbmNvbWluZ0Jsb2NrLmJsb2NrVHlwZV1cblxuICAgICAgICAgICAgICAvLyBDb21wYXJlIHRoZSBpbmRleCBhbmQgaWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYmxvY2sgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlc3VsdFxuICAgICAgICAgICAgICAvLyBJZiBzbywgd2Ugd2FudCB0byB1c2UgdGhlIGV4aXN0aW5nIGJsb2NrIGFzIHRoZSBiYXNlLCBvdGhlcndpc2UgdGFrZSB0aGUgaW5jb21pbmcgYmxvY2tcbiAgICAgICAgICAgICAgLy8gRWl0aGVyIHdheSwgd2Ugd2lsbCB0cmF2ZXJzZSB0aGUgZmllbGRzIG9mIHRoZSBibG9jayB0byBwb3B1bGF0ZSByZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIGNvbnN0IGlzRXhpc3RpbmdCbG9jayA9XG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0W2ZpZWxkTmFtZV1baV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV1baV0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXS5pZCA9PT0gaW5jb21pbmdCbG9jay5pZFxuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gaXNFeGlzdGluZ0Jsb2NrID8gcmVzdWx0W2ZpZWxkTmFtZV1baV0gOiBpbmNvbWluZ0Jsb2NrXG5cbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBpbmNvbWluZ0Jsb2NrSlNPTi5maWVsZHMsXG4gICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhOiBpbmNvbWluZ0Jsb2NrLFxuICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGJsb2NrLFxuICAgICAgICAgICAgICAgIHNlcnZlclVSTCxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gYmxvY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gW11cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3RhYnMnOlxuICAgICAgICBjYXNlICdncm91cCc6XG4gICAgICAgICAgaWYgKCFyZXN1bHRbZmllbGROYW1lXSkge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSB7fVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGRKU09OLmZpZWxkcyxcbiAgICAgICAgICAgIGluY29taW5nRGF0YTogaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gfHwge30sXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXN1bHQ6IHJlc3VsdFtmaWVsZE5hbWVdLFxuICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICAgICAgaWYgKGZpZWxkSlNPTi5oYXNNYW55ICYmIEFycmF5LmlzQXJyYXkoaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0pKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSkgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dIDogW11cbiAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gQXJyYXkuaXNBcnJheShyZXN1bHRbZmllbGROYW1lXSlcbiAgICAgICAgICAgICAgPyBbLi4ucmVzdWx0W2ZpZWxkTmFtZV1dLnNsaWNlKDAsIGluY29taW5nRGF0YVtmaWVsZE5hbWVdLmxlbmd0aClcbiAgICAgICAgICAgICAgOiBbXVxuXG4gICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXS5mb3JFYWNoKChyZWxhdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgICAvLyBIYW5kbGUgYGhhc01hbnlgIHBvbHltb3JwaGljXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkSlNPTi5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSUQgPSBleGlzdGluZ1ZhbHVlW2ldPy52YWx1ZT8uaWRcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSUQgIT09IHJlbGF0aW9uLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhbHVlW2ldPy5yZWxhdGlvblRvICE9PSByZWxhdGlvbi5yZWxhdGlvblRvXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVsYXRpb24ucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiByZWxhdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiByZWxhdGlvbi5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgICAgICAgIHJlZjogcmVzdWx0W2ZpZWxkTmFtZV1baV0sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNNYW55YCBtb25vbW9ycGhpY1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSUQgPSBleGlzdGluZ1ZhbHVlW2ldPy5pZFxuXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nSUQgIT09IHJlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yOiBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IFN0cmluZyhmaWVsZEpTT04ucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNPbmVgIHBvbHltb3JwaGljXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZEpTT04ucmVsYXRpb25UbykpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzTmV3VmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gIT09IG51bGxcbiAgICAgICAgICAgICAgY29uc3QgaGFzT2xkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHRbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiYgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGxcblxuICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0udmFsdWUgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBuZXdSZWxhdGlvbiA9IGhhc05ld1ZhbHVlID8gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0ucmVsYXRpb25UbyA6ICcnXG5cbiAgICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnZhbHVlIDogJydcbiAgICAgICAgICAgICAgY29uc3Qgb2xkUmVsYXRpb24gPSBoYXNPbGRWYWx1ZSA/IHJlc3VsdFtmaWVsZE5hbWVdLnJlbGF0aW9uVG8gOiAnJ1xuXG4gICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3UmVsYXRpb24gIT09IG9sZFJlbGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdFtmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IG5ld1JlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3I6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgYXBpUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogbmV3UmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHRbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJVUkwsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbZmllbGROYW1lXSA9IG51bGxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSGFuZGxlIGBoYXNPbmVgIG1vbm9tb3JwaGljXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0lEOiBzdHJpbmcgPVxuICAgICAgICAgICAgICAgICh0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gPT09ICdzdHJpbmcnICYmIGluY29taW5nRGF0YVtmaWVsZE5hbWVdKSB8fFxuICAgICAgICAgICAgICAgICh0eXBlb2YgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ0RhdGFbZmllbGROYW1lXSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV0uaWQpIHx8XG4gICAgICAgICAgICAgICAgJydcblxuICAgICAgICAgICAgICBjb25zdCBvbGRJRDogc3RyaW5nID1cbiAgICAgICAgICAgICAgICAodHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdID09PSAnc3RyaW5nJyAmJiByZXN1bHRbZmllbGROYW1lXSkgfHxcbiAgICAgICAgICAgICAgICAodHlwZW9mIHJlc3VsdFtmaWVsZE5hbWVdID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdLmlkKSB8fFxuICAgICAgICAgICAgICAgICcnXG5cbiAgICAgICAgICAgICAgaWYgKG5ld0lEICE9PSBvbGRJRCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXdJRCkge1xuICAgICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBuZXdJRCxcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NvcjogZmllbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaVJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IFN0cmluZyhmaWVsZEpTT04ucmVsYXRpb25UbyksXG4gICAgICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiByZXN1bHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyVVJMLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2ZpZWxkTmFtZV0gPSBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlc3VsdFtmaWVsZE5hbWVdID0gaW5jb21pbmdEYXRhW2ZpZWxkTmFtZV1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFwaVJvdXRlIiwiZGVwdGgiLCJmaWVsZFNjaGVtYSIsImluY29taW5nRGF0YSIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlc3VsdCIsInNlcnZlclVSTCIsImZvckVhY2giLCJmaWVsZEpTT04iLCJuYW1lIiwiZmllbGROYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInJvdyIsImkiLCJoYXNFeGlzdGluZ1JvdyIsIm5ld1JvdyIsImZpZWxkcyIsImluY29taW5nQmxvY2siLCJpbmNvbWluZ0Jsb2NrSlNPTiIsImJsb2NrcyIsImJsb2NrVHlwZSIsImlzRXhpc3RpbmdCbG9jayIsImlkIiwiYmxvY2siLCJoYXNNYW55IiwiZXhpc3RpbmdWYWx1ZSIsInNsaWNlIiwibGVuZ3RoIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwiZXhpc3RpbmdJRCIsInZhbHVlIiwicHVzaCIsInByb21pc2UiLCJhY2Nlc3NvciIsImNvbGxlY3Rpb24iLCJyZWYiLCJTdHJpbmciLCJoYXNOZXdWYWx1ZSIsImhhc09sZFZhbHVlIiwibmV3VmFsdWUiLCJuZXdSZWxhdGlvbiIsIm9sZFZhbHVlIiwib2xkUmVsYXRpb24iLCJuZXdJRCIsIm9sZElEIl0sIm1hcHBpbmdzIjoiOzs7OytCQWNhQTs7O2VBQUFBOzs7eUJBWlc7QUFZakIsTUFBTUEsaUJBQWlCLENBQUksRUFDaENDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxNQUFNLEVBQ05DLFNBQVMsRUFDRDtJQUNSSixZQUFZSyxPQUFPLENBQUMsQ0FBQ0M7UUFDbkIsSUFBSSxVQUFVQSxhQUFhLE9BQU9BLFVBQVVD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/live-preview",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "The official live preview JavaScript SDK for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -9,8 +9,11 @@
9
9
  "main": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts",
11
11
  "devDependencies": {
12
- "@payloadcms/eslint-config": "0.0.1",
13
- "payload": "2.0.8"
12
+ "@payloadcms/eslint-config": "1.0.0",
13
+ "payload": "2.0.11"
14
+ },
15
+ "peerDependencies": {
16
+ "payload": "^2.0.0"
14
17
  },
15
18
  "exports": null,
16
19
  "publishConfig": {