@payloadcms/db-mongodb 1.5.1 → 1.6.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/dist/connect.js +1 -1
- package/dist/count.js +2 -2
- package/dist/create.js +2 -2
- package/dist/createGlobal.js +2 -2
- package/dist/createGlobalVersion.js +2 -2
- package/dist/createMigration.js +1 -1
- package/dist/createVersion.js +2 -2
- package/dist/deleteMany.js +2 -2
- package/dist/deleteOne.js +2 -2
- package/dist/deleteVersions.js +2 -2
- package/dist/destroy.js +1 -1
- package/dist/find.js +2 -2
- package/dist/findGlobal.js +2 -2
- package/dist/findGlobalVersions.js +2 -2
- package/dist/findOne.js +2 -2
- package/dist/findVersions.js +2 -2
- package/dist/index.d.ts +38 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +11 -7
- package/dist/migrateFresh.js +1 -1
- package/dist/models/buildCollectionSchema.d.ts +2 -2
- package/dist/models/buildCollectionSchema.d.ts.map +1 -1
- package/dist/models/buildCollectionSchema.js +7 -6
- package/dist/models/buildGlobalModel.d.ts +2 -2
- package/dist/models/buildGlobalModel.d.ts.map +1 -1
- package/dist/models/buildGlobalModel.js +10 -6
- package/dist/models/buildSchema.d.ts +2 -2
- package/dist/models/buildSchema.d.ts.map +1 -1
- package/dist/models/buildSchema.js +72 -62
- package/dist/queries/buildAndOrConditions.js +1 -1
- package/dist/queries/buildQuery.js +1 -1
- package/dist/queries/buildSearchParams.js +1 -1
- package/dist/queries/buildSortParam.js +1 -1
- package/dist/queries/getLocalizedSortProperty.js +1 -1
- package/dist/queries/getLocalizedSortProperty.spec.js +1 -1
- package/dist/queries/mock.js +1 -1
- package/dist/queries/operatorMap.js +1 -1
- package/dist/queries/parseParams.js +1 -1
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/sanitizeQueryValue.js +68 -14
- package/dist/queryDrafts.js +2 -2
- package/dist/testCredentials.js +1 -1
- package/dist/transactions/beginTransaction.js +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +2 -1
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
- package/dist/transactions/rollbackTransaction.js +14 -8
- package/dist/types.js +1 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +2 -2
- package/dist/updateGlobalVersion.js +2 -2
- package/dist/updateOne.js +2 -2
- package/dist/updateVersion.js +2 -2
- package/dist/utilities/getDBName.js +1 -1
- package/dist/utilities/handleError.js +1 -1
- package/dist/utilities/sanitizeInternalFields.js +1 -1
- package/dist/withSession.d.ts +3 -2
- package/dist/withSession.d.ts.map +1 -1
- package/dist/withSession.js +7 -3
- package/package.json +3 -3
|
@@ -28,10 +28,10 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
|
28
28
|
const localizeSchema = (entity, schema, localization)=>{
|
|
29
29
|
if ((0, _types.fieldIsLocalized)(entity) && localization && Array.isArray(localization.locales)) {
|
|
30
30
|
return {
|
|
31
|
-
type: localization.localeCodes.reduce((localeSchema, locale)=>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
type: localization.localeCodes.reduce((localeSchema, locale)=>{
|
|
32
|
+
localeSchema[locale] = schema;
|
|
33
|
+
return localeSchema;
|
|
34
|
+
}, {
|
|
35
35
|
_id: false
|
|
36
36
|
}),
|
|
37
37
|
localized: true
|
|
@@ -39,7 +39,7 @@ const localizeSchema = (entity, schema, localization)=>{
|
|
|
39
39
|
}
|
|
40
40
|
return schema;
|
|
41
41
|
};
|
|
42
|
-
const buildSchema = (
|
|
42
|
+
const buildSchema = (adapter, configFields, buildSchemaOptions = {})=>{
|
|
43
43
|
const { allowIDField, options } = buildSchemaOptions;
|
|
44
44
|
let fields = {};
|
|
45
45
|
let schemaFields = configFields;
|
|
@@ -57,60 +57,66 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
|
|
|
57
57
|
if (!(0, _types.fieldIsPresentationalOnly)(field)) {
|
|
58
58
|
const addFieldSchema = fieldToSchemaMap[field.type];
|
|
59
59
|
if (addFieldSchema) {
|
|
60
|
-
addFieldSchema(field, schema,
|
|
60
|
+
addFieldSchema(field, schema, adapter, buildSchemaOptions);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
return schema;
|
|
65
65
|
};
|
|
66
66
|
const fieldToSchemaMap = {
|
|
67
|
-
array: (field, schema,
|
|
67
|
+
array: (field, schema, adapter, buildSchemaOptions)=>{
|
|
68
68
|
const baseSchema = {
|
|
69
69
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
70
70
|
type: [
|
|
71
|
-
buildSchema(
|
|
71
|
+
buildSchema(adapter, field.fields, {
|
|
72
72
|
allowIDField: true,
|
|
73
73
|
disableUnique: buildSchemaOptions.disableUnique,
|
|
74
74
|
draftsEnabled: buildSchemaOptions.draftsEnabled,
|
|
75
75
|
options: {
|
|
76
|
+
minimize: false,
|
|
77
|
+
...buildSchemaOptions.options || {},
|
|
76
78
|
_id: false,
|
|
77
79
|
id: false,
|
|
78
|
-
|
|
80
|
+
timestamps: false
|
|
79
81
|
}
|
|
80
82
|
})
|
|
81
83
|
],
|
|
82
84
|
default: undefined
|
|
83
85
|
};
|
|
84
86
|
schema.add({
|
|
85
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
87
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
86
88
|
});
|
|
87
89
|
},
|
|
88
|
-
blocks: (field, schema,
|
|
90
|
+
blocks: (field, schema, adapter, buildSchemaOptions)=>{
|
|
89
91
|
const fieldSchema = {
|
|
90
92
|
type: [
|
|
91
93
|
new _mongoose.Schema({}, {
|
|
92
94
|
_id: false,
|
|
93
|
-
discriminatorKey: 'blockType'
|
|
95
|
+
discriminatorKey: 'blockType',
|
|
96
|
+
...buildSchemaOptions.options || {},
|
|
97
|
+
timestamps: false
|
|
94
98
|
})
|
|
95
99
|
],
|
|
96
100
|
default: undefined
|
|
97
101
|
};
|
|
98
102
|
schema.add({
|
|
99
|
-
[field.name]: localizeSchema(field, fieldSchema, config.localization)
|
|
103
|
+
[field.name]: localizeSchema(field, fieldSchema, adapter.payload.config.localization)
|
|
100
104
|
});
|
|
101
105
|
field.blocks.forEach((blockItem)=>{
|
|
102
106
|
const blockSchema = new _mongoose.Schema({}, {
|
|
107
|
+
...buildSchemaOptions.options || {},
|
|
103
108
|
_id: false,
|
|
104
|
-
id: false
|
|
109
|
+
id: false,
|
|
110
|
+
timestamps: false
|
|
105
111
|
});
|
|
106
112
|
blockItem.fields.forEach((blockField)=>{
|
|
107
113
|
const addFieldSchema = fieldToSchemaMap[blockField.type];
|
|
108
114
|
if (addFieldSchema) {
|
|
109
|
-
addFieldSchema(blockField, blockSchema,
|
|
115
|
+
addFieldSchema(blockField, blockSchema, adapter, buildSchemaOptions);
|
|
110
116
|
}
|
|
111
117
|
});
|
|
112
|
-
if (field.localized && config.localization) {
|
|
113
|
-
config.localization.localeCodes.forEach((localeCode)=>{
|
|
118
|
+
if (field.localized && adapter.payload.config.localization) {
|
|
119
|
+
adapter.payload.config.localization.localeCodes.forEach((localeCode)=>{
|
|
114
120
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
115
121
|
// @ts-expect-error Possible incorrect typing in mongoose types, this works
|
|
116
122
|
schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
|
|
@@ -122,81 +128,83 @@ const fieldToSchemaMap = {
|
|
|
122
128
|
}
|
|
123
129
|
});
|
|
124
130
|
},
|
|
125
|
-
checkbox: (field, schema,
|
|
131
|
+
checkbox: (field, schema, adapter, buildSchemaOptions)=>{
|
|
126
132
|
const baseSchema = {
|
|
127
133
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
128
134
|
type: Boolean
|
|
129
135
|
};
|
|
130
136
|
schema.add({
|
|
131
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
137
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
132
138
|
});
|
|
133
139
|
},
|
|
134
|
-
code: (field, schema,
|
|
140
|
+
code: (field, schema, adapter, buildSchemaOptions)=>{
|
|
135
141
|
const baseSchema = {
|
|
136
142
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
137
143
|
type: String
|
|
138
144
|
};
|
|
139
145
|
schema.add({
|
|
140
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
146
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
141
147
|
});
|
|
142
148
|
},
|
|
143
|
-
collapsible: (field, schema,
|
|
149
|
+
collapsible: (field, schema, adapter, buildSchemaOptions)=>{
|
|
144
150
|
field.fields.forEach((subField)=>{
|
|
145
151
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
146
152
|
if (addFieldSchema) {
|
|
147
|
-
addFieldSchema(subField, schema,
|
|
153
|
+
addFieldSchema(subField, schema, adapter, buildSchemaOptions);
|
|
148
154
|
}
|
|
149
155
|
});
|
|
150
156
|
},
|
|
151
|
-
date: (field, schema,
|
|
157
|
+
date: (field, schema, adapter, buildSchemaOptions)=>{
|
|
152
158
|
const baseSchema = {
|
|
153
159
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
154
160
|
type: Date
|
|
155
161
|
};
|
|
156
162
|
schema.add({
|
|
157
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
163
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
158
164
|
});
|
|
159
165
|
},
|
|
160
|
-
email: (field, schema,
|
|
166
|
+
email: (field, schema, adapter, buildSchemaOptions)=>{
|
|
161
167
|
const baseSchema = {
|
|
162
168
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
163
169
|
type: String
|
|
164
170
|
};
|
|
165
171
|
schema.add({
|
|
166
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
172
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
167
173
|
});
|
|
168
174
|
},
|
|
169
|
-
group: (field, schema,
|
|
175
|
+
group: (field, schema, adapter, buildSchemaOptions)=>{
|
|
170
176
|
const formattedBaseSchema = formatBaseSchema(field, buildSchemaOptions);
|
|
171
177
|
// carry indexSortableFields through to versions if drafts enabled
|
|
172
178
|
const indexSortableFields = buildSchemaOptions.indexSortableFields && field.name === 'version' && buildSchemaOptions.draftsEnabled;
|
|
173
179
|
const baseSchema = {
|
|
174
180
|
...formattedBaseSchema,
|
|
175
|
-
type: buildSchema(
|
|
181
|
+
type: buildSchema(adapter, field.fields, {
|
|
176
182
|
disableUnique: buildSchemaOptions.disableUnique,
|
|
177
183
|
draftsEnabled: buildSchemaOptions.draftsEnabled,
|
|
178
184
|
indexSortableFields,
|
|
179
185
|
options: {
|
|
186
|
+
minimize: false,
|
|
187
|
+
...buildSchemaOptions.options || {},
|
|
180
188
|
_id: false,
|
|
181
189
|
id: false,
|
|
182
|
-
|
|
190
|
+
timestamps: false
|
|
183
191
|
}
|
|
184
192
|
})
|
|
185
193
|
};
|
|
186
194
|
schema.add({
|
|
187
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
195
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
188
196
|
});
|
|
189
197
|
},
|
|
190
|
-
json: (field, schema,
|
|
198
|
+
json: (field, schema, adapter, buildSchemaOptions)=>{
|
|
191
199
|
const baseSchema = {
|
|
192
200
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
193
201
|
type: _mongoose.Schema.Types.Mixed
|
|
194
202
|
};
|
|
195
203
|
schema.add({
|
|
196
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
204
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
197
205
|
});
|
|
198
206
|
},
|
|
199
|
-
number: (field, schema,
|
|
207
|
+
number: (field, schema, adapter, buildSchemaOptions)=>{
|
|
200
208
|
const baseSchema = {
|
|
201
209
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
202
210
|
type: field.hasMany ? [
|
|
@@ -204,10 +212,10 @@ const fieldToSchemaMap = {
|
|
|
204
212
|
] : Number
|
|
205
213
|
};
|
|
206
214
|
schema.add({
|
|
207
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
215
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
208
216
|
});
|
|
209
217
|
},
|
|
210
|
-
point: (field, schema,
|
|
218
|
+
point: (field, schema, adapter, buildSchemaOptions)=>{
|
|
211
219
|
const baseSchema = {
|
|
212
220
|
type: {
|
|
213
221
|
type: String,
|
|
@@ -227,7 +235,7 @@ const fieldToSchemaMap = {
|
|
|
227
235
|
baseSchema.coordinates.sparse = true;
|
|
228
236
|
}
|
|
229
237
|
schema.add({
|
|
230
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
238
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
231
239
|
});
|
|
232
240
|
if (field.index === true || field.index === undefined) {
|
|
233
241
|
const indexOptions = {};
|
|
@@ -235,8 +243,8 @@ const fieldToSchemaMap = {
|
|
|
235
243
|
indexOptions.sparse = true;
|
|
236
244
|
indexOptions.unique = true;
|
|
237
245
|
}
|
|
238
|
-
if (field.localized && config.localization) {
|
|
239
|
-
config.localization.locales.forEach((locale)=>{
|
|
246
|
+
if (field.localized && adapter.payload.config.localization) {
|
|
247
|
+
adapter.payload.config.localization.locales.forEach((locale)=>{
|
|
240
248
|
schema.index({
|
|
241
249
|
[`${field.name}.${locale.code}`]: '2dsphere'
|
|
242
250
|
}, indexOptions);
|
|
@@ -248,7 +256,7 @@ const fieldToSchemaMap = {
|
|
|
248
256
|
}
|
|
249
257
|
}
|
|
250
258
|
},
|
|
251
|
-
radio: (field, schema,
|
|
259
|
+
radio: (field, schema, adapter, buildSchemaOptions)=>{
|
|
252
260
|
const baseSchema = {
|
|
253
261
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
254
262
|
type: String,
|
|
@@ -258,15 +266,15 @@ const fieldToSchemaMap = {
|
|
|
258
266
|
})
|
|
259
267
|
};
|
|
260
268
|
schema.add({
|
|
261
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
269
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
262
270
|
});
|
|
263
271
|
},
|
|
264
|
-
relationship: (field, schema,
|
|
272
|
+
relationship: (field, schema, adapter, buildSchemaOptions)=>{
|
|
265
273
|
const hasManyRelations = Array.isArray(field.relationTo);
|
|
266
274
|
let schemaToReturn = {};
|
|
267
|
-
if (field.localized && config.localization) {
|
|
275
|
+
if (field.localized && adapter.payload.config.localization) {
|
|
268
276
|
schemaToReturn = {
|
|
269
|
-
type: config.localization.localeCodes.reduce((locales, locale)=>{
|
|
277
|
+
type: adapter.payload.config.localization.localeCodes.reduce((locales, locale)=>{
|
|
270
278
|
let localeSchema = {};
|
|
271
279
|
if (hasManyRelations) {
|
|
272
280
|
localeSchema = {
|
|
@@ -342,24 +350,24 @@ const fieldToSchemaMap = {
|
|
|
342
350
|
[field.name]: schemaToReturn
|
|
343
351
|
});
|
|
344
352
|
},
|
|
345
|
-
richText: (field, schema,
|
|
353
|
+
richText: (field, schema, adapter, buildSchemaOptions)=>{
|
|
346
354
|
const baseSchema = {
|
|
347
355
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
348
356
|
type: _mongoose.Schema.Types.Mixed
|
|
349
357
|
};
|
|
350
358
|
schema.add({
|
|
351
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
359
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
352
360
|
});
|
|
353
361
|
},
|
|
354
|
-
row: (field, schema,
|
|
362
|
+
row: (field, schema, adapter, buildSchemaOptions)=>{
|
|
355
363
|
field.fields.forEach((subField)=>{
|
|
356
364
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
357
365
|
if (addFieldSchema) {
|
|
358
|
-
addFieldSchema(subField, schema,
|
|
366
|
+
addFieldSchema(subField, schema, adapter, buildSchemaOptions);
|
|
359
367
|
}
|
|
360
368
|
});
|
|
361
369
|
},
|
|
362
|
-
select: (field, schema,
|
|
370
|
+
select: (field, schema, adapter, buildSchemaOptions)=>{
|
|
363
371
|
const baseSchema = {
|
|
364
372
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
365
373
|
type: String,
|
|
@@ -374,37 +382,39 @@ const fieldToSchemaMap = {
|
|
|
374
382
|
schema.add({
|
|
375
383
|
[field.name]: localizeSchema(field, field.hasMany ? [
|
|
376
384
|
baseSchema
|
|
377
|
-
] : baseSchema, config.localization)
|
|
385
|
+
] : baseSchema, adapter.payload.config.localization)
|
|
378
386
|
});
|
|
379
387
|
},
|
|
380
|
-
tabs: (field, schema,
|
|
388
|
+
tabs: (field, schema, adapter, buildSchemaOptions)=>{
|
|
381
389
|
field.tabs.forEach((tab)=>{
|
|
382
390
|
if ((0, _types.tabHasName)(tab)) {
|
|
383
391
|
const baseSchema = {
|
|
384
|
-
type: buildSchema(
|
|
392
|
+
type: buildSchema(adapter, tab.fields, {
|
|
385
393
|
disableUnique: buildSchemaOptions.disableUnique,
|
|
386
394
|
draftsEnabled: buildSchemaOptions.draftsEnabled,
|
|
387
395
|
options: {
|
|
396
|
+
minimize: false,
|
|
397
|
+
...buildSchemaOptions.options || {},
|
|
388
398
|
_id: false,
|
|
389
399
|
id: false,
|
|
390
|
-
|
|
400
|
+
timestamps: false
|
|
391
401
|
}
|
|
392
402
|
})
|
|
393
403
|
};
|
|
394
404
|
schema.add({
|
|
395
|
-
[tab.name]: localizeSchema(tab, baseSchema, config.localization)
|
|
405
|
+
[tab.name]: localizeSchema(tab, baseSchema, adapter.payload.config.localization)
|
|
396
406
|
});
|
|
397
407
|
} else {
|
|
398
408
|
tab.fields.forEach((subField)=>{
|
|
399
409
|
const addFieldSchema = fieldToSchemaMap[subField.type];
|
|
400
410
|
if (addFieldSchema) {
|
|
401
|
-
addFieldSchema(subField, schema,
|
|
411
|
+
addFieldSchema(subField, schema, adapter, buildSchemaOptions);
|
|
402
412
|
}
|
|
403
413
|
});
|
|
404
414
|
}
|
|
405
415
|
});
|
|
406
416
|
},
|
|
407
|
-
text: (field, schema,
|
|
417
|
+
text: (field, schema, adapter, buildSchemaOptions)=>{
|
|
408
418
|
const baseSchema = {
|
|
409
419
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
410
420
|
type: field.hasMany ? [
|
|
@@ -412,29 +422,29 @@ const fieldToSchemaMap = {
|
|
|
412
422
|
] : String
|
|
413
423
|
};
|
|
414
424
|
schema.add({
|
|
415
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
425
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
416
426
|
});
|
|
417
427
|
},
|
|
418
|
-
textarea: (field, schema,
|
|
428
|
+
textarea: (field, schema, adapter, buildSchemaOptions)=>{
|
|
419
429
|
const baseSchema = {
|
|
420
430
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
421
431
|
type: String
|
|
422
432
|
};
|
|
423
433
|
schema.add({
|
|
424
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
434
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
425
435
|
});
|
|
426
436
|
},
|
|
427
|
-
upload: (field, schema,
|
|
437
|
+
upload: (field, schema, adapter, buildSchemaOptions)=>{
|
|
428
438
|
const baseSchema = {
|
|
429
439
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
430
440
|
type: _mongoose.Schema.Types.Mixed,
|
|
431
441
|
ref: field.relationTo
|
|
432
442
|
};
|
|
433
443
|
schema.add({
|
|
434
|
-
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
444
|
+
[field.name]: localizeSchema(field, baseSchema, adapter.payload.config.localization)
|
|
435
445
|
});
|
|
436
446
|
}
|
|
437
447
|
};
|
|
438
448
|
const _default = buildSchema;
|
|
439
449
|
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuKSA9PiB2b2lkXG5cbmNvbnN0IGZvcm1hdEJhc2VTY2hlbWEgPSAoZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSwgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMpID0+IHtcbiAgY29uc3QgeyBkaXNhYmxlVW5pcXVlLCBkcmFmdHNFbmFibGVkLCBpbmRleFNvcnRhYmxlRmllbGRzIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgY29uc3Qgc2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICBpbmRleDogZmllbGQuaW5kZXggfHwgKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgaW5kZXhTb3J0YWJsZUZpZWxkcyB8fCBmYWxzZSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgdW5pcXVlOiAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBmYWxzZSxcbiAgfVxuXG4gIGlmIChcbiAgICBzY2hlbWEudW5pcXVlICYmXG4gICAgKGZpZWxkLmxvY2FsaXplZCB8fFxuICAgICAgZHJhZnRzRW5hYmxlZCB8fFxuICAgICAgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICdncm91cCcgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ3RhYicgJiZcbiAgICAgICAgZmllbGQucmVxdWlyZWQgIT09IHRydWUpKVxuICApIHtcbiAgICBzY2hlbWEuc3BhcnNlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGZpZWxkLmhpZGRlbikge1xuICAgIHNjaGVtYS5oaWRkZW4gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGxvY2FsaXplU2NoZW1hID0gKFxuICBlbnRpdHk6IE5vblByZXNlbnRhdGlvbmFsRmllbGQgfCBUYWIsXG4gIHNjaGVtYSxcbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZSxcbikgPT4ge1xuICBpZiAoZmllbGRJc0xvY2FsaXplZChlbnRpdHkpICYmIGxvY2FsaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KGxvY2FsaXphdGlvbi5sb2NhbGVzKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKFxuICAgICAgICAobG9jYWxlU2NoZW1hLCBsb2NhbGUpID0+ICh7XG4gICAgICAgICAgLi4ubG9jYWxlU2NoZW1hLFxuICAgICAgICAgIFtsb2NhbGVdOiBzY2hlbWEsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgYnVpbGRTY2hlbWEgPSAoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGZpZWxkVG9TY2hlbWFNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkU2NoZW1hR2VuZXJhdG9yPiA9IHtcbiAgYXJyYXk6IChcbiAgICBmaWVsZDogQXJyYXlGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBbXG4gICAgICAgIGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgYmxvY2tzOiAoXG4gICAgZmllbGQ6IEJsb2NrRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0ge1xuICAgICAgdHlwZTogW25ldyBTY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgZGlzY3JpbWluYXRvcktleTogJ2Jsb2NrVHlwZScgfSldLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2tJdGVtOiBCbG9jaykgPT4ge1xuICAgICAgY29uc3QgYmxvY2tTY2hlbWEgPSBuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGlkOiBmYWxzZSB9KVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBCb29sZWFuIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29kZTogKFxuICAgIGZpZWxkOiBDb2RlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiAoXG4gICAgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBEYXRlIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZW1haWw6IChcbiAgICBmaWVsZDogRW1haWxGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZ3JvdXA6IChcbiAgICBmaWVsZDogR3JvdXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkQmFzZVNjaGVtYSA9IGZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucylcblxuICAgIC8vIGNhcnJ5IGluZGV4U29ydGFibGVGaWVsZHMgdGhyb3VnaCB0byB2ZXJzaW9ucyBpZiBkcmFmdHMgZW5hYmxlZFxuICAgIGNvbnN0IGluZGV4U29ydGFibGVGaWVsZHMgPVxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmluZGV4U29ydGFibGVGaWVsZHMgJiZcbiAgICAgIGZpZWxkLm5hbWUgPT09ICd2ZXJzaW9uJyAmJlxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWRcblxuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXR0ZWRCYXNlU2NoZW1hLFxuICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgbnVtYmVyOiAoXG4gICAgZmllbGQ6IE51bWJlckZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHBvaW50OiAoXG4gICAgZmllbGQ6IFBvaW50RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGVudW06IFsnUG9pbnQnXSxcbiAgICAgIH0sXG4gICAgICBjb29yZGluYXRlczoge1xuICAgICAgICB0eXBlOiBbTnVtYmVyXSxcbiAgICAgICAgZGVmYXVsdDogZmllbGQuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSAmJiBmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuY29vcmRpbmF0ZXMuc3BhcnNlID0gdHJ1ZVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlcy5mb3JFYWNoKChsb2NhbGUpID0+IHtcbiAgICAgICAgICBzY2hlbWEuaW5kZXgoeyBbYCR7ZmllbGQubmFtZX0uJHtsb2NhbGUuY29kZX1gXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzY2hlbWEuaW5kZXgoeyBbZmllbGQubmFtZV06ICcyZHNwaGVyZScgfSwgaW5kZXhPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgcmFkaW86IChcbiAgICBmaWVsZDogUmFkaW9GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBlbnVtOiBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JykgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHJlbGF0aW9uc2hpcDogKFxuICAgIGZpZWxkOiBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgaGFzTWFueVJlbGF0aW9ucyA9IEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbylcbiAgICBsZXQgc2NoZW1hVG9SZXR1cm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fVxuXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgdHlwZTogY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoKGxvY2FsZXMsIGxvY2FsZSkgPT4ge1xuICAgICAgICAgIGxldCBsb2NhbGVTY2hlbWE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fVxuXG4gICAgICAgICAgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgICAgICAgIGxvY2FsZVNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICByZWxhdGlvblRvOiB7IHR5cGU6IFN0cmluZywgZW51bTogZmllbGQucmVsYXRpb25UbyB9LFxuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgICByZWZQYXRoOiBgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsZVNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmxvY2FsZXMsXG4gICAgICAgICAgICBbbG9jYWxlXTogZmllbGQuaGFzTWFueSA/IHsgdHlwZTogW2xvY2FsZVNjaGVtYV0sIGRlZmF1bHQ6IHVuZGVmaW5lZCB9IDogbG9jYWxlU2NoZW1hLFxuICAgICAgICAgIH1cbiAgICAgICAgfSwge30pLFxuICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWxhdGlvblRvOiB7IHR5cGU6IFN0cmluZywgZW51bTogZmllbGQucmVsYXRpb25UbyB9LFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICByZWZQYXRoOiBgJHtmaWVsZC5uYW1lfS5yZWxhdGlvblRvYCxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBzY2hlbWFUb1JldHVybixcbiAgICB9KVxuICB9LFxuICByaWNoVGV4dDogKFxuICAgIGZpZWxkOiBSaWNoVGV4dEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByb3c6IChcbiAgICBmaWVsZDogUm93RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIHNlbGVjdDogKFxuICAgIGZpZWxkOiBTZWxlY3RGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBlbnVtOiBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JykgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBpZiAoYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQgfHwgIWZpZWxkLnJlcXVpcmVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmVudW0ucHVzaChudWxsKVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShcbiAgICAgICAgZmllbGQsXG4gICAgICAgIGZpZWxkLmhhc01hbnkgPyBbYmFzZVNjaGVtYV0gOiBiYXNlU2NoZW1hLFxuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLFxuICAgICAgKSxcbiAgICB9KVxuICB9LFxuICB0YWJzOiAoXG4gICAgZmllbGQ6IFRhYnNGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIHRhYi5maWVsZHMsIHtcbiAgICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuXG4gICAgICAgIHNjaGVtYS5hZGQoe1xuICAgICAgICAgIFt0YWIubmFtZV06IGxvY2FsaXplU2NoZW1hKHRhYiwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWIuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIHRleHQ6IChcbiAgICBmaWVsZDogVGV4dEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbU3RyaW5nXSA6IFN0cmluZyxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHRleHRhcmVhOiAoXG4gICAgZmllbGQ6IFRleHRhcmVhRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHVwbG9hZDogKFxuICAgIGZpZWxkOiBVcGxvYWRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZFNjaGVtYVxuIl0sIm5hbWVzIjpbImZvcm1hdEJhc2VTY2hlbWEiLCJmaWVsZCIsImJ1aWxkU2NoZW1hT3B0aW9ucyIsImRpc2FibGVVbmlxdWUiLCJkcmFmdHNFbmFibGVkIiwiaW5kZXhTb3J0YWJsZUZpZWxkcyIsInNjaGVtYSIsImluZGV4IiwidW5pcXVlIiwicmVxdWlyZWQiLCJsb2NhbGl6ZWQiLCJmaWVsZEFmZmVjdHNEYXRhIiwidHlwZSIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiZmllbGRJc0xvY2FsaXplZCIsIkFycmF5IiwiaXNBcnJheSIsImxvY2FsZXMiLCJsb2NhbGVDb2RlcyIsInJlZHVjZSIsImxvY2FsZVNjaGVtYSIsImxvY2FsZSIsIl9pZCIsImJ1aWxkU2NoZW1hIiwiY29uZmlnIiwiY29uZmlnRmllbGRzIiwiYWxsb3dJREZpZWxkIiwib3B0aW9ucyIsImZpZWxkcyIsInNjaGVtYUZpZWxkcyIsImlkRmllbGQiLCJmaW5kIiwibmFtZSIsIk51bWJlciIsIlN0cmluZyIsImZpbHRlciIsIlNjaGVtYSIsImZvckVhY2giLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiYWRkRmllbGRTY2hlbWEiLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJiYXNlU2NoZW1hIiwiaWQiLCJtaW5pbWl6ZSIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJhZGQiLCJibG9ja3MiLCJmaWVsZFNjaGVtYSIsImRpc2NyaW1pbmF0b3JLZXkiLCJibG9ja0l0ZW0iLCJibG9ja1NjaGVtYSIsImJsb2NrRmllbGQiLCJsb2NhbGVDb2RlIiwicGF0aCIsImRpc2NyaW1pbmF0b3IiLCJzbHVnIiwiY2hlY2tib3giLCJCb29sZWFuIiwiY29kZSIsImNvbGxhcHNpYmxlIiwic3ViRmllbGQiLCJkYXRlIiwiRGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJmb3JtYXR0ZWRCYXNlU2NoZW1hIiwianNvbiIsIlR5cGVzIiwiTWl4ZWQiLCJudW1iZXIiLCJoYXNNYW55IiwicG9pbnQiLCJlbnVtIiwiY29vcmRpbmF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJpbmRleE9wdGlvbnMiLCJyYWRpbyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueVJlbGF0aW9ucyIsInJlbGF0aW9uVG8iLCJzY2hlbWFUb1JldHVybiIsInJlZlBhdGgiLCJyZWYiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsInB1c2giLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQsR0FDMUQsdUNBQXVDOzs7OytCQW1sQnZDOzs7ZUFBQTs7OzBCQXBqQnVCO3VCQU1oQjtBQWlCUCxNQUFNQSxtQkFBbUIsQ0FBQ0MsT0FBMkJDO0lBQ25ELE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLG1CQUFtQixFQUFFLEdBQUdIO0lBQzlELE1BQU1JLFNBQXFDO1FBQ3pDQyxPQUFPTixNQUFNTSxLQUFLLElBQUssQ0FBQ0osaUJBQWlCRixNQUFNTyxNQUFNLElBQUtILHVCQUF1QjtRQUNqRkksVUFBVTtRQUNWRCxRQUFRLEFBQUMsQ0FBQ0wsaUJBQWlCRixNQUFNTyxNQUFNLElBQUs7SUFDOUM7SUFFQSxJQUNFRixPQUFPRSxNQUFNLElBQ1pQLENBQUFBLE1BQU1TLFNBQVMsSUFDZE4saUJBQ0NPLElBQUFBLHVCQUFnQixFQUFDVixVQUNoQkEsTUFBTVcsSUFBSSxLQUFLLFdBQ2ZYLE1BQU1XLElBQUksS0FBSyxTQUNmWCxNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTyxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWixNQUFNYSxNQUFNLEVBQUU7UUFDaEJSLE9BQU9RLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9SO0FBQ1Q7QUFFQSxNQUFNUyxpQkFBaUIsQ0FDckJDLFFBQ0FWLFFBQ0FXO0lBRUEsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNGLFdBQVdDLGdCQUFnQkUsTUFBTUMsT0FBTyxDQUFDSCxhQUFhSSxPQUFPLEdBQUc7UUFDbkYsT0FBTztZQUNMVCxNQUFNSyxhQUFhSyxXQUFXLENBQUNDLE1BQU0sQ0FDbkMsQ0FBQ0MsY0FBY0MsU0FBWSxD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
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IE1vbmdvb3NlQWRhcHRlciB9IGZyb20gJy4uJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbikgPT4gdm9pZFxuXG5jb25zdCBmb3JtYXRCYXNlU2NoZW1hID0gKGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEsIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHsgZGlzYWJsZVVuaXF1ZSwgZHJhZnRzRW5hYmxlZCwgaW5kZXhTb3J0YWJsZUZpZWxkcyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGNvbnN0IHNjaGVtYTogU2NoZW1hVHlwZU9wdGlvbnM8dW5rbm93bj4gPSB7XG4gICAgaW5kZXg6IGZpZWxkLmluZGV4IHx8ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGluZGV4U29ydGFibGVGaWVsZHMgfHwgZmFsc2UsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHVuaXF1ZTogKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgZmFsc2UsXG4gIH1cblxuICBpZiAoXG4gICAgc2NoZW1hLnVuaXF1ZSAmJlxuICAgIChmaWVsZC5sb2NhbGl6ZWQgfHxcbiAgICAgIGRyYWZ0c0VuYWJsZWQgfHxcbiAgICAgIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAnZ3JvdXAnICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICd0YWInICYmXG4gICAgICAgIGZpZWxkLnJlcXVpcmVkICE9PSB0cnVlKSlcbiAgKSB7XG4gICAgc2NoZW1hLnNwYXJzZSA9IHRydWVcbiAgfVxuXG4gIGlmIChmaWVsZC5oaWRkZW4pIHtcbiAgICBzY2hlbWEuaGlkZGVuID0gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBsb2NhbGl6ZVNjaGVtYSA9IChcbiAgZW50aXR5OiBOb25QcmVzZW50YXRpb25hbEZpZWxkIHwgVGFiLFxuICBzY2hlbWEsXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2UsXG4pID0+IHtcbiAgaWYgKGZpZWxkSXNMb2NhbGl6ZWQoZW50aXR5KSAmJiBsb2NhbGl6YXRpb24gJiYgQXJyYXkuaXNBcnJheShsb2NhbGl6YXRpb24ubG9jYWxlcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogbG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZShcbiAgICAgICAgKGxvY2FsZVNjaGVtYSwgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbG9jYWxlU2NoZW1hW2xvY2FsZV0gPSBzY2hlbWFcbiAgICAgICAgICByZXR1cm4gbG9jYWxlU2NoZW1hXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGFkYXB0ZXIsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBmaWVsZFRvU2NoZW1hTWFwOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFNjaGVtYUdlbmVyYXRvcj4gPSB7XG4gIGFycmF5OiAoXG4gICAgZmllbGQ6IEFycmF5RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoYWRhcHRlciwgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIC4uLihidWlsZFNjaGVtYU9wdGlvbnMub3B0aW9ucyB8fCB7fSksXG4gICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgdGltZXN0YW1wczogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGJsb2NrczogKFxuICAgIGZpZWxkOiBCbG9ja0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbXG4gICAgICAgIG5ldyBTY2hlbWEoXG4gICAgICAgICAge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JLZXk6ICdibG9ja1R5cGUnLFxuICAgICAgICAgICAgLi4uKGJ1aWxkU2NoZW1hT3B0aW9ucy5vcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgIHRpbWVzdGFtcHM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuXG4gICAgZmllbGQuYmxvY2tzLmZvckVhY2goKGJsb2NrSXRlbTogQmxvY2spID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrU2NoZW1hID0gbmV3IFNjaGVtYShcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICAuLi4oYnVpbGRTY2hlbWFPcHRpb25zLm9wdGlvbnMgfHwge30pLFxuICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgIHRpbWVzdGFtcHM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBhZGFwdGVyLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogQm9vbGVhbiB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBhZGFwdGVyOiBNb25nb29zZUFkYXB0ZXIsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2xsYXBzaWJsZTogKFxuICAgIGZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgYWRhcHRlciwgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogRGF0ZSB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGdyb3VwOiAoXG4gICAgZmllbGQ6IEdyb3VwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShhZGFwdGVyLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICAgIC4uLihidWlsZFNjaGVtYU9wdGlvbnMub3B0aW9ucyB8fCB7fSksXG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgdGltZXN0YW1wczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBhZGFwdGVyOiBNb25nb29zZUFkYXB0ZXIsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBudW1iZXI6IChcbiAgICBmaWVsZDogTnVtYmVyRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYTogU2NoZW1hVHlwZU9wdGlvbnM8dW5rbm93bj4gPSB7XG4gICAgICB0eXBlOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZW51bTogWydQb2ludCddLFxuICAgICAgfSxcbiAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgIHR5cGU6IFtOdW1iZXJdLFxuICAgICAgICBkZWZhdWx0OiBmaWVsZC5kZWZhdWx0VmFsdWUgfHwgdW5kZWZpbmVkLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIH1cbiAgICBpZiAoYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlICYmIGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgYmFzZVNjaGVtYS5jb29yZGluYXRlcy5zcGFyc2UgPSB0cnVlXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVzLmZvckVhY2goKGxvY2FsZSkgPT4ge1xuICAgICAgICAgIHNjaGVtYS5pbmRleCh7IFtgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZS5jb2RlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBlbnVtOiBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JykgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByZWxhdGlvbnNoaXA6IChcbiAgICBmaWVsZDogUmVsYXRpb25zaGlwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgdHlwZTogYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9LnJlbGF0aW9uVG9gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IHR5cGU6IFtsb2NhbGVTY2hlbWFdLCBkZWZhdWx0OiB1bmRlZmluZWQgfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogc2NoZW1hVG9SZXR1cm4sXG4gICAgfSlcbiAgfSxcbiAgcmljaFRleHQ6IChcbiAgICBmaWVsZDogUmljaFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBhZGFwdGVyOiBNb25nb29zZUFkYXB0ZXIsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByb3c6IChcbiAgICBmaWVsZDogUm93RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBhZGFwdGVyLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgc2VsZWN0OiAoXG4gICAgZmllbGQ6IFNlbGVjdEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBlbnVtOiBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JykgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBpZiAoYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQgfHwgIWZpZWxkLnJlcXVpcmVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmVudW0ucHVzaChudWxsKVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShcbiAgICAgICAgZmllbGQsXG4gICAgICAgIGZpZWxkLmhhc01hbnkgPyBbYmFzZVNjaGVtYV0gOiBiYXNlU2NoZW1hLFxuICAgICAgICBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgICAgIHR5cGU6IGJ1aWxkU2NoZW1hKGFkYXB0ZXIsIHRhYi5maWVsZHMsIHtcbiAgICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgICAgLi4uKGJ1aWxkU2NoZW1hT3B0aW9ucy5vcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0aW1lc3RhbXBzOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYi5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBhZGFwdGVyLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIHRleHQ6IChcbiAgICBmaWVsZDogVGV4dEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGFkYXB0ZXI6IE1vbmdvb3NlQWRhcHRlcixcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgdGV4dGFyZWE6IChcbiAgICBmaWVsZDogVGV4dGFyZWFGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBhZGFwdGVyOiBNb25nb29zZUFkYXB0ZXIsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgYWRhcHRlcjogTW9uZ29vc2VBZGFwdGVyLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZFNjaGVtYVxuIl0sIm5hbWVzIjpbImZvcm1hdEJhc2VTY2hlbWEiLCJmaWVsZCIsImJ1aWxkU2NoZW1hT3B0aW9ucyIsImRpc2FibGVVbmlxdWUiLCJkcmFmdHNFbmFibGVkIiwiaW5kZXhTb3J0YWJsZUZpZWxkcyIsInNjaGVtYSIsImluZGV4IiwidW5pcXVlIiwicmVxdWlyZWQiLCJsb2NhbGl6ZWQiLCJmaWVsZEFmZmVjdHNEYXRhIiwidHlwZSIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiZmllbGRJc0xvY2FsaXplZCIsIkFycmF5IiwiaXNBcnJheSIsImxvY2FsZXMiLCJsb2NhbGVDb2RlcyIsInJlZHVjZSIsImxvY2FsZVNjaGVtYSIsImxvY2FsZSIsIl9pZCIsImJ1aWxkU2NoZW1hIiwiYWRhcHRlciIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJTY2hlbWEiLCJmb3JFYWNoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsIm1pbmltaXplIiwiaWQiLCJ0aW1lc3RhbXBzIiwiZGVmYXVsdCIsInVuZGVmaW5lZCIsImFkZCIsInBheWxvYWQiLCJjb25maWciLCJibG9ja3MiLCJmaWVsZFNjaGVtYSIsImRpc2NyaW1pbmF0b3JLZXkiLCJibG9ja0l0ZW0iLCJibG9ja1NjaGVtYSIsImJsb2NrRmllbGQiLCJsb2NhbGVDb2RlIiwicGF0aCIsImRpc2NyaW1pbmF0b3IiLCJzbHVnIiwiY2hlY2tib3giLCJCb29sZWFuIiwiY29kZSIsImNvbGxhcHNpYmxlIiwic3ViRmllbGQiLCJkYXRlIiwiRGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJmb3JtYXR0ZWRCYXNlU2NoZW1hIiwianNvbiIsIlR5cGVzIiwiTWl4ZWQiLCJudW1iZXIiLCJoYXNNYW55IiwicG9pbnQiLCJlbnVtIiwiY29vcmRpbmF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJpbmRleE9wdGlvbnMiLCJyYWRpbyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueVJlbGF0aW9ucyIsInJlbGF0aW9uVG8iLCJzY2hlbWFUb1JldHVybiIsInJlZlBhdGgiLCJyZWYiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsInB1c2giLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCxHQUNwRCx5Q0FBeUMsR0FDekMsMERBQTBELEdBQzFELHVDQUF1Qzs7OzsrQkE2bUJ2Qzs7O2VBQUE7OzswQkE5a0J1Qjt1QkFNaEI7QUFtQlAsTUFBTUEsbUJBQW1CLENBQUNDLE9BQTJCQztJQUNuRCxNQUFNLEVBQUVDLGFBQWEs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
|
|
@@ -34,4 +34,4 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
|
|
|
34
34
|
return completedConditions;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgY29uc3QgY29tcGxldGVkQ29uZGl0aW9ucyA9IFtdXG4gIC8vIExvb3Agb3ZlciBhbGwgQU5EIC8gT1Igb3BlcmF0aW9ucyBhbmQgYWRkIHRoZW0gdG8gdGhlIEFORCAvIE9SIHF1ZXJ5IHBhcmFtXG4gIC8vIE9wZXJhdGlvbnMgc2hvdWxkIGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJheVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygd2hlcmUpIHtcbiAgICAvLyBJZiB0aGUgb3BlcmF0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCBhcyBhbiBvYmplY3RcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgIH0pXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbXBsZXRlZENvbmRpdGlvbnMucHVzaChyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb21wbGV0ZWRDb25kaXRpb25zXG59XG4iXSwibmFtZXMiOlsiYnVpbGRBbmRPckNvbmRpdGlvbnMiLCJjb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImdsb2JhbFNsdWciLCJsb2NhbGUiLCJwYXlsb2FkIiwid2hlcmUiLCJjb21wbGV0ZWRDb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwicGFyc2VQYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQUtzQkE7OztlQUFBQTs7OzZCQUZNO0FBRXJCLGVBQWVBLHFCQUFxQixFQUN6Q0MsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxPQUFPLEVBQ1BDLEtBQUssRUFRTjtJQUNDLE1BQU1DLHNCQUFzQixFQUFFO0lBQzlCLDZFQUE2RTtJQUM3RSw2Q0FBNkM7SUFDN0MsZ0RBQWdEO0lBQ2hELEtBQUssTUFBTUMsYUFBYUYsTUFBTztRQUM3QixzREFBc0Q7UUFDdEQsSUFBSSxPQUFPRSxjQUFjLFVBQVU7WUFDakMsNENBQTRDO1lBQzVDLE1BQU1DLFNBQVMsTUFBTUMsSUFBQUEsd0JBQVcsRUFBQztnQkFDL0JUO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUMsT0FBT0U7WUFDVDtZQUNBLElBQUlHLE9BQU9DLElBQUksQ0FBQ0gsUUFBUUksTUFBTSxHQUFHLEdBQUc7Z0JBQ2xDTixvQkFBb0JPLElBQUksQ0FBQ0w7WUFDM0I7UUFDRjtJQUNGO0lBQ0EsT0FBT0Y7QUFDVCJ9
|
|
@@ -46,4 +46,4 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
|
|
|
46
46
|
};
|
|
47
47
|
const _default = getBuildQueryPlugin;
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsInBhcnNlUGFyYW1zIiwibGVuZ3RoIiwiUXVlcnlFcnJvciIsInN0YXRpY3MiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkE2REE7OztlQUFBOzs7d0JBMUQyQjs2QkFFQztBQWM1Qix5RUFBeUU7QUFDekUseURBQXlEO0FBQ3pELE1BQU1BLHNCQUFzQixDQUFDLEVBQUVDLGNBQWMsRUFBRUMsY0FBYyxFQUEyQixHQUFHLENBQUMsQ0FBQztJQUMzRixPQUFPLFNBQVNDLGlCQUFpQkMsTUFBTTtRQUNyQyxNQUFNQyxpQkFBaUJEO1FBQ3ZCLGVBQWVFLFdBQVcsRUFDeEJDLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxPQUFPLEVBQ1BDLEtBQUssRUFDVTtZQUNmLElBQUlDLFNBQVNUO1lBQ2IsSUFBSSxDQUFDUyxRQUFRO2dCQUNYLElBQUlKLFlBQVk7b0JBQ2QsTUFBTUssZUFBZUgsUUFBUUksT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLEVBQUVDLElBQUksRUFBRSxHQUFLQSxTQUFTVDtvQkFDeEVJLFNBQVNDLGFBQWFELE1BQU07Z0JBQzlCO2dCQUNBLElBQUlWLGdCQUFnQjtvQkFDbEIsTUFBTWdCLG1CQUFtQlIsUUFBUVMsV0FBVyxDQUFDakIsZUFBZSxDQUFDYSxNQUFNO29CQUNuRUgsU0FBU00saUJBQWlCTixNQUFNO2dCQUNsQztZQUNGO1lBQ0EsTUFBTVEsU0FBUyxFQUFFO1lBQ2pCLE1BQU1DLFNBQVMsTUFBTUMsSUFBQUEsd0JBQVcsRUFBQztnQkFDL0JwQjtnQkFDQVU7Z0JBQ0FKO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO1lBQ0Y7WUFFQSxJQUFJUyxPQUFPRyxNQUFNLEdBQUcsR0FBRztnQkFDckIsTUFBTSxJQUFJQyxrQkFBVSxDQUFDSjtZQUN2QjtZQUVBLE9BQU9DO1FBQ1Q7UUFDQWYsZUFBZW1CLE9BQU8sQ0FBQ2xCLFVBQVUsR0FBR0E7SUFDdEM7QUFDRjtNQUVBLFdBQWVOIn0=
|