payload 2.0.11 → 2.0.12

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.
Files changed (154) hide show
  1. package/.eslintrc.js +58 -0
  2. package/dist/admin/components/elements/DocumentFields/index.d.ts +14 -0
  3. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -0
  4. package/dist/admin/components/elements/DocumentFields/index.js +70 -0
  5. package/dist/admin/components/{views/Global/Default → elements/DocumentFields}/index.scss +5 -13
  6. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -1
  8. package/dist/admin/components/elements/ListControls/index.d.ts +1 -2
  9. package/dist/admin/components/elements/ListControls/index.d.ts.map +1 -1
  10. package/dist/admin/components/elements/ListControls/index.js +14 -25
  11. package/dist/admin/components/elements/ListControls/types.d.ts +3 -0
  12. package/dist/admin/components/elements/ListControls/types.d.ts.map +1 -1
  13. package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  14. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +59 -14
  15. package/dist/admin/components/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  16. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +4 -3
  17. package/dist/admin/components/elements/ReactSelect/index.js +3 -3
  18. package/dist/admin/components/elements/ReactSelect/types.d.ts +0 -4
  19. package/dist/admin/components/elements/ReactSelect/types.d.ts.map +1 -1
  20. package/dist/admin/components/elements/SearchFilter/index.d.ts.map +1 -1
  21. package/dist/admin/components/elements/SearchFilter/index.js +4 -32
  22. package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -2
  23. package/dist/admin/components/elements/SearchFilter/types.d.ts.map +1 -1
  24. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
  25. package/dist/admin/components/forms/field-types/RichText/types.d.ts +6 -1
  26. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  27. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  28. package/dist/admin/components/views/Account/Default.js +27 -71
  29. package/dist/admin/components/views/Account/Settings/index.d.ts +6 -0
  30. package/dist/admin/components/views/Account/Settings/index.d.ts.map +1 -0
  31. package/dist/admin/components/views/Account/Settings/index.js +48 -0
  32. package/dist/admin/components/views/Account/Settings/index.scss +45 -0
  33. package/dist/admin/components/views/Account/index.scss +7 -35
  34. package/dist/admin/components/views/Global/Default/index.d.ts +0 -1
  35. package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
  36. package/dist/admin/components/views/Global/Default/index.js +14 -57
  37. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  38. package/dist/admin/components/views/collections/Edit/Default/index.js +25 -60
  39. package/dist/admin/components/views/collections/Edit/Default/index.scss +5 -158
  40. package/dist/admin/components/views/collections/List/Default.d.ts.map +1 -1
  41. package/dist/admin/components/views/collections/List/Default.js +7 -5
  42. package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
  43. package/dist/admin/components/views/collections/List/index.js +56 -6
  44. package/dist/admin/components/views/collections/List/types.d.ts +4 -0
  45. package/dist/admin/components/views/collections/List/types.d.ts.map +1 -1
  46. package/dist/admin/hooks/useUseAsTitle.d.ts +3 -0
  47. package/dist/admin/hooks/useUseAsTitle.d.ts.map +1 -0
  48. package/dist/admin/hooks/useUseAsTitle.js +24 -0
  49. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  50. package/dist/auth/operations/forgotPassword.js +4 -1
  51. package/dist/auth/operations/local/forgotPassword.js +2 -2
  52. package/dist/auth/operations/local/login.js +2 -2
  53. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  54. package/dist/auth/operations/local/resetPassword.js +2 -2
  55. package/dist/auth/operations/local/unlock.js +2 -2
  56. package/dist/auth/operations/local/verifyEmail.js +2 -2
  57. package/dist/auth/operations/login.d.ts.map +1 -1
  58. package/dist/auth/operations/login.js +9 -2
  59. package/dist/auth/operations/logout.d.ts.map +1 -1
  60. package/dist/auth/operations/logout.js +2 -1
  61. package/dist/auth/operations/me.d.ts.map +1 -1
  62. package/dist/auth/operations/me.js +2 -1
  63. package/dist/auth/operations/refresh.d.ts.map +1 -1
  64. package/dist/auth/operations/refresh.js +4 -1
  65. package/dist/collections/config/types.d.ts +33 -1
  66. package/dist/collections/config/types.d.ts.map +1 -1
  67. package/dist/collections/config/types.js +1 -1
  68. package/dist/collections/operations/create.d.ts.map +1 -1
  69. package/dist/collections/operations/create.js +21 -32
  70. package/dist/collections/operations/delete.d.ts.map +1 -1
  71. package/dist/collections/operations/delete.js +8 -2
  72. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  73. package/dist/collections/operations/deleteByID.js +8 -2
  74. package/dist/collections/operations/find.d.ts.map +1 -1
  75. package/dist/collections/operations/find.js +7 -2
  76. package/dist/collections/operations/findByID.d.ts.map +1 -1
  77. package/dist/collections/operations/findByID.js +7 -2
  78. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  79. package/dist/collections/operations/findVersionByID.js +5 -2
  80. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  81. package/dist/collections/operations/findVersions.js +5 -2
  82. package/dist/collections/operations/local/find.js +2 -2
  83. package/dist/collections/operations/local/findByID.js +2 -2
  84. package/dist/collections/operations/local/findVersionByID.js +2 -2
  85. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  86. package/dist/collections/operations/restoreVersion.js +7 -3
  87. package/dist/collections/operations/update.d.ts.map +1 -1
  88. package/dist/collections/operations/update.js +17 -6
  89. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  90. package/dist/collections/operations/updateByID.js +17 -6
  91. package/dist/collections/operations/utils.d.ts +21 -1
  92. package/dist/collections/operations/utils.d.ts.map +1 -1
  93. package/dist/collections/operations/utils.js +3 -2
  94. package/dist/config/schema.d.ts.map +1 -1
  95. package/dist/config/schema.js +4 -3
  96. package/dist/express/middleware/errorHandler.d.ts.map +1 -1
  97. package/dist/express/middleware/errorHandler.js +3 -3
  98. package/dist/fields/config/schema.d.ts.map +1 -1
  99. package/dist/fields/config/schema.js +5 -4
  100. package/dist/fields/config/types.d.ts +8 -1
  101. package/dist/fields/config/types.d.ts.map +1 -1
  102. package/dist/fields/config/types.js +1 -1
  103. package/dist/fields/hooks/afterChange/index.d.ts +3 -2
  104. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  105. package/dist/fields/hooks/afterChange/index.js +5 -3
  106. package/dist/fields/hooks/afterChange/promise.d.ts +5 -1
  107. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  108. package/dist/fields/hooks/afterChange/promise.js +17 -2
  109. package/dist/fields/hooks/afterChange/traverseFields.d.ts +5 -1
  110. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  111. package/dist/fields/hooks/afterChange/traverseFields.js +4 -2
  112. package/dist/fields/hooks/afterRead/index.d.ts +2 -1
  113. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  114. package/dist/fields/hooks/afterRead/index.js +5 -3
  115. package/dist/fields/hooks/afterRead/promise.d.ts +5 -1
  116. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  117. package/dist/fields/hooks/afterRead/promise.js +38 -4
  118. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -1
  119. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  120. package/dist/fields/hooks/afterRead/traverseFields.js +4 -2
  121. package/dist/fields/hooks/beforeChange/index.d.ts +3 -2
  122. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  123. package/dist/fields/hooks/beforeChange/index.js +5 -3
  124. package/dist/fields/hooks/beforeChange/promise.d.ts +5 -1
  125. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  126. package/dist/fields/hooks/beforeChange/promise.js +17 -2
  127. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +5 -1
  128. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  129. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -2
  130. package/dist/fields/hooks/beforeValidate/index.d.ts +3 -2
  131. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  132. package/dist/fields/hooks/beforeValidate/index.js +5 -3
  133. package/dist/fields/hooks/beforeValidate/promise.d.ts +5 -1
  134. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  135. package/dist/fields/hooks/beforeValidate/promise.js +19 -4
  136. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +5 -1
  137. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  138. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -2
  139. package/dist/globals/config/types.d.ts +16 -0
  140. package/dist/globals/config/types.d.ts.map +1 -1
  141. package/dist/globals/operations/findOne.d.ts.map +1 -1
  142. package/dist/globals/operations/findOne.js +7 -2
  143. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  144. package/dist/globals/operations/findVersionByID.js +7 -2
  145. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  146. package/dist/globals/operations/findVersions.js +5 -2
  147. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  148. package/dist/globals/operations/restoreVersion.js +9 -3
  149. package/dist/globals/operations/update.d.ts.map +1 -1
  150. package/dist/globals/operations/update.js +19 -6
  151. package/dist/graphql/errorHandler.js +2 -2
  152. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  153. package/dist/graphql/schema/buildObjectType.js +8 -3
  154. package/package.json +2 -2
