payload 2.8.2 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/dist/admin/components/elements/DeleteDocument/index.js +2 -2
- package/dist/admin/components/elements/DocumentControls/index.d.ts +1 -1
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/getCustomViews.js +3 -3
- package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/admin/components/elements/ListDrawer/DrawerContent.js +3 -2
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +34 -3
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +87 -32
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +48 -7
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts.map +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +15 -6
- package/dist/admin/components/forms/Form/reduceFieldsToValues.d.ts +8 -1
- package/dist/admin/components/forms/Form/reduceFieldsToValues.d.ts.map +1 -1
- package/dist/admin/components/forms/Form/reduceFieldsToValues.js +9 -3
- package/dist/admin/components/forms/Form/types.d.ts +1 -0
- package/dist/admin/components/forms/Form/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Number/index.js +3 -3
- package/dist/admin/components/forms/field-types/RichText/types.d.ts +5 -1
- package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Text/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Upload/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Upload/Input.js +2 -1
- package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/DocumentInfo/index.js +9 -10
- package/dist/admin/components/utilities/DocumentInfo/types.d.ts +1 -1
- package/dist/admin/components/utilities/DocumentInfo/types.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts +8 -2
- package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/CustomComponent.js +11 -14
- package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.d.ts +8 -2
- package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.js +11 -14
- package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/forgotPassword.js +17 -16
- package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/forgotPassword.js +4 -11
- package/dist/auth/operations/local/login.d.ts.map +1 -1
- package/dist/auth/operations/local/login.js +4 -19
- package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/resetPassword.js +4 -11
- package/dist/auth/operations/local/unlock.d.ts.map +1 -1
- package/dist/auth/operations/local/unlock.js +4 -11
- package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/local/verifyEmail.js +4 -8
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +23 -23
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +90 -79
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +3 -2
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.js +3 -1
- package/dist/bin/generateTypes.d.ts.map +1 -1
- package/dist/bin/generateTypes.js +6 -2
- package/dist/bin/index.js +2 -2
- package/dist/bin/migrate.d.ts.map +1 -1
- package/dist/bin/migrate.js +6 -3
- package/dist/collections/config/types.d.ts +1 -0
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +17 -16
- package/dist/collections/operations/delete.js +17 -16
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +17 -16
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +17 -16
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +18 -17
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js +14 -21
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js +4 -21
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js +4 -18
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js +4 -18
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js +4 -17
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js +4 -22
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js +4 -22
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js +14 -25
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +17 -16
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +17 -16
- package/dist/collections/operations/utils.d.ts +6 -21
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js +2 -1
- package/dist/config/types.d.ts +6 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- package/dist/database/createDatabaseAdapter.js +2 -2
- package/dist/database/migrations/migrateDown.d.ts.map +1 -1
- package/dist/database/migrations/migrateDown.js +3 -2
- package/dist/database/types.d.ts +7 -1
- package/dist/database/types.d.ts.map +1 -1
- package/dist/exports/types.d.ts +1 -1
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +4 -1
- package/dist/exports/utilities.d.ts +1 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +4 -1
- package/dist/fields/config/types.d.ts +3 -1
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +7 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -1
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js +6 -22
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js +4 -21
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js +4 -21
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js +4 -21
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +6 -23
- package/dist/payload.d.ts.map +1 -1
- package/dist/payload.js +2 -2
- package/dist/preferences/preferencesCollection.d.ts.map +1 -1
- package/dist/preferences/preferencesCollection.js +8 -6
- package/dist/translations/defaultOptions.js +5 -5
- package/dist/utilities/configToJSONSchema.d.ts +13 -0
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +12 -3
- package/dist/utilities/createLocalReq.d.ts +13 -0
- package/dist/utilities/createLocalReq.d.ts.map +1 -0
- package/dist/utilities/createLocalReq.js +53 -0
- package/package.json +2 -2
- package/types.d.ts +1 -1
- package/types.js +4 -1
- package/utilities.d.ts +1 -1
- package/utilities.js +4 -1
|
@@ -17,10 +17,12 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
default: obj
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
const addFieldStatePromise = async (
|
|
20
|
+
const addFieldStatePromise = async (args)=>{
|
|
21
|
+
const { id, anyParentLocalized = false, config, data, field, filter, forceFullValue = false, fullData, includeSchema = false, locale, omitParents = false, operation, passesCondition, path, preferences, skipConditionChecks = false, skipValidation = false, state, t, user } = args;
|
|
21
22
|
if ((0, _types.fieldAffectsData)(field)) {
|
|
22
23
|
const fieldState = {
|
|
23
24
|
condition: field.admin?.condition,
|
|
25
|
+
fieldSchema: includeSchema ? field : undefined,
|
|
24
26
|
initialValue: undefined,
|
|
25
27
|
passesCondition,
|
|
26
28
|
valid: true,
|
|
@@ -37,7 +39,7 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
37
39
|
data[field.name] = valueWithDefault;
|
|
38
40
|
}
|
|
39
41
|
let validationResult = true;
|
|
40
|
-
if (typeof fieldState.validate === 'function') {
|
|
42
|
+
if (typeof fieldState.validate === 'function' && !skipValidation) {
|
|
41
43
|
validationResult = await fieldState.validate(data?.[field.name], {
|
|
42
44
|
...field,
|
|
43
45
|
id,
|
|
@@ -62,22 +64,32 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
62
64
|
const { promises, rowMetadata } = arrayValue.reduce((acc, row, i)=>{
|
|
63
65
|
const rowPath = `${path}${field.name}.${i}.`;
|
|
64
66
|
row.id = row?.id || new _bsonobjectid.default().toHexString();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
if (!omitParents && (!filter || filter(args))) {
|
|
68
|
+
state[`${rowPath}id`] = {
|
|
69
|
+
fieldSchema: includeSchema ? field.fields.find((field)=>'name' in field && field.name === 'id') : undefined,
|
|
70
|
+
initialValue: row.id,
|
|
71
|
+
valid: true,
|
|
72
|
+
value: row.id
|
|
73
|
+
};
|
|
74
|
+
}
|
|
70
75
|
acc.promises.push((0, _iterateFields.iterateFields)({
|
|
71
76
|
id,
|
|
77
|
+
anyParentLocalized: field.localized || anyParentLocalized,
|
|
72
78
|
config,
|
|
73
79
|
data: row,
|
|
74
80
|
fields: field.fields,
|
|
81
|
+
filter,
|
|
82
|
+
forceFullValue,
|
|
75
83
|
fullData,
|
|
84
|
+
includeSchema,
|
|
76
85
|
locale,
|
|
86
|
+
omitParents,
|
|
77
87
|
operation,
|
|
78
88
|
parentPassesCondition: passesCondition,
|
|
79
89
|
path: rowPath,
|
|
80
90
|
preferences,
|
|
91
|
+
skipConditionChecks,
|
|
92
|
+
skipValidation,
|
|
81
93
|
state,
|
|
82
94
|
t,
|
|
83
95
|
user
|
|
@@ -99,15 +111,17 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
99
111
|
fieldState.value = null;
|
|
100
112
|
fieldState.initialValue = null;
|
|
101
113
|
} else {
|
|
102
|
-
fieldState.value = arrayValue.length;
|
|
103
|
-
fieldState.initialValue = arrayValue.length;
|
|
114
|
+
fieldState.value = forceFullValue ? arrayValue : arrayValue.length;
|
|
115
|
+
fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length;
|
|
104
116
|
if (arrayValue.length > 0) {
|
|
105
117
|
fieldState.disableFormData = true;
|
|
106
118
|
}
|
|
107
119
|
}
|
|
108
120
|
fieldState.rows = rowMetadata;
|
|
109
121
|
// Add field to state
|
|
110
|
-
|
|
122
|
+
if (!omitParents && (!filter || filter(args))) {
|
|
123
|
+
state[`${path}${field.name}`] = fieldState;
|
|
124
|
+
}
|
|
111
125
|
break;
|
|
112
126
|
}
|
|
113
127
|
case 'blocks':
|
|
@@ -118,32 +132,44 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
118
132
|
const rowPath = `${path}${field.name}.${i}.`;
|
|
119
133
|
if (block) {
|
|
120
134
|
row.id = row?.id || new _bsonobjectid.default().toHexString();
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
if (!omitParents && (!filter || filter(args))) {
|
|
136
|
+
state[`${rowPath}id`] = {
|
|
137
|
+
fieldSchema: includeSchema ? block.fields.find((blockField)=>'name' in blockField && blockField.name === 'id') : undefined,
|
|
138
|
+
initialValue: row.id,
|
|
139
|
+
valid: true,
|
|
140
|
+
value: row.id
|
|
141
|
+
};
|
|
142
|
+
state[`${rowPath}blockType`] = {
|
|
143
|
+
fieldSchema: includeSchema ? block.fields.find((blockField)=>'name' in blockField && blockField.name === 'blockType') : undefined,
|
|
144
|
+
initialValue: row.blockType,
|
|
145
|
+
valid: true,
|
|
146
|
+
value: row.blockType
|
|
147
|
+
};
|
|
148
|
+
state[`${rowPath}blockName`] = {
|
|
149
|
+
fieldSchema: includeSchema ? block.fields.find((blockField)=>'name' in blockField && blockField.name === 'blockName') : undefined,
|
|
150
|
+
initialValue: row.blockName,
|
|
151
|
+
valid: true,
|
|
152
|
+
value: row.blockName
|
|
153
|
+
};
|
|
154
|
+
}
|
|
136
155
|
acc.promises.push((0, _iterateFields.iterateFields)({
|
|
137
156
|
id,
|
|
157
|
+
anyParentLocalized: field.localized || anyParentLocalized,
|
|
138
158
|
config,
|
|
139
159
|
data: row,
|
|
140
160
|
fields: block.fields,
|
|
161
|
+
filter,
|
|
162
|
+
forceFullValue,
|
|
141
163
|
fullData,
|
|
164
|
+
includeSchema,
|
|
142
165
|
locale,
|
|
166
|
+
omitParents,
|
|
143
167
|
operation,
|
|
144
168
|
parentPassesCondition: passesCondition,
|
|
145
169
|
path: rowPath,
|
|
146
170
|
preferences,
|
|
171
|
+
skipConditionChecks,
|
|
172
|
+
skipValidation,
|
|
147
173
|
state,
|
|
148
174
|
t,
|
|
149
175
|
user
|
|
@@ -167,30 +193,39 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
167
193
|
fieldState.value = null;
|
|
168
194
|
fieldState.initialValue = null;
|
|
169
195
|
} else {
|
|
170
|
-
fieldState.value = blocksValue.length;
|
|
171
|
-
fieldState.initialValue = blocksValue.length;
|
|
196
|
+
fieldState.value = forceFullValue ? blocksValue : blocksValue.length;
|
|
197
|
+
fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length;
|
|
172
198
|
if (blocksValue.length > 0) {
|
|
173
199
|
fieldState.disableFormData = true;
|
|
174
200
|
}
|
|
175
201
|
}
|
|
176
202
|
fieldState.rows = rowMetadata;
|
|
177
203
|
// Add field to state
|
|
178
|
-
|
|
204
|
+
if (!omitParents && (!filter || filter(args))) {
|
|
205
|
+
state[`${path}${field.name}`] = fieldState;
|
|
206
|
+
}
|
|
179
207
|
break;
|
|
180
208
|
}
|
|
181
209
|
case 'group':
|
|
182
210
|
{
|
|
183
211
|
await (0, _iterateFields.iterateFields)({
|
|
184
212
|
id,
|
|
213
|
+
anyParentLocalized: field.localized || anyParentLocalized,
|
|
185
214
|
config,
|
|
186
215
|
data: data?.[field.name] || {},
|
|
187
216
|
fields: field.fields,
|
|
217
|
+
filter,
|
|
218
|
+
forceFullValue,
|
|
188
219
|
fullData,
|
|
220
|
+
includeSchema,
|
|
189
221
|
locale,
|
|
222
|
+
omitParents,
|
|
190
223
|
operation,
|
|
191
224
|
parentPassesCondition: passesCondition,
|
|
192
225
|
path: `${path}${field.name}.`,
|
|
193
226
|
preferences,
|
|
227
|
+
skipConditionChecks,
|
|
228
|
+
skipValidation,
|
|
194
229
|
state,
|
|
195
230
|
t,
|
|
196
231
|
user
|
|
@@ -229,7 +264,9 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
229
264
|
fieldState.value = relationshipValue;
|
|
230
265
|
fieldState.initialValue = relationshipValue;
|
|
231
266
|
}
|
|
232
|
-
|
|
267
|
+
if (!filter || filter(args)) {
|
|
268
|
+
state[`${path}${field.name}`] = fieldState;
|
|
269
|
+
}
|
|
233
270
|
break;
|
|
234
271
|
}
|
|
235
272
|
case 'upload':
|
|
@@ -237,7 +274,9 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
237
274
|
const relationshipValue = valueWithDefault && typeof valueWithDefault === 'object' && 'id' in valueWithDefault ? valueWithDefault.id : valueWithDefault;
|
|
238
275
|
fieldState.value = relationshipValue;
|
|
239
276
|
fieldState.initialValue = relationshipValue;
|
|
240
|
-
|
|
277
|
+
if (!filter || filter(args)) {
|
|
278
|
+
state[`${path}${field.name}`] = fieldState;
|
|
279
|
+
}
|
|
241
280
|
break;
|
|
242
281
|
}
|
|
243
282
|
default:
|
|
@@ -245,7 +284,9 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
245
284
|
fieldState.value = valueWithDefault;
|
|
246
285
|
fieldState.initialValue = valueWithDefault;
|
|
247
286
|
// Add field to state
|
|
248
|
-
|
|
287
|
+
if (!filter || filter(args)) {
|
|
288
|
+
state[`${path}${field.name}`] = fieldState;
|
|
289
|
+
}
|
|
249
290
|
break;
|
|
250
291
|
}
|
|
251
292
|
}
|
|
@@ -253,15 +294,22 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
253
294
|
// Handle field types that do not use names (row, etc)
|
|
254
295
|
await (0, _iterateFields.iterateFields)({
|
|
255
296
|
id,
|
|
297
|
+
anyParentLocalized: field.localized || anyParentLocalized,
|
|
256
298
|
config,
|
|
257
299
|
data,
|
|
258
300
|
fields: field.fields,
|
|
301
|
+
filter,
|
|
302
|
+
forceFullValue,
|
|
259
303
|
fullData,
|
|
304
|
+
includeSchema,
|
|
260
305
|
locale,
|
|
306
|
+
omitParents,
|
|
261
307
|
operation,
|
|
262
308
|
parentPassesCondition: passesCondition,
|
|
263
309
|
path,
|
|
264
310
|
preferences,
|
|
311
|
+
skipConditionChecks,
|
|
312
|
+
skipValidation,
|
|
265
313
|
state,
|
|
266
314
|
t,
|
|
267
315
|
user
|
|
@@ -269,15 +317,22 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
269
317
|
} else if (field.type === 'tabs') {
|
|
270
318
|
const promises = field.tabs.map((tab)=>(0, _iterateFields.iterateFields)({
|
|
271
319
|
id,
|
|
320
|
+
anyParentLocalized: tab.localized || anyParentLocalized,
|
|
272
321
|
config,
|
|
273
322
|
data: (0, _types.tabHasName)(tab) ? data?.[tab.name] : data,
|
|
274
323
|
fields: tab.fields,
|
|
324
|
+
filter,
|
|
325
|
+
forceFullValue,
|
|
275
326
|
fullData,
|
|
327
|
+
includeSchema,
|
|
276
328
|
locale,
|
|
329
|
+
omitParents,
|
|
277
330
|
operation,
|
|
278
331
|
parentPassesCondition: passesCondition,
|
|
279
332
|
path: (0, _types.tabHasName)(tab) ? `${path}${tab.name}.` : path,
|
|
280
333
|
preferences,
|
|
334
|
+
skipConditionChecks,
|
|
335
|
+
skipValidation,
|
|
281
336
|
state,
|
|
282
337
|
t,
|
|
283
338
|
user
|
|
@@ -286,4 +341,4 @@ const addFieldStatePromise = async ({ id, config, data, field, fullData, locale,
|
|
|
286
341
|
}
|
|
287
342
|
};
|
|
288
343
|
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEvYWRkRmllbGRTdGF0ZVByb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVEZ1bmN0aW9uIH0gZnJvbSAnaTE4bmV4dCdcblxuaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnXG5cbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2F1dGgnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERhdGEsIEZpZWxkcywgRm9ybUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSGFzU3ViRmllbGRzLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBnZXRWYWx1ZVdpdGhEZWZhdWx0IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy9nZXREZWZhdWx0VmFsdWUnXG5pbXBvcnQgeyBpdGVyYXRlRmllbGRzIH0gZnJvbSAnLi9pdGVyYXRlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGRhdGE6IERhdGFcbiAgZmllbGQ6IE5vblByZXNlbnRhdGlvbmFsRmllbGRcbiAgZnVsbERhdGE6IERhdGFcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBsb2NhbGU6IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgcGFzc2VzQ29uZGl0aW9uOiBib29sZWFuXG4gIHBhdGg6IHN0cmluZ1xuICBwcmVmZXJlbmNlczoge1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd25cbiAgfVxuICBzdGF0ZTogRmllbGRzXG4gIHQ6IFRGdW5jdGlvblxuICB1c2VyOiBVc2VyXG59XG5cbmV4cG9ydCBjb25zdCBhZGRGaWVsZFN0YXRlUHJvbWlzZSA9IGFzeW5jICh7XG4gIGlkLFxuICBjb25maWcsXG4gIGRhdGEsXG4gIGZpZWxkLFxuICBmdWxsRGF0YSxcbiAgbG9jYWxlLFxuICBvcGVyYXRpb24sXG4gIHBhc3Nlc0NvbmRpdGlvbixcbiAgcGF0aCxcbiAgcHJlZmVyZW5jZXMsXG4gIHN0YXRlLFxuICB0LFxuICB1c2VyLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICBjb25zdCBmaWVsZFN0YXRlOiBGb3JtRmllbGQgPSB7XG4gICAgICBjb25kaXRpb246IGZpZWxkLmFkbWluPy5jb25kaXRpb24sXG4gICAgICBpbml0aWFsVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIHBhc3Nlc0NvbmRpdGlvbixcbiAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgdmFsaWRhdGU6IGZpZWxkLnZhbGlkYXRlLFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVdpdGhEZWZhdWx0ID0gYXdhaXQgZ2V0VmFsdWVXaXRoRGVmYXVsdCh7XG4gICAgICBkZWZhdWx0VmFsdWU6IGZpZWxkLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHVzZXIsXG4gICAgICB2YWx1ZTogZGF0YT8uW2ZpZWxkLm5hbWVdLFxuICAgIH0pXG5cbiAgICBpZiAoZGF0YT8uW2ZpZWxkLm5hbWVdKSB7XG4gICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdmFsdWVXaXRoRGVmYXVsdFxuICAgIH1cblxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZVxuXG4gICAgaWYgKHR5cGVvZiBmaWVsZFN0YXRlLnZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgZmllbGRTdGF0ZS52YWxpZGF0ZShkYXRhPy5bZmllbGQubmFtZV0sIHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIGlkLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRhdGE6IGZ1bGxEYXRhLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHNpYmxpbmdEYXRhOiBkYXRhLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBmaWVsZFN0YXRlLmVycm9yTWVzc2FnZSA9IHZhbGlkYXRpb25SZXN1bHRcbiAgICAgIGZpZWxkU3RhdGUudmFsaWQgPSBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZFN0YXRlLnZhbGlkID0gdHJ1ZVxuICAgIH1cblxuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgIGNvbnN0IGFycmF5VmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlV2l0aERlZmF1bHQpID8gdmFsdWVXaXRoRGVmYXVsdCA6IFtdXG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZXMsIHJvd01ldGFkYXRhIH0gPSBhcnJheVZhbHVlLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCByb3csIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvd1BhdGggPSBgJHtwYXRofSR7ZmllbGQubmFtZX0uJHtpfS5gXG4gICAgICAgICAgICByb3cuaWQgPSByb3c/LmlkIHx8IG5ldyBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKClcblxuICAgICAgICAgICAgc3RhdGVbYCR7cm93UGF0aH1pZGBdID0ge1xuICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHJvdy5pZCxcbiAgICAgICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgICAgIHZhbHVlOiByb3cuaWQsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFjYy5wcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICBpdGVyYXRlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgZGF0YTogcm93LFxuICAgICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgIGZ1bGxEYXRhLFxuICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGFyZW50UGFzc2VzQ29uZGl0aW9uOiBwYXNzZXNDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgcGF0aDogcm93UGF0aCxcbiAgICAgICAgICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBjb25zdCBjb2xsYXBzZWRSb3dJRHMgPSBwcmVmZXJlbmNlcz8uZmllbGRzPy5bYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0/LmNvbGxhcHNlZFxuXG4gICAgICAgICAgICBhY2Mucm93TWV0YWRhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiByb3cuaWQsXG4gICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgICBjb2xsYXBzZWQ6XG4gICAgICAgICAgICAgICAgY29sbGFwc2VkUm93SURzID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uaW5pdENvbGxhcHNlZFxuICAgICAgICAgICAgICAgICAgOiBjb2xsYXBzZWRSb3dJRHMuaW5jbHVkZXMocm93LmlkKSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb21pc2VzOiBbXSxcbiAgICAgICAgICAgIHJvd01ldGFkYXRhOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICApXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgICAgICAgLy8gQWRkIHZhbHVlcyB0byBmaWVsZCBzdGF0ZVxuICAgICAgICBpZiAodmFsdWVXaXRoRGVmYXVsdCA9PT0gbnVsbCkge1xuICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSBudWxsXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IGFycmF5VmFsdWUubGVuZ3RoXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSBhcnJheVZhbHVlLmxlbmd0aFxuXG4gICAgICAgICAgaWYgKGFycmF5VmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmllbGRTdGF0ZS5kaXNhYmxlRm9ybURhdGEgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRTdGF0ZS5yb3dzID0gcm93TWV0YWRhdGFcblxuICAgICAgICAvLyBBZGQgZmllbGQgdG8gc3RhdGVcbiAgICAgICAgc3RhdGVbYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0gPSBmaWVsZFN0YXRlXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgICBjb25zdCBibG9ja3NWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWVXaXRoRGVmYXVsdCkgPyB2YWx1ZVdpdGhEZWZhdWx0IDogW11cblxuICAgICAgICBjb25zdCB7IHByb21pc2VzLCByb3dNZXRhZGF0YSB9ID0gYmxvY2tzVmFsdWUucmVkdWNlKFxuICAgICAgICAgIChhY2MsIHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gcm93LmJsb2NrVHlwZSlcbiAgICAgICAgICAgIGNvbnN0IHJvd1BhdGggPSBgJHtwYXRofSR7ZmllbGQubmFtZX0uJHtpfS5gXG5cbiAgICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgICByb3cuaWQgPSByb3c/LmlkIHx8IG5ldyBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKClcblxuICAgICAgICAgICAgICBzdGF0ZVtgJHtyb3dQYXRofWlkYF0gPSB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiByb3cuaWQsXG4gICAgICAgICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJvdy5pZCxcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHN0YXRlW2Ake3Jvd1BhdGh9YmxvY2tUeXBlYF0gPSB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiByb3cuYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiByb3cuYmxvY2tUeXBlLFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgc3RhdGVbYCR7cm93UGF0aH1ibG9ja05hbWVgXSA9IHtcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHJvdy5ibG9ja05hbWUsXG4gICAgICAgICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJvdy5ibG9ja05hbWUsXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBhY2MucHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICBpdGVyYXRlRmllbGRzKHtcbiAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgICAgZGF0YTogcm93LFxuICAgICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBmdWxsRGF0YSxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgICAgICAgICAgICAgcGF0aDogcm93UGF0aCxcbiAgICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGNvbnN0IGNvbGxhcHNlZFJvd0lEcyA9IHByZWZlcmVuY2VzPy5maWVsZHM/LltgJHtwYXRofSR7ZmllbGQubmFtZX1gXT8uY29sbGFwc2VkXG5cbiAgICAgICAgICAgICAgYWNjLnJvd01ldGFkYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiByb3cuaWQsXG4gICAgICAgICAgICAgICAgYmxvY2tUeXBlOiByb3cuYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgICAgIGNvbGxhcHNlZDpcbiAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZFJvd0lEcyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uaW5pdENvbGxhcHNlZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbGxhcHNlZFJvd0lEcy5pbmNsdWRlcyhyb3cuaWQpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm9taXNlczogW10sXG4gICAgICAgICAgICByb3dNZXRhZGF0YTogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuXG4gICAgICAgIC8vIEFkZCB2YWx1ZXMgdG8gZmllbGQgc3RhdGVcbiAgICAgICAgaWYgKHZhbHVlV2l0aERlZmF1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gbnVsbFxuICAgICAgICAgIGZpZWxkU3RhdGUuaW5pdGlhbFZhbHVlID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSBibG9ja3NWYWx1ZS5sZW5ndGhcbiAgICAgICAgICBmaWVsZFN0YXRlLmluaXRpYWxWYWx1ZSA9IGJsb2Nrc1ZhbHVlLmxlbmd0aFxuXG4gICAgICAgICAgaWYgKGJsb2Nrc1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpZWxkU3RhdGUuZGlzYWJsZUZvcm1EYXRhID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkU3RhdGUucm93cyA9IHJvd01ldGFkYXRhXG5cbiAgICAgICAgLy8gQWRkIGZpZWxkIHRvIHN0YXRlXG4gICAgICAgIHN0YXRlW2Ake3BhdGh9JHtmaWVsZC5uYW1lfWBdID0gZmllbGRTdGF0ZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICBhd2FpdCBpdGVyYXRlRmllbGRzKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZGF0YTogZGF0YT8uW2ZpZWxkLm5hbWVdIHx8IHt9LFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZ1bGxEYXRhLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcGFyZW50UGFzc2VzQ29uZGl0aW9uOiBwYXNzZXNDb25kaXRpb24sXG4gICAgICAgICAgcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9LmAsXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6IHtcbiAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWVXaXRoRGVmYXVsdClcbiAgICAgICAgICAgID8gdmFsdWVXaXRoRGVmYXVsdC5tYXAoKHJlbGF0aW9uc2hpcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGlvbnNoaXAucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwLnZhbHVlICYmIHR5cGVvZiByZWxhdGlvbnNoaXAudmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJlbGF0aW9uc2hpcC52YWx1ZT8uaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcmVsYXRpb25zaGlwLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlbGF0aW9uc2hpcCA9PT0gJ29iamVjdCcgJiYgcmVsYXRpb25zaGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVsYXRpb25zaGlwLmlkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZWxhdGlvbnNoaXBcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gcmVsYXRpb25zaGlwVmFsdWVcbiAgICAgICAgICBmaWVsZFN0YXRlLmluaXRpYWxWYWx1ZSA9IHJlbGF0aW9uc2hpcFZhbHVlXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHZhbHVlV2l0aERlZmF1bHQgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZVdpdGhEZWZhdWx0ID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgJ3JlbGF0aW9uVG8nIGluIHZhbHVlV2l0aERlZmF1bHQgJiZcbiAgICAgICAgICAgICd2YWx1ZScgaW4gdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgICB0eXBlb2YgdmFsdWVXaXRoRGVmYXVsdD8udmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgIHZhbHVlV2l0aERlZmF1bHQ/LnZhbHVlICYmXG4gICAgICAgICAgICAgICdpZCcgaW4gdmFsdWVXaXRoRGVmYXVsdC52YWx1ZVxuICAgICAgICAgICAgICAgID8gdmFsdWVXaXRoRGVmYXVsdC52YWx1ZS5pZFxuICAgICAgICAgICAgICAgIDogdmFsdWVXaXRoRGVmYXVsdC52YWx1ZVxuICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwVmFsdWUgPSB7XG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHZhbHVlV2l0aERlZmF1bHQ/LnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IHJlbGF0aW9uc2hpcFZhbHVlXG4gICAgICAgICAgICBmaWVsZFN0YXRlLmluaXRpYWxWYWx1ZSA9IHJlbGF0aW9uc2hpcFZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcFZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlV2l0aERlZmF1bHQgJiYgdHlwZW9mIHZhbHVlV2l0aERlZmF1bHQgPT09ICdvYmplY3QnICYmICdpZCcgaW4gdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICAgICAgICA/IHZhbHVlV2l0aERlZmF1bHQuaWRcbiAgICAgICAgICAgICAgOiB2YWx1ZVdpdGhEZWZhdWx0XG4gICAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IHJlbGF0aW9uc2hpcFZhbHVlXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGVbYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0gPSBmaWVsZFN0YXRlXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndXBsb2FkJzoge1xuICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBWYWx1ZSA9XG4gICAgICAgICAgdmFsdWVXaXRoRGVmYXVsdCAmJiB0eXBlb2YgdmFsdWVXaXRoRGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB2YWx1ZVdpdGhEZWZhdWx0XG4gICAgICAgICAgICA/IHZhbHVlV2l0aERlZmF1bHQuaWRcbiAgICAgICAgICAgIDogdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gcmVsYXRpb25zaGlwVmFsdWVcbiAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuXG4gICAgICAgIHN0YXRlW2Ake3BhdGh9JHtmaWVsZC5uYW1lfWBdID0gZmllbGRTdGF0ZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IHZhbHVlV2l0aERlZmF1bHRcbiAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSB2YWx1ZVdpdGhEZWZhdWx0XG5cbiAgICAgICAgLy8gQWRkIGZpZWxkIHRvIHN0YXRlXG4gICAgICAgIHN0YXRlW2Ake3BhdGh9JHtmaWVsZC5uYW1lfWBdID0gZmllbGRTdGF0ZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGZpZWxkSGFzU3ViRmllbGRzKGZpZWxkKSkge1xuICAgIC8vIEhhbmRsZSBmaWVsZCB0eXBlcyB0aGF0IGRvIG5vdCB1c2UgbmFtZXMgKHJvdywgZXRjKVxuICAgIGF3YWl0IGl0ZXJhdGVGaWVsZHMoe1xuICAgICAgaWQsXG4gICAgICBjb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICBmdWxsRGF0YSxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9wZXJhdGlvbixcbiAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgcGF0aCxcbiAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgc3RhdGUsXG4gICAgICB0LFxuICAgICAgdXNlcixcbiAgICB9KVxuICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09ICd0YWJzJykge1xuICAgIGNvbnN0IHByb21pc2VzID0gZmllbGQudGFicy5tYXAoKHRhYikgPT5cbiAgICAgIGl0ZXJhdGVGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhOiB0YWJIYXNOYW1lKHRhYikgPyBkYXRhPy5bdGFiLm5hbWVdIDogZGF0YSxcbiAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICBmdWxsRGF0YSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgICBwYXRoOiB0YWJIYXNOYW1lKHRhYikgPyBgJHtwYXRofSR7dGFiLm5hbWV9LmAgOiBwYXRoLFxuICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXIsXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgfVxufVxuIl0sIm5hbWVzIjpbImFkZEZpZWxkU3RhdGVQcm9taXNlIiwiaWQiLCJjb25maWciLCJkYXRhIiwiZmllbGQiLCJmdWxsRGF0YSIsImxvY2FsZSIsIm9wZXJhdGlvbiIsInBhc3Nlc0NvbmRpdGlvbiIsInBhdGgiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwidCIsInVzZXIiLCJmaWVsZEFmZmVjdHNEYXRhIiwiZmllbGRTdGF0ZSIsImNvbmRpdGlvbiIsImFkbWluIiwiaW5pdGlhbFZhbHVlIiwidW5kZWZpbmVkIiwidmFsaWQiLCJ2YWxpZGF0ZSIsInZhbHVlIiwidmFsdWVXaXRoRGVmYXVsdCIsImdldFZhbHVlV2l0aERlZmF1bHQiLCJkZWZhdWx0VmFsdWUiLCJuYW1lIiwidmFsaWRhdGlvblJlc3VsdCIsInNpYmxpbmdEYXRhIiwiZXJyb3JNZXNzYWdlIiwidHlwZSIsImFycmF5VmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9taXNlcyIsInJvd01ldGFkYXRhIiwicmVkdWNlIiwiYWNjIiwicm93IiwiaSIsInJvd1BhdGgiLCJPYmplY3RJRCIsInRvSGV4U3RyaW5nIiwicHVzaCIsIml0ZXJhdGVGaWVsZHMiLCJmaWVsZHMiLCJwYXJlbnRQYXNzZXNDb25kaXRpb24iLCJjb2xsYXBzZWRSb3dJRHMiLCJjb2xsYXBzZWQiLCJjaGlsZEVycm9yUGF0aHMiLCJTZXQiLCJpbml0Q29sbGFwc2VkIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwiYWxsIiwibGVuZ3RoIiwiZGlzYWJsZUZvcm1EYXRhIiwicm93cyIsImJsb2Nrc1ZhbHVlIiwiYmxvY2siLCJibG9ja3MiLCJmaW5kIiwiYmxvY2tUeXBlIiwic2x1ZyIsImJsb2NrTmFtZSIsImhhc01hbnkiLCJyZWxhdGlvbnNoaXBWYWx1ZSIsIm1hcCIsInJlbGF0aW9uc2hpcCIsInJlbGF0aW9uVG8iLCJmaWVsZEhhc1N1YkZpZWxkcyIsInRhYnMiLCJ0YWIiLCJ0YWJIYXNOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBZ0N2QkE7OztlQUFBQTs7O3FFQTdCUTt1QkFPMkM7d0VBQ2hDOytCQUNGOzs7Ozs7QUFvQnZCLE1BQU1BLHVCQUF1QixPQUFPLEVBQ3pDQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsSUFBSSxFQUNKQyxLQUFLLEVBQ0xDLFFBQVEsRUFDUkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLGVBQWUsRUFDZkMsSUFBSSxFQUNKQyxXQUFXLEVBQ1hDLEtBQUssRUFDTEMsQ0FBQyxFQUNEQyxJQUFJLEVBQ0M7SUFDTCxJQUFJQyxJQUFBQSx1QkFBZ0IsRUFBQ1YsUUFBUTtRQUMzQixNQUFNVyxhQUF3QjtZQUM1QkMsV0FBV1osTUFBTWEsS0FBSyxFQUFFRDtZQUN4QkUsY0FBY0M7WUFDZFg7WUFDQVksT0FBTztZQUNQQyxVQUFVakIsTUFBTWlCLFFBQVE7WUFDeEJDLE9BQU9IO1FBQ1Q7UUFFQSxNQUFNSSxtQkFBbUIsTUFBTUMsSUFBQUEsd0JBQW1CLEVBQUM7WUFDakRDLGNBQWNyQixNQUFNcUIsWUFBWTtZQUNoQ25CO1lBQ0FPO1lBQ0FTLE9BQU9uQixNQUFNLENBQUNDLE1BQU1zQixJQUFJLENBQUM7UUFDM0I7UUFFQSxJQUFJdkIsTUFBTSxDQUFDQyxN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
|
|
344
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEvYWRkRmllbGRTdGF0ZVByb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVEZ1bmN0aW9uIH0gZnJvbSAnaTE4bmV4dCdcblxuaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnXG5cbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2F1dGgnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERhdGEsIEZpZWxkcywgRm9ybUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSGFzU3ViRmllbGRzLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBnZXRWYWx1ZVdpdGhEZWZhdWx0IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy9nZXREZWZhdWx0VmFsdWUnXG5pbXBvcnQgeyBpdGVyYXRlRmllbGRzIH0gZnJvbSAnLi9pdGVyYXRlRmllbGRzJ1xuXG5leHBvcnQgdHlwZSBBZGRGaWVsZFN0YXRlUHJvbWlzZUFyZ3MgPSB7XG4gIC8qKlxuICAgKiBpZiBhbGwgcGFyZW50cyBhcmUgbG9jYWxpemVkLCB0aGVuIHRoZSBmaWVsZCBpcyBsb2NhbGl6ZWRcbiAgICovXG4gIGFueVBhcmVudExvY2FsaXplZD86IGJvb2xlYW5cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogRGF0YVxuICBmaWVsZDogTm9uUHJlc2VudGF0aW9uYWxGaWVsZFxuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhpcyB0byBmaWx0ZXIgZG93biB0byBvbmx5IGBsb2NhbGl6ZWRgIGZpZWxkcyB0aGF0IHJlcXVpcmUgdHJhbnNhbGF0aW9uICh0eXBlOiB0ZXh0LCB0ZXh0YXJlYSwgZXRjLikuIEFub3RoZXIgcGx1Z2luIG1pZ2h0IHdhbnQgdG8gbG9vayBmb3Igb25seSBgcG9pbnRgIHR5cGUgZmllbGRzIHRvIGRvIHNvbWUgR0lTIGZ1bmN0aW9uLiBXaXRoIHRoZSBmaWx0ZXIgZnVuY3Rpb24geW91IGNhbiBnbyBpbiBsaWtlIGEgc3VyZ2Vvbi5cbiAgICovXG4gIGZpbHRlcj86IChhcmdzOiBBZGRGaWVsZFN0YXRlUHJvbWlzZUFyZ3MpID0+IGJvb2xlYW5cbiAgLyoqXG4gICAqIEZvcmNlIHRoZSB2YWx1ZSBvZiBmaWVsZHMgbGlrZSBhcnJheXMgb3IgYmxvY2tzIHRvIGJlIHRoZSBmdWxsIHZhbHVlIGluc3RlYWQgb2YgdGhlIGxlbmd0aCBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZm9yY2VGdWxsVmFsdWU/OiBib29sZWFuXG4gIGZ1bGxEYXRhOiBEYXRhXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIHNjaGVtYSBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHN0YXRlXG4gICAqL1xuICBpbmNsdWRlU2NoZW1hPzogYm9vbGVhblxuICBsb2NhbGU6IHN0cmluZ1xuICAvKipcbiAgICogV2hldGhlciB0byBvbWl0IHBhcmVudCBmaWVsZHMgaW4gdGhlIHN0YXRlLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgb21pdFBhcmVudHM/OiBib29sZWFuXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBwYXNzZXNDb25kaXRpb246IGJvb2xlYW5cbiAgcGF0aDogc3RyaW5nXG4gIHByZWZlcmVuY2VzOiB7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICB9XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgY2hlY2tpbmcgdGhlIGZpZWxkJ3MgY29uZGl0aW9uLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgc2tpcENvbmRpdGlvbkNoZWNrcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCB2YWxpZGF0aW5nIHRoZSBmaWVsZC4gQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHNraXBWYWxpZGF0aW9uPzogYm9vbGVhblxuICBzdGF0ZTogRmllbGRzXG4gIHQ6IFRGdW5jdGlvblxuICB1c2VyOiBVc2VyXG59XG5cbi8qKlxuICogRmxhdHRlbnMgdGhlIGZpZWxkcyBzY2hlbWEgYW5kIGZpZWxkcyBkYXRhLlxuICogVGhlIG91dHB1dCBpcyB0aGUgZmllbGQgcGF0aCAoZS5nLiBhcnJheS4wLm5hbWUpIG1hcHBlZCB0byBhIEZvcm1GaWVsZCBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRGaWVsZFN0YXRlUHJvbWlzZSA9IGFzeW5jIChhcmdzOiBBZGRGaWVsZFN0YXRlUHJvbWlzZUFyZ3MpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIGFueVBhcmVudExvY2FsaXplZCA9IGZhbHNlLFxuICAgIGNvbmZpZyxcbiAgICBkYXRhLFxuICAgIGZpZWxkLFxuICAgIGZpbHRlcixcbiAgICBmb3JjZUZ1bGxWYWx1ZSA9IGZhbHNlLFxuICAgIGZ1bGxEYXRhLFxuICAgIGluY2x1ZGVTY2hlbWEgPSBmYWxzZSxcbiAgICBsb2NhbGUsXG4gICAgb21pdFBhcmVudHMgPSBmYWxzZSxcbiAgICBvcGVyYXRpb24sXG4gICAgcGFzc2VzQ29uZGl0aW9uLFxuICAgIHBhdGgsXG4gICAgcHJlZmVyZW5jZXMsXG4gICAgc2tpcENvbmRpdGlvbkNoZWNrcyA9IGZhbHNlLFxuICAgIHNraXBWYWxpZGF0aW9uID0gZmFsc2UsXG4gICAgc3RhdGUsXG4gICAgdCxcbiAgICB1c2VyLFxuICB9ID0gYXJnc1xuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICBjb25zdCBmaWVsZFN0YXRlOiBGb3JtRmllbGQgPSB7XG4gICAgICBjb25kaXRpb246IGZpZWxkLmFkbWluPy5jb25kaXRpb24sXG4gICAgICBmaWVsZFNjaGVtYTogaW5jbHVkZVNjaGVtYSA/IGZpZWxkIDogdW5kZWZpbmVkLFxuICAgICAgaW5pdGlhbFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICBwYXNzZXNDb25kaXRpb24sXG4gICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgIHZhbGlkYXRlOiBmaWVsZC52YWxpZGF0ZSxcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVXaXRoRGVmYXVsdCA9IGF3YWl0IGdldFZhbHVlV2l0aERlZmF1bHQoe1xuICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUsXG4gICAgICBsb2NhbGUsXG4gICAgICB1c2VyLFxuICAgICAgdmFsdWU6IGRhdGE/LltmaWVsZC5uYW1lXSxcbiAgICB9KVxuXG4gICAgaWYgKGRhdGE/LltmaWVsZC5uYW1lXSkge1xuICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHZhbHVlV2l0aERlZmF1bHRcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogc3RyaW5nIHwgdHJ1ZSA9IHRydWVcblxuICAgIGlmICh0eXBlb2YgZmllbGRTdGF0ZS52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZFN0YXRlLnZhbGlkYXRlKGRhdGE/LltmaWVsZC5uYW1lXSwge1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YTogZnVsbERhdGEsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgc2libGluZ0RhdGE6IGRhdGEsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGZpZWxkU3RhdGUuZXJyb3JNZXNzYWdlID0gdmFsaWRhdGlvblJlc3VsdFxuICAgICAgZmllbGRTdGF0ZS52YWxpZCA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkU3RhdGUudmFsaWQgPSB0cnVlXG4gICAgfVxuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgY29uc3QgYXJyYXlWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWVXaXRoRGVmYXVsdCkgPyB2YWx1ZVdpdGhEZWZhdWx0IDogW11cbiAgICAgICAgY29uc3QgeyBwcm9taXNlcywgcm93TWV0YWRhdGEgfSA9IGFycmF5VmFsdWUucmVkdWNlKFxuICAgICAgICAgIChhY2MsIHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgcm93UGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmBcbiAgICAgICAgICAgIHJvdy5pZCA9IHJvdz8uaWQgfHwgbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKVxuXG4gICAgICAgICAgICBpZiAoIW9taXRQYXJlbnRzICYmICghZmlsdGVyIHx8IGZpbHRlcihhcmdzKSkpIHtcbiAgICAgICAgICAgICAgc3RhdGVbYCR7cm93UGF0aH1pZGBdID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBpbmNsdWRlU2NoZW1hXG4gICAgICAgICAgICAgICAgICA/IGZpZWxkLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHJvdy5pZCxcbiAgICAgICAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm93LmlkLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFjYy5wcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICBpdGVyYXRlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBhbnlQYXJlbnRMb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCB8fCBhbnlQYXJlbnRMb2NhbGl6ZWQsXG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgZm9yY2VGdWxsVmFsdWUsXG4gICAgICAgICAgICAgICAgZnVsbERhdGEsXG4gICAgICAgICAgICAgICAgaW5jbHVkZVNjaGVtYSxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgb21pdFBhcmVudHMsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgICAgICAgICAgIHBhdGg6IHJvd1BhdGgsXG4gICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgc2tpcENvbmRpdGlvbkNoZWNrcyxcbiAgICAgICAgICAgICAgICBza2lwVmFsaWRhdGlvbixcbiAgICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBjb25zdCBjb2xsYXBzZWRSb3dJRHMgPSBwcmVmZXJlbmNlcz8uZmllbGRzPy5bYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0/LmNvbGxhcHNlZFxuXG4gICAgICAgICAgICBhY2Mucm93TWV0YWRhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiByb3cuaWQsXG4gICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgICBjb2xsYXBzZWQ6XG4gICAgICAgICAgICAgICAgY29sbGFwc2VkUm93SURzID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uaW5pdENvbGxhcHNlZFxuICAgICAgICAgICAgICAgICAgOiBjb2xsYXBzZWRSb3dJRHMuaW5jbHVkZXMocm93LmlkKSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb21pc2VzOiBbXSxcbiAgICAgICAgICAgIHJvd01ldGFkYXRhOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICApXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgICAgICAgLy8gQWRkIHZhbHVlcyB0byBmaWVsZCBzdGF0ZVxuICAgICAgICBpZiAodmFsdWVXaXRoRGVmYXVsdCA9PT0gbnVsbCkge1xuICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSBudWxsXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IGZvcmNlRnVsbFZhbHVlID8gYXJyYXlWYWx1ZSA6IGFycmF5VmFsdWUubGVuZ3RoXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSBmb3JjZUZ1bGxWYWx1ZSA/IGFycmF5VmFsdWUgOiBhcnJheVZhbHVlLmxlbmd0aFxuXG4gICAgICAgICAgaWYgKGFycmF5VmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmllbGRTdGF0ZS5kaXNhYmxlRm9ybURhdGEgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRTdGF0ZS5yb3dzID0gcm93TWV0YWRhdGFcblxuICAgICAgICAvLyBBZGQgZmllbGQgdG8gc3RhdGVcbiAgICAgICAgaWYgKCFvbWl0UGFyZW50cyAmJiAoIWZpbHRlciB8fCBmaWx0ZXIoYXJncykpKSB7XG4gICAgICAgICAgc3RhdGVbYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0gPSBmaWVsZFN0YXRlXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgIGNvbnN0IGJsb2Nrc1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZVdpdGhEZWZhdWx0KSA/IHZhbHVlV2l0aERlZmF1bHQgOiBbXVxuXG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZXMsIHJvd01ldGFkYXRhIH0gPSBibG9ja3NWYWx1ZS5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgcm93LCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSByb3cuYmxvY2tUeXBlKVxuICAgICAgICAgICAgY29uc3Qgcm93UGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmBcblxuICAgICAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICAgIHJvdy5pZCA9IHJvdz8uaWQgfHwgbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKVxuXG4gICAgICAgICAgICAgIGlmICghb21pdFBhcmVudHMgJiYgKCFmaWx0ZXIgfHwgZmlsdGVyKGFyZ3MpKSkge1xuICAgICAgICAgICAgICAgIHN0YXRlW2Ake3Jvd1BhdGh9aWRgXSA9IHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hOiBpbmNsdWRlU2NoZW1hXG4gICAgICAgICAgICAgICAgICAgID8gYmxvY2suZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmxvY2tGaWVsZCkgPT4gJ25hbWUnIGluIGJsb2NrRmllbGQgJiYgYmxvY2tGaWVsZC5uYW1lID09PSAnaWQnLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHJvdy5pZCxcbiAgICAgICAgICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvdy5pZCxcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZVtgJHtyb3dQYXRofWJsb2NrVHlwZWBdID0ge1xuICAgICAgICAgICAgICAgICAgZmllbGRTY2hlbWE6IGluY2x1ZGVTY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgPyBibG9jay5maWVsZHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChibG9ja0ZpZWxkKSA9PiAnbmFtZScgaW4gYmxvY2tGaWVsZCAmJiBibG9ja0ZpZWxkLm5hbWUgPT09ICdibG9ja1R5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHJvdy5ibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiByb3cuYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlW2Ake3Jvd1BhdGh9YmxvY2tOYW1lYF0gPSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogaW5jbHVkZVNjaGVtYVxuICAgICAgICAgICAgICAgICAgICA/IGJsb2NrLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsb2NrRmllbGQpID0+ICduYW1lJyBpbiBibG9ja0ZpZWxkICYmIGJsb2NrRmllbGQubmFtZSA9PT0gJ2Jsb2NrTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogcm93LmJsb2NrTmFtZSxcbiAgICAgICAgICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvdy5ibG9ja05hbWUsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYWNjLnByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgaXRlcmF0ZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgIGFueVBhcmVudExvY2FsaXplZDogZmllbGQubG9jYWxpemVkIHx8IGFueVBhcmVudExvY2FsaXplZCxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgZm9yY2VGdWxsVmFsdWUsXG4gICAgICAgICAgICAgICAgICBmdWxsRGF0YSxcbiAgICAgICAgICAgICAgICAgIGluY2x1ZGVTY2hlbWEsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICBvbWl0UGFyZW50cyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgICAgICAgICAgICAgcGF0aDogcm93UGF0aCxcbiAgICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgICAgc2tpcENvbmRpdGlvbkNoZWNrcyxcbiAgICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGNvbnN0IGNvbGxhcHNlZFJvd0lEcyA9IHByZWZlcmVuY2VzPy5maWVsZHM/LltgJHtwYXRofSR7ZmllbGQubmFtZX1gXT8uY29sbGFwc2VkXG5cbiAgICAgICAgICAgICAgYWNjLnJvd01ldGFkYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiByb3cuaWQsXG4gICAgICAgICAgICAgICAgYmxvY2tUeXBlOiByb3cuYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgICAgIGNvbGxhcHNlZDpcbiAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZFJvd0lEcyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uaW5pdENvbGxhcHNlZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbGxhcHNlZFJvd0lEcy5pbmNsdWRlcyhyb3cuaWQpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm9taXNlczogW10sXG4gICAgICAgICAgICByb3dNZXRhZGF0YTogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuXG4gICAgICAgIC8vIEFkZCB2YWx1ZXMgdG8gZmllbGQgc3RhdGVcbiAgICAgICAgaWYgKHZhbHVlV2l0aERlZmF1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gbnVsbFxuICAgICAgICAgIGZpZWxkU3RhdGUuaW5pdGlhbFZhbHVlID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSBmb3JjZUZ1bGxWYWx1ZSA/IGJsb2Nrc1ZhbHVlIDogYmxvY2tzVmFsdWUubGVuZ3RoXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSBmb3JjZUZ1bGxWYWx1ZSA/IGJsb2Nrc1ZhbHVlIDogYmxvY2tzVmFsdWUubGVuZ3RoXG5cbiAgICAgICAgICBpZiAoYmxvY2tzVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmllbGRTdGF0ZS5kaXNhYmxlRm9ybURhdGEgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRTdGF0ZS5yb3dzID0gcm93TWV0YWRhdGFcblxuICAgICAgICAvLyBBZGQgZmllbGQgdG8gc3RhdGVcbiAgICAgICAgaWYgKCFvbWl0UGFyZW50cyAmJiAoIWZpbHRlciB8fCBmaWx0ZXIoYXJncykpKSB7XG4gICAgICAgICAgc3RhdGVbYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0gPSBmaWVsZFN0YXRlXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgYXdhaXQgaXRlcmF0ZUZpZWxkcyh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgYW55UGFyZW50TG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQgfHwgYW55UGFyZW50TG9jYWxpemVkLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkYXRhOiBkYXRhPy5bZmllbGQubmFtZV0gfHwge30sXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgIGZvcmNlRnVsbFZhbHVlLFxuICAgICAgICAgIGZ1bGxEYXRhLFxuICAgICAgICAgIGluY2x1ZGVTY2hlbWEsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9taXRQYXJlbnRzLFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICBwYXJlbnRQYXNzZXNDb25kaXRpb246IHBhc3Nlc0NvbmRpdGlvbixcbiAgICAgICAgICBwYXRoOiBgJHtwYXRofSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgICBza2lwQ29uZGl0aW9uQ2hlY2tzLFxuICAgICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIHQsXG4gICAgICAgICAgdXNlcixcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOiB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwVmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlV2l0aERlZmF1bHQpXG4gICAgICAgICAgICA/IHZhbHVlV2l0aERlZmF1bHQubWFwKChyZWxhdGlvbnNoaXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVsYXRpb25zaGlwLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcC52YWx1ZSAmJiB0eXBlb2YgcmVsYXRpb25zaGlwLnZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyByZWxhdGlvbnNoaXAudmFsdWU/LmlkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHJlbGF0aW9uc2hpcC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWxhdGlvbnNoaXAgPT09ICdvYmplY3QnICYmIHJlbGF0aW9uc2hpcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbGF0aW9uc2hpcC5pZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVsYXRpb25zaGlwXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICAgICAgZmllbGRTdGF0ZS52YWx1ZSA9IHJlbGF0aW9uc2hpcFZhbHVlXG4gICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWx1ZVdpdGhEZWZhdWx0ICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWVXaXRoRGVmYXVsdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICdyZWxhdGlvblRvJyBpbiB2YWx1ZVdpdGhEZWZhdWx0ICYmXG4gICAgICAgICAgICAndmFsdWUnIGluIHZhbHVlV2l0aERlZmF1bHRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlV2l0aERlZmF1bHQ/LnZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICB2YWx1ZVdpdGhEZWZhdWx0Py52YWx1ZSAmJlxuICAgICAgICAgICAgICAnaWQnIGluIHZhbHVlV2l0aERlZmF1bHQudmFsdWVcbiAgICAgICAgICAgICAgICA/IHZhbHVlV2l0aERlZmF1bHQudmFsdWUuaWRcbiAgICAgICAgICAgICAgICA6IHZhbHVlV2l0aERlZmF1bHQudmFsdWVcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcFZhbHVlID0ge1xuICAgICAgICAgICAgICByZWxhdGlvblRvOiB2YWx1ZVdpdGhEZWZhdWx0Py5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuICAgICAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBWYWx1ZSA9XG4gICAgICAgICAgICB2YWx1ZVdpdGhEZWZhdWx0ICYmIHR5cGVvZiB2YWx1ZVdpdGhEZWZhdWx0ID09PSAnb2JqZWN0JyAmJiAnaWQnIGluIHZhbHVlV2l0aERlZmF1bHRcbiAgICAgICAgICAgICAgPyB2YWx1ZVdpdGhEZWZhdWx0LmlkXG4gICAgICAgICAgICAgIDogdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICAgIGZpZWxkU3RhdGUudmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuICAgICAgICAgIGZpZWxkU3RhdGUuaW5pdGlhbFZhbHVlID0gcmVsYXRpb25zaGlwVmFsdWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihhcmdzKSkge1xuICAgICAgICAgIHN0YXRlW2Ake3BhdGh9JHtmaWVsZC5uYW1lfWBdID0gZmllbGRTdGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndXBsb2FkJzoge1xuICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBWYWx1ZSA9XG4gICAgICAgICAgdmFsdWVXaXRoRGVmYXVsdCAmJiB0eXBlb2YgdmFsdWVXaXRoRGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB2YWx1ZVdpdGhEZWZhdWx0XG4gICAgICAgICAgICA/IHZhbHVlV2l0aERlZmF1bHQuaWRcbiAgICAgICAgICAgIDogdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gcmVsYXRpb25zaGlwVmFsdWVcbiAgICAgICAgZmllbGRTdGF0ZS5pbml0aWFsVmFsdWUgPSByZWxhdGlvbnNoaXBWYWx1ZVxuXG4gICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihhcmdzKSkge1xuICAgICAgICAgIHN0YXRlW2Ake3BhdGh9JHtmaWVsZC5uYW1lfWBdID0gZmllbGRTdGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBmaWVsZFN0YXRlLnZhbHVlID0gdmFsdWVXaXRoRGVmYXVsdFxuICAgICAgICBmaWVsZFN0YXRlLmluaXRpYWxWYWx1ZSA9IHZhbHVlV2l0aERlZmF1bHRcblxuICAgICAgICAvLyBBZGQgZmllbGQgdG8gc3RhdGVcbiAgICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKGFyZ3MpKSB7XG4gICAgICAgICAgc3RhdGVbYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YF0gPSBmaWVsZFN0YXRlXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChmaWVsZEhhc1N1YkZpZWxkcyhmaWVsZCkpIHtcbiAgICAvLyBIYW5kbGUgZmllbGQgdHlwZXMgdGhhdCBkbyBub3QgdXNlIG5hbWVzIChyb3csIGV0YylcbiAgICBhd2FpdCBpdGVyYXRlRmllbGRzKHtcbiAgICAgIGlkLFxuICAgICAgYW55UGFyZW50TG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQgfHwgYW55UGFyZW50TG9jYWxpemVkLFxuICAgICAgY29uZmlnLFxuICAgICAgZGF0YSxcbiAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgZmlsdGVyLFxuICAgICAgZm9yY2VGdWxsVmFsdWUsXG4gICAgICBmdWxsRGF0YSxcbiAgICAgIGluY2x1ZGVTY2hlbWEsXG4gICAgICBsb2NhbGUsXG4gICAgICBvbWl0UGFyZW50cyxcbiAgICAgIG9wZXJhdGlvbixcbiAgICAgIHBhcmVudFBhc3Nlc0NvbmRpdGlvbjogcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgcGF0aCxcbiAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgc2tpcENvbmRpdGlvbkNoZWNrcyxcbiAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgc3RhdGUsXG4gICAgICB0LFxuICAgICAgdXNlcixcbiAgICB9KVxuICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09ICd0YWJzJykge1xuICAgIGNvbnN0IHByb21pc2VzID0gZmllbGQudGFicy5tYXAoKHRhYikgPT5cbiAgICAgIGl0ZXJhdGVGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgYW55UGFyZW50TG9jYWxpemVkOiB0YWIubG9jYWxpemVkIHx8IGFueVBhcmVudExvY2FsaXplZCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhOiB0YWJIYXNOYW1lKHRhYikgPyBkYXRhPy5bdGFiLm5hbWVdIDogZGF0YSxcbiAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIGZvcmNlRnVsbFZhbHVlLFxuICAgICAgICBmdWxsRGF0YSxcbiAgICAgICAgaW5jbHVkZVNjaGVtYSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvbWl0UGFyZW50cyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXJlbnRQYXNzZXNDb25kaXRpb246IHBhc3Nlc0NvbmRpdGlvbixcbiAgICAgICAgcGF0aDogdGFiSGFzTmFtZSh0YWIpID8gYCR7cGF0aH0ke3RhYi5uYW1lfS5gIDogcGF0aCxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHNraXBDb25kaXRpb25DaGVja3MsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgdCxcbiAgICAgICAgdXNlcixcbiAgICAgIH0pLFxuICAgIClcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICB9XG59XG4iXSwibmFtZXMiOlsiYWRkRmllbGRTdGF0ZVByb21pc2UiLCJhcmdzIiwiaWQiLCJhbnlQYXJlbnRMb2NhbGl6ZWQiLCJjb25maWciLCJkYXRhIiwiZmllbGQiLCJmaWx0ZXIiLCJmb3JjZUZ1bGxWYWx1ZSIsImZ1bGxEYXRhIiwiaW5jbHVkZVNjaGVtYSIsImxvY2FsZSIsIm9taXRQYXJlbnRzIiwib3BlcmF0aW9uIiwicGFzc2VzQ29uZGl0aW9uIiwicGF0aCIsInByZWZlcmVuY2VzIiwic2tpcENvbmRpdGlvbkNoZWNrcyIsInNraXBWYWxpZGF0aW9uIiwic3RhdGUiLCJ0IiwidXNlciIsImZpZWxkQWZmZWN0c0RhdGEiLCJmaWVsZFN0YXRlIiwiY29uZGl0aW9uIiwiYWRtaW4iLCJmaWVsZFNjaGVtYSIsInVuZGVmaW5lZCIsImluaXRpYWxWYWx1ZSIsInZhbGlkIiwidmFsaWRhdGUiLCJ2YWx1ZSIsInZhbHVlV2l0aERlZmF1bHQiLCJnZXRWYWx1ZVdpdGhEZWZhdWx0IiwiZGVmYXVsdFZhbHVlIiwibmFtZSIsInZhbGlkYXRpb25SZXN1bHQiLCJzaWJsaW5nRGF0YSIsImVycm9yTWVzc2FnZSIsInR5cGUiLCJhcnJheVZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvbWlzZXMiLCJyb3dNZXRhZGF0YSIsInJlZHVjZSIsImFjYyIsInJvdyIsImkiLCJyb3dQYXRoIiwiT2JqZWN0SUQiLCJ0b0hleFN0cmluZyIsImZpZWxkcyIsImZpbmQiLCJwdXNoIiwiaXRlcmF0ZUZpZWxkcyIsImxvY2FsaXplZCIsInBhcmVudFBhc3Nlc0NvbmRpdGlvbiIsImNvbGxhcHNlZFJvd0lEcyIsImNvbGxhcHNlZCIsImNoaWxkRXJyb3JQYXRocyIsIlNldCIsImluaXRDb2xsYXBzZWQiLCJpbmNsdWRlcyIsIlByb21pc2UiLCJhbGwiLCJsZW5ndGgiLCJkaXNhYmxlRm9ybURhdGEiLCJyb3dzIiwiYmxvY2tzVmFsdWUiLCJibG9jayIsImJsb2NrcyIsImJsb2NrVHlwZSIsInNsdWciLCJibG9ja0ZpZWxkIiwiYmxvY2tOYW1lIiwiaGFzTWFueSIsInJlbGF0aW9uc2hpcFZhbHVlIiwibWFwIiwicmVsYXRpb25zaGlwIiwicmVsYXRpb25UbyIsImZpZWxkSGFzU3ViRmllbGRzIiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFnRXZCQTs7O2VBQUFBOzs7cUVBN0RRO3VCQU8yQzt3RUFDaEM7K0JBQ0Y7Ozs7OztBQW9EdkIsTUFBTUEsdUJBQXVCLE9BQU9DO0lBQ3pDLE1BQU0sRUFDSkMsRUFBRSxFQUNGQyxxQkFBcUIsS0FBSyxFQUMxQkMsTUFBTSxFQUNOQyxJQUFJLEVBQ0pDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxpQkFBaUIsS0FBSyxFQUN0QkMsUUFBUSxFQUNSQyxnQkFBZ0IsS0FBSyxFQUNyQkMsTUFBTSxFQUNOQyxjQUFjLEtBQUssRUFDbkJDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsc0JBQXNCLEtBQUssRUFDM0JDLGlCQUFpQixLQUFLLEVBQ3RCQyxLQUFLLEVBQ0xDLENBQUMsRUFDREMsSUFBSSxFQUNMLEdBQUdwQjtJQUNKLElBQUlxQixJQUFBQSx1QkFBZ0IsRUFBQ2hCLFFBQVE7UUFDM0IsTUFBTWlCLGFBQXdCO1lBQzVCQyxXQUFXbEIsTUFBTW1CLEtBQUssRUFBRUQ7WUFDeEJFLGFBQWFoQixnQkFBZ0JKLFFBQVFxQjtZQUNyQ0MsY0FBY0Q7WUFDZGI7WUFDQWUsT0FBTztZQUNQQyxVQUFVeEIsTUFBTXdCLFFBQVE7WUFDeEJDLE9BQU9KO1FBQ1Q7UUFFQSxNQUFNSyxtQkFBbUIsTUFBTUMsSUFBQUEsd0JBQW1CLEVBQUM7WUFDakRDLGNBQWM1QixNQUFNNEIsWUFBWTtZQUNoQ3ZCO1lBQ0FVO1lBQ0FVLE9BQU8xQixNQUFN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
|
|
@@ -3,23 +3,64 @@ import type { User } from '../../../../../auth';
|
|
|
3
3
|
import type { SanitizedConfig } from '../../../../../config/types';
|
|
4
4
|
import type { Field as FieldSchema } from '../../../../../fields/config/types';
|
|
5
5
|
import type { Data, Fields } from '../types';
|
|
6
|
+
import type { AddFieldStatePromiseArgs } from './addFieldStatePromise';
|
|
6
7
|
type Args = {
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
* if any parents is localized, then the field is localized. @default false
|
|
10
|
+
*/
|
|
11
|
+
anyParentLocalized?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* config is only needed for validation
|
|
14
|
+
*/
|
|
15
|
+
config?: SanitizedConfig;
|
|
8
16
|
data: Data;
|
|
9
17
|
fields: FieldSchema[];
|
|
18
|
+
filter?: (args: AddFieldStatePromiseArgs) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Force the value of fields like arrays or blocks to be the full value instead of the length @default false
|
|
21
|
+
*/
|
|
22
|
+
forceFullValue?: boolean;
|
|
10
23
|
fullData: Data;
|
|
11
|
-
id
|
|
24
|
+
id?: number | string;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the field schema should be included in the state. @default false
|
|
27
|
+
*/
|
|
28
|
+
includeSchema?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* operation is only needed for checking field conditions
|
|
31
|
+
*/
|
|
12
32
|
locale: string;
|
|
33
|
+
/**
|
|
34
|
+
* Whether to omit parent fields in the state. @default false
|
|
35
|
+
*/
|
|
36
|
+
omitParents?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* operation is only needed for validation
|
|
39
|
+
*/
|
|
13
40
|
operation: 'create' | 'update';
|
|
14
|
-
parentPassesCondition
|
|
15
|
-
|
|
16
|
-
|
|
41
|
+
parentPassesCondition?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The initial path of the field. @default ''
|
|
44
|
+
*/
|
|
45
|
+
path?: string;
|
|
46
|
+
preferences?: {
|
|
17
47
|
[key: string]: unknown;
|
|
18
48
|
};
|
|
19
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Whether to skip checking the field's condition. @default false
|
|
51
|
+
*/
|
|
52
|
+
skipConditionChecks?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Whether to skip validating the field. @default false
|
|
55
|
+
*/
|
|
56
|
+
skipValidation?: boolean;
|
|
57
|
+
state?: Fields;
|
|
20
58
|
t: TFunction;
|
|
21
59
|
user: User;
|
|
22
60
|
};
|
|
23
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Flattens the fields schema and fields data
|
|
63
|
+
*/
|
|
64
|
+
export declare const iterateFields: ({ id, anyParentLocalized, config, data, fields, filter, forceFullValue, fullData, includeSchema, locale, omitParents, operation, parentPassesCondition, path, preferences, skipConditionChecks, skipValidation, state, t, user, }: Args) => Promise<void>;
|
|
24
65
|
export {};
|
|
25
66
|
//# sourceMappingURL=iterateFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/Form/buildStateFromSchema/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/Form/buildStateFromSchema/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAKtE,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IACD;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,SAAS,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,sOAqBvB,IAAI,KAAG,QAAQ,IAAI,CAwCrB,CAAA"}
|
|
@@ -10,25 +10,34 @@ Object.defineProperty(exports, "iterateFields", {
|
|
|
10
10
|
});
|
|
11
11
|
const _types = require("../../../../../fields/config/types");
|
|
12
12
|
const _addFieldStatePromise = require("./addFieldStatePromise");
|
|
13
|
-
const iterateFields = async ({ id, config, data, fields, fullData, locale, operation, parentPassesCondition, path = '', preferences, state, t, user })=>{
|
|
13
|
+
const iterateFields = async ({ id, anyParentLocalized = false, config, data, fields, filter, forceFullValue = false, fullData, includeSchema = false, locale, omitParents = false, operation, parentPassesCondition = true, path = '', preferences, skipConditionChecks = false, skipValidation = false, state = {}, t, user })=>{
|
|
14
14
|
const promises = [];
|
|
15
15
|
fields.forEach((field)=>{
|
|
16
|
-
const initialData = data;
|
|
17
16
|
if (!(0, _types.fieldIsPresentationalOnly)(field) && !field?.admin?.disabled) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
let passesCondition = true;
|
|
18
|
+
if (!skipConditionChecks) {
|
|
19
|
+
passesCondition = Boolean((field?.admin?.condition ? Boolean(field.admin.condition(fullData || {}, data || {}, {
|
|
20
|
+
user
|
|
21
|
+
})) : true) && parentPassesCondition);
|
|
22
|
+
}
|
|
21
23
|
promises.push((0, _addFieldStatePromise.addFieldStatePromise)({
|
|
22
24
|
id,
|
|
25
|
+
anyParentLocalized,
|
|
23
26
|
config,
|
|
24
27
|
data,
|
|
25
28
|
field,
|
|
29
|
+
filter,
|
|
30
|
+
forceFullValue,
|
|
26
31
|
fullData,
|
|
32
|
+
includeSchema,
|
|
27
33
|
locale,
|
|
34
|
+
omitParents,
|
|
28
35
|
operation,
|
|
29
36
|
passesCondition,
|
|
30
37
|
path,
|
|
31
38
|
preferences,
|
|
39
|
+
skipConditionChecks,
|
|
40
|
+
skipValidation,
|
|
32
41
|
state,
|
|
33
42
|
t,
|
|
34
43
|
user
|
|
@@ -38,4 +47,4 @@ const iterateFields = async ({ id, config, data, fields, fullData, locale, opera
|
|
|
38
47
|
await Promise.all(promises);
|
|
39
48
|
};
|
|
40
49
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEvaXRlcmF0ZUZpZWxkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRGdW5jdGlvbiB9IGZyb20gJ2kxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2F1dGgnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQgYXMgRmllbGRTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhLCBGaWVsZHMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRkRmllbGRTdGF0ZVByb21pc2VBcmdzIH0gZnJvbSAnLi9hZGRGaWVsZFN0YXRlUHJvbWlzZSdcblxuaW1wb3J0IHsgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgeyBhZGRGaWVsZFN0YXRlUHJvbWlzZSB9IGZyb20gJy4vYWRkRmllbGRTdGF0ZVByb21pc2UnXG5cbnR5cGUgQXJncyA9IHtcbiAgLyoqXG4gICAqIGlmIGFueSBwYXJlbnRzIGlzIGxvY2FsaXplZCwgdGhlbiB0aGUgZmllbGQgaXMgbG9jYWxpemVkLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYW55UGFyZW50TG9jYWxpemVkPzogYm9vbGVhblxuICAvKipcbiAgICogY29uZmlnIGlzIG9ubHkgbmVlZGVkIGZvciB2YWxpZGF0aW9uXG4gICAqL1xuICBjb25maWc/OiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogRGF0YVxuICBmaWVsZHM6IEZpZWxkU2NoZW1hW11cbiAgZmlsdGVyPzogKGFyZ3M6IEFkZEZpZWxkU3RhdGVQcm9taXNlQXJncykgPT4gYm9vbGVhblxuICAvKipcbiAgICogRm9yY2UgdGhlIHZhbHVlIG9mIGZpZWxkcyBsaWtlIGFycmF5cyBvciBibG9ja3MgdG8gYmUgdGhlIGZ1bGwgdmFsdWUgaW5zdGVhZCBvZiB0aGUgbGVuZ3RoIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBmb3JjZUZ1bGxWYWx1ZT86IGJvb2xlYW5cbiAgZnVsbERhdGE6IERhdGFcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIHNjaGVtYSBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHN0YXRlLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaW5jbHVkZVNjaGVtYT86IGJvb2xlYW5cblxuICAvKipcbiAgICogb3BlcmF0aW9uIGlzIG9ubHkgbmVlZGVkIGZvciBjaGVja2luZyBmaWVsZCBjb25kaXRpb25zXG4gICAqL1xuICBsb2NhbGU6IHN0cmluZ1xuICAvKipcbiAgICogV2hldGhlciB0byBvbWl0IHBhcmVudCBmaWVsZHMgaW4gdGhlIHN0YXRlLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgb21pdFBhcmVudHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBvcGVyYXRpb24gaXMgb25seSBuZWVkZWQgZm9yIHZhbGlkYXRpb25cbiAgICovXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBwYXJlbnRQYXNzZXNDb25kaXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBwYXRoIG9mIHRoZSBmaWVsZC4gQGRlZmF1bHQgJydcbiAgICovXG4gIHBhdGg/OiBzdHJpbmdcbiAgcHJlZmVyZW5jZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICB9XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgY2hlY2tpbmcgdGhlIGZpZWxkJ3MgY29uZGl0aW9uLiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgc2tpcENvbmRpdGlvbkNoZWNrcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCB2YWxpZGF0aW5nIHRoZSBmaWVsZC4gQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHNraXBWYWxpZGF0aW9uPzogYm9vbGVhblxuICBzdGF0ZT86IEZpZWxkc1xuICB0OiBURnVuY3Rpb25cbiAgdXNlcjogVXNlclxufVxuXG4vKipcbiAqIEZsYXR0ZW5zIHRoZSBmaWVsZHMgc2NoZW1hIGFuZCBmaWVsZHMgZGF0YVxuICovXG5leHBvcnQgY29uc3QgaXRlcmF0ZUZpZWxkcyA9IGFzeW5jICh7XG4gIGlkLFxuICBhbnlQYXJlbnRMb2NhbGl6ZWQgPSBmYWxzZSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBmaWVsZHMsXG4gIGZpbHRlcixcbiAgZm9yY2VGdWxsVmFsdWUgPSBmYWxzZSxcbiAgZnVsbERhdGEsXG4gIGluY2x1ZGVTY2hlbWEgPSBmYWxzZSxcbiAgbG9jYWxlLFxuICBvbWl0UGFyZW50cyA9IGZhbHNlLFxuICBvcGVyYXRpb24sXG4gIHBhcmVudFBhc3Nlc0NvbmRpdGlvbiA9IHRydWUsXG4gIHBhdGggPSAnJyxcbiAgcHJlZmVyZW5jZXMsXG4gIHNraXBDb25kaXRpb25DaGVja3MgPSBmYWxzZSxcbiAgc2tpcFZhbGlkYXRpb24gPSBmYWxzZSxcbiAgc3RhdGUgPSB7fSxcbiAgdCxcbiAgdXNlcixcbn06IEFyZ3MpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpZiAoIWZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkoZmllbGQpICYmICFmaWVsZD8uYWRtaW4/LmRpc2FibGVkKSB7XG4gICAgICBsZXQgcGFzc2VzQ29uZGl0aW9uID0gdHJ1ZVxuICAgICAgaWYgKCFza2lwQ29uZGl0aW9uQ2hlY2tzKSB7XG4gICAgICAgIHBhc3Nlc0NvbmRpdGlvbiA9IEJvb2xlYW4oXG4gICAgICAgICAgKGZpZWxkPy5hZG1pbj8uY29uZGl0aW9uXG4gICAgICAgICAgICA/IEJvb2xlYW4oZmllbGQuYWRtaW4uY29uZGl0aW9uKGZ1bGxEYXRhIHx8IHt9LCBkYXRhIHx8IHt9LCB7IHVzZXIgfSkpXG4gICAgICAgICAgICA6IHRydWUpICYmIHBhcmVudFBhc3Nlc0NvbmRpdGlvbixcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICBhZGRGaWVsZFN0YXRlUHJvbWlzZSh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgYW55UGFyZW50TG9jYWxpemVkLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICBmb3JjZUZ1bGxWYWx1ZSxcbiAgICAgICAgICBmdWxsRGF0YSxcbiAgICAgICAgICBpbmNsdWRlU2NoZW1hLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvbWl0UGFyZW50cyxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcGFzc2VzQ29uZGl0aW9uLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgc2tpcENvbmRpdGlvbkNoZWNrcyxcbiAgICAgICAgICBza2lwVmFsaWRhdGlvbixcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICB0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgfSlcbiAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG59XG4iXSwibmFtZXMiOlsiaXRlcmF0ZUZpZWxkcyIsImlkIiwiYW55UGFyZW50TG9jYWxpemVkIiwiY29uZmlnIiwiZGF0YSIsImZpZWxkcyIsImZpbHRlciIsImZvcmNlRnVsbFZhbHVlIiwiZnVsbERhdGEiLCJpbmNsdWRlU2NoZW1hIiwibG9jYWxlIiwib21pdFBhcmVudHMiLCJvcGVyYXRpb24iLCJwYXJlbnRQYXNzZXNDb25kaXRpb24iLCJwYXRoIiwicHJlZmVyZW5jZXMiLCJza2lwQ29uZGl0aW9uQ2hlY2tzIiwic2tpcFZhbGlkYXRpb24iLCJzdGF0ZSIsInQiLCJ1c2VyIiwicHJvbWlzZXMiLCJmb3JFYWNoIiwiZmllbGQiLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiYWRtaW4iLCJkaXNhYmxlZCIsInBhc3Nlc0NvbmRpdGlvbiIsIkJvb2xlYW4iLCJjb25kaXRpb24iLCJwdXNoIiwiYWRkRmllbGRTdGF0ZVByb21pc2UiLCJQcm9taXNlIiwiYWxsIl0sIm1hcHBpbmdzIjoiOzs7OytCQXNFYUE7OztlQUFBQTs7O3VCQTlENkI7c0NBQ0w7QUE2RDlCLE1BQU1BLGdCQUFnQixPQUFPLEVBQ2xDQyxFQUFFLEVBQ0ZDLHFCQUFxQixLQUFLLEVBQzFCQyxNQUFNLEVBQ05DLElBQUksRUFDSkMsTUFBTSxFQUNOQyxNQUFNLEVBQ05DLGlCQUFpQixLQUFLLEVBQ3RCQyxRQUFRLEVBQ1JDLGdCQUFnQixLQUFLLEVBQ3JCQyxNQUFNLEVBQ05DLGNBQWMsS0FBSyxFQUNuQkMsU0FBUyxFQUNUQyx3QkFBd0IsSUFBSSxFQUM1QkMsT0FBTyxFQUFFLEVBQ1RDLFdBQVcsRUFDWEMsc0JBQXNCLEtBQUssRUFDM0JDLGlCQUFpQixLQUFLLEVBQ3RCQyxRQUFRLENBQUMsQ0FBQyxFQUNWQyxDQUFDLEVBQ0RDLElBQUksRUFDQztJQUNMLE1BQU1DLFdBQVcsRUFBRTtJQUNuQmhCLE9BQU9pQixPQUFPLENBQUMsQ0FBQ0M7UUFDZCxJQUFJLENBQUNDLElBQUFBLGdDQUF5QixFQUFDRCxVQUFVLENBQUNBLE9BQU9FLE9BQU9DLFVBQVU7WUFDaEUsSUFBSUMsa0JBQWtCO1lBQ3RCLElBQUksQ0FBQ1gscUJBQXFCO2dCQUN4Qlcsa0JBQWtCQyxRQUNoQixBQUFDTCxDQUFBQSxPQUFPRSxPQUFPSSxZQUNYRCxRQUFRTCxNQUFNRSxLQUFLLENBQUNJLFNBQVMsQ0FBQ3JCLFlBQVksQ0FBQyxHQUFHSixRQUFRLENBQUMsR0FBRztvQkFBRWdCO2dCQUFLLE1BQ2pFLElBQUcsS0FBTVA7WUFFakI7WUFFQVEsU0FBU1MsSUFBSSxDQUNYQyxJQUFBQSwwQ0FBb0IsRUFBQztnQkFDbkI5QjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQW1CO2dCQUNBakI7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FlO2dCQUNBYjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztZQUNGO1FBRUo7SUFDRjtJQUNBLE1BQU1ZLFFBQVFDLEdBQUcsQ0FBQ1o7QUFDcEIifQ==
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { Data, Fields } from './types';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Reduce flattened form fields (Fields) to just map to the respective values instead of the full FormField object
|
|
4
|
+
*
|
|
5
|
+
* @param unflatten This also unflattens the data if `unflatten` is true. The unflattened data should match the original data structure
|
|
6
|
+
* @param ignoreDisableFormData - if true, will include fields that have `disableFormData` set to true, for example, blocks or arrays fields.
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
declare const reduceFieldsToValues: (fields: Fields, unflatten?: boolean, ignoreDisableFormData?: boolean) => Data;
|
|
3
10
|
export default reduceFieldsToValues;
|
|
4
11
|
//# sourceMappingURL=reduceFieldsToValues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceFieldsToValues.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/reduceFieldsToValues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE3C,QAAA,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"reduceFieldsToValues.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/reduceFieldsToValues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE3C;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,WAChB,MAAM,cACF,OAAO,0BACK,OAAO,KAC9B,IAcF,CAAA;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -9,10 +9,16 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _flatley = require("flatley");
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Reduce flattened form fields (Fields) to just map to the respective values instead of the full FormField object
|
|
14
|
+
*
|
|
15
|
+
* @param unflatten This also unflattens the data if `unflatten` is true. The unflattened data should match the original data structure
|
|
16
|
+
* @param ignoreDisableFormData - if true, will include fields that have `disableFormData` set to true, for example, blocks or arrays fields.
|
|
17
|
+
*
|
|
18
|
+
*/ const reduceFieldsToValues = (fields, unflatten, ignoreDisableFormData)=>{
|
|
13
19
|
const data = {};
|
|
14
20
|
Object.keys(fields).forEach((key)=>{
|
|
15
|
-
if (!fields[key].disableFormData) {
|
|
21
|
+
if (ignoreDisableFormData === true || !fields[key].disableFormData) {
|
|
16
22
|
data[key] = fields[key].value;
|
|
17
23
|
}
|
|
18
24
|
});
|
|
@@ -25,4 +31,4 @@ const reduceFieldsToValues = (fields, unflatten)=>{
|
|
|
25
31
|
};
|
|
26
32
|
const _default = reduceFieldsToValues;
|
|
27
33
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vcmVkdWNlRmllbGRzVG9WYWx1ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5mbGF0dGVuIGFzIGZsYXRsZXlVbmZsYXR0ZW4gfSBmcm9tICdmbGF0bGV5J1xuXG5pbXBvcnQgdHlwZSB7IERhdGEsIEZpZWxkcyB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogUmVkdWNlIGZsYXR0ZW5lZCBmb3JtIGZpZWxkcyAoRmllbGRzKSB0byBqdXN0IG1hcCB0byB0aGUgcmVzcGVjdGl2ZSB2YWx1ZXMgaW5zdGVhZCBvZiB0aGUgZnVsbCBGb3JtRmllbGQgb2JqZWN0XG4gKlxuICogQHBhcmFtIHVuZmxhdHRlbiBUaGlzIGFsc28gdW5mbGF0dGVucyB0aGUgZGF0YSBpZiBgdW5mbGF0dGVuYCBpcyB0cnVlLiBUaGUgdW5mbGF0dGVuZWQgZGF0YSBzaG91bGQgbWF0Y2ggdGhlIG9yaWdpbmFsIGRhdGEgc3RydWN0dXJlXG4gKiBAcGFyYW0gaWdub3JlRGlzYWJsZUZvcm1EYXRhIC0gaWYgdHJ1ZSwgd2lsbCBpbmNsdWRlIGZpZWxkcyB0aGF0IGhhdmUgYGRpc2FibGVGb3JtRGF0YWAgc2V0IHRvIHRydWUsIGZvciBleGFtcGxlLCBibG9ja3Mgb3IgYXJyYXlzIGZpZWxkcy5cbiAqXG4gKi9cbmNvbnN0IHJlZHVjZUZpZWxkc1RvVmFsdWVzID0gKFxuICBmaWVsZHM6IEZpZWxkcyxcbiAgdW5mbGF0dGVuPzogYm9vbGVhbixcbiAgaWdub3JlRGlzYWJsZUZvcm1EYXRhPzogYm9vbGVhbixcbik6IERhdGEgPT4ge1xuICBjb25zdCBkYXRhID0ge31cblxuICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChpZ25vcmVEaXNhYmxlRm9ybURhdGEgPT09IHRydWUgfHwgIWZpZWxkc1trZXldLmRpc2FibGVGb3JtRGF0YSkge1xuICAgICAgZGF0YVtrZXldID0gZmllbGRzW2tleV0udmFsdWVcbiAgICB9XG4gIH0pXG5cbiAgaWYgKHVuZmxhdHRlbikge1xuICAgIHJldHVybiBmbGF0bGV5VW5mbGF0dGVuKGRhdGEsIHsgc2FmZTogdHJ1ZSB9KVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuZXhwb3J0IGRlZmF1bHQgcmVkdWNlRmllbGRzVG9WYWx1ZXNcbiJdLCJuYW1lcyI6WyJyZWR1Y2VGaWVsZHNUb1ZhbHVlcyIsImZpZWxkcyIsInVuZmxhdHRlbiIsImlnbm9yZURpc2FibGVGb3JtRGF0YSIsImRhdGEiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImRpc2FibGVGb3JtRGF0YSIsInZhbHVlIiwiZmxhdGxleVVuZmxhdHRlbiIsInNhZmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBK0JBOzs7ZUFBQTs7O3lCQS9COEM7QUFJOUM7Ozs7OztDQU1DLEdBQ0QsTUFBTUEsdUJBQXVCLENBQzNCQyxRQUNBQyxXQUNBQztJQUVBLE1BQU1DLE9BQU8sQ0FBQztJQUVkQyxPQUFPQyxJQUFJLENBQUNMLFFBQVFNLE9BQU8sQ0FBQyxDQUFDQztRQUMzQixJQUFJTCwwQkFBMEIsUUFBUSxDQUFDRixNQUFNLENBQUNPLElBQUksQ0FBQ0MsZUFBZSxFQUFFO1lBQ2xFTCxJQUFJLENBQUNJLElBQUksR0FBR1AsTUFBTSxDQUFDTyxJQUFJLENBQUNFLEtBQUs7UUFDL0I7SUFDRjtJQUVBLElBQUlSLFdBQVc7UUFDYixPQUFPUyxJQUFBQSxrQkFBZ0IsRUFBQ1AsTUFBTTtZQUFFUSxNQUFNO1FBQUs7SUFDN0M7SUFFQSxPQUFPUjtBQUNUO01BRUEsV0FBZUoifQ==
|