payload 2.0.13 → 2.0.15
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/forms.d.ts +2 -0
- package/components/forms.js +13 -5
- package/components/index.js +1 -1
- package/components/styles.css +1 -1
- package/dist/admin/components/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/admin/components/elements/DatePicker/DatePicker.js +16 -4
- package/dist/admin/components/elements/DatePicker/types.d.ts +2 -0
- package/dist/admin/components/elements/DatePicker/types.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +2 -2
- package/dist/admin/components/elements/DocumentFields/index.d.ts +1 -0
- package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentFields/index.js +6 -5
- package/dist/admin/components/elements/DocumentFields/index.scss +29 -0
- package/dist/admin/components/elements/DocumentHeader/Tabs/getCustomViews.d.ts +3 -2
- package/dist/admin/components/elements/DocumentHeader/Tabs/getCustomViews.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/getCustomViews.js +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/getViewConfig.d.ts +10 -0
- package/dist/admin/components/elements/DocumentHeader/Tabs/getViewConfig.d.ts.map +1 -0
- package/dist/admin/components/elements/DocumentHeader/Tabs/getViewConfig.js +24 -0
- package/dist/admin/components/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/index.js +28 -12
- package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.d.ts +4 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +26 -17
- package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts +2 -2
- package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts.map +1 -1
- package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DuplicateDocument/index.js +27 -42
- package/dist/admin/components/elements/FileDetails/index.scss +1 -1
- package/dist/admin/components/elements/ListControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/ListControls/index.js +5 -7
- package/dist/admin/components/elements/ListControls/index.scss +3 -6
- package/dist/admin/components/elements/Nav/NavToggler/index.js +2 -2
- package/dist/admin/components/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/admin/components/elements/SortColumn/index.js +7 -5
- package/dist/admin/components/elements/StepNav/index.d.ts.map +1 -1
- package/dist/admin/components/elements/StepNav/index.js +11 -5
- package/dist/admin/components/elements/StepNav/index.scss +2 -0
- package/dist/admin/components/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Tooltip/index.js +15 -6
- package/dist/admin/components/elements/Tooltip/index.scss +24 -1
- package/dist/admin/components/elements/Tooltip/types.d.ts +1 -0
- package/dist/admin/components/elements/Tooltip/types.d.ts.map +1 -1
- package/dist/admin/components/forms/Error/index.js +3 -2
- package/dist/admin/components/forms/Error/index.scss +2 -1
- package/dist/admin/components/forms/Error/types.d.ts +1 -0
- package/dist/admin/components/forms/Error/types.d.ts.map +1 -1
- package/dist/admin/components/forms/RenderFields/filterFields.d.ts.map +1 -1
- package/dist/admin/components/forms/RenderFields/filterFields.js +12 -5
- package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Checkbox/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/index.js +5 -3
- package/dist/admin/components/forms/field-types/DateTime/Input.d.ts +21 -0
- package/dist/admin/components/forms/field-types/DateTime/Input.d.ts.map +1 -0
- package/dist/admin/components/forms/field-types/DateTime/Input.js +65 -0
- package/dist/admin/components/forms/field-types/DateTime/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/DateTime/index.js +15 -41
- package/dist/admin/components/forms/field-types/RichText/types.d.ts +7 -7
- package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.js +2 -2
- package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Text/Input.js +2 -2
- package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
- package/dist/admin/components/views/Account/Default.js +3 -3
- package/dist/admin/components/views/Account/index.js +2 -2
- package/dist/admin/components/views/Global/Routes/custom.js +3 -3
- package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/index.js +12 -22
- package/dist/admin/components/views/LivePreview/index.scss +0 -24
- package/dist/admin/components/views/Version/Compare/index.d.ts.map +1 -1
- package/dist/admin/components/views/Version/Compare/index.js +7 -6
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +4 -2
- package/dist/admin/components/views/Versions/index.d.ts.map +1 -1
- package/dist/admin/components/views/Versions/index.js +3 -3
- package/dist/admin/components/views/collections/Edit/Routes/custom.js +3 -3
- package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/forgotPassword.js +3 -2
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +3 -2
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/registerFirstUser.js +3 -2
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js +3 -2
- package/dist/auth/operations/unlock.d.ts.map +1 -1
- package/dist/auth/operations/unlock.js +3 -2
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/verifyEmail.js +3 -2
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +3 -1
- package/dist/collections/config/types.d.ts +11 -10
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +1 -1
- package/dist/collections/dataloader.js +5 -5
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +8 -18
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +3 -2
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +3 -2
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +3 -2
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +11 -6
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +3 -2
- package/dist/collections/operations/findVersions.d.ts +1 -0
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js +5 -3
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +3 -2
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +3 -2
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +3 -2
- package/dist/collections/requestHandlers/findVersions.js +1 -1
- package/dist/config/sanitize.js +4 -4
- package/dist/config/shared/componentSchema.js +3 -3
- package/dist/config/types.d.ts +16 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- package/dist/database/queryValidation/validateSearchParams.js +2 -2
- package/dist/exports/components/forms.d.ts +2 -0
- package/dist/exports/components/forms.d.ts.map +1 -1
- package/dist/exports/components/forms.js +13 -5
- package/dist/exports/types.d.ts +1 -1
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +7 -1
- package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
- package/dist/fields/baseFields/baseIDField.js +2 -2
- package/dist/fields/config/types.d.ts +3 -4
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/globals/config/types.d.ts +11 -10
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +3 -2
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +5 -2
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +8 -3
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +5 -2
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +5 -2
- package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
- package/dist/graphql/schema/buildMutationInputType.js +8 -11
- package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
- package/dist/graphql/schema/buildObjectType.js +1 -2
- package/dist/graphql/schema/buildWhereInputType.d.ts.map +1 -1
- package/dist/graphql/schema/buildWhereInputType.js +22 -13
- package/dist/graphql/schema/withOperators.d.ts.map +1 -1
- package/dist/graphql/schema/withOperators.js +8 -11
- package/dist/preferences/operations/update.js +4 -4
- package/dist/translations/ar.json +3 -2
- package/dist/translations/az.json +3 -2
- package/dist/translations/bg.json +3 -2
- package/dist/translations/cs.json +3 -2
- package/dist/translations/de.json +3 -2
- package/dist/translations/en.json +1 -0
- package/dist/translations/es.json +3 -2
- package/dist/translations/fa.json +3 -2
- package/dist/translations/fr.json +3 -2
- package/dist/translations/hr.json +3 -2
- package/dist/translations/hu.json +3 -2
- package/dist/translations/index.d.ts +51 -25
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/it.json +3 -2
- package/dist/translations/ja.json +3 -2
- package/dist/translations/my.json +3 -2
- package/dist/translations/nb.json +3 -2
- package/dist/translations/nl.json +3 -2
- package/dist/translations/pl.json +6 -5
- package/dist/translations/pt.json +3 -2
- package/dist/translations/ro.json +3 -2
- package/dist/translations/ru.json +3 -2
- package/dist/translations/sv.json +3 -2
- package/dist/translations/th.json +3 -2
- package/dist/translations/tr.json +3 -2
- package/dist/translations/translation-schema.json +3 -0
- package/dist/translations/ua.json +3 -2
- package/dist/translations/vi.json +3 -2
- package/dist/translations/zh.json +3 -2
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +17 -2
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +19 -16
- package/dist/utilities/commitTransaction.d.ts +6 -0
- package/dist/utilities/commitTransaction.d.ts.map +1 -0
- package/dist/utilities/commitTransaction.js +17 -0
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +95 -107
- package/dist/utilities/configToJSONSchema.spec.js +12 -6
- package/dist/utilities/parseCookies.d.ts.map +1 -1
- package/dist/utilities/parseCookies.js +10 -2
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +5 -1
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +8 -10
- package/package.json +1 -1
- package/types.d.ts +1 -1
- package/types.js +7 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "commitTransaction", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return commitTransaction;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
async function commitTransaction(req) {
|
|
12
|
+
const { payload, transactionID } = req;
|
|
13
|
+
await payload.db.commitTransaction(transactionID);
|
|
14
|
+
delete req.transactionID;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5cbi8qKlxuICogY29tcGxldGUgYSB0cmFuc2FjdGlvbiBjYWxsaW5nIGFkYXB0ZXIgZGIuY29tbWl0VHJhbnNhY3Rpb24gYW5kIGRlbGV0ZSB0aGUgdHJhbnNhY3Rpb25JRCBmcm9tIHJlcVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29tbWl0VHJhbnNhY3Rpb24ocmVxOiBQYXlsb2FkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBheWxvYWQsIHRyYW5zYWN0aW9uSUQgfSA9IHJlcVxuXG4gIGF3YWl0IHBheWxvYWQuZGIuY29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JRClcbiAgZGVsZXRlIHJlcS50cmFuc2FjdGlvbklEXG59XG4iXSwibmFtZXMiOlsiY29tbWl0VHJhbnNhY3Rpb24iLCJyZXEiLCJwYXlsb2FkIiwidHJhbnNhY3Rpb25JRCIsImRiIl0sIm1hcHBpbmdzIjoiOzs7OytCQUtzQkE7OztlQUFBQTs7O0FBQWYsZUFBZUEsa0JBQWtCQyxHQUFtQjtJQUN6RCxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFLEdBQUdGO0lBRW5DLE1BQU1DLFFBQVFFLEVBQUUsQ0FBQ0osaUJBQWlCLENBQUNHO0lBQ25DLE9BQU9GLElBQUlFLGFBQWE7QUFDMUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configToJSONSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/configToJSONSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"configToJSONSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/configToJSONSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,aAAa,CAAA;AAInE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAwapE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,cAAc,EAAE,yBAAyB,GAAG,qBAAqB,EACjE,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClD,aAAa,EAAE,QAAQ,GAAG,MAAM,GAC/B,WAAW,CA6Db;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,GAChC,WAAW,CAsBb"}
|
|
@@ -20,18 +20,27 @@ const _pluralize = require("pluralize");
|
|
|
20
20
|
const _types = require("../fields/config/types");
|
|
21
21
|
const _deepCopyObject = require("./deepCopyObject");
|
|
22
22
|
const _formatLabels = require("./formatLabels");
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const fieldIsRequired = (field)=>{
|
|
24
|
+
const isConditional = Boolean(field?.admin && field?.admin?.condition);
|
|
25
|
+
if (isConditional) return false;
|
|
26
|
+
const isMarkedRequired = 'required' in field && field.required === true;
|
|
27
|
+
if ((0, _types.fieldAffectsData)(field) && isMarkedRequired) return true;
|
|
28
|
+
// if any subfields are required, this field is required
|
|
25
29
|
if ('fields' in field && field.type !== 'array') {
|
|
26
|
-
|
|
27
|
-
return field.fields.find((subField)=>propertyIsRequired(subField));
|
|
30
|
+
return field.fields.some((subField)=>fieldIsRequired(subField));
|
|
28
31
|
}
|
|
32
|
+
// if any tab subfields have required fields, this field is required
|
|
29
33
|
if (field.type === 'tabs') {
|
|
30
|
-
return field.tabs.some((tab)=>
|
|
34
|
+
return field.tabs.some((tab)=>{
|
|
35
|
+
if ('name' in tab) {
|
|
36
|
+
return tab.fields.some((subField)=>fieldIsRequired(subField));
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
});
|
|
31
40
|
}
|
|
32
41
|
return false;
|
|
33
42
|
};
|
|
34
|
-
function
|
|
43
|
+
function buildOptionEnums(options) {
|
|
35
44
|
return options.map((option)=>{
|
|
36
45
|
if (typeof option === 'object' && 'value' in option) {
|
|
37
46
|
return option.value;
|
|
@@ -57,11 +66,20 @@ function returnOptionEnums(options) {
|
|
|
57
66
|
type: 'object'
|
|
58
67
|
};
|
|
59
68
|
}
|
|
69
|
+
function withNullableType(fieldType, isRequired) {
|
|
70
|
+
const fieldTypes = [
|
|
71
|
+
fieldType
|
|
72
|
+
];
|
|
73
|
+
if (isRequired) return fieldType;
|
|
74
|
+
fieldTypes.push('null');
|
|
75
|
+
return fieldTypes;
|
|
76
|
+
}
|
|
60
77
|
function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinitions) {
|
|
61
|
-
|
|
62
|
-
const requiredFields = new Set(fields.filter(propertyIsRequired).map((field)=>(0, _types.fieldAffectsData)(field) ? field.name : ''));
|
|
78
|
+
const requiredFieldNames = new Set();
|
|
63
79
|
return {
|
|
64
80
|
properties: Object.fromEntries(fields.reduce((fieldSchemas, field)=>{
|
|
81
|
+
const isRequired = (0, _types.fieldAffectsData)(field) && fieldIsRequired(field);
|
|
82
|
+
if (isRequired) requiredFieldNames.add(field.name);
|
|
65
83
|
let fieldSchema;
|
|
66
84
|
switch(field.type){
|
|
67
85
|
case 'text':
|
|
@@ -71,7 +89,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
71
89
|
case 'date':
|
|
72
90
|
{
|
|
73
91
|
fieldSchema = {
|
|
74
|
-
type: 'string'
|
|
92
|
+
type: withNullableType('string', isRequired)
|
|
75
93
|
};
|
|
76
94
|
break;
|
|
77
95
|
}
|
|
@@ -82,11 +100,11 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
82
100
|
items: {
|
|
83
101
|
type: 'number'
|
|
84
102
|
},
|
|
85
|
-
type: 'array'
|
|
103
|
+
type: withNullableType('array', isRequired)
|
|
86
104
|
};
|
|
87
105
|
} else {
|
|
88
106
|
fieldSchema = {
|
|
89
|
-
type: 'number'
|
|
107
|
+
type: withNullableType('number', isRequired)
|
|
90
108
|
};
|
|
91
109
|
}
|
|
92
110
|
break;
|
|
@@ -94,33 +112,20 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
94
112
|
case 'checkbox':
|
|
95
113
|
{
|
|
96
114
|
fieldSchema = {
|
|
97
|
-
type: 'boolean'
|
|
115
|
+
type: withNullableType('boolean', isRequired)
|
|
98
116
|
};
|
|
99
117
|
break;
|
|
100
118
|
}
|
|
101
119
|
case 'json':
|
|
102
120
|
{
|
|
103
|
-
// https://www.rfc-editor.org/rfc/rfc7159#section-3
|
|
104
121
|
fieldSchema = {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
{
|
|
113
|
-
type: 'string'
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'number'
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
type: 'boolean'
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'null'
|
|
123
|
-
}
|
|
122
|
+
type: [
|
|
123
|
+
'object',
|
|
124
|
+
'array',
|
|
125
|
+
'string',
|
|
126
|
+
'number',
|
|
127
|
+
'boolean',
|
|
128
|
+
'null'
|
|
124
129
|
]
|
|
125
130
|
};
|
|
126
131
|
break;
|
|
@@ -131,31 +136,34 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
131
136
|
items: {
|
|
132
137
|
type: 'object'
|
|
133
138
|
},
|
|
134
|
-
type: 'array'
|
|
139
|
+
type: withNullableType('array', isRequired)
|
|
135
140
|
};
|
|
136
141
|
break;
|
|
137
142
|
}
|
|
138
143
|
case 'radio':
|
|
139
144
|
{
|
|
140
145
|
fieldSchema = {
|
|
141
|
-
enum:
|
|
142
|
-
type: 'string'
|
|
146
|
+
enum: buildOptionEnums(field.options),
|
|
147
|
+
type: withNullableType('string', isRequired)
|
|
143
148
|
};
|
|
144
149
|
break;
|
|
145
150
|
}
|
|
146
151
|
case 'select':
|
|
147
152
|
{
|
|
148
|
-
const
|
|
149
|
-
enum: returnOptionEnums(field.options),
|
|
150
|
-
type: 'string'
|
|
151
|
-
};
|
|
153
|
+
const optionEnums = buildOptionEnums(field.options);
|
|
152
154
|
if (field.hasMany) {
|
|
153
155
|
fieldSchema = {
|
|
154
|
-
items:
|
|
155
|
-
|
|
156
|
+
items: {
|
|
157
|
+
enum: optionEnums,
|
|
158
|
+
type: 'string'
|
|
159
|
+
},
|
|
160
|
+
type: withNullableType('array', isRequired)
|
|
156
161
|
};
|
|
157
162
|
} else {
|
|
158
|
-
fieldSchema =
|
|
163
|
+
fieldSchema = {
|
|
164
|
+
enum: optionEnums,
|
|
165
|
+
type: withNullableType('string', isRequired)
|
|
166
|
+
};
|
|
159
167
|
}
|
|
160
168
|
break;
|
|
161
169
|
}
|
|
@@ -172,7 +180,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
172
180
|
],
|
|
173
181
|
maxItems: 2,
|
|
174
182
|
minItems: 2,
|
|
175
|
-
type: 'array'
|
|
183
|
+
type: withNullableType('array', isRequired)
|
|
176
184
|
};
|
|
177
185
|
break;
|
|
178
186
|
}
|
|
@@ -181,54 +189,34 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
181
189
|
if (Array.isArray(field.relationTo)) {
|
|
182
190
|
if (field.hasMany) {
|
|
183
191
|
fieldSchema = {
|
|
184
|
-
|
|
185
|
-
{
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
items: {
|
|
193
|
+
oneOf: field.relationTo.map((relation)=>{
|
|
194
|
+
return {
|
|
195
|
+
additionalProperties: false,
|
|
196
|
+
properties: {
|
|
197
|
+
relationTo: {
|
|
198
|
+
const: relation
|
|
199
|
+
},
|
|
200
|
+
value: {
|
|
201
|
+
oneOf: [
|
|
202
|
+
{
|
|
195
203
|
type: collectionIDFieldTypes[relation]
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
required: [
|
|
199
|
-
'value',
|
|
200
|
-
'relationTo'
|
|
201
|
-
],
|
|
202
|
-
type: 'object'
|
|
203
|
-
};
|
|
204
|
-
})
|
|
205
|
-
},
|
|
206
|
-
type: 'array'
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
items: {
|
|
210
|
-
oneOf: field.relationTo.map((relation)=>{
|
|
211
|
-
return {
|
|
212
|
-
additionalProperties: false,
|
|
213
|
-
properties: {
|
|
214
|
-
relationTo: {
|
|
215
|
-
const: relation
|
|
216
204
|
},
|
|
217
|
-
|
|
205
|
+
{
|
|
218
206
|
$ref: `#/definitions/${relation}`
|
|
219
207
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
required: [
|
|
212
|
+
'value',
|
|
213
|
+
'relationTo'
|
|
214
|
+
],
|
|
215
|
+
type: 'object'
|
|
216
|
+
};
|
|
217
|
+
})
|
|
218
|
+
},
|
|
219
|
+
type: withNullableType('array', isRequired)
|
|
232
220
|
};
|
|
233
221
|
} else {
|
|
234
222
|
fieldSchema = {
|
|
@@ -254,33 +242,30 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
254
242
|
'value',
|
|
255
243
|
'relationTo'
|
|
256
244
|
],
|
|
257
|
-
type: 'object'
|
|
245
|
+
type: withNullableType('object', isRequired)
|
|
258
246
|
};
|
|
259
247
|
})
|
|
260
248
|
};
|
|
261
249
|
}
|
|
262
250
|
} else if (field.hasMany) {
|
|
263
251
|
fieldSchema = {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
252
|
+
items: {
|
|
253
|
+
oneOf: [
|
|
254
|
+
{
|
|
267
255
|
type: collectionIDFieldTypes[field.relationTo]
|
|
268
256
|
},
|
|
269
|
-
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
items: {
|
|
257
|
+
{
|
|
273
258
|
$ref: `#/definitions/${field.relationTo}`
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
259
|
+
}
|
|
260
|
+
]
|
|
261
|
+
},
|
|
262
|
+
type: withNullableType('array', isRequired)
|
|
278
263
|
};
|
|
279
264
|
} else {
|
|
280
265
|
fieldSchema = {
|
|
281
266
|
oneOf: [
|
|
282
267
|
{
|
|
283
|
-
type: collectionIDFieldTypes[field.relationTo]
|
|
268
|
+
type: withNullableType(collectionIDFieldTypes[field.relationTo], isRequired)
|
|
284
269
|
},
|
|
285
270
|
{
|
|
286
271
|
$ref: `#/definitions/${field.relationTo}`
|
|
@@ -302,6 +287,9 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
302
287
|
}
|
|
303
288
|
]
|
|
304
289
|
};
|
|
290
|
+
if (!isRequired) fieldSchema.oneOf.push({
|
|
291
|
+
type: 'null'
|
|
292
|
+
});
|
|
305
293
|
break;
|
|
306
294
|
}
|
|
307
295
|
case 'blocks':
|
|
@@ -333,7 +321,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
333
321
|
return blockSchema;
|
|
334
322
|
})
|
|
335
323
|
},
|
|
336
|
-
type: 'array'
|
|
324
|
+
type: withNullableType('array', isRequired)
|
|
337
325
|
};
|
|
338
326
|
break;
|
|
339
327
|
}
|
|
@@ -345,7 +333,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
345
333
|
type: 'object',
|
|
346
334
|
...fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions)
|
|
347
335
|
},
|
|
348
|
-
type: 'array'
|
|
336
|
+
type: withNullableType('array', isRequired)
|
|
349
337
|
};
|
|
350
338
|
if (field.interfaceName) {
|
|
351
339
|
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
@@ -363,7 +351,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
363
351
|
fieldSchemas.set(propName, propSchema);
|
|
364
352
|
});
|
|
365
353
|
childSchema.required.forEach((propName)=>{
|
|
366
|
-
|
|
354
|
+
requiredFieldNames.add(propName);
|
|
367
355
|
});
|
|
368
356
|
break;
|
|
369
357
|
}
|
|
@@ -378,13 +366,13 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
378
366
|
type: 'object',
|
|
379
367
|
...childSchema
|
|
380
368
|
});
|
|
381
|
-
|
|
369
|
+
requiredFieldNames.add(tab.name);
|
|
382
370
|
} else {
|
|
383
371
|
Object.entries(childSchema.properties).forEach(([propName, propSchema])=>{
|
|
384
372
|
fieldSchemas.set(propName, propSchema);
|
|
385
373
|
});
|
|
386
374
|
childSchema.required.forEach((propName)=>{
|
|
387
|
-
|
|
375
|
+
requiredFieldNames.add(propName);
|
|
388
376
|
});
|
|
389
377
|
}
|
|
390
378
|
});
|
|
@@ -415,7 +403,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
|
|
|
415
403
|
}
|
|
416
404
|
return fieldSchemas;
|
|
417
405
|
}, new Map())),
|
|
418
|
-
required: Array.from(
|
|
406
|
+
required: Array.from(requiredFieldNames)
|
|
419
407
|
};
|
|
420
408
|
}
|
|
421
409
|
function entityToJSONSchema(config, incomingEntity, interfaceNameDefinitions, defaultIDType) {
|
|
@@ -495,4 +483,4 @@ function configToJSONSchema(config, defaultIDType) {
|
|
|
495
483
|
};
|
|
496
484
|
}
|
|
497
485
|
|
|
498
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSdcblxuaW1wb3J0IHsgc2luZ3VsYXIgfSBmcm9tICdwbHVyYWxpemUnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIE9wdGlvbiB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuL2Zvcm1hdExhYmVscydcblxuY29uc3QgcHJvcGVydHlJc1JlcXVpcmVkID0gKGZpZWxkOiBGaWVsZCkgPT4ge1xuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCA9PT0gdHJ1ZSkgcmV0dXJuIHRydWVcblxuICBpZiAoJ2ZpZWxkcycgaW4gZmllbGQgJiYgZmllbGQudHlwZSAhPT0gJ2FycmF5Jykge1xuICAgIGlmIChmaWVsZC5hZG1pbj8uY29uZGl0aW9uIHx8IGZpZWxkLmFjY2Vzcz8ucmVhZCkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIGZpZWxkLmZpZWxkcy5maW5kKChzdWJGaWVsZCkgPT4gcHJvcGVydHlJc1JlcXVpcmVkKHN1YkZpZWxkKSlcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAndGFicycpIHtcbiAgICByZXR1cm4gZmllbGQudGFicy5zb21lKFxuICAgICAgKHRhYikgPT4gJ25hbWUnIGluIHRhYiAmJiB0YWIuZmllbGRzLmZpbmQoKHN1YkZpZWxkKSA9PiBwcm9wZXJ0eUlzUmVxdWlyZWQoc3ViRmllbGQpKSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gcmV0dXJuT3B0aW9uRW51bXMob3B0aW9uczogT3B0aW9uW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmICd2YWx1ZScgaW4gb3B0aW9uKSB7XG4gICAgICByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvblxuICB9KVxufVxuXG4vKipcbiAqIFRoaXMgaXMgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgVHlwZVNjcmlwdCB0eXBlcyAocGF5bG9hZC10eXBlcy50cykgd2l0aCB0aGUgcGF5bG9hZCBnZW5lcmF0ZTp0eXBlcyBjb21tYW5kLlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUVudGl0eVNjaGVtYXMoXG4gIGVudGl0aWVzOiAoU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZylbXSxcbik6IEpTT05TY2hlbWE0IHtcbiAgY29uc3QgcHJvcGVydGllcyA9IFsuLi5lbnRpdGllc10ucmVkdWNlKChhY2MsIHsgc2x1ZyB9KSA9PiB7XG4gICAgYWNjW3NsdWddID0ge1xuICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtzbHVnfWAsXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY1xuICB9LCB7fSlcblxuICByZXR1cm4ge1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICBwcm9wZXJ0aWVzLFxuICAgIHJlcXVpcmVkOiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKSxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWVsZHNUb0pTT05TY2hlbWEoXG4gIGNvbGxlY3Rpb25JREZpZWxkVHlwZXM6IHsgW2tleTogc3RyaW5nXTogJ251bWJlcicgfCAnc3RyaW5nJyB9LFxuICBmaWVsZHM6IEZpZWxkW10sXG4gIGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+LFxuKToge1xuICBwcm9wZXJ0aWVzOiB7XG4gICAgW2s6IHN0cmluZ106IEpTT05TY2hlbWE0XG4gIH1cbiAgcmVxdWlyZWQ6IHN0cmluZ1tdXG59IHtcbiAgLy8gcmVxdWlyZWQgZmllbGRzIGZvciBhIHNjaGVtYSAoY291bGQgYmUgZm9yIGEgbmVzdGVkIHNjaGVtYSlcbiAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBuZXcgU2V0PHN0cmluZz4oXG4gICAgZmllbGRzLmZpbHRlcihwcm9wZXJ0eUlzUmVxdWlyZWQpLm1hcCgoZmllbGQpID0+IChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSA/IGZpZWxkLm5hbWUgOiAnJykpLFxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBmaWVsZHMucmVkdWNlKChmaWVsZFNjaGVtYXMsIGZpZWxkKSA9PiB7XG4gICAgICAgIGxldCBmaWVsZFNjaGVtYTogSlNPTlNjaGVtYTRcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IGl0ZW1zOiB7IHR5cGU6ICdudW1iZXInIH0sIHR5cGU6ICdhcnJheScgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6ICdudW1iZXInIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnY2hlY2tib3gnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHsgdHlwZTogJ2Jvb2xlYW4nIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM3MTU5I3NlY3Rpb24tM1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgeyB0eXBlOiAnb2JqZWN0JyB9LFxuICAgICAgICAgICAgICAgIHsgdHlwZTogJ2FycmF5JyB9LFxuICAgICAgICAgICAgICAgIHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgICAgICAgICAgICAgeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICAgICAgICAgICB7IHR5cGU6ICdudWxsJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3JhZGlvJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGVudW06IHJldHVybk9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RUeXBlOiBKU09OU2NoZW1hNCA9IHtcbiAgICAgICAgICAgICAgZW51bTogcmV0dXJuT3B0aW9uRW51bXMoZmllbGQub3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczogc2VsZWN0VHlwZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHNlbGVjdFR5cGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICAgICAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbcmVsYXRpb25dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBbJ3ZhbHVlJywgJ3JlbGF0aW9uVG8nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uZU9mOiBmaWVsZC5yZWxhdGlvblRvLm1hcCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdDogcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtyZWxhdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBbJ3ZhbHVlJywgJ3JlbGF0aW9uVG8nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3JlbGF0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd2YWx1ZScsICdyZWxhdGlvblRvJ10sXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tmaWVsZC5yZWxhdGlvblRvXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQuYmxvY2tzLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrRmllbGRTY2hlbWFzID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgICBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9ja0ZpZWxkU2NoZW1hcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IGJsb2NrLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsnYmxvY2tUeXBlJywgLi4uYmxvY2tGaWVsZFNjaGVtYXMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChibG9jay5pbnRlcmZhY2VOYW1lLCBibG9ja1NjaGVtYSlcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7YmxvY2suaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBibG9ja1NjaGVtYVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pbnRlcmZhY2VOYW1lKSB7XG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucy5zZXQoZmllbGQuaW50ZXJmYWNlTmFtZSwgZmllbGRTY2hlbWEpXG5cbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5pbnRlcmZhY2VOYW1lfWAsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncm93JzpcbiAgICAgICAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkU2NoZW1hID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNoaWxkU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKFtwcm9wTmFtZSwgcHJvcFNjaGVtYV0pID0+IHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWFzLnNldChwcm9wTmFtZSwgcHJvcFNjaGVtYSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjaGlsZFNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKChwcm9wTmFtZSkgPT4ge1xuICAgICAgICAgICAgICByZXF1aXJlZEZpZWxkcy5hZGQocHJvcE5hbWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICAgICAgZmllbGQudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRTY2hlbWEgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgICB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgICAgICAgLy8gY291bGQgaGF2ZSBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHRhYi5uYW1lLCB7XG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIC4uLmNoaWxkU2NoZW1hLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZHMuYWRkKHRhYi5uYW1lKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNoaWxkU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKFtwcm9wTmFtZSwgcHJvcFNjaGVtYV0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQocHJvcE5hbWUsIHByb3BTY2hlbWEpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBjaGlsZFNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKChwcm9wTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZHMuYWRkKHByb3BOYW1lKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIC4uLmZpZWxkc1RvSlNPTlNjaGVtYShjb2xsZWN0aW9uSURGaWVsZFR5cGVzLCBmaWVsZC5maWVsZHMsIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pbnRlcmZhY2VOYW1lKSB7XG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucy5zZXQoZmllbGQuaW50ZXJmYWNlTmFtZSwgZmllbGRTY2hlbWEpXG5cbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5pbnRlcmZhY2VOYW1lfWAsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGRTY2hlbWEgJiYgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KGZpZWxkLm5hbWUsIGZpZWxkU2NoZW1hKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkU2NoZW1hc1xuICAgICAgfSwgbmV3IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0PigpKSxcbiAgICApLFxuICAgIHJlcXVpcmVkOiBBcnJheS5mcm9tKHJlcXVpcmVkRmllbGRzKSxcbiAgfVxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYW5kIGlzIGV4cG9ydGVkIHRocm91Z2ggcGF5bG9hZC91dGlsaXRpZXNcbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb0pTT05TY2hlbWEoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBpbmNvbWluZ0VudGl0eTogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZyxcbiAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4sXG4gIGRlZmF1bHRJRFR5cGU6ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgPSBkZWVwQ29weU9iamVjdChpbmNvbWluZ0VudGl0eSlcbiAgY29uc3QgdGl0bGUgPSBlbnRpdHkudHlwZXNjcmlwdD8uaW50ZXJmYWNlXG4gICAgPyBlbnRpdHkudHlwZXNjcmlwdC5pbnRlcmZhY2VcbiAgICA6IHNpbmd1bGFyKHRvV29yZHMoZW50aXR5LnNsdWcsIHRydWUpKVxuXG4gIGNvbnN0IGlkRmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSA9IHsgbmFtZTogJ2lkJywgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IGRlZmF1bHRJRFR5cGUgYXMgJ3RleHQnIH1cbiAgY29uc3QgY3VzdG9tSWRGaWVsZCA9IGVudGl0eS5maWVsZHMuZmluZChcbiAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICkgYXMgRmllbGRBZmZlY3RpbmdEYXRhXG5cbiAgaWYgKGN1c3RvbUlkRmllbGQgJiYgY3VzdG9tSWRGaWVsZC50eXBlICE9PSAnZ3JvdXAnICYmIGN1c3RvbUlkRmllbGQudHlwZSAhPT0gJ3RhYicpIHtcbiAgICBjdXN0b21JZEZpZWxkLnJlcXVpcmVkID0gdHJ1ZVxuICB9IGVsc2Uge1xuICAgIGVudGl0eS5maWVsZHMudW5zaGlmdChpZEZpZWxkKVxuICB9XG5cbiAgLy8gbWFyayB0aW1lc3RhbXAgZmllbGRzIHJlcXVpcmVkXG4gIGlmICgndGltZXN0YW1wcycgaW4gZW50aXR5ICYmIGVudGl0eS50aW1lc3RhbXBzICE9PSBmYWxzZSkge1xuICAgIGVudGl0eS5maWVsZHMgPSBlbnRpdHkuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiAoZmllbGQubmFtZSA9PT0gJ2NyZWF0ZWRBdCcgfHwgZmllbGQubmFtZSA9PT0gJ3VwZGF0ZWRBdCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWVsZFxuICAgIH0pXG4gIH1cblxuICBpZiAoJ2F1dGgnIGluIGVudGl0eSAmJiBlbnRpdHkuYXV0aCAmJiAhZW50aXR5LmF1dGg/LmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgZW50aXR5LmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgfSlcbiAgfVxuXG4gIC8vIHVzZWQgZm9yIHJlbGF0aW9uc2hpcCBmaWVsZHMsIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHVzZSBhIHN0cmluZyBvciBudW1iZXIgdHlwZSBmb3IgdGhlIElEXG4gIGNvbnN0IGNvbGxlY3Rpb25JREZpZWxkVHlwZXM6IHsgW2tleTogc3RyaW5nXTogJ251bWJlcicgfCAnc3RyaW5nJyB9ID0gY29uZmlnLmNvbGxlY3Rpb25zLnJlZHVjZShcbiAgICAoYWNjLCBjb2xsZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCA9IGNvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgIChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICApXG5cbiAgICAgIGFjY1tjb2xsZWN0aW9uLnNsdWddID0gZGVmYXVsdElEVHlwZSA9PT0gJ3RleHQnID8gJ3N0cmluZycgOiAnbnVtYmVyJ1xuXG4gICAgICBpZiAoY3VzdG9tQ29sbGVjdGlvbklkRmllbGQpIHtcbiAgICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3N0cmluZydcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAge30sXG4gIClcblxuICByZXR1cm4ge1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICB0aXRsZSxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoY29sbGVjdGlvbklERmllbGRUeXBlcywgZW50aXR5LmZpZWxkcywgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnVG9KU09OU2NoZW1hKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgZGVmYXVsdElEVHlwZT86ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICAvLyBhIG11dGFibGUgTWFwIHRvIHN0b3JlIGN1c3RvbSB0b3AtbGV2ZWwgYGludGVyZmFjZU5hbWVgIHR5cGVzXG4gIGNvbnN0IGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+ID0gbmV3IE1hcCgpXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zOiB7IFtrOiBzdHJpbmddOiBKU09OU2NoZW1hNCB9ID0gW1xuICAgIC4uLmNvbmZpZy5nbG9iYWxzLFxuICAgIC4uLmNvbmZpZy5jb2xsZWN0aW9ucyxcbiAgXS5yZWR1Y2UoKGFjYywgZW50aXR5KSA9PiB7XG4gICAgYWNjW2VudGl0eS5zbHVnXSA9IGVudGl0eVRvSlNPTlNjaGVtYShjb25maWcsIGVudGl0eSwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBkZWZhdWx0SURUeXBlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgcmV0dXJuIHtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgZGVmaW5pdGlvbnM6IHsgLi4uZW50aXR5RGVmaW5pdGlvbnMsIC4uLk9iamVjdC5mcm9tRW50cmllcyhpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpIH0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgY29sbGVjdGlvbnM6IGdlbmVyYXRlRW50aXR5U2NoZW1hcyhjb25maWcuY29sbGVjdGlvbnMgfHwgW10pLFxuICAgICAgZ2xvYmFsczogZ2VuZXJhdGVFbnRpdHlTY2hlbWFzKGNvbmZpZy5nbG9iYWxzIHx8IFtdKSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ2NvbGxlY3Rpb25zJywgJ2dsb2JhbHMnXSxcbiAgICB0aXRsZTogJ0NvbmZpZycsXG4gICAgdHlwZTogJ29iamVjdCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJlbnRpdHlUb0pTT05TY2hlbWEiLCJjb25maWdUb0pTT05TY2hlbWEiLCJwcm9wZXJ0eUlzUmVxdWlyZWQiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJyZXF1aXJlZCIsInR5cGUiLCJhZG1pbiIsImNvbmRpdGlvbiIsImFjY2VzcyIsInJlYWQiLCJmaWVsZHMiLCJmaW5kIiwic3ViRmllbGQiLCJ0YWJzIiwic29tZSIsInRhYiIsInJldHVybk9wdGlvbkVudW1zIiwib3B0aW9ucyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwiZ2VuZXJhdGVFbnRpdHlTY2hlbWFzIiwiZW50aXRpZXMiLCJwcm9wZXJ0aWVzIiwicmVkdWNlIiwiYWNjIiwic2x1ZyIsIiRyZWYiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsIk9iamVjdCIsImtleXMiLCJmaWVsZHNUb0pTT05TY2hlbWEiLCJjb2xsZWN0aW9uSURGaWVsZFR5cGVzIiwiaW50ZXJmYWNlTmFtZURlZmluaXRpb25zIiwicmVxdWlyZWRGaWVsZHMiLCJTZXQiLCJmaWx0ZXIiLCJuYW1lIiwiZnJvbUVudHJpZXMiLCJmaWVsZFNjaGVtYXMiLCJmaWVsZFNjaGVtYSIsImhhc01hbnkiLCJpdGVtcyIsIm9uZU9mIiwiZW51bSIsInNlbGVjdFR5cGUiLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwiQXJyYXkiLCJpc0FycmF5IiwicmVsYXRpb25UbyIsInJlbGF0aW9uIiwiY29uc3QiLCJibG9ja3MiLCJibG9jayIsImJsb2NrRmllbGRTY2hlbWFzIiwiYmxvY2tTY2hlbWEiLCJibG9ja1R5cGUiLCJpbnRlcmZhY2VOYW1lIiwic2V0IiwiY2hpbGRTY2hlbWEiLCJlbnRyaWVzIiwiZm9yRWFjaCIsInByb3BOYW1lIiwicHJvcFNjaGVtYSIsImFkZCIsInRhYkhhc05hbWUiLCJNYXAiLCJmcm9tIiwiY29uZmlnIiwiaW5jb21pbmdFbnRpdHkiLCJkZWZhdWx0SURUeXBlIiwiZW50aXR5IiwiZGVlcENvcHlPYmplY3QiLCJ0aXRsZSIsInR5cGVzY3JpcHQiLCJpbnRlcmZhY2UiLCJzaW5ndWxhciIsInRvV29yZHMiLCJpZEZpZWxkIiwiY3VzdG9tSWRGaWVsZCIsInVuc2hpZnQiLCJ0aW1lc3RhbXBzIiwiYXV0aCIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwicHVzaCIsImNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbiIsImN1c3RvbUNvbGxlY3Rpb25JZEZpZWxkIiwiZW50aXR5RGVmaW5pdGlvbnMiLCJnbG9iYWxzIiwiZGVmaW5pdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBa2JnQkEsa0JBQWtCO2VBQWxCQTs7SUFvRUFDLGtCQUFrQjtlQUFsQkE7OzsyQkFwZlM7dUJBT29CO2dDQUNkOzhCQUNQO0FBRXhCLE1BQU1DLHFCQUFxQixDQUFDQztJQUMxQixJQUFJQyxJQUFBQSx1QkFBZ0IsRUFBQ0QsVUFBVSxjQUFjQSxTQUFTQSxNQUFNRSxRQUFRLEtBQUssTUFBTSxPQUFPO0lBRXRGLElBQUksWUFBWUYsU0FBU0EsTUFBTUcsSUFBSSxLQUFLLFNBQVM7UUFDL0MsSUFBSUgsTUFBTUksS0FBSyxFQUFFQyxhQUFhTCxNQUFNTSxNQUFNLEVBQUVDLE1BQU0sT0FBTztRQUN6RCxPQUFPUCxNQUFNUSxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDQyxXQUFhWCxtQkFBbUJXO0lBQzVEO0lBRUEsSUFBSVYsTUFBTUcsSUFBSSxLQUFLLFFBQVE7UUFDekIsT0FBT0gsTUFBTVcsSUFBSSxDQUFDQyxJQUFJLENBQ3BCLENBQUND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
|
|
486
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTQsIEpTT05TY2hlbWE0VHlwZU5hbWUgfSBmcm9tICdqc29uLXNjaGVtYSdcblxuaW1wb3J0IHsgc2luZ3VsYXIgfSBmcm9tICdwbHVyYWxpemUnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIE9wdGlvbiB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuL2Zvcm1hdExhYmVscydcblxuY29uc3QgZmllbGRJc1JlcXVpcmVkID0gKGZpZWxkOiBGaWVsZCkgPT4ge1xuICBjb25zdCBpc0NvbmRpdGlvbmFsID0gQm9vbGVhbihmaWVsZD8uYWRtaW4gJiYgZmllbGQ/LmFkbWluPy5jb25kaXRpb24pXG4gIGlmIChpc0NvbmRpdGlvbmFsKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBpc01hcmtlZFJlcXVpcmVkID0gJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCA9PT0gdHJ1ZVxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgaXNNYXJrZWRSZXF1aXJlZCkgcmV0dXJuIHRydWVcblxuICAvLyBpZiBhbnkgc3ViZmllbGRzIGFyZSByZXF1aXJlZCwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoJ2ZpZWxkcycgaW4gZmllbGQgJiYgZmllbGQudHlwZSAhPT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBmaWVsZC5maWVsZHMuc29tZSgoc3ViRmllbGQpID0+IGZpZWxkSXNSZXF1aXJlZChzdWJGaWVsZCkpXG4gIH1cblxuICAvLyBpZiBhbnkgdGFiIHN1YmZpZWxkcyBoYXZlIHJlcXVpcmVkIGZpZWxkcywgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgcmV0dXJuIGZpZWxkLnRhYnMuc29tZSgodGFiKSA9PiB7XG4gICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICByZXR1cm4gdGFiLmZpZWxkcy5zb21lKChzdWJGaWVsZCkgPT4gZmllbGRJc1JlcXVpcmVkKHN1YkZpZWxkKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYnVpbGRPcHRpb25FbnVtcyhvcHRpb25zOiBPcHRpb25bXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG4gIH0pXG59XG5cbi8qKlxuICogVGhpcyBpcyB1c2VkIGZvciBnZW5lcmF0aW5nIHRoZSBUeXBlU2NyaXB0IHR5cGVzIChwYXlsb2FkLXR5cGVzLnRzKSB3aXRoIHRoZSBwYXlsb2FkIGdlbmVyYXRlOnR5cGVzIGNvbW1hbmQuXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlRW50aXR5U2NoZW1hcyhcbiAgZW50aXRpZXM6IChTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnKVtdLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gWy4uLmVudGl0aWVzXS5yZWR1Y2UoKGFjYywgeyBzbHVnIH0pID0+IHtcbiAgICBhY2Nbc2x1Z10gPSB7XG4gICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3NsdWd9YCxcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIHByb3BlcnRpZXMsXG4gICAgcmVxdWlyZWQ6IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICB9XG59XG5cbmZ1bmN0aW9uIHdpdGhOdWxsYWJsZVR5cGUoXG4gIGZpZWxkVHlwZTogSlNPTlNjaGVtYTRUeXBlTmFtZSxcbiAgaXNSZXF1aXJlZDogYm9vbGVhbixcbik6IEpTT05TY2hlbWE0VHlwZU5hbWUgfCBKU09OU2NoZW1hNFR5cGVOYW1lW10ge1xuICBjb25zdCBmaWVsZFR5cGVzID0gW2ZpZWxkVHlwZV1cbiAgaWYgKGlzUmVxdWlyZWQpIHJldHVybiBmaWVsZFR5cGVcbiAgZmllbGRUeXBlcy5wdXNoKCdudWxsJylcbiAgcmV0dXJuIGZpZWxkVHlwZXNcbn1cblxuZnVuY3Rpb24gZmllbGRzVG9KU09OU2NoZW1hKFxuICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzOiB7IFtrZXk6IHN0cmluZ106ICdudW1iZXInIHwgJ3N0cmluZycgfSxcbiAgZmllbGRzOiBGaWVsZFtdLFxuICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnM6IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0Pixcbik6IHtcbiAgcHJvcGVydGllczoge1xuICAgIFtrOiBzdHJpbmddOiBKU09OU2NoZW1hNFxuICB9XG4gIHJlcXVpcmVkOiBzdHJpbmdbXVxufSB7XG4gIGNvbnN0IHJlcXVpcmVkRmllbGROYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBmaWVsZHMucmVkdWNlKChmaWVsZFNjaGVtYXMsIGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZElzUmVxdWlyZWQoZmllbGQpXG4gICAgICAgIGlmIChpc1JlcXVpcmVkKSByZXF1aXJlZEZpZWxkTmFtZXMuYWRkKGZpZWxkLm5hbWUpXG5cbiAgICAgICAgbGV0IGZpZWxkU2NoZW1hOiBKU09OU2NoZW1hNFxuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgICAgY2FzZSAnY29kZSc6XG4gICAgICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICAgIGNhc2UgJ2RhdGUnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZSgnc3RyaW5nJywgaXNSZXF1aXJlZCkgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiAnbnVtYmVyJyB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdudW1iZXInLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ2Jvb2xlYW4nLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogWydvYmplY3QnLCAnYXJyYXknLCAnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJywgJ251bGwnXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmljaFRleHQnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyYWRpbyc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBlbnVtOiBidWlsZE9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25FbnVtcyA9IGJ1aWxkT3B0aW9uRW51bXMoZmllbGQub3B0aW9ucylcblxuICAgICAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIGVudW06IG9wdGlvbkVudW1zLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBlbnVtOiBvcHRpb25FbnVtcyxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBtYXhJdGVtczogMixcbiAgICAgICAgICAgICAgbWluSXRlbXM6IDIsXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0OiByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW3JlbGF0aW9uXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7cmVsYXRpb259YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd2YWx1ZScsICdyZWxhdGlvblRvJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICAgb25lT2Y6IGZpZWxkLnJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0OiByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbcmVsYXRpb25dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtyZWxhdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsndmFsdWUnLCAncmVsYXRpb25UbyddLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ29iamVjdCcsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW2ZpZWxkLnJlbGF0aW9uVG9dLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNSZXF1aXJlZCkgZmllbGRTY2hlbWEub25lT2YucHVzaCh7IHR5cGU6ICdudWxsJyB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQuYmxvY2tzLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrRmllbGRTY2hlbWFzID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgICBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9ja0ZpZWxkU2NoZW1hcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IGJsb2NrLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsnYmxvY2tUeXBlJywgLi4uYmxvY2tGaWVsZFNjaGVtYXMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChibG9jay5pbnRlcmZhY2VOYW1lLCBibG9ja1NjaGVtYSlcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7YmxvY2suaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBibG9ja1NjaGVtYVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pbnRlcmZhY2VOYW1lKSB7XG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucy5zZXQoZmllbGQuaW50ZXJmYWNlTmFtZSwgZmllbGRTY2hlbWEpXG5cbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5pbnRlcmZhY2VOYW1lfWAsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncm93JzpcbiAgICAgICAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkU2NoZW1hID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNoaWxkU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKFtwcm9wTmFtZSwgcHJvcFNjaGVtYV0pID0+IHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWFzLnNldChwcm9wTmFtZSwgcHJvcFNjaGVtYSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjaGlsZFNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKChwcm9wTmFtZSkgPT4ge1xuICAgICAgICAgICAgICByZXF1aXJlZEZpZWxkTmFtZXMuYWRkKHByb3BOYW1lKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAndGFicyc6IHtcbiAgICAgICAgICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkU2NoZW1hID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsXG4gICAgICAgICAgICAgICAgdGFiLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICAgICAgICAgIC8vIGNvdWxkIGhhdmUgaW50ZXJmYWNlXG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWFzLnNldCh0YWIubmFtZSwge1xuICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgICAuLi5jaGlsZFNjaGVtYSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHJlcXVpcmVkRmllbGROYW1lcy5hZGQodGFiLm5hbWUpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY2hpbGRTY2hlbWEucHJvcGVydGllcykuZm9yRWFjaCgoW3Byb3BOYW1lLCBwcm9wU2NoZW1hXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZmllbGRTY2hlbWFzLnNldChwcm9wTmFtZSwgcHJvcFNjaGVtYSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGNoaWxkU2NoZW1hLnJlcXVpcmVkLmZvckVhY2goKHByb3BOYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXF1aXJlZEZpZWxkTmFtZXMuYWRkKHByb3BOYW1lKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIC4uLmZpZWxkc1RvSlNPTlNjaGVtYShjb2xsZWN0aW9uSURGaWVsZFR5cGVzLCBmaWVsZC5maWVsZHMsIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pbnRlcmZhY2VOYW1lKSB7XG4gICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucy5zZXQoZmllbGQuaW50ZXJmYWNlTmFtZSwgZmllbGRTY2hlbWEpXG5cbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5pbnRlcmZhY2VOYW1lfWAsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGRTY2hlbWEgJiYgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KGZpZWxkLm5hbWUsIGZpZWxkU2NoZW1hKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkU2NoZW1hc1xuICAgICAgfSwgbmV3IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0PigpKSxcbiAgICApLFxuICAgIHJlcXVpcmVkOiBBcnJheS5mcm9tKHJlcXVpcmVkRmllbGROYW1lcyksXG4gIH1cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIGFuZCBpcyBleHBvcnRlZCB0aHJvdWdoIHBheWxvYWQvdXRpbGl0aWVzXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5VG9KU09OU2NoZW1hKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgaW5jb21pbmdFbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4gIGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+LFxuICBkZWZhdWx0SURUeXBlOiAnbnVtYmVyJyB8ICd0ZXh0Jyxcbik6IEpTT05TY2hlbWE0IHtcbiAgY29uc3QgZW50aXR5OiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnID0gZGVlcENvcHlPYmplY3QoaW5jb21pbmdFbnRpdHkpXG4gIGNvbnN0IHRpdGxlID0gZW50aXR5LnR5cGVzY3JpcHQ/LmludGVyZmFjZVxuICAgID8gZW50aXR5LnR5cGVzY3JpcHQuaW50ZXJmYWNlXG4gICAgOiBzaW5ndWxhcih0b1dvcmRzKGVudGl0eS5zbHVnLCB0cnVlKSlcblxuICBjb25zdCBpZEZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEgPSB7IG5hbWU6ICdpZCcsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBkZWZhdWx0SURUeXBlIGFzICd0ZXh0JyB9XG4gIGNvbnN0IGN1c3RvbUlkRmllbGQgPSBlbnRpdHkuZmllbGRzLmZpbmQoXG4gICAgKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnLFxuICApIGFzIEZpZWxkQWZmZWN0aW5nRGF0YVxuXG4gIGlmIChjdXN0b21JZEZpZWxkICYmIGN1c3RvbUlkRmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJiBjdXN0b21JZEZpZWxkLnR5cGUgIT09ICd0YWInKSB7XG4gICAgY3VzdG9tSWRGaWVsZC5yZXF1aXJlZCA9IHRydWVcbiAgfSBlbHNlIHtcbiAgICBlbnRpdHkuZmllbGRzLnVuc2hpZnQoaWRGaWVsZClcbiAgfVxuXG4gIC8vIG1hcmsgdGltZXN0YW1wIGZpZWxkcyByZXF1aXJlZFxuICBpZiAoJ3RpbWVzdGFtcHMnIGluIGVudGl0eSAmJiBlbnRpdHkudGltZXN0YW1wcyAhPT0gZmFsc2UpIHtcbiAgICBlbnRpdHkuZmllbGRzID0gZW50aXR5LmZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgKGZpZWxkLm5hbWUgPT09ICdjcmVhdGVkQXQnIHx8IGZpZWxkLm5hbWUgPT09ICd1cGRhdGVkQXQnKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGRcbiAgICB9KVxuICB9XG5cbiAgaWYgKCdhdXRoJyBpbiBlbnRpdHkgJiYgZW50aXR5LmF1dGggJiYgIWVudGl0eS5hdXRoPy5kaXNhYmxlTG9jYWxTdHJhdGVneSkge1xuICAgIGVudGl0eS5maWVsZHMucHVzaCh7XG4gICAgICBuYW1lOiAncGFzc3dvcmQnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgIH0pXG4gIH1cblxuICAvLyB1c2VkIGZvciByZWxhdGlvbnNoaXAgZmllbGRzLCB0byBkZXRlcm1pbmUgd2hldGhlciB0byB1c2UgYSBzdHJpbmcgb3IgbnVtYmVyIHR5cGUgZm9yIHRoZSBJRFxuICBjb25zdCBjb2xsZWN0aW9uSURGaWVsZFR5cGVzOiB7IFtrZXk6IHN0cmluZ106ICdudW1iZXInIHwgJ3N0cmluZycgfSA9IGNvbmZpZy5jb2xsZWN0aW9ucy5yZWR1Y2UoXG4gICAgKGFjYywgY29sbGVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tQ29sbGVjdGlvbklkRmllbGQgPSBjb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAoZmllbGQpID0+ICduYW1lJyBpbiBmaWVsZCAmJiBmaWVsZC5uYW1lID09PSAnaWQnLFxuICAgICAgKVxuXG4gICAgICBhY2NbY29sbGVjdGlvbi5zbHVnXSA9IGRlZmF1bHRJRFR5cGUgPT09ICd0ZXh0JyA/ICdzdHJpbmcnIDogJ251bWJlcidcblxuICAgICAgaWYgKGN1c3RvbUNvbGxlY3Rpb25JZEZpZWxkKSB7XG4gICAgICAgIGFjY1tjb2xsZWN0aW9uLnNsdWddID0gY3VzdG9tQ29sbGVjdGlvbklkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyAnbnVtYmVyJyA6ICdzdHJpbmcnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHt9LFxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgdGl0bGUsXG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgLi4uZmllbGRzVG9KU09OU2NoZW1hKGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsIGVudGl0eS5maWVsZHMsIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyksXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ1RvSlNPTlNjaGVtYShcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGRlZmF1bHRJRFR5cGU/OiAnbnVtYmVyJyB8ICd0ZXh0Jyxcbik6IEpTT05TY2hlbWE0IHtcbiAgLy8gYSBtdXRhYmxlIE1hcCB0byBzdG9yZSBjdXN0b20gdG9wLWxldmVsIGBpbnRlcmZhY2VOYW1lYCB0eXBlc1xuICBjb25zdCBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnM6IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0PiA9IG5ldyBNYXAoKVxuICBjb25zdCBlbnRpdHlEZWZpbml0aW9uczogeyBbazogc3RyaW5nXTogSlNPTlNjaGVtYTQgfSA9IFtcbiAgICAuLi5jb25maWcuZ2xvYmFscyxcbiAgICAuLi5jb25maWcuY29sbGVjdGlvbnMsXG4gIF0ucmVkdWNlKChhY2MsIGVudGl0eSkgPT4ge1xuICAgIGFjY1tlbnRpdHkuc2x1Z10gPSBlbnRpdHlUb0pTT05TY2hlbWEoY29uZmlnLCBlbnRpdHksIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucywgZGVmYXVsdElEVHlwZSlcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIGRlZmluaXRpb25zOiB7IC4uLmVudGl0eURlZmluaXRpb25zLCAuLi5PYmplY3QuZnJvbUVudHJpZXMoaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSB9LFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGNvbGxlY3Rpb25zOiBnZW5lcmF0ZUVudGl0eVNjaGVtYXMoY29uZmlnLmNvbGxlY3Rpb25zIHx8IFtdKSxcbiAgICAgIGdsb2JhbHM6IGdlbmVyYXRlRW50aXR5U2NoZW1hcyhjb25maWcuZ2xvYmFscyB8fCBbXSksXG4gICAgfSxcbiAgICByZXF1aXJlZDogWydjb2xsZWN0aW9ucycsICdnbG9iYWxzJ10sXG4gICAgdGl0bGU6ICdDb25maWcnLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZW50aXR5VG9KU09OU2NoZW1hIiwiY29uZmlnVG9KU09OU2NoZW1hIiwiZmllbGRJc1JlcXVpcmVkIiwiZmllbGQiLCJpc0NvbmRpdGlvbmFsIiwiQm9vbGVhbiIsImFkbWluIiwiY29uZGl0aW9uIiwiaXNNYXJrZWRSZXF1aXJlZCIsInJlcXVpcmVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJmaWVsZHMiLCJzb21lIiwic3ViRmllbGQiLCJ0YWJzIiwidGFiIiwiYnVpbGRPcHRpb25FbnVtcyIsIm9wdGlvbnMiLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsImdlbmVyYXRlRW50aXR5U2NoZW1hcyIsImVudGl0aWVzIiwicHJvcGVydGllcyIsInJlZHVjZSIsImFjYyIsInNsdWciLCIkcmVmIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJPYmplY3QiLCJrZXlzIiwid2l0aE51bGxhYmxlVHlwZSIsImZpZWxkVHlwZSIsImlzUmVxdWlyZWQiLCJmaWVsZFR5cGVzIiwicHVzaCIsImZpZWxkc1RvSlNPTlNjaGVtYSIsImNvbGxlY3Rpb25JREZpZWxkVHlwZXMiLCJpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMiLCJyZXF1aXJlZEZpZWxkTmFtZXMiLCJTZXQiLCJmcm9tRW50cmllcyIsImZpZWxkU2NoZW1hcyIsImFkZCIsIm5hbWUiLCJmaWVsZFNjaGVtYSIsImhhc01hbnkiLCJpdGVtcyIsImVudW0iLCJvcHRpb25FbnVtcyIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZWxhdGlvblRvIiwib25lT2YiLCJyZWxhdGlvbiIsImNvbnN0IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja0ZpZWxkU2NoZW1hcyIsImJsb2NrU2NoZW1hIiwiYmxvY2tUeXBlIiwiaW50ZXJmYWNlTmFtZSIsInNldCIsImNoaWxkU2NoZW1hIiwiZW50cmllcyIsImZvckVhY2giLCJwcm9wTmFtZSIsInByb3BTY2hlbWEiLCJ0YWJIYXNOYW1lIiwiTWFwIiwiZnJvbSIsImNvbmZpZyIsImluY29taW5nRW50aXR5IiwiZGVmYXVsdElEVHlwZSIsImVudGl0eSIsImRlZXBDb3B5T2JqZWN0IiwidGl0bGUiLCJ0eXBlc2NyaXB0IiwiaW50ZXJmYWNlIiwic2luZ3VsYXIiLCJ0b1dvcmRzIiwiaWRGaWVsZCIsImN1c3RvbUlkRmllbGQiLCJmaW5kIiwidW5zaGlmdCIsInRpbWVzdGFtcHMiLCJhdXRoIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJjb2xsZWN0aW9ucyIsImNvbGxlY3Rpb24iLCJjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCIsImVudGl0eURlZmluaXRpb25zIiwiZ2xvYmFscyIsImRlZmluaXRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQSthZ0JBLGtCQUFrQjtlQUFsQkE7O0lBb0VBQyxrQkFBa0I7ZUFBbEJBOzs7MkJBamZTO3VCQU9vQjtnQ0FDZDs4QkFDUDtBQUV4QixNQUFNQyxrQkFBa0IsQ0FBQ0M7SUFDdkIsTUFBTUMsZ0JBQWdCQyxRQUFRRixPQUFPRyxTQUFTSCxPQUFPRyxPQUFPQztJQUM1RCxJQUFJSCxlQUFlLE9BQU87SUFFMUIsTUFBTUksbUJBQW1CLGNBQWNMLFNBQVNBLE1BQU1NLFFBQVEs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
|
|
@@ -11,15 +11,15 @@ describe('configToJSONSchema', ()=>{
|
|
|
11
11
|
{
|
|
12
12
|
fields: [
|
|
13
13
|
{
|
|
14
|
+
name: 'someRequiredField',
|
|
15
|
+
type: 'array',
|
|
14
16
|
fields: [
|
|
15
17
|
{
|
|
16
18
|
name: 'someRequiredField',
|
|
17
19
|
required: true,
|
|
18
20
|
type: 'text'
|
|
19
21
|
}
|
|
20
|
-
]
|
|
21
|
-
name: 'someRequiredField',
|
|
22
|
-
type: 'array'
|
|
22
|
+
]
|
|
23
23
|
}
|
|
24
24
|
],
|
|
25
25
|
slug: 'test',
|
|
@@ -40,7 +40,10 @@ describe('configToJSONSchema', ()=>{
|
|
|
40
40
|
additionalProperties: false,
|
|
41
41
|
properties: {
|
|
42
42
|
id: {
|
|
43
|
-
type:
|
|
43
|
+
type: [
|
|
44
|
+
'string',
|
|
45
|
+
'null'
|
|
46
|
+
]
|
|
44
47
|
},
|
|
45
48
|
someRequiredField: {
|
|
46
49
|
type: 'string'
|
|
@@ -51,7 +54,10 @@ describe('configToJSONSchema', ()=>{
|
|
|
51
54
|
],
|
|
52
55
|
type: 'object'
|
|
53
56
|
},
|
|
54
|
-
type:
|
|
57
|
+
type: [
|
|
58
|
+
'array',
|
|
59
|
+
'null'
|
|
60
|
+
]
|
|
55
61
|
}
|
|
56
62
|
},
|
|
57
63
|
required: [
|
|
@@ -63,4 +69,4 @@ describe('configToJSONSchema', ()=>{
|
|
|
63
69
|
});
|
|
64
70
|
});
|
|
65
71
|
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IHNhbml0aXplQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3Nhbml0aXplJ1xuaW1wb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hIH0gZnJvbSAnLi9jb25maWdUb0pTT05TY2hlbWEnXG5cbmRlc2NyaWJlKCdjb25maWdUb0pTT05TY2hlbWEnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgaGFuZGxlIG9wdGlvbmFsIGFycmF5cyB3aXRoIHJlcXVpcmVkIGZpZWxkcycsICgpID0+
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IHNhbml0aXplQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3Nhbml0aXplJ1xuaW1wb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hIH0gZnJvbSAnLi9jb25maWdUb0pTT05TY2hlbWEnXG5cbmRlc2NyaWJlKCdjb25maWdUb0pTT05TY2hlbWEnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgaGFuZGxlIG9wdGlvbmFsIGFycmF5cyB3aXRoIHJlcXVpcmVkIGZpZWxkcycsICgpID0+IHtcbiAgICBjb25zdCBjb25maWc6IENvbmZpZyA9IHtcbiAgICAgIGNvbGxlY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3NvbWVSZXF1aXJlZEZpZWxkJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ3NvbWVSZXF1aXJlZEZpZWxkJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc2x1ZzogJ3Rlc3QnLFxuICAgICAgICAgIHRpbWVzdGFtcHM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9XG5cbiAgICBjb25zdCBzYW5pdGl6ZWRDb25maWcgPSBzYW5pdGl6ZUNvbmZpZyhjb25maWcpXG4gICAgY29uc3Qgc2NoZW1hID0gY29uZmlnVG9KU09OU2NoZW1hKHNhbml0aXplZENvbmZpZywgJ3RleHQnKVxuXG4gICAgZXhwZWN0KHNjaGVtYT8uZGVmaW5pdGlvbnM/LnRlc3QpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpZDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBzb21lUmVxdWlyZWRGaWVsZDoge1xuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGlkOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogWydzdHJpbmcnLCAnbnVsbCddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzb21lUmVxdWlyZWRGaWVsZDoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbJ3NvbWVSZXF1aXJlZEZpZWxkJ10sXG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHR5cGU6IFsnYXJyYXknLCAnbnVsbCddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBbJ2lkJ10sXG4gICAgICB0aXRsZTogJ1Rlc3QnLFxuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZmllbGRzIiwibmFtZSIsInR5cGUiLCJyZXF1aXJlZCIsInNsdWciLCJ0aW1lc3RhbXBzIiwic2FuaXRpemVkQ29uZmlnIiwic2FuaXRpemVDb25maWciLCJzY2hlbWEiLCJjb25maWdUb0pTT05TY2hlbWEiLCJleHBlY3QiLCJkZWZpbml0aW9ucyIsInRlc3QiLCJ0b1N0cmljdEVxdWFsIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiaWQiLCJzb21lUmVxdWlyZWRGaWVsZCIsIml0ZW1zIiwidGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7MEJBRStCO29DQUNJO0FBRW5DQSxTQUFTLHNCQUFzQjtJQUM3QkMsR0FBRyxzREFBc0Q7UUFDdkQsTUFBTUMsU0FBaUI7WUFDckJDLGFBQWE7Z0JBQ1g7b0JBQ0VDLFFBQVE7d0JBQ047NEJBQ0VDLE1BQU07NEJBQ05DLE1BQU07NEJBQ05GLFFBQVE7Z0NBQ047b0NBQ0VDLE1BQU07b0NBQ05FLFVBQVU7b0NBQ1ZELE1BQU07Z0NBQ1I7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7b0JBQ0RFLE1BQU07b0JBQ05DLFlBQVk7Z0JBQ2Q7YUFDRDtRQUNIO1FBRUEsTUFBTUMsa0JBQWtCQyxJQUFBQSx3QkFBYyxFQUFDVDtRQUN2QyxNQUFNVSxTQUFTQyxJQUFBQSxzQ0FBa0IsRUFBQ0gsaUJBQWlCO1FBRW5ESSxPQUFPRixRQUFRRyxhQUFhQyxNQUFNQyxhQUFhLENBQUM7WUFDOUNDLHNCQUFzQjtZQUN0QkMsWUFBWTtnQkFDVkMsSUFBSTtvQkFDRmQsTUFBTTtnQkFDUjtnQkFDQWUsbUJBQW1CO29CQUNqQkMsT0FBTzt3QkFDTEosc0JBQXNCO3dCQUN0QkMsWUFBWTs0QkFDVkMsSUFBSTtnQ0FDRmQsTUFBTTtvQ0FBQztvQ0FBVTtpQ0FBTzs0QkFDMUI7NEJBQ0FlLG1CQUFtQjtnQ0FDakJmLE1BQU07NEJBQ1I7d0JBQ0Y7d0JBQ0FDLFVBQVU7NEJBQUM7eUJBQW9CO3dCQUMvQkQsTUFBTTtvQkFDUjtvQkFDQUEsTUFBTTt3QkFBQzt3QkFBUztxQkFBTztnQkFDekI7WUFDRjtZQUNBQyxVQUFVO2dCQUFDO2FBQUs7WUFDaEJnQixPQUFPO1lBQ1BqQixNQUFNO1FBQ1I7SUFDRjtBQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCookies.d.ts","sourceRoot":"","sources":["../../src/utilities/parseCookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"parseCookies.d.ts","sourceRoot":"","sources":["../../src/utilities/parseCookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAoB5E"}
|