@@ -16,7 +16,7 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises, findMany, flattenLocales, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc })=>{
19
+ const promise = async ({ collection, context, currentDepth, depth, doc, field, fieldPromises, findMany, flattenLocales, global, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc })=>{
20
20
  if ((0, _types.fieldAffectsData)(field) && field.hidden && typeof siblingDoc[field.name] !== 'undefined' && !showHiddenFields) {
21
21
  delete siblingDoc[field.name];
22
22
  }
@@ -76,8 +76,9 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
76
76
  case 'richText':
77
77
  {
78
78
  const editor = field?.editor;
79
- if (editor?.afterReadPromise) {
80
- const afterReadPromise = editor.afterReadPromise({
79
+ // This is run here AND in the GraphQL Resolver
80
+ if (editor?.populationPromise) {
81
+ const populationPromise = editor.populationPromise({
81
82
  currentDepth,
82
83
  depth,
83
84
  field,
@@ -86,6 +87,17 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
86
87
  showHiddenFields,
87
88
  siblingDoc
88
89
  });
90
+ if (populationPromise) {
91
+ populationPromises.push(populationPromise);
92
+ }
93
+ }
94
+ // This is only run here, independent of depth
95
+ if (editor?.afterReadPromise) {
96
+ const afterReadPromise = editor?.afterReadPromise({
97
+ field,
98
+ incomingEditorState: siblingDoc[field.name],
99
+ siblingDoc
100
+ });
89
101
  if (afterReadPromise) {
90
102
  populationPromises.push(afterReadPromise);
91
103
  }
@@ -116,8 +128,11 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
116
128
  if (shouldRunHookOnAllLocales) {
117
129
  const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value])=>(async ()=>{
118
130
  const hookedValue = await currentHook({
131
+ collection,
119
132
  context,
120
133
  data: doc,
134
+ field,
135
+ global,
121
136
  operation: 'read',
122
137
  originalDoc: doc,
123
138
  req,
@@ -131,9 +146,12 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
131
146
  await Promise.all(hookPromises);
132
147
  } else {
133
148
  const hookedValue = await currentHook({
149
+ collection,
134
150
  context,
135
151
  data: doc,
152
+ field,
136
153
  findMany,
154
+ global,
137
155
  operation: 'read',
138
156
  originalDoc: doc,
139
157
  req,
@@ -177,6 +195,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
177
195
  let groupDoc = siblingDoc[field.name];
178
196
  if (typeof siblingDoc[field.name] !== 'object') groupDoc = {};
179
197
  (0, _traverseFields.traverseFields)({
198
+ collection,
180
199
  context,
181
200
  currentDepth,
182
201
  depth,
@@ -185,6 +204,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
185
204
  fields: field.fields,
186
205
  findMany,
187
206
  flattenLocales,
207
+ global,
188
208
  overrideAccess,
189
209
  populationPromises,
190
210
  req,
@@ -199,6 +219,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
199
219
  if (Array.isArray(rows)) {
200
220
  rows.forEach((row)=>{
201
221
  (0, _traverseFields.traverseFields)({
222
+ collection,
202
223
  context,
203
224
  currentDepth,
204
225
  depth,
@@ -207,6 +228,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
207
228
  fields: field.fields,
208
229
  findMany,
209
230
  flattenLocales,
231
+ global,
210
232
  overrideAccess,
211
233
  populationPromises,
212
234
  req,
@@ -219,6 +241,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
219
241
  if (Array.isArray(localeRows)) {
220
242
  localeRows.forEach((row)=>{
221
243
  (0, _traverseFields.traverseFields)({
244
+ collection,
222
245
  context,
223
246
  currentDepth,
224
247
  depth,
@@ -227,6 +250,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
227
250
  fields: field.fields,
228
251
  findMany,
229
252
  flattenLocales,
253
+ global,
230
254
  overrideAccess,
231
255
  populationPromises,
232
256
  req,
@@ -249,6 +273,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
249
273
  const block = field.blocks.find((blockType)=>blockType.slug === row.blockType);
250
274
  if (block) {
251
275
  (0, _traverseFields.traverseFields)({
276
+ collection,
252
277
  context,
253
278
  currentDepth,
254
279
  depth,
@@ -257,6 +282,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
257
282
  fields: block.fields,
258
283
  findMany,
259
284
  flattenLocales,
285
+ global,
260
286
  overrideAccess,
261
287
  populationPromises,
262
288
  req,
@@ -272,6 +298,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
272
298
  const block = field.blocks.find((blockType)=>blockType.slug === row.blockType);
273
299
  if (block) {
274
300
  (0, _traverseFields.traverseFields)({
301
+ collection,
275
302
  context,
276
303
  currentDepth,
277
304
  depth,
@@ -280,6 +307,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
280
307
  fields: block.fields,
281
308
  findMany,
282
309
  flattenLocales,
310
+ global,
283
311
  overrideAccess,
284
312
  populationPromises,
285
313
  req,
@@ -299,6 +327,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
299
327
  case 'collapsible':
300
328
  {
301
329
  (0, _traverseFields.traverseFields)({
330
+ collection,
302
331
  context,
303
332
  currentDepth,
304
333
  depth,
@@ -307,6 +336,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
307
336
  fields: field.fields,
308
337
  findMany,
309
338
  flattenLocales,
339
+ global,
310
340
  overrideAccess,
311
341
  populationPromises,
312
342
  req,
@@ -323,6 +353,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
323
353
  if (typeof siblingDoc[field.name] !== 'object') tabDoc = {};
324
354
  }
325
355
  await (0, _traverseFields.traverseFields)({
356
+ collection,
326
357
  context,
327
358
  currentDepth,
328
359
  depth,
@@ -331,6 +362,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
331
362
  fields: field.fields,
332
363
  findMany,
333
364
  flattenLocales,
365
+ global,
334
366
  overrideAccess,
335
367
  populationPromises,
336
368
  req,
@@ -342,6 +374,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
342
374
  case 'tabs':
343
375
  {
344
376
  (0, _traverseFields.traverseFields)({
377
+ collection,
345
378
  context,
346
379
  currentDepth,
347
380
  depth,
@@ -353,6 +386,7 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
353
386
  })),
354
387
  findMany,
355
388
  flattenLocales,
389
+ global,
356
390
  overrideAccess,
357
391
  populationPromises,
358
392
  req,
@@ -368,4 +402,4 @@ const promise = async ({ context, currentDepth, depth, doc, field, fieldPromises
368
402
  }
369
403
  };
370
404
 
371
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SaWNoVGV4dC90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2UgZnJvbSAnLi9yZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZSdcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBjdXJyZW50RGVwdGg6IG51bWJlclxuICBkZXB0aDogbnVtYmVyXG4gIGRvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBmaWVsZFByb21pc2VzOiBQcm9taXNlPHZvaWQ+W11cbiAgZmluZE1hbnk6IGJvb2xlYW5cbiAgZmxhdHRlbkxvY2FsZXM6IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcG9wdWxhdGlvblByb21pc2VzOiBQcm9taXNlPHZvaWQ+W11cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzOiBib29sZWFuXG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHRoZSBmb2xsb3dpbmcgYWN0aW9ucywgaW4gb3JkZXI6XG4vLyAtIFJlbW92ZSBoaWRkZW4gZmllbGRzIGZyb20gcmVzcG9uc2Vcbi8vIC0gRmxhdHRlbiBsb2NhbGVzIGludG8gcmVxdWVzdGVkIGxvY2FsZVxuLy8gLSBTYW5pdGl6ZSBvdXRnb2luZyBkYXRhIChwb2ludCBmaWVsZCwgZXRjKVxuLy8gLSBFeGVjdXRlIGZpZWxkIGhvb2tzXG4vLyAtIEV4ZWN1dGUgcmVhZCBhY2Nlc3MgY29udHJvbFxuLy8gLSBQb3B1bGF0ZSByZWxhdGlvbnNoaXBzXG5cbmV4cG9ydCBjb25zdCBwcm9taXNlID0gYXN5bmMgKHtcbiAgY29udGV4dCxcbiAgY3VycmVudERlcHRoLFxuICBkZXB0aCxcbiAgZG9jLFxuICBmaWVsZCxcbiAgZmllbGRQcm9taXNlcyxcbiAgZmluZE1hbnksXG4gIGZsYXR0ZW5Mb2NhbGVzLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcG9wdWxhdGlvblByb21pc2VzLFxuICByZXEsXG4gIHNob3dIaWRkZW5GaWVsZHMsXG4gIHNpYmxpbmdEb2MsXG59OiBBcmdzKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGlmIChcbiAgICBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJlxuICAgIGZpZWxkLmhpZGRlbiAmJlxuICAgIHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICFzaG93SGlkZGVuRmllbGRzXG4gICkge1xuICAgIGRlbGV0ZSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG4gIH1cblxuICBjb25zdCBzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlID1cbiAgICBmbGF0dGVuTG9jYWxlcyAmJlxuICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgdHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gbnVsbCAmJlxuICAgIGZpZWxkLmxvY2FsaXplZCAmJlxuICAgIHJlcS5sb2NhbGUgIT09ICdhbGwnICYmXG4gICAgcmVxLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuXG4gIGlmIChzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlKSB7XG4gICAgLy8gcmVwbGFjZSBhY3R1YWwgdmFsdWUgd2l0aCBsb2NhbGl6ZWQgdmFsdWUgYmVmb3JlIHNhbml0aXppbmdcbiAgICAvLyB7IFtsb2NhbGVdOiBmaWVsZHMgfSAtPiBmaWVsZHNcbiAgICBjb25zdCB7IGxvY2FsZSB9ID0gcmVxXG4gICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdW2xvY2FsZV1cbiAgICBjb25zdCBmYWxsYmFja0xvY2FsZSA9XG4gICAgICByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uICYmXG4gICAgICByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uPy5mYWxsYmFjayAmJlxuICAgICAgcmVxLmZhbGxiYWNrTG9jYWxlXG5cbiAgICBsZXQgaG9pc3RlZFZhbHVlID0gdmFsdWVcblxuICAgIGlmIChmYWxsYmFja0xvY2FsZSAmJiBmYWxsYmFja0xvY2FsZSAhPT0gbG9jYWxlKSB7XG4gICAgICBjb25zdCBmYWxsYmFja1ZhbHVlID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVtmYWxsYmFja0xvY2FsZV1cbiAgICAgIGNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbFxuXG4gICAgICBpZiAoZmFsbGJhY2tWYWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICBjYXNlICd0ZXh0YXJlYSc6IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgaXNOdWxsT3JVbmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgaG9pc3RlZFZhbHVlID0gZmFsbGJhY2tWYWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgaG9pc3RlZFZhbHVlID0gZmFsbGJhY2tWYWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gaG9pc3RlZFZhbHVlXG4gIH1cblxuICAvLyBTYW5pdGl6ZSBvdXRnb2luZyBmaWVsZCB2YWx1ZVxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdncm91cCc6IHtcbiAgICAgIC8vIEZpbGwgZ3JvdXBzIHdpdGggZW1wdHkgb2JqZWN0cyBzbyBmaWVsZHMgd2l0aCBob29rcyB3aXRoaW4gZ3JvdXBzIGNhbiBwb3B1bGF0ZVxuICAgICAgLy8gdGhlbXNlbHZlcyB2aXJ0dWFsbHkgYXMgbmVjZXNzYXJ5XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgZmllbGQudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRhYkhhc05hbWUodGFiKSAmJlxuICAgICAgICAgICh0eXBlb2Ygc2libGluZ0RvY1t0YWIubmFtZV0gPT09ICd1bmRlZmluZWQnIHx8IHNpYmxpbmdEb2NbdGFiLm5hbWVdID09PSBudWxsKVxuICAgICAgICApIHtcbiAgICAgICAgICBzaWJsaW5nRG9jW3RhYi5uYW1lXSA9IHt9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncmljaFRleHQnOiB7XG4gICAgICBjb25zdCBlZGl0b3I6IFJpY2hUZXh0QWRhcHRlciA9IGZpZWxkPy5lZGl0b3JcbiAgICAgIGlmIChlZGl0b3I/LmFmdGVyUmVhZFByb21pc2UpIHtcbiAgICAgICAgY29uc3QgYWZ0ZXJSZWFkUHJvbWlzZSA9IGVkaXRvci5hZnRlclJlYWRQcm9taXNlKHtcbiAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoYWZ0ZXJSZWFkUHJvbWlzZSkge1xuICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKGFmdGVyUmVhZFByb21pc2UpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIGNvbnN0IHBvaW50RG9jID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocG9pbnREb2M/LmNvb3JkaW5hdGVzKSAmJiBwb2ludERvYy5jb29yZGluYXRlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHBvaW50RG9jLmNvb3JkaW5hdGVzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5hZnRlclJlYWQpIHtcbiAgICAgIGF3YWl0IGZpZWxkLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgY3VycmVudEhvb2spID0+IHtcbiAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgY29uc3Qgc2hvdWxkUnVuSG9va09uQWxsTG9jYWxlcyA9XG4gICAgICAgICAgZmllbGQubG9jYWxpemVkICYmXG4gICAgICAgICAgKHJlcS5sb2NhbGUgPT09ICdhbGwnIHx8ICFmbGF0dGVuTG9jYWxlcykgJiZcbiAgICAgICAgICB0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCdcblxuICAgICAgICBpZiAoc2hvdWxkUnVuSG9va09uQWxsTG9jYWxlcykge1xuICAgICAgICAgIGNvbnN0IGhvb2tQcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKHNpYmxpbmdEb2NbZmllbGQubmFtZV0pLm1hcCgoW2xvY2FsZSwgdmFsdWVdKSA9PlxuICAgICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaG9va2VkVmFsdWUgPSBhd2FpdCBjdXJyZW50SG9vayh7XG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhOiBkb2MsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAncmVhZCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEb2MsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgaWYgKGhvb2tlZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdW2xvY2FsZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpLFxuICAgICAgICAgIClcblxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGhvb2tQcm9taXNlcylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBob29rZWRWYWx1ZSA9IGF3YWl0IGN1cnJlbnRIb29rKHtcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBkYXRhOiBkb2MsXG4gICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogJ3JlYWQnLFxuICAgICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRG9jLFxuICAgICAgICAgICAgdmFsdWU6IHNpYmxpbmdEb2NbZmllbGQubmFtZV0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuICAgIH1cblxuICAgIC8vIEV4ZWN1dGUgYWNjZXNzIGNvbnRyb2xcbiAgICBpZiAoZmllbGQuYWNjZXNzICYmIGZpZWxkLmFjY2Vzcy5yZWFkKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBvdmVycmlkZUFjY2Vzc1xuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBhd2FpdCBmaWVsZC5hY2Nlc3MucmVhZCh7XG4gICAgICAgICAgICBpZDogZG9jLmlkIGFzIG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgICAgIGRhdGE6IGRvYyxcbiAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRG9jLFxuICAgICAgICAgIH0pXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGRlbGV0ZSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2Uoe1xuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdncm91cCc6IHtcbiAgICAgIGxldCBncm91cERvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIGdyb3VwRG9jID0ge31cblxuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgc2libGluZ0RvYzogZ3JvdXBEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgY29uc3Qgcm93cyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgc2libGluZ0RvYzogcm93IHx8IHt9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlICYmIHR5cGVvZiByb3dzID09PSAnb2JqZWN0JyAmJiByb3dzICE9PSBudWxsKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocm93cykuZm9yRWFjaCgobG9jYWxlUm93cykgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZVJvd3MpKSB7XG4gICAgICAgICAgICBsb2NhbGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgICAgZmluZE1hbnksXG4gICAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHJvdyB8fCB7fSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IFtdXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gcm93LmJsb2NrVHlwZSlcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcm93IHx8IHt9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlICYmIHR5cGVvZiByb3dzID09PSAnb2JqZWN0JyAmJiByb3dzICE9PSBudWxsKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocm93cykuZm9yRWFjaCgobG9jYWxlUm93cykgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZVJvd3MpKSB7XG4gICAgICAgICAgICBsb2NhbGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSByb3cuYmxvY2tUeXBlKVxuXG4gICAgICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3cgfHwge30sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyb3cnOlxuICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFiJzoge1xuICAgICAgbGV0IHRhYkRvYyA9IHNpYmxpbmdEb2NcbiAgICAgIGlmICh0YWJIYXNOYW1lKGZpZWxkKSkge1xuICAgICAgICB0YWJEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHRhYkRvYyA9IHt9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgZmluZE1hbnksXG4gICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIHNpYmxpbmdEb2M6IHRhYkRvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFicyc6IHtcbiAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsicHJvbWlzZSIsImNvbnRleHQiLCJjdXJyZW50RGVwdGgiLCJkZXB0aCIsImRvYyIsImZpZWxkIiwiZmllbGRQcm9taXNlcyIsImZpbmRNYW55IiwiZmxhdHRlbkxvY2FsZXMiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlcSIsInNob3dIaWRkZW5GaWVsZHMiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsImhpZGRlbiIsIm5hbWUiLCJzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlIiwibG9jYWxpemVkIiwibG9jYWxlIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsInZhbHVlIiwiZmFsbGJhY2tMb2NhbGUiLCJmYWxsYmFjayIsImhvaXN0ZWRWYWx1ZSIsImZhbGxiYWNrVmFsdWUiLCJpc051bGxPclVuZGVmaW5lZCIsInR5cGUiLCJ0YWJzIiwiZm9yRWFjaCIsInRhYiIsInRhYkhhc05hbWUiLCJlZGl0b3IiLCJhZnRlclJlYWRQcm9taXNlIiwicHVzaCIsInBvaW50RG9jIiwiQXJyYXkiLCJpc0FycmF5IiwiY29vcmRpbmF0ZXMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJob29rcyIsImFmdGVyUmVhZCIsInJlZHVjZSIsInByaW9ySG9vayIsImN1cnJlbnRIb29rIiwic2hvdWxkUnVuSG9va09uQWxsTG9jYWxlcyIsImhvb2tQcm9taXNlcyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJob29rZWRWYWx1ZSIsImRhdGEiLCJvcGVyYXRpb24iLCJvcmlnaW5hbERvYyIsInNpYmxpbmdEYXRhIiwiUHJvbWlzZSIsImFsbCIsInJlc29sdmUiLCJhY2Nlc3MiLCJyZWFkIiwicmVzdWx0IiwiaWQiLCJyZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZSIsImdyb3VwRG9jIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJyb3dzIiwicm93IiwidmFsdWVzIiwibG9jYWxlUm93cyIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsImJsb2NrVHlwZSIsInNsdWciLCJ0YWJEb2MiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFpQ3ZCQTs7O2VBQUFBOzs7dUJBNUJnQztzRkFDSDtnQ0FDWDs7Ozs7O0FBMEJ4QixNQUFNQSxVQUFVLE9BQU8sRUFDNUJDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxLQUFLLEVBQ0xDLEdBQUcsRUFDSEMsS0FBSyxFQUNMQyxhQUFhLEVBQ2JDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGtCQUFrQixFQUNsQkMsR0FBRyxFQUNIQyxnQkFBZ0IsRUFDaEJDLFVBQVUsRUFDTDtJQUNMLElBQ0VDLElBQUFBLHVCQUFnQixFQUFDVCxVQUNqQkEsTUFBTVUsTUFBTSxJQUNaLE9BQU9GLFVBQVUsQ0FBQ1IsTUFBTVcsSUFBSSxDQUFDLEtBQUssZUFDbEMsQ0FBQ0osa0JBQ0Q7UUFDQSxPQUFPQyxVQUFVLENBQUNSLE1BQU1XLElBQUksQ0FBQztJQUMvQjtJQUVBLE1BQU1DLDRCQUNKVCxrQkFDQU0sSUFBQUEsdUJBQWdCLEVBQUNULFVBQ2pCLE9BQU9RLFVBQVUsQ0FBQ1IsTUFBTVcsSUFBSSxDQUFDLEtBQUssWUFDbENILFVBQVUsQ0FBQ1IsTUFBTVcsSUFBSSxDQUFDLEtBQUssUUFDM0JYLE1BQU1hLFNBQVMsSUFDZlAsSUFBSVEsTUFBTSxLQUFLLFNBQ2ZSLElBQUlTLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxZQUFZO0lBRWpDLElBQUlMLDJCQUEyQjtRQUM3Qiw4REFBOEQ7UUFDOUQsaUNBQWlDO1FBQ2pDLE1BQU0sRUFBRUUsTUFBTSxFQUFFLEdBQUdSO1FBQ25CLE1BQU1ZLFFBQVFWLFVBQVUsQ0FBQ1IsTUFBTVcsSUFBSSxDQUFDLENBQUNHLE9BQU87UUFDNUMsTUFBTUssaUJBQ0piLElBQUlTLE9BQU8s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
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SaWNoVGV4dC90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHJlbGF0aW9uc2hpcFBvcHVsYXRpb25Qcm9taXNlIGZyb20gJy4vcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2UnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgY3VycmVudERlcHRoOiBudW1iZXJcbiAgZGVwdGg6IG51bWJlclxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGZpZWxkOiBGaWVsZCB8IFRhYkFzRmllbGRcbiAgZmllbGRQcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIGZpbmRNYW55OiBib29sZWFuXG4gIGZsYXR0ZW5Mb2NhbGVzOiBib29sZWFuXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBvdmVycmlkZUFjY2VzczogYm9vbGVhblxuICBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNob3dIaWRkZW5GaWVsZHM6IGJvb2xlYW5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpb25zLCBpbiBvcmRlcjpcbi8vIC0gUmVtb3ZlIGhpZGRlbiBmaWVsZHMgZnJvbSByZXNwb25zZVxuLy8gLSBGbGF0dGVuIGxvY2FsZXMgaW50byByZXF1ZXN0ZWQgbG9jYWxlXG4vLyAtIFNhbml0aXplIG91dGdvaW5nIGRhdGEgKHBvaW50IGZpZWxkLCBldGMpXG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3Ncbi8vIC0gRXhlY3V0ZSByZWFkIGFjY2VzcyBjb250cm9sXG4vLyAtIFBvcHVsYXRlIHJlbGF0aW9uc2hpcHNcblxuZXhwb3J0IGNvbnN0IHByb21pc2UgPSBhc3luYyAoe1xuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBjdXJyZW50RGVwdGgsXG4gIGRlcHRoLFxuICBkb2MsXG4gIGZpZWxkLFxuICBmaWVsZFByb21pc2VzLFxuICBmaW5kTWFueSxcbiAgZmxhdHRlbkxvY2FsZXMsXG4gIGdsb2JhbCxcbiAgb3ZlcnJpZGVBY2Nlc3MsXG4gIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgcmVxLFxuICBzaG93SGlkZGVuRmllbGRzLFxuICBzaWJsaW5nRG9jLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBpZiAoXG4gICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICBmaWVsZC5oaWRkZW4gJiZcbiAgICB0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAhc2hvd0hpZGRlbkZpZWxkc1xuICApIHtcbiAgICBkZWxldGUgc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkSG9pc3RMb2NhbGl6ZWRWYWx1ZSA9XG4gICAgZmxhdHRlbkxvY2FsZXMgJiZcbiAgICBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJlxuICAgIHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJlxuICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09IG51bGwgJiZcbiAgICBmaWVsZC5sb2NhbGl6ZWQgJiZcbiAgICByZXEubG9jYWxlICE9PSAnYWxsJyAmJlxuICAgIHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cblxuICBpZiAoc2hvdWxkSG9pc3RMb2NhbGl6ZWRWYWx1ZSkge1xuICAgIC8vIHJlcGxhY2UgYWN0dWFsIHZhbHVlIHdpdGggbG9jYWxpemVkIHZhbHVlIGJlZm9yZSBzYW5pdGl6aW5nXG4gICAgLy8geyBbbG9jYWxlXTogZmllbGRzIH0gLT4gZmllbGRzXG4gICAgY29uc3QgeyBsb2NhbGUgfSA9IHJlcVxuICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVtsb2NhbGVdXG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGUgPVxuICAgICAgcmVxLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiAmJlxuICAgICAgcmVxLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbj8uZmFsbGJhY2sgJiZcbiAgICAgIHJlcS5mYWxsYmFja0xvY2FsZVxuXG4gICAgbGV0IGhvaXN0ZWRWYWx1ZSA9IHZhbHVlXG5cbiAgICBpZiAoZmFsbGJhY2tMb2NhbGUgJiYgZmFsbGJhY2tMb2NhbGUgIT09IGxvY2FsZSkge1xuICAgICAgY29uc3QgZmFsbGJhY2tWYWx1ZSA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV1bZmFsbGJhY2tMb2NhbGVdXG4gICAgICBjb25zdCBpc051bGxPclVuZGVmaW5lZCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT09IG51bGxcblxuICAgICAgaWYgKGZhbGxiYWNrVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgY2FzZSAndGV4dGFyZWEnOiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IGlzTnVsbE9yVW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGhvaXN0ZWRWYWx1ZSA9IGZhbGxiYWNrVmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGhvaXN0ZWRWYWx1ZSA9IGZhbGxiYWNrVmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IGhvaXN0ZWRWYWx1ZVxuICB9XG5cbiAgLy8gU2FuaXRpemUgb3V0Z29pbmcgZmllbGQgdmFsdWVcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAvLyBGaWxsIGdyb3VwcyB3aXRoIGVtcHR5IG9iamVjdHMgc28gZmllbGRzIHdpdGggaG9va3Mgd2l0aGluIGdyb3VwcyBjYW4gcG9wdWxhdGVcbiAgICAgIC8vIHRoZW1zZWx2ZXMgdmlydHVhbGx5IGFzIG5lY2Vzc2FyeVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0ge31cbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAndGFicyc6IHtcbiAgICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0YWJIYXNOYW1lKHRhYikgJiZcbiAgICAgICAgICAodHlwZW9mIHNpYmxpbmdEb2NbdGFiLm5hbWVdID09PSAndW5kZWZpbmVkJyB8fCBzaWJsaW5nRG9jW3RhYi5uYW1lXSA9PT0gbnVsbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2libGluZ0RvY1t0YWIubmFtZV0gPSB7fVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3JpY2hUZXh0Jzoge1xuICAgICAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBmaWVsZD8uZWRpdG9yXG4gICAgICAvLyBUaGlzIGlzIHJ1biBoZXJlIEFORCBpbiB0aGUgR3JhcGhRTCBSZXNvbHZlclxuICAgICAgaWYgKGVkaXRvcj8ucG9wdWxhdGlvblByb21pc2UpIHtcbiAgICAgICAgY29uc3QgcG9wdWxhdGlvblByb21pc2UgPSBlZGl0b3IucG9wdWxhdGlvblByb21pc2Uoe1xuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChwb3B1bGF0aW9uUHJvbWlzZSkge1xuICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKHBvcHVsYXRpb25Qcm9taXNlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRoaXMgaXMgb25seSBydW4gaGVyZSwgaW5kZXBlbmRlbnQgb2YgZGVwdGhcbiAgICAgIGlmIChlZGl0b3I/LmFmdGVyUmVhZFByb21pc2UpIHtcbiAgICAgICAgY29uc3QgYWZ0ZXJSZWFkUHJvbWlzZSA9IGVkaXRvcj8uYWZ0ZXJSZWFkUHJvbWlzZSh7XG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaW5jb21pbmdFZGl0b3JTdGF0ZTogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBvYmplY3QsXG4gICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoYWZ0ZXJSZWFkUHJvbWlzZSkge1xuICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcy5wdXNoKGFmdGVyUmVhZFByb21pc2UpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIGNvbnN0IHBvaW50RG9jID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocG9pbnREb2M/LmNvb3JkaW5hdGVzKSAmJiBwb2ludERvYy5jb29yZGluYXRlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHBvaW50RG9jLmNvb3JkaW5hdGVzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5hZnRlclJlYWQpIHtcbiAgICAgIGF3YWl0IGZpZWxkLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgY3VycmVudEhvb2spID0+IHtcbiAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgY29uc3Qgc2hvdWxkUnVuSG9va09uQWxsTG9jYWxlcyA9XG4gICAgICAgICAgZmllbGQubG9jYWxpemVkICYmXG4gICAgICAgICAgKHJlcS5sb2NhbGUgPT09ICdhbGwnIHx8ICFmbGF0dGVuTG9jYWxlcykgJiZcbiAgICAgICAgICB0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCdcblxuICAgICAgICBpZiAoc2hvdWxkUnVuSG9va09uQWxsTG9jYWxlcykge1xuICAgICAgICAgIGNvbnN0IGhvb2tQcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKHNpYmxpbmdEb2NbZmllbGQubmFtZV0pLm1hcCgoW2xvY2FsZSwgdmFsdWVdKSA9PlxuICAgICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaG9va2VkVmFsdWUgPSBhd2FpdCBjdXJyZW50SG9vayh7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGRhdGE6IGRvYyxcbiAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAncmVhZCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEb2MsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgaWYgKGhvb2tlZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdW2xvY2FsZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpLFxuICAgICAgICAgIClcblxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGhvb2tQcm9taXNlcylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBob29rZWRWYWx1ZSA9IGF3YWl0IGN1cnJlbnRIb29rKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgZGF0YTogZG9jLFxuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogJ3JlYWQnLFxuICAgICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRG9jLFxuICAgICAgICAgICAgdmFsdWU6IHNpYmxpbmdEb2NbZmllbGQubmFtZV0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuICAgIH1cblxuICAgIC8vIEV4ZWN1dGUgYWNjZXNzIGNvbnRyb2xcbiAgICBpZiAoZmllbGQuYWNjZXNzICYmIGZpZWxkLmFjY2Vzcy5yZWFkKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBvdmVycmlkZUFjY2Vzc1xuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBhd2FpdCBmaWVsZC5hY2Nlc3MucmVhZCh7XG4gICAgICAgICAgICBpZDogZG9jLmlkIGFzIG51bWJlciB8IHN0cmluZyxcbiAgICAgICAgICAgIGRhdGE6IGRvYyxcbiAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRG9jLFxuICAgICAgICAgIH0pXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGRlbGV0ZSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2Uoe1xuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdncm91cCc6IHtcbiAgICAgIGxldCBncm91cERvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIGdyb3VwRG9jID0ge31cblxuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jOiBncm91cERvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgc2libGluZ0RvYzogcm93IHx8IHt9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlICYmIHR5cGVvZiByb3dzID09PSAnb2JqZWN0JyAmJiByb3dzICE9PSBudWxsKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocm93cykuZm9yRWFjaCgobG9jYWxlUm93cykgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZVJvd3MpKSB7XG4gICAgICAgICAgICBsb2NhbGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgICAgZmllbGRQcm9taXNlcyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHJvdyB8fCB7fSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IFtdXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gcm93LmJsb2NrVHlwZSlcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3cgfHwge30sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhvaXN0TG9jYWxpemVkVmFsdWUgJiYgdHlwZW9mIHJvd3MgPT09ICdvYmplY3QnICYmIHJvd3MgIT09IG51bGwpIHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhyb3dzKS5mb3JFYWNoKChsb2NhbGVSb3dzKSA9PiB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlUm93cykpIHtcbiAgICAgICAgICAgIGxvY2FsZVJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gZmllbGQuYmxvY2tzLmZpbmQoKGJsb2NrVHlwZSkgPT4gYmxvY2tUeXBlLnNsdWcgPT09IHJvdy5ibG9ja1R5cGUpXG5cbiAgICAgICAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3cgfHwge30sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyb3cnOlxuICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWInOiB7XG4gICAgICBsZXQgdGFiRG9jID0gc2libGluZ0RvY1xuICAgICAgaWYgKHRhYkhhc05hbWUoZmllbGQpKSB7XG4gICAgICAgIHRhYkRvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0JykgdGFiRG9jID0ge31cbiAgICAgIH1cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jOiB0YWJEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRQcm9taXNlcyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIsIHR5cGU6ICd0YWInIH0pKSxcbiAgICAgICAgZmluZE1hbnksXG4gICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsicHJvbWlzZSIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiY3VycmVudERlcHRoIiwiZGVwdGgiLCJkb2MiLCJmaWVsZCIsImZpZWxkUHJvbWlzZXMiLCJmaW5kTWFueSIsImZsYXR0ZW5Mb2NhbGVzIiwiZ2xvYmFsIiwib3ZlcnJpZGVBY2Nlc3MiLCJwb3B1bGF0aW9uUHJvbWlzZXMiLCJyZXEiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsImZpZWxkQWZmZWN0c0RhdGEiLCJoaWRkZW4iLCJuYW1lIiwic2hvdWxkSG9pc3RMb2NhbGl6ZWRWYWx1ZSIsImxvY2FsaXplZCIsImxvY2FsZSIsInBheWxvYWQiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJ2YWx1ZSIsImZhbGxiYWNrTG9jYWxlIiwiZmFsbGJhY2siLCJob2lzdGVkVmFsdWUiLCJmYWxsYmFja1ZhbHVlIiwiaXNOdWxsT3JVbmRlZmluZWQiLCJ0eXBlIiwidGFicyIsImZvckVhY2giLCJ0YWIiLCJ0YWJIYXNOYW1lIiwiZWRpdG9yIiwicG9wdWxhdGlvblByb21pc2UiLCJwdXNoIiwiYWZ0ZXJSZWFkUHJvbWlzZSIsImluY29taW5nRWRpdG9yU3RhdGUiLCJwb2ludERvYyIsIkFycmF5IiwiaXNBcnJheSIsImNvb3JkaW5hdGVzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiaG9va3MiLCJhZnRlclJlYWQiLCJyZWR1Y2UiLCJwcmlvckhvb2siLCJjdXJyZW50SG9vayIsInNob3VsZFJ1bkhvb2tPbkFsbExvY2FsZXMiLCJob29rUHJvbWlzZXMiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiaG9va2VkVmFsdWUiLCJkYXRhIiwib3BlcmF0aW9uIiwib3JpZ2luYWxEb2MiLCJzaWJsaW5nRGF0YSIsIlByb21pc2UiLCJhbGwiLCJyZXNvbHZlIiwiYWNjZXNzIiwicmVhZCIsInJlc3VsdCIsImlkIiwicmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2UiLCJncm91cERvYyIsInRyYXZlcnNlRmllbGRzIiwiZmllbGRzIiwicm93cyIsInJvdyIsInZhbHVlcyIsImxvY2FsZVJvd3MiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJibG9ja1R5cGUiLCJzbHVnIiwidGFiRG9jIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBcUN2QkE7OztlQUFBQTs7O3VCQTlCZ0M7c0ZBQ0g7Z0NBQ1g7Ozs7OztBQTRCeEIsTUFBTUEsVUFBVSxPQUFPLEVBQzVCQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxLQUFLLEVBQ0xDLEdBQUcsRUFDSEMsS0FBSyxFQUNMQyxhQUFhLEVBQ2JDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsa0JBQWtCLEVBQ2xCQyxHQUFHLEVBQ0hDLGdCQUFnQixFQUNoQkMsVUFBVSxFQUNMO0lBQ0wsSUFDRUMsSUFBQUEsdUJBQWdCLEVBQUNWLFVBQ2pCQSxNQUFNVyxNQUFNLElBQ1osT0FBT0YsVUFBVSxDQUFDVCxNQUFNWSxJQUFJLENBQUMsS0FBSyxlQUNsQyxDQUFDSixrQkFDRDtRQUNBLE9B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
@@ -1,6 +1,9 @@
1
+ import type { SanitizedCollectionConfig } from '../../../collections/config/types';
1
2
  import type { PayloadRequest, RequestContext } from '../../../express/types';
3
+ import type { SanitizedGlobalConfig } from '../../../globals/config/types';
2
4
  import type { Field, TabAsField } from '../../config/types';
3
5
  type Args = {
6
+ collection: SanitizedCollectionConfig | null;
4
7
  context: RequestContext;
5
8
  currentDepth: number;
6
9
  depth: number;
@@ -9,12 +12,13 @@ type Args = {
9
12
  fields: (Field | TabAsField)[];
10
13
  findMany: boolean;
11
14
  flattenLocales: boolean;
15
+ global: SanitizedGlobalConfig | null;
12
16
  overrideAccess: boolean;
13
17
  populationPromises: Promise<void>[];
14
18
  req: PayloadRequest;
15
19
  showHiddenFields: boolean;
16
20
  siblingDoc: Record<string, unknown>;
17
21
  };
18
- export declare const traverseFields: ({ context, currentDepth, depth, doc, fieldPromises, fields, findMany, flattenLocales, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc, }: Args) => void;
22
+ export declare const traverseFields: ({ collection, context, currentDepth, depth, doc, fieldPromises, fields, findMany, flattenLocales, global, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc, }: Args) => void;
19
23
  export {};
20
24
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,mKAcxB,IAAI,KAAG,IAoBT,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,cAAc,EAAE,OAAO,CAAA;IACvB,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,uLAgBxB,IAAI,KAAG,IAsBT,CAAA"}
@@ -9,9 +9,10 @@ Object.defineProperty(exports, "traverseFields", {
9
9
  }
10
10
  });
11
11
  const _promise = require("./promise");
12
- const traverseFields = ({ context, currentDepth, depth, doc, fieldPromises, fields, findMany, flattenLocales, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc })=>{
12
+ const traverseFields = ({ collection, context, currentDepth, depth, doc, fieldPromises, fields, findMany, flattenLocales, global, overrideAccess, populationPromises, req, showHiddenFields, siblingDoc })=>{
13
13
  fields.forEach((field)=>{
14
14
  fieldPromises.push((0, _promise.promise)({
15
+ collection,
15
16
  context,
16
17
  currentDepth,
17
18
  depth,
@@ -20,6 +21,7 @@ const traverseFields = ({ context, currentDepth, depth, doc, fieldPromises, fiel
20
21
  fieldPromises,
21
22
  findMany,
22
23
  flattenLocales,
24
+ global,
23
25
  overrideAccess,
24
26
  populationPromises,
25
27
  req,
@@ -29,4 +31,4 @@ const traverseFields = ({ context, currentDepth, depth, doc, fieldPromises, fiel
29
31
  });
30
32
  };
31
33
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkL3RyYXZlcnNlRmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgY3VycmVudERlcHRoOiBudW1iZXJcbiAgZGVwdGg6IG51bWJlclxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGZpZWxkUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXVxuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgZmluZE1hbnk6IGJvb2xlYW5cbiAgZmxhdHRlbkxvY2FsZXM6IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcG9wdWxhdGlvblByb21pc2VzOiBQcm9taXNlPHZvaWQ+W11cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzOiBib29sZWFuXG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZpZWxkcyA9ICh7XG4gIGNvbnRleHQsXG4gIGN1cnJlbnREZXB0aCxcbiAgZGVwdGgsXG4gIGRvYyxcbiAgZmllbGRQcm9taXNlcyxcbiAgZmllbGRzLFxuICBmaW5kTWFueSxcbiAgZmxhdHRlbkxvY2FsZXMsXG4gIG92ZXJyaWRlQWNjZXNzLFxuICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gIHJlcSxcbiAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgc2libGluZ0RvYyxcbn06IEFyZ3MpOiB2b2lkID0+IHtcbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgZmllbGRQcm9taXNlcy5wdXNoKFxuICAgICAgcHJvbWlzZSh7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGQsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpbmRNYW55LFxuICAgICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgfSksXG4gICAgKVxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiY29udGV4dCIsImN1cnJlbnREZXB0aCIsImRlcHRoIiwiZG9jIiwiZmllbGRQcm9taXNlcyIsImZpZWxkcyIsImZpbmRNYW55IiwiZmxhdHRlbkxvY2FsZXMiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlcSIsInNob3dIaWRkZW5GaWVsZHMiLCJzaWJsaW5nRG9jIiwiZm9yRWFjaCIsImZpZWxkIiwicHVzaCIsInByb21pc2UiXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUJhQTs7O2VBQUFBOzs7eUJBbEJXO0FBa0JqQixNQUFNQSxpQkFBaUIsQ0FBQyxFQUM3QkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLEtBQUssRUFDTEMsR0FBRyxFQUNIQyxhQUFhLEVBQ2JDLE1BQU0sRUFDTkMsUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsa0JBQWtCLEVBQ2xCQyxHQUFHLEVBQ0hDLGdCQUFnQixFQUNoQkMsVUFBVSxFQUNMO0lBQ0xQLE9BQU9RLE9BQU8sQ0FBQyxDQUFDQztRQUNkVixjQUFjVyxJQUFJLENBQ2hCQyxJQUFBQSxnQkFBTyxFQUFDO1lBQ05oQjtZQUNBQztZQUNBQztZQUNBQztZQUNBVztZQUNBVjtZQUNBRTtZQUNBQztZQUNBQztZQUNBQztZQUNBQztZQUNBQztZQUNBQztRQUNGO0lBRUo7QUFDRiJ9
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkL3RyYXZlcnNlRmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBwcm9taXNlIH0gZnJvbSAnLi9wcm9taXNlJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBudWxsXG4gIGNvbnRleHQ6IFJlcXVlc3RDb250ZXh0XG4gIGN1cnJlbnREZXB0aDogbnVtYmVyXG4gIGRlcHRoOiBudW1iZXJcbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBmaWVsZFByb21pc2VzOiBQcm9taXNlPHZvaWQ+W11cbiAgZmllbGRzOiAoRmllbGQgfCBUYWJBc0ZpZWxkKVtdXG4gIGZpbmRNYW55OiBib29sZWFuXG4gIGZsYXR0ZW5Mb2NhbGVzOiBib29sZWFuXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBvdmVycmlkZUFjY2VzczogYm9vbGVhblxuICBwb3B1bGF0aW9uUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNob3dIaWRkZW5GaWVsZHM6IGJvb2xlYW5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gKHtcbiAgY29sbGVjdGlvbixcbiAgY29udGV4dCxcbiAgY3VycmVudERlcHRoLFxuICBkZXB0aCxcbiAgZG9jLFxuICBmaWVsZFByb21pc2VzLFxuICBmaWVsZHMsXG4gIGZpbmRNYW55LFxuICBmbGF0dGVuTG9jYWxlcyxcbiAgZ2xvYmFsLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcG9wdWxhdGlvblByb21pc2VzLFxuICByZXEsXG4gIHNob3dIaWRkZW5GaWVsZHMsXG4gIHNpYmxpbmdEb2MsXG59OiBBcmdzKTogdm9pZCA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGZpZWxkUHJvbWlzZXMucHVzaChcbiAgICAgIHByb21pc2Uoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjdXJyZW50RGVwdGgsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgfSksXG4gICAgKVxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJjdXJyZW50RGVwdGgiLCJkZXB0aCIsImRvYyIsImZpZWxkUHJvbWlzZXMiLCJmaWVsZHMiLCJmaW5kTWFueSIsImZsYXR0ZW5Mb2NhbGVzIiwiZ2xvYmFsIiwib3ZlcnJpZGVBY2Nlc3MiLCJwb3B1bGF0aW9uUHJvbWlzZXMiLCJyZXEiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsImZvckVhY2giLCJmaWVsZCIsInB1c2giLCJwcm9taXNlIl0sIm1hcHBpbmdzIjoiOzs7OytCQXlCYUE7OztlQUFBQTs7O3lCQXBCVztBQW9CakIsTUFBTUEsaUJBQWlCLENBQUMsRUFDN0JDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLEtBQUssRUFDTEMsR0FBRyxFQUNIQyxhQUFhLEVBQ2JDLE1BQU0sRUFDTkMsUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLEdBQUcsRUFDSEMsZ0JBQWdCLEVBQ2hCQyxVQUFVLEVBQ0w7SUFDTFIsT0FBT1MsT0FBTyxDQUFDLENBQUNDO1FBQ2RYLGNBQWNZLElBQUksQ0FDaEJDLElBQUFBLGdCQUFPLEVBQUM7WUFDTmxCO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FZO1lBQ0FYO1lBQ0FFO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1FBQ0Y7SUFFSjtBQUNGIn0=
@@ -3,16 +3,17 @@ import type { PayloadRequest, RequestContext } from '../../../express/types';
3
3
  import type { SanitizedGlobalConfig } from '../../../globals/config/types';
4
4
  import type { Operation } from '../../../types';
5
5
  type Args<T> = {
6
+ collection: SanitizedCollectionConfig | null;
6
7
  context: RequestContext;
7
8
  data: Record<string, unknown> | T;
8
9
  doc: Record<string, unknown> | T;
9
10
  docWithLocales: Record<string, unknown>;
10
- entityConfig: SanitizedCollectionConfig | SanitizedGlobalConfig;
11
+ global: SanitizedGlobalConfig | null;
11
12
  id?: number | string;
12
13
  operation: Operation;
13
14
  req: PayloadRequest;
14
15
  skipValidation?: boolean;
15
16
  };
16
- export declare const beforeChange: <T extends Record<string, unknown>>({ id, context, data: incomingData, doc, docWithLocales, entityConfig, operation, req, skipValidation, }: Args<T>) => Promise<T>;
17
+ export declare const beforeChange: <T extends Record<string, unknown>>({ id, collection, context, data: incomingData, doc, docWithLocales, global, operation, req, skipValidation, }: Args<T>) => Promise<T>;
17
18
  export {};
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM/C,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IAC/D,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,YAAY,qKAwCxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM/C,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,YAAY,2KA2CxB,CAAA"}
@@ -11,18 +11,20 @@ Object.defineProperty(exports, "beforeChange", {
11
11
  const _errors = require("../../../errors");
12
12
  const _deepCopyObject = require("../../../utilities/deepCopyObject");
13
13
  const _traverseFields = require("./traverseFields");
14
- const beforeChange = async ({ id, context, data: incomingData, doc, docWithLocales, entityConfig, operation, req, skipValidation })=>{
14
+ const beforeChange = async ({ id, collection, context, data: incomingData, doc, docWithLocales, global, operation, req, skipValidation })=>{
15
15
  const data = (0, _deepCopyObject.deepCopyObject)(incomingData);
16
16
  const mergeLocaleActions = [];
17
17
  const errors = [];
18
18
  await (0, _traverseFields.traverseFields)({
19
19
  id,
20
+ collection,
20
21
  context,
21
22
  data,
22
23
  doc,
23
24
  docWithLocales,
24
25
  errors,
25
- fields: entityConfig.fields,
26
+ fields: collection?.fields || global?.fields,
27
+ global,
26
28
  mergeLocaleActions,
27
29
  operation,
28
30
  path: '',
@@ -39,4 +41,4 @@ const beforeChange = async ({ id, context, data: incomingData, doc, docWithLocal
39
41
  return data;
40
42
  };
41
43
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBkZWVwQ29weU9iamVjdCB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IFRcbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IFRcbiAgZG9jV2l0aExvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGVudGl0eUNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246IE9wZXJhdGlvblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNraXBWYWxpZGF0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgYmVmb3JlQ2hhbmdlID0gYXN5bmMgPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe1xuICBpZCxcbiAgY29udGV4dCxcbiAgZGF0YTogaW5jb21pbmdEYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBlbnRpdHlDb25maWcsXG4gIG9wZXJhdGlvbixcbiAgcmVxLFxuICBza2lwVmFsaWRhdGlvbixcbn06IEFyZ3M8VD4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgZGF0YSA9IGRlZXBDb3B5T2JqZWN0KGluY29taW5nRGF0YSlcbiAgY29uc3QgbWVyZ2VMb2NhbGVBY3Rpb25zID0gW11cbiAgY29uc3QgZXJyb3JzOiB7IGZpZWxkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXVxuXG4gIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICBpZCxcbiAgICBjb250ZXh0LFxuICAgIGRhdGEsXG4gICAgZG9jLFxuICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgIGVycm9ycyxcbiAgICBmaWVsZHM6IGVudGl0eUNvbmZpZy5maWVsZHMsXG4gICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgIG9wZXJhdGlvbixcbiAgICBwYXRoOiAnJyxcbiAgICByZXEsXG4gICAgc2libGluZ0RhdGE6IGRhdGEsXG4gICAgc2libGluZ0RvYzogZG9jLFxuICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlczogZG9jV2l0aExvY2FsZXMsXG4gICAgc2tpcFZhbGlkYXRpb24sXG4gIH0pXG5cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMsIHJlcS50KVxuICB9XG5cbiAgbWVyZ2VMb2NhbGVBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uKCkpXG5cbiAgcmV0dXJuIGRhdGFcbn1cbiJdLCJuYW1lcyI6WyJiZWZvcmVDaGFuZ2UiLCJpZCIsImNvbnRleHQiLCJkYXRhIiwiaW5jb21pbmdEYXRhIiwiZG9jIiwiZG9jV2l0aExvY2FsZXMiLCJlbnRpdHlDb25maWciLCJvcGVyYXRpb24iLCJyZXEiLCJza2lwVmFsaWRhdGlvbiIsImRlZXBDb3B5T2JqZWN0IiwibWVyZ2VMb2NhbGVBY3Rpb25zIiwiZXJyb3JzIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJwYXRoIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwibGVuZ3RoIiwiVmFsaWRhdGlvbkVycm9yIiwidCIsImZvckVhY2giLCJhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUJhQTs7O2VBQUFBOzs7d0JBaEJtQjtnQ0FDRDtnQ0FDQTtBQWN4QixNQUFNQSxlQUFlLE9BQTBDLEVBQ3BFQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsTUFBTUMsWUFBWSxFQUNsQkMsR0FBRyxFQUNIQyxjQUFjLEVBQ2RDLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxHQUFHLEVBQ0hDLGNBQWMsRUFDTjtJQUNSLE1BQU1QLE9BQU9RLElBQUFBLDhCQUFjLEVBQUNQO0lBQzVCLE1BQU1RLHFCQUFxQixFQUFFO0lBQzdCLE1BQU1DLFNBQStDLEVBQUU7SUFFdkQsTUFBTUMsSUFBQUEsOEJBQWMsRUFBQztRQUNuQmI7UUFDQUM7UUFDQUM7UUFDQUU7UUFDQUM7UUFDQU87UUFDQUUsUUFBUVIsYUFBYVEsTUFBTTtRQUMzQkg7UUFDQUo7UUFDQVEsTUFBTTtRQUNOUDtRQUNBUSxhQUFhZDtRQUNiZSxZQUFZYjtRQUNaYyx1QkFBdUJiO1FBQ3ZCSTtJQUNGO0lBRUEsSUFBSUcsT0FBT08sTUFBTSxHQUFHLEdBQUc7UUFDckIsTUFBTSxJQUFJQyx1QkFBZSxDQUFDUixRQUFRSixJQUFJYSxDQUFDO0lBQ3pDO0lBRUFWLG1CQUFtQlcsT0FBTyxDQUFDLENBQUNDLFNBQVdBO0lBRXZDLE9BQU9yQjtBQUNUIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBkZWVwQ29weU9iamVjdCB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IFRcbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IFRcbiAgZG9jV2l0aExvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246IE9wZXJhdGlvblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNraXBWYWxpZGF0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgYmVmb3JlQ2hhbmdlID0gYXN5bmMgPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe1xuICBpZCxcbiAgY29sbGVjdGlvbixcbiAgY29udGV4dCxcbiAgZGF0YTogaW5jb21pbmdEYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBnbG9iYWwsXG4gIG9wZXJhdGlvbixcbiAgcmVxLFxuICBza2lwVmFsaWRhdGlvbixcbn06IEFyZ3M8VD4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgZGF0YSA9IGRlZXBDb3B5T2JqZWN0KGluY29taW5nRGF0YSlcbiAgY29uc3QgbWVyZ2VMb2NhbGVBY3Rpb25zID0gW11cbiAgY29uc3QgZXJyb3JzOiB7IGZpZWxkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXVxuXG4gIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICBpZCxcbiAgICBjb2xsZWN0aW9uLFxuICAgIGNvbnRleHQsXG4gICAgZGF0YSxcbiAgICBkb2MsXG4gICAgZG9jV2l0aExvY2FsZXMsXG4gICAgZXJyb3JzLFxuICAgIGZpZWxkczogY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgIGdsb2JhbCxcbiAgICBtZXJnZUxvY2FsZUFjdGlvbnMsXG4gICAgb3BlcmF0aW9uLFxuICAgIHBhdGg6ICcnLFxuICAgIHJlcSxcbiAgICBzaWJsaW5nRGF0YTogZGF0YSxcbiAgICBzaWJsaW5nRG9jOiBkb2MsXG4gICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBkb2NXaXRoTG9jYWxlcyxcbiAgICBza2lwVmFsaWRhdGlvbixcbiAgfSlcblxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycywgcmVxLnQpXG4gIH1cblxuICBtZXJnZUxvY2FsZUFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24oKSlcblxuICByZXR1cm4gZGF0YVxufVxuIl0sIm5hbWVzIjpbImJlZm9yZUNoYW5nZSIsImlkIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJkYXRhIiwiaW5jb21pbmdEYXRhIiwiZG9jIiwiZG9jV2l0aExvY2FsZXMiLCJnbG9iYWwiLCJvcGVyYXRpb24iLCJyZXEiLCJza2lwVmFsaWRhdGlvbiIsImRlZXBDb3B5T2JqZWN0IiwibWVyZ2VMb2NhbGVBY3Rpb25zIiwiZXJyb3JzIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJwYXRoIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwibGVuZ3RoIiwiVmFsaWRhdGlvbkVycm9yIiwidCIsImZvckVhY2giLCJhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBc0JhQTs7O2VBQUFBOzs7d0JBakJtQjtnQ0FDRDtnQ0FDQTtBQWV4QixNQUFNQSxlQUFlLE9BQTBDLEVBQ3BFQyxFQUFFLEVBQ0ZDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxNQUFNQyxZQUFZLEVBQ2xCQyxHQUFHLEVBQ0hDLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLEdBQUcsRUFDSEMsY0FBYyxFQUNOO0lBQ1IsTUFBTVAsT0FBT1EsSUFBQUEsOEJBQWMsRUFBQ1A7SUFDNUIsTUFBTVEscUJBQXFCLEVBQUU7SUFDN0IsTUFBTUMsU0FBK0MsRUFBRTtJQUV2RCxNQUFNQyxJQUFBQSw4QkFBYyxFQUFDO1FBQ25CZDtRQUNBQztRQUNBQztRQUNBQztRQUNBRTtRQUNBQztRQUNBTztRQUNBRSxRQUFRZCxZQUFZYyxVQUFVUixRQUFRUTtRQUN0Q1I7UUFDQUs7UUFDQUo7UUFDQVEsTUFBTTtRQUNOUDtRQUNBUSxhQUFhZDtRQUNiZSxZQUFZYjtRQUNaYyx1QkFBdUJiO1FBQ3ZCSTtJQUNGO0lBRUEsSUFBSUcsT0FBT08sTUFBTSxHQUFHLEdBQUc7UUFDckIsTUFBTSxJQUFJQyx1QkFBZSxDQUFDUixRQUFRSixJQUFJYSxDQUFDO0lBQ3pDO0lBRUFWLG1CQUFtQlcsT0FBTyxDQUFDLENBQUNDLFNBQVdBO0lBRXZDLE9BQU9yQjtBQUNUIn0=
@@ -1,7 +1,10 @@
1
+ import type { SanitizedCollectionConfig } from '../../../collections/config/types';
1
2
  import type { PayloadRequest, RequestContext } from '../../../express/types';
3
+ import type { SanitizedGlobalConfig } from '../../../globals/config/types';
2
4
  import type { Operation } from '../../../types';
3
5
  import type { Field, TabAsField } from '../../config/types';
4
6
  type Args = {
7
+ collection: SanitizedCollectionConfig | null;
5
8
  context: RequestContext;
6
9
  data: Record<string, unknown>;
7
10
  doc: Record<string, unknown>;
@@ -11,6 +14,7 @@ type Args = {
11
14
  message: string;
12
15
  }[];
13
16
  field: Field | TabAsField;
17
+ global: SanitizedGlobalConfig | null;
14
18
  id?: number | string;
15
19
  mergeLocaleActions: (() => void)[];
16
20
  operation: Operation;
@@ -21,6 +25,6 @@ type Args = {
21
25
  siblingDocWithLocales?: Record<string, unknown>;
22
26
  skipValidation: boolean;
23
27
  };
24
- export declare const promise: ({ id, context, data, doc, docWithLocales, errors, field, mergeLocaleActions, operation, path, req, siblingData, siblingDoc, siblingDocWithLocales, skipValidation, }: Args) => Promise<void>;
28
+ export declare const promise: ({ id, collection, context, data, doc, docWithLocales, errors, field, global, mergeLocaleActions, operation, path, req, siblingData, siblingDoc, siblingDocWithLocales, skipValidation, }: Args) => Promise<void>;
25
29
  export {};
26
30
  //# sourceMappingURL=promise.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAM3D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AASD,eAAO,MAAM,OAAO,yKAgBjB,IAAI,KAAG,QAAQ,IAAI,CA0TrB,CAAA"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAM3D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AASD,eAAO,MAAM,OAAO,6LAkBjB,IAAI,KAAG,QAAQ,IAAI,CAyUrB,CAAA"}