payload 2.0.12 → 2.0.14
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/dist/admin/components/elements/ArrayAction/index.scss +0 -2
- package/dist/admin/components/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/admin/components/elements/DatePicker/DatePicker.js +14 -3
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +3 -1
- package/dist/admin/components/elements/DocumentFields/index.d.ts +5 -2
- package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentFields/index.js +10 -10
- package/dist/admin/components/elements/DocumentFields/index.scss +34 -0
- 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/ListDrawer/DrawerContent.js +2 -2
- package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Localizer/index.js +21 -13
- package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts +1 -0
- package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Popup/PopupButtonList/index.js +3 -2
- package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +6 -1
- package/dist/admin/components/elements/SaveDraft/index.d.ts.map +1 -1
- package/dist/admin/components/elements/SaveDraft/index.js +4 -3
- package/dist/admin/components/elements/Status/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Status/index.js +3 -1
- package/dist/admin/components/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/admin/components/elements/TableColumns/index.js +8 -13
- package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/admin/components/forms/RenderFields/index.js +1 -1
- 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/Row/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Row/index.js +9 -5
- package/dist/admin/components/forms/field-types/Row/index.scss +22 -18
- package/dist/admin/components/forms/field-types/Tabs/index.js +2 -2
- package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/DocumentInfo/index.js +19 -11
- package/dist/admin/components/utilities/Preferences/index.d.ts +6 -1
- package/dist/admin/components/utilities/Preferences/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Preferences/index.js +55 -5
- package/dist/admin/components/views/Account/Default.d.ts +5 -1
- package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
- package/dist/admin/components/views/Account/Default.js +14 -13
- package/dist/admin/components/views/Account/index.d.ts.map +1 -1
- package/dist/admin/components/views/Account/index.js +18 -12
- package/dist/admin/components/views/Global/Default/index.d.ts +4 -1
- package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Default/index.js +3 -2
- package/dist/admin/components/views/Global/Default.d.ts +5 -2
- package/dist/admin/components/views/Global/Default.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Default.js +6 -3
- package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/CustomComponent.js +3 -2
- package/dist/admin/components/views/Global/Routes/index.d.ts +4 -1
- package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/index.js +1 -1
- package/dist/admin/components/views/Global/index.d.ts.map +1 -1
- package/dist/admin/components/views/Global/index.js +3 -1
- package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/index.js +6 -4
- package/dist/admin/components/views/LivePreview/index.d.ts +4 -1
- package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/index.js +28 -31
- 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/Version/SelectLocales/index.js +3 -9
- package/dist/admin/components/views/Version/SelectLocales/types.d.ts +4 -4
- package/dist/admin/components/views/Version/SelectLocales/types.d.ts.map +1 -1
- package/dist/admin/components/views/Version/Version.d.ts.map +1 -1
- package/dist/admin/components/views/Version/Version.js +11 -3
- package/dist/admin/components/views/Version/types.d.ts +0 -4
- package/dist/admin/components/views/Version/types.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.d.ts +4 -1
- package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.js +16 -15
- package/dist/admin/components/views/collections/Edit/Default.d.ts +5 -2
- package/dist/admin/components/views/collections/Edit/Default.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default.js +6 -3
- package/dist/admin/components/views/collections/Edit/Routes/index.d.ts +4 -1
- package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Routes/index.js +1 -1
- package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/index.js +3 -1
- package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/List/index.js +13 -12
- 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/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.map +1 -1
- package/dist/collections/operations/findVersions.js +3 -2
- 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/types.d.ts +1 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- 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 -0
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +25 -15
- 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/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 +3 -2
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +3 -2
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +3 -2
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +3 -2
- package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
- package/dist/graphql/schema/buildMutationInputType.js +9 -12
- 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 +10 -10
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +13 -1
- 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/package.json +1 -1
- package/types.d.ts +1 -0
- package/types.js +25 -15
|
@@ -70,25 +70,34 @@ function _interop_require_default(obj) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
const fieldName = (0, _formatName.default)(name);
|
|
73
|
+
const recursiveFields = {
|
|
74
|
+
AND: {
|
|
75
|
+
type: new _graphql.GraphQLList(new _graphql.GraphQLInputObjectType({
|
|
76
|
+
name: `${fieldName}_where_and`,
|
|
77
|
+
fields: ()=>({
|
|
78
|
+
...fieldTypes,
|
|
79
|
+
...recursiveFields
|
|
80
|
+
})
|
|
81
|
+
}))
|
|
82
|
+
},
|
|
83
|
+
OR: {
|
|
84
|
+
type: new _graphql.GraphQLList(new _graphql.GraphQLInputObjectType({
|
|
85
|
+
name: `${fieldName}_where_or`,
|
|
86
|
+
fields: ()=>({
|
|
87
|
+
...fieldTypes,
|
|
88
|
+
...recursiveFields
|
|
89
|
+
})
|
|
90
|
+
}))
|
|
91
|
+
}
|
|
92
|
+
};
|
|
73
93
|
return new _graphql.GraphQLInputObjectType({
|
|
74
94
|
name: `${fieldName}_where`,
|
|
75
95
|
fields: {
|
|
76
96
|
...fieldTypes,
|
|
77
|
-
|
|
78
|
-
type: new _graphql.GraphQLList(new _graphql.GraphQLInputObjectType({
|
|
79
|
-
name: `${fieldName}_where_and`,
|
|
80
|
-
fields: fieldTypes
|
|
81
|
-
}))
|
|
82
|
-
},
|
|
83
|
-
OR: {
|
|
84
|
-
type: new _graphql.GraphQLList(new _graphql.GraphQLInputObjectType({
|
|
85
|
-
name: `${fieldName}_where_or`,
|
|
86
|
-
fields: fieldTypes
|
|
87
|
-
}))
|
|
88
|
-
}
|
|
97
|
+
...recursiveFields
|
|
89
98
|
}
|
|
90
99
|
});
|
|
91
100
|
};
|
|
92
101
|
const _default = buildWhereInputType;
|
|
93
102
|
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZFdoZXJlSW5wdXRUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB7IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsIEdyYXBoUUxMaXN0IH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZEhhc1N1YkZpZWxkcyxcbiAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IGZpZWxkVG9TY2hlbWFNYXAgZnJvbSAnLi9maWVsZFRvV2hlcmVJbnB1dFNjaGVtYU1hcCdcbmltcG9ydCB7IHdpdGhPcGVyYXRvcnMgfSBmcm9tICcuL3dpdGhPcGVyYXRvcnMnXG5cbnR5cGUgQXJncyA9IHtcbiAgZmllbGRzOiBGaWVsZFtdXG4gIG5hbWU6IHN0cmluZ1xuICBwYXJlbnROYW1lOiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxufVxuXG4vKiogVGhpcyBkb2VzIGFzIHRoZSBmdW5jdGlvbiBuYW1lIHN1Z2dlc3RzLiBJdCBidWlsZHMgYSB3aGVyZSBHcmFwaFFMIGlucHV0IHR5cGVcbiAqIGZvciBhbGwgdGhlIGZpZWxkcyB3aGljaCBhcmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi5cbiAqIEVhY2ggZmllbGQgaGFzIGRpZmZlcmVudCBvcGVyYXRvcnMgd2hpY2ggbWF5IGJlIHZhbGlkIGZvciBhIHdoZXJlIGlucHV0IHR5cGUuXG4gKiBGb3IgZXhhbXBsZSwgYSB0ZXh0IGZpZWxkIG1heSBoYXZlIGEgXCJjb250YWluc1wiIG9wZXJhdG9yLCBidXQgYSBudW1iZXIgZmllbGRcbiAqIG1heSBub3QuXG4gKlxuICogYnVpbGRXaGVyZUlucHV0VHlwZSBpcyBzaW1pbGFyIHRvIGJ1aWxkT2JqZWN0VHlwZSBhbmQgb3BlcmF0ZXNcbiAqIG9uIGEgZmllbGQgYmFzaXMgd2l0aCBhIGZldyBkaXN0aW5jdCBkaWZmZXJlbmNlcy5cbiAqXG4gKiAxLiBFdmVyeXRoaW5nIG5lZWRzIHRvIGJlIGEgR3JhcGhRTElucHV0T2JqZWN0VHlwZSBvciBzY2FsYXIgLyBlbnVtXG4gKiAyLiBSZWxhdGlvbnNoaXBzLCBncm91cHMsIHJlcGVhdGVycyBhbmQgZmxleCBjb250ZW50IGFyZSBub3RcbiAqICAgIGRpcmVjdGx5IHNlYXJjaGFibGUuIEluc3RlYWQsIHdlIG5lZWQgdG8gYnVpbGQgYSBjaGFpbmVkIHBhdGhuYW1lXG4gKiAgICB1c2luZyBkb3Qgbm90YXRpb24gc28gTW9uZ29EQiBjYW4gcHJvcGVybHkgc2VhcmNoIG5lc3RlZCBwYXRocy5cbiAqL1xuY29uc3QgYnVpbGRXaGVyZUlucHV0VHlwZSA9ICh7XG4gIG5hbWUsXG4gIGZpZWxkcyxcbiAgcGFyZW50TmFtZSxcbiAgcGF5bG9hZCxcbn06IEFyZ3MpOiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlID0+
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZFdoZXJlSW5wdXRUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB7IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsIEdyYXBoUUxMaXN0IH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZEhhc1N1YkZpZWxkcyxcbiAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IGZpZWxkVG9TY2hlbWFNYXAgZnJvbSAnLi9maWVsZFRvV2hlcmVJbnB1dFNjaGVtYU1hcCdcbmltcG9ydCB7IHdpdGhPcGVyYXRvcnMgfSBmcm9tICcuL3dpdGhPcGVyYXRvcnMnXG5cbnR5cGUgQXJncyA9IHtcbiAgZmllbGRzOiBGaWVsZFtdXG4gIG5hbWU6IHN0cmluZ1xuICBwYXJlbnROYW1lOiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxufVxuXG4vKiogVGhpcyBkb2VzIGFzIHRoZSBmdW5jdGlvbiBuYW1lIHN1Z2dlc3RzLiBJdCBidWlsZHMgYSB3aGVyZSBHcmFwaFFMIGlucHV0IHR5cGVcbiAqIGZvciBhbGwgdGhlIGZpZWxkcyB3aGljaCBhcmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi5cbiAqIEVhY2ggZmllbGQgaGFzIGRpZmZlcmVudCBvcGVyYXRvcnMgd2hpY2ggbWF5IGJlIHZhbGlkIGZvciBhIHdoZXJlIGlucHV0IHR5cGUuXG4gKiBGb3IgZXhhbXBsZSwgYSB0ZXh0IGZpZWxkIG1heSBoYXZlIGEgXCJjb250YWluc1wiIG9wZXJhdG9yLCBidXQgYSBudW1iZXIgZmllbGRcbiAqIG1heSBub3QuXG4gKlxuICogYnVpbGRXaGVyZUlucHV0VHlwZSBpcyBzaW1pbGFyIHRvIGJ1aWxkT2JqZWN0VHlwZSBhbmQgb3BlcmF0ZXNcbiAqIG9uIGEgZmllbGQgYmFzaXMgd2l0aCBhIGZldyBkaXN0aW5jdCBkaWZmZXJlbmNlcy5cbiAqXG4gKiAxLiBFdmVyeXRoaW5nIG5lZWRzIHRvIGJlIGEgR3JhcGhRTElucHV0T2JqZWN0VHlwZSBvciBzY2FsYXIgLyBlbnVtXG4gKiAyLiBSZWxhdGlvbnNoaXBzLCBncm91cHMsIHJlcGVhdGVycyBhbmQgZmxleCBjb250ZW50IGFyZSBub3RcbiAqICAgIGRpcmVjdGx5IHNlYXJjaGFibGUuIEluc3RlYWQsIHdlIG5lZWQgdG8gYnVpbGQgYSBjaGFpbmVkIHBhdGhuYW1lXG4gKiAgICB1c2luZyBkb3Qgbm90YXRpb24gc28gTW9uZ29EQiBjYW4gcHJvcGVybHkgc2VhcmNoIG5lc3RlZCBwYXRocy5cbiAqL1xuY29uc3QgYnVpbGRXaGVyZUlucHV0VHlwZSA9ICh7XG4gIG5hbWUsXG4gIGZpZWxkcyxcbiAgcGFyZW50TmFtZSxcbiAgcGF5bG9hZCxcbn06IEFyZ3MpOiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlID0+IHtcbiAgLy8gVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBidWlsZHMgbmVzdGVkIHBhdGhzIGZvciBhbGxcbiAgLy8gZmllbGQgdHlwZXMgd2l0aCBuZXN0ZWQgcGF0aHMuXG5cbiAgbGV0IGlkRmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IGZpZWxkVHlwZXMgPSBmaWVsZHMucmVkdWNlKChzY2hlbWEsIGZpZWxkKSA9PiB7XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIGlkRmllbGQgPSBmaWVsZFxuXG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSAmJiAhZmllbGQuaGlkZGVuKSB7XG4gICAgICBjb25zdCBnZXRGaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXAoe1xuICAgICAgICBwYXJlbnROYW1lLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSlbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGdldEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gZ2V0RmllbGRTY2hlbWEoZmllbGQpXG5cbiAgICAgICAgaWYgKGZpZWxkSGFzU3ViRmllbGRzKGZpZWxkKSB8fCBmaWVsZC50eXBlID09PSAndGFicycpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uc2NoZW1hLFxuICAgICAgICAgICAgLi4uZmllbGRTY2hlbWEucmVkdWNlKFxuICAgICAgICAgICAgICAoc3ViRmllbGRzLCBzdWJGaWVsZCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5zdWJGaWVsZHMsXG4gICAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUoc3ViRmllbGQua2V5KV06IHN1YkZpZWxkLnR5cGUsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zY2hlbWEsXG4gICAgICAgICAgW2Zvcm1hdE5hbWUoZmllbGQubmFtZSldOiBmaWVsZFNjaGVtYSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWFcbiAgfSwge30pXG5cbiAgaWYgKCFpZEZpZWxkKSB7XG4gICAgZmllbGRUeXBlcy5pZCA9IHtcbiAgICAgIHR5cGU6IHdpdGhPcGVyYXRvcnMoeyBuYW1lOiAnaWQnLCB0eXBlOiAndGV4dCcgfSBhcyBGaWVsZEFmZmVjdGluZ0RhdGEsIHBhcmVudE5hbWUpLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZpZWxkTmFtZSA9IGZvcm1hdE5hbWUobmFtZSlcblxuICBjb25zdCByZWN1cnNpdmVGaWVsZHMgPSB7XG4gICAgQU5EOiB7XG4gICAgICB0eXBlOiBuZXcgR3JhcGhRTExpc3QoXG4gICAgICAgIG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtmaWVsZE5hbWV9X3doZXJlX2FuZGAsXG4gICAgICAgICAgZmllbGRzOiAoKSA9PiAoe1xuICAgICAgICAgICAgLi4uZmllbGRUeXBlcyxcbiAgICAgICAgICAgIC4uLnJlY3Vyc2l2ZUZpZWxkcyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIH0sXG4gICAgT1I6IHtcbiAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTGlzdChcbiAgICAgICAgbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke2ZpZWxkTmFtZX1fd2hlcmVfb3JgLFxuICAgICAgICAgIGZpZWxkczogKCkgPT4gKHtcbiAgICAgICAgICAgIC4uLmZpZWxkVHlwZXMsXG4gICAgICAgICAgICAuLi5yZWN1cnNpdmVGaWVsZHMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICBuYW1lOiBgJHtmaWVsZE5hbWV9X3doZXJlYCxcbiAgICBmaWVsZHM6IHtcbiAgICAgIC4uLmZpZWxkVHlwZXMsXG4gICAgICAuLi5yZWN1cnNpdmVGaWVsZHMsXG4gICAgfSxcbiAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRXaGVyZUlucHV0VHlwZVxuIl0sIm5hbWVzIjpbImJ1aWxkV2hlcmVJbnB1dFR5cGUiLCJuYW1lIiwiZmllbGRzIiwicGFyZW50TmFtZSIsInBheWxvYWQiLCJpZEZpZWxkIiwiZmllbGRUeXBlcyIsInJlZHVjZSIsInNjaGVtYSIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJoaWRkZW4iLCJnZXRGaWVsZFNjaGVtYSIsImZpZWxkVG9TY2hlbWFNYXAiLCJ0eXBlIiwiZmllbGRTY2hlbWEiLCJmaWVsZEhhc1N1YkZpZWxkcyIsInN1YkZpZWxkcyIsInN1YkZpZWxkIiwiZm9ybWF0TmFtZSIsImtleSIsImlkIiwid2l0aE9wZXJhdG9ycyIsImZpZWxkTmFtZSIsInJlY3Vyc2l2ZUZpZWxkcyIsIkFORCIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTElucHV0T2JqZWN0VHlwZSIsIk9SIl0sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQsR0FDMUQsdUNBQXVDOzs7OytCQTRIdkM7OztlQUFBOzs7eUJBM0hvRDt1QkFTN0M7bUVBQ2dCO21GQUNNOytCQUNDOzs7Ozs7QUFTOUI7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNELE1BQU1BLHNCQUFzQixDQUFDLEVBQzNCQyxJQUFJLEVBQ0pDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxPQUFPLEVBQ0Y7SUFDTCx3REFBd0Q7SUFDeEQsaUNBQWlDO0lBRWpDLElBQUlDO0lBRUosTUFBTUMsYUFBYUosT0FBT0ssTUFBTSxDQUFDLENBQUNDLFFBQVFDO1FBQ3hDLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRCxVQUFVQSxNQUFNUixJQUFJLEtBQUssTUFBTUksVUFBVUk7UUFFOUQsSUFBSSxDQUFDRSxJQUFBQSxnQ0FBeUIsRUFBQ0YsVUFBVSxDQUFDQSxNQUFNRyxNQUFNLEVBQUU7WUFDdEQsTUFBTUMsaUJBQWlCQyxJQUFBQSxtQ0FBZ0IsRUFBQztnQkFDdENYO2dCQUNBQztZQUNGLEVBQUUsQ0FBQ0ssTUFBTU0sSUFBSSxDQUFDO1lBRWQsSUFBSUYsZ0JBQWdCO2dCQUNsQixNQUFNRyxjQUFjSCxlQUFlSjtnQkFFbkMsSUFBSVEsSUFBQUEsd0JBQWlCLEVBQUNSLFVBQVVBLE1BQU1NLElBQUksS0FBSyxRQUFRO29CQUNyRCxPQUFPO3dCQUNMLEdBQUdQLE1BQU07d0JBQ1QsR0FBR1EsWUFBWVQsTUFBTSxDQUNuQixDQUFDVyxXQUFXQyxXQUFjLENBQUE7Z0NBQ3hCLEdBQUdELFNBQVM7Z0NBQ1osQ0FBQ0UsSUFBQUEsbUJBQVUsRUFBQ0QsU0FBU0UsR0FBRyxFQUFFLEVBQUVGLFNBQVNKLElBQUk7NEJBQzNDLENBQUEsR0FDQSxDQUFDLEVBQ0Y7b0JBQ0g7Z0JBQ0Y7Z0JBRUEsT0FBTztvQkFDTCxHQUFHUCxNQUFNO29CQUNULENBQUNZLElBQUFBLG1CQUFVLEVBQUNYLE1BQU1SLElBQUksRUFBRSxFQUFFZTtnQkFDNUI7WUFDRjtRQUNGO1FBRUEsT0FBT1I7SUFDVCxHQUFHLENBQUM7SUFFSixJQUFJLENBQUNILFNBQVM7UUFDWkMsV0FBV2dCLEVBQUUsR0FBRztZQUNkUCxNQUFNUSxJQUFBQSw0QkFBYSxFQUFDO2dCQUFFdEIsTUFBTTtnQkFBTWMsTUFBTTtZQUFPLEdBQXlCWjtRQUMxRTtJQUNGO0lBRUEsTUFBTXFCLFlBQVlKLElBQUFBLG1CQUFVLEVBQUNuQjtJQUU3QixNQUFNd0Isa0JBQWtCO1FBQ3RCQyxLQUFLO1lBQ0hYLE1BQU0sSUFBSVksb0JBQVcsQ0FDbkIsSUFBSUMsK0JBQXNCLENBQUM7Z0JBQ3pCM0IsTUFBTSxDQUFDLEVBQUV1QixVQUFVLFVBQVUsQ0FBQztnQkFDOUJ0QixRQUFRLElBQU8sQ0FBQTt3QkFDYixHQUFHSSxVQUFVO3dCQUNiLEdBQUdtQixlQUFlO29CQUNwQixDQUFBO1lBQ0Y7UUFFSjtRQUNBSSxJQUFJO1lBQ0ZkLE1BQU0sSUFBSVksb0JBQVcsQ0FDbkIsSUFBSUMsK0JBQXNCLENBQUM7Z0JBQ3pCM0IsTUFBTSxDQUFDLEVBQUV1QixVQUFVLFNBQVMsQ0FBQztnQkFDN0J0QixRQUFRLElBQU8sQ0FBQTt3QkFDYixHQUFHSSxVQUFVO3dCQUNiLEdBQUdtQixlQUFlO29CQUNwQixDQUFBO1lBQ0Y7UUFFSjtJQUNGO0lBRUEsT0FBTyxJQUFJRywrQkFBc0IsQ0FBQztRQUNoQzNCLE1BQU0sQ0FBQyxFQUFFdUIsVUFBVSxNQUFNLENBQUM7UUFDMUJ0QixRQUFRO1lBQ04sR0FBR0ksVUFBVTtZQUNiLEdBQUdtQixlQUFlO1FBQ3BCO0lBQ0Y7QUFDRjtNQUVBLFdBQWV6QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withOperators.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/withOperators.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,sBAAsB,EAIvB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"withOperators.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/withOperators.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,sBAAsB,EAIvB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,2BAA2B,CAAA;AA4OlC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,UACjB,kBAAkB,cACb,MAAM,KACjB,sBA+CF,CAAA"}
|
|
@@ -193,7 +193,7 @@ const defaults = {
|
|
|
193
193
|
type: (field, parentName)=>new _graphql.GraphQLEnumType({
|
|
194
194
|
name: `${(0, _combineParentName.default)(parentName, field.name)}_Input`,
|
|
195
195
|
values: field.options.reduce((values, option)=>{
|
|
196
|
-
if (
|
|
196
|
+
if ((0, _types.optionIsObject)(option)) {
|
|
197
197
|
return {
|
|
198
198
|
...values,
|
|
199
199
|
[(0, _formatName.default)(option.value)]: {
|
|
@@ -201,15 +201,12 @@ const defaults = {
|
|
|
201
201
|
}
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
return values;
|
|
204
|
+
return {
|
|
205
|
+
...values,
|
|
206
|
+
[(0, _formatName.default)(option)]: {
|
|
207
|
+
value: option
|
|
208
|
+
}
|
|
209
|
+
};
|
|
213
210
|
}, {})
|
|
214
211
|
})
|
|
215
212
|
}))
|
|
@@ -296,4 +293,4 @@ const withOperators = (field, parentName)=>{
|
|
|
296
293
|
});
|
|
297
294
|
};
|
|
298
295
|
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS93aXRoT3BlcmF0b3JzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR3JhcGhRTFR5cGUgfSBmcm9tICdncmFwaHFsJ1xuXG5pbXBvcnQge1xuICBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMRmxvYXQsXG4gIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMU3RyaW5nLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG5pbXBvcnQgeyBHcmFwaFFMSlNPTiB9IGZyb20gJ2dyYXBocWwtdHlwZS1qc29uJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgTnVtYmVyRmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFNlbGVjdEZpZWxkLFxufSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBSZWxhdGlvbnNoaXBGaWVsZCwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGNvbWJpbmVQYXJlbnROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9jb21iaW5lUGFyZW50TmFtZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IG9wZXJhdG9ycyBmcm9tICcuL29wZXJhdG9ycydcblxudHlwZSBzdGF0aWNUeXBlcyA9XG4gIHwgJ2NoZWNrYm94J1xuICB8ICdjb2RlJ1xuICB8ICdkYXRlJ1xuICB8ICdlbWFpbCdcbiAgfCAnanNvbidcbiAgfCAnbnVtYmVyJ1xuICB8ICdwb2ludCdcbiAgfCAncmVsYXRpb25zaGlwJ1xuICB8ICdyaWNoVGV4dCdcbiAgfCAndGV4dCdcbiAgfCAndGV4dGFyZWEnXG4gIHwgJ3VwbG9hZCdcblxudHlwZSBkeW5hbWljVHlwZXMgPSAncmFkaW8nIHwgJ3NlbGVjdCdcblxuY29uc3QgR2VvSlNPTk9iamVjdCA9IG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgbmFtZTogJ0dlb0pTT05PYmplY3QnLFxuICBmaWVsZHM6IHtcbiAgICBjb29yZGluYXRlczoge1xuICAgICAgdHlwZTogR3JhcGhRTEpTT04sXG4gICAgfSxcbiAgICB0eXBlOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgfSxcbn0pXG5cbnR5cGUgRGVmYXVsdHNUeXBlID0ge1xuICBba2V5IGluIHN0YXRpY1R5cGVzXToge1xuICAgIG9wZXJhdG9yczoge1xuICAgICAgbmFtZTogc3RyaW5nXG4gICAgICB0eXBlOiAoKGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEsIHBhcmVudE5hbWU6IHN0cmluZykgPT4gR3JhcGhRTFR5cGUpIHwgR3JhcGhRTFR5cGVcbiAgICB9W11cbiAgfVxufSAmIHtcbiAgW2tleSBpbiBkeW5hbWljVHlwZXNdOiB7XG4gICAgb3BlcmF0b3JzOiB7XG4gICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIHR5cGU6IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBwYXJlbnROYW1lOiBzdHJpbmcpID0+IEdyYXBoUUxUeXBlXG4gICAgfVtdXG4gIH1cbn1cblxuY29uc3QgZGVmYXVsdHM6IERlZmF1bHRzVHlwZSA9IHtcbiAgY2hlY2tib3g6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLm9wZXJhdG9ycy5lcXVhbGl0eS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTEJvb2xlYW4sXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgY29kZToge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIGRhdGU6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5jb21wYXJpc29uLCAnbGlrZSddLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBEYXRlVGltZVJlc29sdmVyLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIGVtYWlsOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMucGFydGlhbCwgLi4ub3BlcmF0b3JzLmNvbnRhaW5zXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogRW1haWxBZGRyZXNzUmVzb2x2ZXIsXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAganNvbjoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWwsIC4uLm9wZXJhdG9ycy5nZW9qc29uXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTEpTT04sXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29tcGFyaXNvbl0ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IChmaWVsZDogTnVtYmVyRmllbGQpOiBHcmFwaFFMVHlwZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgICB9LFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIHBvaW50OiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29tcGFyaXNvbiwgLi4ub3BlcmF0b3JzLmdlb10ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTGlzdChHcmFwaFFMRmxvYXQpLFxuICAgICAgfSkpLFxuICAgICAgLi4ub3BlcmF0b3JzLmdlb2pzb24ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZXhhbXBsZTpcbiAgICAgICAgICogd2l0aGluOiB7XG4gICAgICAgICAqICB0eXBlOiBcIlBvbHlnb25cIixcbiAgICAgICAgICogIGNvb3JkaW5hdGVzOiBbW1xuICAgICAgICAgKiAgIFswLjAsIDAuMF0sXG4gICAgICAgICAqICAgWzEuMCwgMS4wXSxcbiAgICAgICAgICogICBbMS4wLCAwLjBdLFxuICAgICAgICAgKiAgIFswLjAsIDAuMF0sXG4gICAgICAgICAqICBdXSxcbiAgICAgICAgICogfVxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiBpbnRlcnNlY3RzOiB7XG4gICAgICAgICAqICB0eXBlOiBcIlBvaW50XCIsXG4gICAgICAgICAqICBjb29yZGluYXRlczogWyAwLjUsIDAuNSBdXG4gICAgICAgICAqIH1cbiAgICAgICAgICovXG4gICAgICAgIHR5cGU6IEdlb0pTT05PYmplY3QsXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgcmFkaW86IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5wYXJ0aWFsXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogKGZpZWxkOiBSYWRpb0ZpZWxkLCBwYXJlbnROYW1lKTogR3JhcGhRTFR5cGUgPT5cbiAgICAgICAgICBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpfV9JbnB1dGAsXG4gICAgICAgICAgICB2YWx1ZXM6IGZpZWxkLm9wdGlvbnMucmVkdWNlKCh2YWx1ZXMsIG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBpZiAob3B0aW9uSXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24udmFsdWUpXToge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgfSksXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29udGFpbnNdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMSlNPTixcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICByaWNoVGV4dDoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMSlNPTixcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5jb250YWluc10ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IChmaWVsZDogU2VsZWN0RmllbGQsIHBhcmVudE5hbWUpOiBHcmFwaFFMVHlwZSA9PlxuICAgICAgICAgIG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICAgICAgbmFtZTogYCR7Y29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgZmllbGQubmFtZSl9X0lucHV0YCxcbiAgICAgICAgICAgIHZhbHVlczogZmllbGQub3B0aW9ucy5yZWR1Y2UoKHZhbHVlcywgb3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUob3B0aW9uLnZhbHVlKV06IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgIFtvcHRpb25dOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZXNcbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICB9KSxcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICB0ZXh0OiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMucGFydGlhbCwgLi4ub3BlcmF0b3JzLmNvbnRhaW5zXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICB0ZXh0YXJlYToge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIHVwbG9hZDoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4ub3BlcmF0b3JzLmVxdWFsaXR5Lm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIC8vIGFycmF5OiBuL2FcbiAgLy8gZ3JvdXA6IG4vYVxuICAvLyByb3c6IG4vYVxuICAvLyBjb2xsYXBzaWJsZTogbi9hXG4gIC8vIHRhYnM6IG4vYVxufVxuXG5jb25zdCBsaXN0T3BlcmF0b3JzID0gWydpbicsICdub3RfaW4nLCAnYWxsJ11cblxuY29uc3QgZ3FsVHlwZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMVHlwZT4gPSB7fVxuXG4vKipcbiAqIEluIEdyYXBoUUwsIHlvdSBjYW4gdXNlIFwid2hlcmVcIiBhcyBhbiBhcmd1bWVudCB0byBmaWx0ZXIgYSBjb2xsZWN0aW9uLiBFeGFtcGxlOlxuICogeyBQb3N0cyh3aGVyZTogeyB0aXRsZTogeyBlcXVhbHM6IFwiSGVsbG9cIiB9IH0pIHsgdGV4dCB9IH1cbiAqIFRoaXMgZnVuY3Rpb24gZGVmaW5lcyB0aGUgb3BlcmF0b3JzIGZvciBhIGZpZWxkJ3MgY29uZGl0aW9uIGluIHRoZSBcIndoZXJlXCIgYXJndW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24gKGl0IHRodXMgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5IGZpZWxkKS5cbiAqIEZvciBleGFtcGxlLCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgaXQgd291bGQgY29udHJvbCB0aGF0XG4gKiAtIFwiZXF1YWxzXCIgaXMgYSB2YWxpZCBvcGVyYXRvciBmb3IgdGhlIFwidGl0bGVcIiBmaWVsZFxuICogLSB0aGUgYWNjZXB0ZWQgdHlwZSBvZiB0aGUgXCJlcXVhbHNcIiBhcmd1bWVudCBoYXMgdG8gYmUgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCBmb3Igd2hpY2ggdGhlaXIgdmFsaWQgb3BlcmF0b3JzIGluc2lkZSBhIFwid2hlcmVcIiBhcmd1bWVudCBpcyBiZWluZyBkZWZpbmVkXG4gKiBAcGFyYW0gcGFyZW50TmFtZSB0aGUgbmFtZSBvZiB0aGUgcGFyZW50IGZpZWxkIChpZiBhbnkpXG4gKiBAcmV0dXJucyBhbGwgdGhlIG9wZXJhdG9ycyAoaW5jbHVkaW5nIHRoZWlyIHR5cGVzKSB3aGljaCBjYW4gYmUgdXNlZCBhcyBhIGNvbmRpdGlvbiBmb3IgYSBnaXZlbiBmaWVsZCBpbnNpZGUgYSB3aGVyZVxuICovXG5leHBvcnQgY29uc3Qgd2l0aE9wZXJhdG9ycyA9IChcbiAgZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgcGFyZW50TmFtZTogc3RyaW5nLFxuKTogR3JhcGhRTElucHV0T2JqZWN0VHlwZSA9PiB7XG4gIGlmICghZGVmYXVsdHM/LltmaWVsZC50eXBlXSkgdGhyb3cgbmV3IEVycm9yKGBFcnJvcjogJHtmaWVsZC50eXBlfSBoYXMgbm8gZGVmYXVsdHMgY29uZmlndXJlZC5gKVxuXG4gIGNvbnN0IG5hbWUgPSBgJHtjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKX1fb3BlcmF0b3JgXG5cbiAgLy8gR2V0IHRoZSBkZWZhdWx0IG9wZXJhdG9ycyBmb3IgdGhlIGZpZWxkIHR5cGUgd2hpY2ggYXJlIGhhcmQtY29kZWQgYWJvdmVcbiAgY29uc3QgZmllbGRPcGVyYXRvcnMgPSBbLi4uZGVmYXVsdHNbZmllbGQudHlwZV0ub3BlcmF0b3JzXVxuXG4gIGlmICghKCdyZXF1aXJlZCcgaW4gZmllbGQpIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgIGZpZWxkT3BlcmF0b3JzLnB1c2goe1xuICAgICAgbmFtZTogJ2V4aXN0cycsXG4gICAgICB0eXBlOiBmaWVsZE9wZXJhdG9yc1swXS50eXBlLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgIG5hbWUsXG4gICAgZmllbGRzOiBmaWVsZE9wZXJhdG9ycy5yZWR1Y2UoKG9iamVjdFR5cGVGaWVsZHMsIG9wZXJhdG9yKSA9PiB7XG4gICAgICAvLyBHZXQgdGhlIHR5cGUgb2YgdGhlIG9wZXJhdG9yLiBJdCBjYW4gYmUgZWl0aGVyIHN0YXRpYywgb3IgZHluYW1pYyAoPT4gYSBmdW5jdGlvbilcbiAgICAgIGxldCBncWxUeXBlOiBHcmFwaFFMVHlwZSA9XG4gICAgICAgIHR5cGVvZiBvcGVyYXRvci50eXBlID09PSAnZnVuY3Rpb24nID8gb3BlcmF0b3IudHlwZShmaWVsZCwgcGFyZW50TmFtZSkgOiBvcGVyYXRvci50eXBlXG5cbiAgICAgIC8vIEdyYXBoUUwgZG9lcyBub3QgYWxsb3cgdHlwZXMgd2l0aCBkdXBsaWNhdGUgbmFtZXMsIHNvIHdlIHVzZSB0aGlzIGNhY2hlIHRvIGF2b2lkIHRoYXQuXG4gICAgICAvLyBXaXRob3V0IHRoaXMsIHNlbGVjdCBhbmQgcmFkaW8gZmllbGRzIHdvdWxkIGhhdmUgdGhlIHNhbWUgbmFtZSwgYW5kIEdyYXBoUUwgd291bGQgdGhyb3cgYW4gZXJyb3JcbiAgICAgIC8vIFRoaXMgdXN1YWxseSBvbmx5IGhhcHBlbnMgaWYgYSBjdXN0b20gdHlwZSBpcyByZXR1cm5lZCBmcm9tIHRoZSBvcGVyYXRvci50eXBlIGZ1bmN0aW9uXG4gICAgICBpZiAodHlwZW9mIG9wZXJhdG9yLnR5cGUgPT09ICdmdW5jdGlvbicgJiYgJ25hbWUnIGluIGdxbFR5cGUpIHtcbiAgICAgICAgaWYgKGdxbFR5cGVDYWNoZVtncWxUeXBlLm5hbWVdKSB7XG4gICAgICAgICAgZ3FsVHlwZSA9IGdxbFR5cGVDYWNoZVtncWxUeXBlLm5hbWVdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3FsVHlwZUNhY2hlW2dxbFR5cGUubmFtZV0gPSBncWxUeXBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGxpc3RPcGVyYXRvcnMuaW5jbHVkZXMob3BlcmF0b3IubmFtZSkpIHtcbiAgICAgICAgZ3FsVHlwZSA9IG5ldyBHcmFwaFFMTGlzdChncWxUeXBlKVxuICAgICAgfSBlbHNlIGlmIChvcGVyYXRvci5uYW1lID09PSAnZXhpc3RzJykge1xuICAgICAgICBncWxUeXBlID0gR3JhcGhRTEJvb2xlYW5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUZpZWxkcyxcbiAgICAgICAgW29wZXJhdG9yLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogZ3FsVHlwZSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LCB7fSksXG4gIH0pXG59XG4iXSwibmFtZXMiOlsid2l0aE9wZXJhdG9ycyIsIkdlb0pTT05PYmplY3QiLCJHcmFwaFFMSW5wdXRPYmplY3RUeXBlIiwibmFtZSIsImZpZWxkcyIsImNvb3JkaW5hdGVzIiwidHlwZSIsIkdyYXBoUUxKU09OIiwiR3JhcGhRTFN0cmluZyIsImRlZmF1bHRzIiwiY2hlY2tib3giLCJvcGVyYXRvcnMiLCJlcXVhbGl0eSIsIm1hcCIsIm9wZXJhdG9yIiwiR3JhcGhRTEJvb2xlYW4iLCJjb2RlIiwicGFydGlhbCIsImRhdGUiLCJjb21wYXJpc29uIiwiRGF0ZVRpbWVSZXNvbHZlciIsImVtYWlsIiwiY29udGFpbnMiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImpzb24iLCJnZW9qc29uIiwibnVtYmVyIiwiZmllbGQiLCJHcmFwaFFMSW50IiwiR3JhcGhRTEZsb2F0IiwicG9pbnQiLCJnZW8iLCJHcmFwaFFMTGlzdCIsInJhZGlvIiwicGFyZW50TmFtZSIsIkdyYXBoUUxFbnVtVHlwZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidmFsdWVzIiwib3B0aW9ucyIsInJlZHVjZSIsIm9wdGlvbiIsIm9wdGlvbklzT2JqZWN0IiwiZm9ybWF0TmFtZSIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwicmljaFRleHQiLCJzZWxlY3QiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiLCJsaXN0T3BlcmF0b3JzIiwiZ3FsVHlwZUNhY2hlIiwiRXJyb3IiLCJmaWVsZE9wZXJhdG9ycyIsInJlcXVpcmVkIiwicHVzaCIsIm9iamVjdFR5cGVGaWVsZHMiLCJncWxUeXBlIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBK1Fh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
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS93aXRoT3BlcmF0b3JzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR3JhcGhRTFR5cGUgfSBmcm9tICdncmFwaHFsJ1xuXG5pbXBvcnQge1xuICBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMRmxvYXQsXG4gIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMU3RyaW5nLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG5pbXBvcnQgeyBHcmFwaFFMSlNPTiB9IGZyb20gJ2dyYXBocWwtdHlwZS1qc29uJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgTnVtYmVyRmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFNlbGVjdEZpZWxkLFxufSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBSZWxhdGlvbnNoaXBGaWVsZCwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGNvbWJpbmVQYXJlbnROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9jb21iaW5lUGFyZW50TmFtZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IG9wZXJhdG9ycyBmcm9tICcuL29wZXJhdG9ycydcblxudHlwZSBzdGF0aWNUeXBlcyA9XG4gIHwgJ2NoZWNrYm94J1xuICB8ICdjb2RlJ1xuICB8ICdkYXRlJ1xuICB8ICdlbWFpbCdcbiAgfCAnanNvbidcbiAgfCAnbnVtYmVyJ1xuICB8ICdwb2ludCdcbiAgfCAncmVsYXRpb25zaGlwJ1xuICB8ICdyaWNoVGV4dCdcbiAgfCAndGV4dCdcbiAgfCAndGV4dGFyZWEnXG4gIHwgJ3VwbG9hZCdcblxudHlwZSBkeW5hbWljVHlwZXMgPSAncmFkaW8nIHwgJ3NlbGVjdCdcblxuY29uc3QgR2VvSlNPTk9iamVjdCA9IG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgbmFtZTogJ0dlb0pTT05PYmplY3QnLFxuICBmaWVsZHM6IHtcbiAgICBjb29yZGluYXRlczoge1xuICAgICAgdHlwZTogR3JhcGhRTEpTT04sXG4gICAgfSxcbiAgICB0eXBlOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgfSxcbn0pXG5cbnR5cGUgRGVmYXVsdHNUeXBlID0ge1xuICBba2V5IGluIHN0YXRpY1R5cGVzXToge1xuICAgIG9wZXJhdG9yczoge1xuICAgICAgbmFtZTogc3RyaW5nXG4gICAgICB0eXBlOiAoKGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEsIHBhcmVudE5hbWU6IHN0cmluZykgPT4gR3JhcGhRTFR5cGUpIHwgR3JhcGhRTFR5cGVcbiAgICB9W11cbiAgfVxufSAmIHtcbiAgW2tleSBpbiBkeW5hbWljVHlwZXNdOiB7XG4gICAgb3BlcmF0b3JzOiB7XG4gICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIHR5cGU6IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBwYXJlbnROYW1lOiBzdHJpbmcpID0+IEdyYXBoUUxUeXBlXG4gICAgfVtdXG4gIH1cbn1cblxuY29uc3QgZGVmYXVsdHM6IERlZmF1bHRzVHlwZSA9IHtcbiAgY2hlY2tib3g6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLm9wZXJhdG9ycy5lcXVhbGl0eS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTEJvb2xlYW4sXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgY29kZToge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIGRhdGU6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5jb21wYXJpc29uLCAnbGlrZSddLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBEYXRlVGltZVJlc29sdmVyLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIGVtYWlsOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMucGFydGlhbCwgLi4ub3BlcmF0b3JzLmNvbnRhaW5zXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogRW1haWxBZGRyZXNzUmVzb2x2ZXIsXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAganNvbjoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWwsIC4uLm9wZXJhdG9ycy5nZW9qc29uXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTEpTT04sXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29tcGFyaXNvbl0ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IChmaWVsZDogTnVtYmVyRmllbGQpOiBHcmFwaFFMVHlwZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgICB9LFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIHBvaW50OiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29tcGFyaXNvbiwgLi4ub3BlcmF0b3JzLmdlb10ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTGlzdChHcmFwaFFMRmxvYXQpLFxuICAgICAgfSkpLFxuICAgICAgLi4ub3BlcmF0b3JzLmdlb2pzb24ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZXhhbXBsZTpcbiAgICAgICAgICogd2l0aGluOiB7XG4gICAgICAgICAqICB0eXBlOiBcIlBvbHlnb25cIixcbiAgICAgICAgICogIGNvb3JkaW5hdGVzOiBbW1xuICAgICAgICAgKiAgIFswLjAsIDAuMF0sXG4gICAgICAgICAqICAgWzEuMCwgMS4wXSxcbiAgICAgICAgICogICBbMS4wLCAwLjBdLFxuICAgICAgICAgKiAgIFswLjAsIDAuMF0sXG4gICAgICAgICAqICBdXSxcbiAgICAgICAgICogfVxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiBpbnRlcnNlY3RzOiB7XG4gICAgICAgICAqICB0eXBlOiBcIlBvaW50XCIsXG4gICAgICAgICAqICBjb29yZGluYXRlczogWyAwLjUsIDAuNSBdXG4gICAgICAgICAqIH1cbiAgICAgICAgICovXG4gICAgICAgIHR5cGU6IEdlb0pTT05PYmplY3QsXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgcmFkaW86IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5wYXJ0aWFsXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogKGZpZWxkOiBSYWRpb0ZpZWxkLCBwYXJlbnROYW1lKTogR3JhcGhRTFR5cGUgPT5cbiAgICAgICAgICBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpfV9JbnB1dGAsXG4gICAgICAgICAgICB2YWx1ZXM6IGZpZWxkLm9wdGlvbnMucmVkdWNlKCh2YWx1ZXMsIG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBpZiAob3B0aW9uSXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24udmFsdWUpXToge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgfSksXG4gICAgICB9KSksXG4gICAgXSxcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMuY29udGFpbnNdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMSlNPTixcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICByaWNoVGV4dDoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMSlNPTixcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIC4uLlsuLi5vcGVyYXRvcnMuZXF1YWxpdHksIC4uLm9wZXJhdG9ycy5jb250YWluc10ubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgbmFtZTogb3BlcmF0b3IsXG4gICAgICAgIHR5cGU6IChmaWVsZDogU2VsZWN0RmllbGQsIHBhcmVudE5hbWUpOiBHcmFwaFFMVHlwZSA9PlxuICAgICAgICAgIG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICAgICAgbmFtZTogYCR7Y29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgZmllbGQubmFtZSl9X0lucHV0YCxcbiAgICAgICAgICAgIHZhbHVlczogZmllbGQub3B0aW9ucy5yZWR1Y2UoKHZhbHVlcywgb3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChvcHRpb25Jc09iamVjdChvcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgIFtmb3JtYXROYW1lKG9wdGlvbi52YWx1ZSldOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgICAgIFtmb3JtYXROYW1lKG9wdGlvbildOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICB9KSxcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICB0ZXh0OiB7XG4gICAgb3BlcmF0b3JzOiBbXG4gICAgICAuLi5bLi4ub3BlcmF0b3JzLmVxdWFsaXR5LCAuLi5vcGVyYXRvcnMucGFydGlhbCwgLi4ub3BlcmF0b3JzLmNvbnRhaW5zXS5tYXAoKG9wZXJhdG9yKSA9PiAoe1xuICAgICAgICBuYW1lOiBvcGVyYXRvcixcbiAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgIH0pKSxcbiAgICBdLFxuICB9LFxuICB0ZXh0YXJlYToge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4uWy4uLm9wZXJhdG9ycy5lcXVhbGl0eSwgLi4ub3BlcmF0b3JzLnBhcnRpYWxdLm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIHVwbG9hZDoge1xuICAgIG9wZXJhdG9yczogW1xuICAgICAgLi4ub3BlcmF0b3JzLmVxdWFsaXR5Lm1hcCgob3BlcmF0b3IpID0+ICh7XG4gICAgICAgIG5hbWU6IG9wZXJhdG9yLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSkpLFxuICAgIF0sXG4gIH0sXG4gIC8vIGFycmF5OiBuL2FcbiAgLy8gZ3JvdXA6IG4vYVxuICAvLyByb3c6IG4vYVxuICAvLyBjb2xsYXBzaWJsZTogbi9hXG4gIC8vIHRhYnM6IG4vYVxufVxuXG5jb25zdCBsaXN0T3BlcmF0b3JzID0gWydpbicsICdub3RfaW4nLCAnYWxsJ11cblxuY29uc3QgZ3FsVHlwZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMVHlwZT4gPSB7fVxuXG4vKipcbiAqIEluIEdyYXBoUUwsIHlvdSBjYW4gdXNlIFwid2hlcmVcIiBhcyBhbiBhcmd1bWVudCB0byBmaWx0ZXIgYSBjb2xsZWN0aW9uLiBFeGFtcGxlOlxuICogeyBQb3N0cyh3aGVyZTogeyB0aXRsZTogeyBlcXVhbHM6IFwiSGVsbG9cIiB9IH0pIHsgdGV4dCB9IH1cbiAqIFRoaXMgZnVuY3Rpb24gZGVmaW5lcyB0aGUgb3BlcmF0b3JzIGZvciBhIGZpZWxkJ3MgY29uZGl0aW9uIGluIHRoZSBcIndoZXJlXCIgYXJndW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24gKGl0IHRodXMgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5IGZpZWxkKS5cbiAqIEZvciBleGFtcGxlLCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgaXQgd291bGQgY29udHJvbCB0aGF0XG4gKiAtIFwiZXF1YWxzXCIgaXMgYSB2YWxpZCBvcGVyYXRvciBmb3IgdGhlIFwidGl0bGVcIiBmaWVsZFxuICogLSB0aGUgYWNjZXB0ZWQgdHlwZSBvZiB0aGUgXCJlcXVhbHNcIiBhcmd1bWVudCBoYXMgdG8gYmUgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCBmb3Igd2hpY2ggdGhlaXIgdmFsaWQgb3BlcmF0b3JzIGluc2lkZSBhIFwid2hlcmVcIiBhcmd1bWVudCBpcyBiZWluZyBkZWZpbmVkXG4gKiBAcGFyYW0gcGFyZW50TmFtZSB0aGUgbmFtZSBvZiB0aGUgcGFyZW50IGZpZWxkIChpZiBhbnkpXG4gKiBAcmV0dXJucyBhbGwgdGhlIG9wZXJhdG9ycyAoaW5jbHVkaW5nIHRoZWlyIHR5cGVzKSB3aGljaCBjYW4gYmUgdXNlZCBhcyBhIGNvbmRpdGlvbiBmb3IgYSBnaXZlbiBmaWVsZCBpbnNpZGUgYSB3aGVyZVxuICovXG5leHBvcnQgY29uc3Qgd2l0aE9wZXJhdG9ycyA9IChcbiAgZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgcGFyZW50TmFtZTogc3RyaW5nLFxuKTogR3JhcGhRTElucHV0T2JqZWN0VHlwZSA9PiB7XG4gIGlmICghZGVmYXVsdHM/LltmaWVsZC50eXBlXSkgdGhyb3cgbmV3IEVycm9yKGBFcnJvcjogJHtmaWVsZC50eXBlfSBoYXMgbm8gZGVmYXVsdHMgY29uZmlndXJlZC5gKVxuXG4gIGNvbnN0IG5hbWUgPSBgJHtjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKX1fb3BlcmF0b3JgXG5cbiAgLy8gR2V0IHRoZSBkZWZhdWx0IG9wZXJhdG9ycyBmb3IgdGhlIGZpZWxkIHR5cGUgd2hpY2ggYXJlIGhhcmQtY29kZWQgYWJvdmVcbiAgY29uc3QgZmllbGRPcGVyYXRvcnMgPSBbLi4uZGVmYXVsdHNbZmllbGQudHlwZV0ub3BlcmF0b3JzXVxuXG4gIGlmICghKCdyZXF1aXJlZCcgaW4gZmllbGQpIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgIGZpZWxkT3BlcmF0b3JzLnB1c2goe1xuICAgICAgbmFtZTogJ2V4aXN0cycsXG4gICAgICB0eXBlOiBmaWVsZE9wZXJhdG9yc1swXS50eXBlLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgIG5hbWUsXG4gICAgZmllbGRzOiBmaWVsZE9wZXJhdG9ycy5yZWR1Y2UoKG9iamVjdFR5cGVGaWVsZHMsIG9wZXJhdG9yKSA9PiB7XG4gICAgICAvLyBHZXQgdGhlIHR5cGUgb2YgdGhlIG9wZXJhdG9yLiBJdCBjYW4gYmUgZWl0aGVyIHN0YXRpYywgb3IgZHluYW1pYyAoPT4gYSBmdW5jdGlvbilcbiAgICAgIGxldCBncWxUeXBlOiBHcmFwaFFMVHlwZSA9XG4gICAgICAgIHR5cGVvZiBvcGVyYXRvci50eXBlID09PSAnZnVuY3Rpb24nID8gb3BlcmF0b3IudHlwZShmaWVsZCwgcGFyZW50TmFtZSkgOiBvcGVyYXRvci50eXBlXG5cbiAgICAgIC8vIEdyYXBoUUwgZG9lcyBub3QgYWxsb3cgdHlwZXMgd2l0aCBkdXBsaWNhdGUgbmFtZXMsIHNvIHdlIHVzZSB0aGlzIGNhY2hlIHRvIGF2b2lkIHRoYXQuXG4gICAgICAvLyBXaXRob3V0IHRoaXMsIHNlbGVjdCBhbmQgcmFkaW8gZmllbGRzIHdvdWxkIGhhdmUgdGhlIHNhbWUgbmFtZSwgYW5kIEdyYXBoUUwgd291bGQgdGhyb3cgYW4gZXJyb3JcbiAgICAgIC8vIFRoaXMgdXN1YWxseSBvbmx5IGhhcHBlbnMgaWYgYSBjdXN0b20gdHlwZSBpcyByZXR1cm5lZCBmcm9tIHRoZSBvcGVyYXRvci50eXBlIGZ1bmN0aW9uXG4gICAgICBpZiAodHlwZW9mIG9wZXJhdG9yLnR5cGUgPT09ICdmdW5jdGlvbicgJiYgJ25hbWUnIGluIGdxbFR5cGUpIHtcbiAgICAgICAgaWYgKGdxbFR5cGVDYWNoZVtncWxUeXBlLm5hbWVdKSB7XG4gICAgICAgICAgZ3FsVHlwZSA9IGdxbFR5cGVDYWNoZVtncWxUeXBlLm5hbWVdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3FsVHlwZUNhY2hlW2dxbFR5cGUubmFtZV0gPSBncWxUeXBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGxpc3RPcGVyYXRvcnMuaW5jbHVkZXMob3BlcmF0b3IubmFtZSkpIHtcbiAgICAgICAgZ3FsVHlwZSA9IG5ldyBHcmFwaFFMTGlzdChncWxUeXBlKVxuICAgICAgfSBlbHNlIGlmIChvcGVyYXRvci5uYW1lID09PSAnZXhpc3RzJykge1xuICAgICAgICBncWxUeXBlID0gR3JhcGhRTEJvb2xlYW5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUZpZWxkcyxcbiAgICAgICAgW29wZXJhdG9yLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogZ3FsVHlwZSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LCB7fSksXG4gIH0pXG59XG4iXSwibmFtZXMiOlsid2l0aE9wZXJhdG9ycyIsIkdlb0pTT05PYmplY3QiLCJHcmFwaFFMSW5wdXRPYmplY3RUeXBlIiwibmFtZSIsImZpZWxkcyIsImNvb3JkaW5hdGVzIiwidHlwZSIsIkdyYXBoUUxKU09OIiwiR3JhcGhRTFN0cmluZyIsImRlZmF1bHRzIiwiY2hlY2tib3giLCJvcGVyYXRvcnMiLCJlcXVhbGl0eSIsIm1hcCIsIm9wZXJhdG9yIiwiR3JhcGhRTEJvb2xlYW4iLCJjb2RlIiwicGFydGlhbCIsImRhdGUiLCJjb21wYXJpc29uIiwiRGF0ZVRpbWVSZXNvbHZlciIsImVtYWlsIiwiY29udGFpbnMiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImpzb24iLCJnZW9qc29uIiwibnVtYmVyIiwiZmllbGQiLCJHcmFwaFFMSW50IiwiR3JhcGhRTEZsb2F0IiwicG9pbnQiLCJnZW8iLCJHcmFwaFFMTGlzdCIsInJhZGlvIiwicGFyZW50TmFtZSIsIkdyYXBoUUxFbnVtVHlwZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidmFsdWVzIiwib3B0aW9ucyIsInJlZHVjZSIsIm9wdGlvbiIsIm9wdGlvbklzT2JqZWN0IiwiZm9ybWF0TmFtZSIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwicmljaFRleHQiLCJzZWxlY3QiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiLCJsaXN0T3BlcmF0b3JzIiwiZ3FsVHlwZUNhY2hlIiwiRXJyb3IiLCJmaWVsZE9wZXJhdG9ycyIsInJlcXVpcmVkIiwicHVzaCIsIm9iamVjdFR5cGVGaWVsZHMiLCJncWxUeXBlIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMlFhQTs7O2VBQUFBOzs7eUJBalFOO2dDQUNnRDtpQ0FDM0I7dUJBU3NCOzBFQUNwQjttRUFDUDtrRUFDRDs7Ozs7O0FBa0J0QixNQUFNQyxnQkFBZ0IsSUFBSUMsK0JBQXNCLENBQUM7SUFDL0NDLE1BQU07SUFD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
|
|
@@ -18,6 +18,9 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
}
|
|
19
19
|
async function update(args) {
|
|
20
20
|
const { key, overrideAccess, req: { payload }, req, user, value } = args;
|
|
21
|
+
if (!user) {
|
|
22
|
+
throw new _UnathorizedError.default(req.t);
|
|
23
|
+
}
|
|
21
24
|
const collection = 'payload-preferences';
|
|
22
25
|
const filter = {
|
|
23
26
|
key: {
|
|
@@ -38,31 +41,28 @@ async function update(args) {
|
|
|
38
41
|
},
|
|
39
42
|
value
|
|
40
43
|
};
|
|
41
|
-
if (!user) {
|
|
42
|
-
throw new _UnathorizedError.default(req.t);
|
|
43
|
-
}
|
|
44
44
|
if (!overrideAccess) {
|
|
45
45
|
await (0, _executeAccess.default)({
|
|
46
46
|
req
|
|
47
47
|
}, _defaultAccess.default);
|
|
48
48
|
}
|
|
49
|
-
// TODO: workaround to prevent race-conditions 500 errors from violating unique constraints
|
|
50
49
|
try {
|
|
51
|
-
|
|
50
|
+
// try/catch because we attempt to update without first reading to check if it exists first to save on db calls
|
|
51
|
+
await payload.db.updateOne({
|
|
52
52
|
collection,
|
|
53
53
|
data: preference,
|
|
54
|
-
req
|
|
54
|
+
req,
|
|
55
|
+
where: filter
|
|
55
56
|
});
|
|
56
57
|
} catch (err) {
|
|
57
|
-
await payload.db.
|
|
58
|
+
await payload.db.create({
|
|
58
59
|
collection,
|
|
59
60
|
data: preference,
|
|
60
|
-
req
|
|
61
|
-
where: filter
|
|
61
|
+
req
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
return preference;
|
|
65
65
|
}
|
|
66
66
|
const _default = update;
|
|
67
67
|
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcmVmZXJlbmNlcy9vcGVyYXRpb25zL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByZWZlcmVuY2VVcGRhdGVSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCBkZWZhdWx0QWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZGVmYXVsdEFjY2VzcydcbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCBVbmF1dGhvcml6ZWRFcnJvciBmcm9tICcuLi8uLi9lcnJvcnMvVW5hdGhvcml6ZWRFcnJvcidcblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlKGFyZ3M6IFByZWZlcmVuY2VVcGRhdGVSZXF1ZXN0KSB7XG4gIGNvbnN0IHtcbiAgICBrZXksXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgdXNlcixcbiAgICB2YWx1ZSxcbiAgfSA9IGFyZ3NcblxuICBpZiAoIXVzZXIpIHtcbiAgICB0aHJvdyBuZXcgVW5hdXRob3JpemVkRXJyb3IocmVxLnQpXG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uID0gJ3BheWxvYWQtcHJlZmVyZW5jZXMnXG5cbiAgY29uc3QgZmlsdGVyID0ge1xuICAgIGtleTogeyBlcXVhbHM6IGtleSB9LFxuICAgICd1c2VyLnJlbGF0aW9uVG8nOiB7IGVxdWFsczogdXNlci5jb2xsZWN0aW9uIH0sXG4gICAgJ3VzZXIudmFsdWUnOiB7IGVxdWFsczogdXNlci5pZCB9LFxuICB9XG5cbiAgY29uc3QgcHJlZmVyZW5jZSA9IHtcbiAgICBrZXksXG4gICAgdXNlcjoge1xuICAgICAgcmVsYXRpb25UbzogdXNlci5jb2xsZWN0aW9uLFxuICAgICAgdmFsdWU6IHVzZXIuaWQsXG4gICAgfSxcbiAgICB2YWx1ZSxcbiAgfVxuXG4gIGlmICghb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICBhd2FpdCBleGVjdXRlQWNjZXNzKHsgcmVxIH0sIGRlZmF1bHRBY2Nlc3MpXG4gIH1cblxuICB0cnkge1xuICAgIC8vIHRyeS9jYXRjaCBiZWNhdXNlIHdlIGF0dGVtcHQgdG8gdXBkYXRlIHdpdGhvdXQgZmlyc3QgcmVhZGluZyB0byBjaGVjayBpZiBpdCBleGlzdHMgZmlyc3QgdG8gc2F2ZSBvbiBkYiBjYWxsc1xuICAgIGF3YWl0IHBheWxvYWQuZGIudXBkYXRlT25lKHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBkYXRhOiBwcmVmZXJlbmNlLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmU6IGZpbHRlcixcbiAgICB9KVxuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICBhd2FpdCBwYXlsb2FkLmRiLmNyZWF0ZSh7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZGF0YTogcHJlZmVyZW5jZSxcbiAgICAgIHJlcSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHByZWZlcmVuY2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlXG4iXSwibmFtZXMiOlsidXBkYXRlIiwiYXJncyIsImtleSIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwicGF5bG9hZCIsInVzZXIiLCJ2YWx1ZSIsIlVuYXV0aG9yaXplZEVycm9yIiwidCIsImNvbGxlY3Rpb24iLCJmaWx0ZXIiLCJlcXVhbHMiLCJpZCIsInByZWZlcmVuY2UiLCJyZWxhdGlvblRvIiwiZXhlY3V0ZUFjY2VzcyIsImRlZmF1bHRBY2Nlc3MiLCJkYiIsInVwZGF0ZU9uZSIsImRhdGEiLCJ3aGVyZSIsImVyciIsImNyZWF0ZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE0REE7OztlQUFBOzs7c0VBMUQwQjtzRUFDQTt5RUFDSTs7Ozs7O0FBRTlCLGVBQWVBLE9BQU9DLElBQTZCO0lBQ2pELE1BQU0sRUFDSkMsR0FBRyxFQUNIQyxjQUFjLEVBQ2RDLEtBQUssRUFBRUMsT0FBTyxFQUFFLEVBQ2hCRCxHQUFHLEVBQ0hFLElBQUksRUFDSkMsS0FBSyxFQUNOLEdBQUdOO0lBRUosSUFBSSxDQUFDSyxNQUFNO1FBQ1QsTUFBTSxJQUFJRSx5QkFBaUIsQ0FBQ0osSUFBSUssQ0FBQztJQUNuQztJQUVBLE1BQU1DLGFBQWE7SUFFbkIsTUFBTUMsU0FBUztRQUNiVCxLQUFLO1lBQUVVLFFBQVFWO1FBQUk7UUFDbkIsbUJBQW1CO1lBQUVVLFFBQVFOLEtBQUtJLFVBQVU7UUFBQztRQUM3QyxjQUFjO1lBQUVFLFFBQVFOLEtBQUtPLEVBQUU7UUFBQztJQUNsQztJQUVBLE1BQU1DLGFBQWE7UUFDakJaO1FBQ0FJLE1BQU07WUFDSlMsWUFBWVQsS0FBS0ksVUFBVTtZQUMzQkgsT0FBT0QsS0FBS08sRUFBRTtRQUNoQjtRQUNBTjtJQUNGO0lBRUEsSUFBSSxDQUFDSixnQkFBZ0I7UUFDbkIsTUFBTWEsSUFBQUEsc0JBQWEsRUFBQztZQUFFWjtRQUFJLEdBQUdhLHNCQUFhO0lBQzVDO0lBRUEsSUFBSTtRQUNGLCtHQUErRztRQUMvRyxNQUFNWixRQUFRYSxFQUFFLENBQUNDLFNBQVMsQ0FBQztZQUN6QlQ7WUFDQVUsTUFBTU47WUFDTlY7WUFDQWlCLE9BQU9WO1FBQ1Q7SUFDRixFQUFFLE9BQU9XLEtBQWM7UUFDckIsTUFBTWpCLFFBQVFhLEVBQUUsQ0FBQ0ssTUFBTSxDQUFDO1lBQ3RCYjtZQUNBVSxNQUFNTjtZQUNOVjtRQUNGO0lBQ0Y7SUFFQSxPQUFPVTtBQUNUO01BRUEsV0FBZWQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,SAAS,CAAA;AAWpE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,yIA8M5B,CAAA"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "generateFileData", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _filetype = require("file-type");
|
|
12
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
13
|
const _mkdirp = /*#__PURE__*/ _interop_require_default(require("mkdirp"));
|
|
13
14
|
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
15
|
const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
|
|
@@ -159,6 +160,17 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
159
160
|
buffer: fileBuffer?.data || file.data,
|
|
160
161
|
path: `${staticPath}/${fsSafeName}`
|
|
161
162
|
});
|
|
163
|
+
if (file.tempFilePath) {
|
|
164
|
+
await _fs.default.promises.writeFile(file.tempFilePath, fileBuffer?.data) // write fileBuffer to the temp path
|
|
165
|
+
;
|
|
166
|
+
} else {
|
|
167
|
+
// Assign the _possibly modified_ file to the request object
|
|
168
|
+
req.files.file = {
|
|
169
|
+
...file,
|
|
170
|
+
data: fileBuffer?.data || file.data,
|
|
171
|
+
size: fileBuffer?.info.size
|
|
172
|
+
};
|
|
173
|
+
}
|
|
162
174
|
}
|
|
163
175
|
if (Array.isArray(imageSizes) && fileSupportsResize) {
|
|
164
176
|
req.payloadUploadSizes = {};
|
|
@@ -192,4 +204,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
192
204
|
};
|
|
193
205
|
};
|
|
194
206
|
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvciwgTWlzc2luZ0ZpbGUgfSBmcm9tICcuLi9lcnJvcnMnXG5pbXBvcnQgY2FuUmVzaXplSW1hZ2UgZnJvbSAnLi9jYW5SZXNpemVJbWFnZSdcbmltcG9ydCBjcm9wSW1hZ2UgZnJvbSAnLi9jcm9wSW1hZ2UnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHRocm93T25NaXNzaW5nRmlsZT86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQ8VD4gPSBQcm9taXNlPHtcbiAgZGF0YTogVFxuICBmaWxlczogRmlsZVRvU2F2ZVtdXG59PlxuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVGaWxlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gIGNvbmZpZyxcbiAgZGF0YSxcbiAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgcmVxLFxuICB0aHJvd09uTWlzc2luZ0ZpbGUsXG59OiBBcmdzPFQ+KTogUmVzdWx0PFQ+ID0+IHtcbiAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGxldCBmaWxlID0gcmVxLmZpbGVzPy5maWxlIHx8IHVuZGVmaW5lZFxuICBjb25zdCB7IHVwbG9hZEVkaXRzIH0gPSByZXEucXVlcnkgfHwge31cblxuICBjb25zdCB7IGRpc2FibGVMb2NhbFN0b3JhZ2UsIGZvcm1hdE9wdGlvbnMsIGltYWdlU2l6ZXMsIHJlc2l6ZU9wdGlvbnMsIHN0YXRpY0RpciwgdHJpbU9wdGlvbnMgfSA9XG4gICAgY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG4gICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEZpbGVCeVBhdGgoZmlsZVBhdGgpXG5cbiAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgIGZpbGUgPSByZXNwb25zZSBhcyBVcGxvYWRlZEZpbGVcbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkID0gZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL2dpZicgfHwgZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnXG4gIGNvbnN0IGNyb3BEYXRhID1cbiAgICB0eXBlb2YgdXBsb2FkRWRpdHMgPT09ICdvYmplY3QnICYmICdjcm9wJyBpbiB1cGxvYWRFZGl0cyA/IHVwbG9hZEVkaXRzLmNyb3AgOiB1bmRlZmluZWRcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyXG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcbiAgICBjb25zdCBpc1NoYXJwUmVxdWlyZWQgPSBmaWxlU3VwcG9ydHNSZXNpemUgJiYgKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCB0cmltT3B0aW9ucylcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZCkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGlzU2hhcnBSZXF1aXJlZCkge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUucmVzaXplKHJlc2l6ZU9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudG9Gb3JtYXQoZm9ybWF0T3B0aW9ucy5mb3JtYXQsIGZvcm1hdE9wdGlvbnMub3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudHJpbSh0cmltT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNJbWFnZShmaWxlLm1pbWV0eXBlKSkge1xuICAgICAgZGltZW5zaW9ucyA9IGF3YWl0IGdldEltYWdlU2l6ZShmaWxlKVxuICAgICAgZmlsZURhdGEud2lkdGggPSBkaW1lbnNpb25zLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBkaW1lbnNpb25zLmhlaWdodFxuICAgIH1cblxuICAgIGlmIChzaGFycEZpbGUpIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgIGZpbGVCdWZmZXIgPSBhd2FpdCBzaGFycEZpbGUudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuICAgICAgOyh7IGV4dCwgbWltZSB9ID0gYXdhaXQgZnJvbUJ1ZmZlcihmaWxlQnVmZmVyLmRhdGEpKSAvLyBUaGlzIGlzIGdldHRpbmcgYW4gaW5jb3JyZWN0IGdpZiBoZWlnaHQgYmFjay5cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZmlsZUJ1ZmZlci5pbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuaW5mby5zaXplXG5cbiAgICAgIC8vIEFuaW1hdGVkIEdJRnMgKyBXZWJQIGFnZ3JlZ2F0ZSB0aGUgaGVpZ2h0IGZyb20gZXZlcnkgZnJhbWUsIHNvIHdlIG5lZWQgdG8gdXNlIGRpdmlkZSBieSBudW1iZXIgb2YgcGFnZXNcbiAgICAgIGlmIChtZXRhZGF0YS5wYWdlcykge1xuICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0IC8gbWV0YWRhdGEucGFnZXNcbiAgICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmRhdGEubGVuZ3RoXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1pbWUgPSBmaWxlLm1pbWV0eXBlXG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGUuc2l6ZVxuXG4gICAgICBpZiAoZmlsZS5uYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgZXh0ID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWR1c3QgU1ZHIG1pbWUgdHlwZS4gZnJvbUJ1ZmZlciBtb2RpZmllcyBpdC5cbiAgICBpZiAobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXh0ID09PSAnc3ZnJykgbWltZSA9ICdpbWFnZS9zdmcreG1sJ1xuICAgIGZpbGVEYXRhLm1pbWVUeXBlID0gbWltZVxuXG4gICAgY29uc3QgYmFzZUZpbGVuYW1lID0gc2FuaXRpemUoZmlsZS5uYW1lLnN1YnN0cmluZygwLCBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKSkgfHwgZmlsZS5uYW1lKVxuICAgIGZzU2FmZU5hbWUgPSBgJHtiYXNlRmlsZW5hbWV9JHtleHQgPyBgLiR7ZXh0fWAgOiAnJ31gXG5cbiAgICBpZiAoIW92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMpIHtcbiAgICAgIGZzU2FmZU5hbWUgPSBhd2FpdCBnZXRTYWZlRmlsZU5hbWUoe1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZzogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkZXNpcmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZmlsZURhdGEuZmlsZW5hbWUgPSBmc1NhZmVOYW1lXG4gICAgbGV0IGZpbGVGb3JSZXNpemUgPSBmaWxlXG5cbiAgICBpZiAoaXNTaGFycFJlcXVpcmVkICYmIGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBpbmZvLnNpemVcbiAgICAgIHJlcS5maWxlcy5maWxlID0gZmlsZUZvclJlc2l6ZVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsInJlcSIsInRocm93T25NaXNzaW5nRmlsZSIsInVwbG9hZCIsImZpbGVzIiwiZmlsZSIsInVuZGVmaW5lZCIsInVwbG9hZEVkaXRzIiwicXVlcnkiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwicmVzcG9uc2UiLCJnZXRGaWxlQnlQYXRoIiwiTWlzc2luZ0ZpbGUiLCJ0IiwibWtkaXJwIiwic3luYyIsIm5ld0RhdGEiLCJmaWxlc1RvU2F2ZSIsImZpbGVEYXRhIiwiZmlsZUlzQW5pbWF0ZWQiLCJtaW1ldHlwZSIsImNyb3BEYXRhIiwiY3JvcCIsImZpbGVTdXBwb3J0c1Jlc2l6ZSIsImNhblJlc2l6ZUltYWdlIiwiZnNTYWZlTmFtZSIsInNoYXJwRmlsZSIsImRpbWVuc2lvbnMiLCJmaWxlQnVmZmVyIiwiZXh0IiwibWltZSIsImlzU2hhcnBSZXF1aXJlZCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwidGVtcEZpbGVQYXRoIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJpbmNsdWRlcyIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsIkZpbGVVcGxvYWRFcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFxQ2FBOzs7ZUFBQUE7OzswQkFsQ2M7K0RBQ1I7NkRBQ0Y7eUVBQ0k7OERBQ0g7d0JBTzJCO3VFQUNsQjtrRUFDTDtzRUFDSTtxRUFDRDt3RUFDRztxRUFDYTtnRUFDckI7Ozs7OztBQWdCYixNQUFNQSxtQkFBbUIsT0FBVSxFQUN4Q0MsWUFBWSxFQUFFQyxRQUFRQyxnQkFBZ0IsRUFBRSxFQUN4Q0QsTUFBTSxFQUNORSxJQUFJLEVBQ0pDLHNCQUFzQixFQUN0QkMsR0FBRyxFQUNIQyxrQkFBa0IsRUFDVjtJQUNSLElBQUksQ0FBQ0osaUJBQWlCSyxNQUFNLEVBQUU7UUFDNUIsT0FBTztZQUNMSjtZQUNBSyxPQUFPLEVBQUU7UUFDWDtJQUNGO0lBRUEsSUFBSUMsT0FBT0osSUFBSUcsS0FBSyxFQUFFQyxRQUFRQztJQUM5QixNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHTixJQUFJTyxLQUFLLElBQUksQ0FBQztJQUV0QyxNQUFNLEVBQUVDLG1CQUFtQixFQUFFQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsYUFBYSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRSxHQUM3RmhCLGlCQUFpQkssTUFBTTtJQUV6QixJQUFJWSxhQUFhRjtJQUNqQixJQUFJQSxVQUFVRyxPQUFPLENBQUMsU0FBUyxHQUFHO1FBQ2hDRCxhQUFhRSxhQUFJLENBQUNDLE9BQU8sQ0FBQ3JCLE9BQU9zQixLQUFLLENBQUNDLFNBQVMsRUFBRVA7SUFDcEQ7SUFFQSxJQUFJLENBQUNSLFFBQVFFLGVBQWVSLE1BQU07UUFDaEMsTUFBTSxFQUFFc0IsUUFBUSxFQUFFLEdBQUd0QjtRQUNyQixNQUFNdUIsV0FBVyxDQUFDLEVBQUVQLFdBQVcsQ0FBQyxFQUFFTSxTQUFTLENBQUM7UUFDNUMsTUFBTUUsV0FBVyxNQUFNQyxJQUFBQSxzQkFBYSxFQUFDRjtRQUVyQ3RCLHlCQUF5QjtRQUN6QkssT0FBT2tCO0lBQ1Q7SUFFQSxJQUFJLENBQUNsQixNQUFNO1FBQ1QsSUFBSUgsb0JBQW9CLE1BQU0sSUFBSXVCLG1CQUFXLENBQUN4QixJQUFJeUIsQ0FBQztRQUVuRCxPQUFPO1lBQ0wzQjtZQUNBSyxPQUFPLEVBQUU7UUFDWDtJQUNGO0lBRUEsSUFBSSxDQUFDSyxxQkFBcUI7UUFDeEJrQixlQUFNLENBQUNDLElBQUksQ0FBQ2I7SUFDZDtJQUVBLElBQUljLFVBQVU5QjtJQUNkLE1BQU0rQixjQUE0QixFQUFFO0lBQ3BDLE1BQU1DLFdBQThCLENBQUM7SUFDckMsTUFBTUMsaUJBQWlCM0IsS0FBSzRCLFFBQVEsS0FBSyxlQUFlNUIsS0FBSzRCLFFBQVEsS0FBSztJQUMxRSxNQUFNQyxXQUNKLE9BQU8zQixnQkFBZ0IsWUFBWSxVQUFVQSxjQUFjQSxZQUFZNEIsSUFBSSxHQUFHN0I7SUFFaEYsSUFBSTtRQUNGLE1BQU04QixxQkFBcUJDLElBQUFBLHVCQUFjLEVBQUNoQyxLQUFLNEIsUUFBUTtRQUN2RCxJQUFJSztRQUNKLElBQUlDO1FBQ0osSUFBSUM7UUFDSixJQUFJQztRQUNKLElBQUlDO1FBQ0osSUFBSUM7UUFDSixNQUFNQyxrQkFBa0JSLHNCQUF1QnhCLENBQUFBLGlCQUFpQkYsaUJBQWlCSSxXQUFVO1FBRTNGLE1BQU0rQixlQUE2QixDQUFDO1FBRXBDLElBQUliLGdCQUFnQmEsYUFBYUMsUUFBUSxHQUFHO1FBRTVDLElBQUlGLGlCQUFpQjtZQUNuQixJQUFJdkMsS0FBSzBDLFlBQVksRUFBRTtnQkFDckJSLFlBQVlTLElBQUFBLGNBQUssRUFBQzNDLEtBQUswQyxZQUFZLEVBQUVGLGNBQWNJLE1BQU0sR0FBRyxtR0FBbUc7O1lBQ2pLLE9BQU87Z0JBQ0xWLFlBQVlTLElBQUFBLGNBQUssRUFBQzNDLEtBQUtOLElBQUksRUFBRThDLGNBQWNJLE1BQU0sR0FBRyxtR0FBbUc7O1lBQ3pKO1lBRUEsSUFBSXJDLGVBQWU7Z0JBQ2pCMkIsWUFBWUEsVUFBVVcsTUFBTSxDQUFDdEM7WUFDL0I7WUFDQSxJQUFJRixlQUFlO2dCQUNqQjZCLFlBQVlBLFVBQVVZLFFBQVEsQ0FBQ3pDLGNBQWMwQyxNQUFNLEVBQUUxQyxjQUFjMkMsT0FBTztZQUM1RTtZQUNBLElBQUl2QyxhQUFhO2dCQUNmeUIsWUFBWUEsVUFBVWUsSUFBSSxDQUFDeEM7WUFDN0I7UUFDRjtRQUVBLElBQUl5QyxJQUFBQSxnQkFBTyxFQUFDbEQsS0FBSzRCLFFBQVEsR0FBRztZQUMxQk8sYUFBYSxNQUFNZ0IsSUFBQUEscUJBQVksRUFBQ25EO1lBQ2hDMEIsU0FBUzBCLEtBQUssR0FBR2pCLFdBQVdpQixLQUFLO1lBQ2pDMUIsU0FBUzJCLE1BQU0sR0FBR2xCLFdBQVdrQixNQUFNO1FBQ3JDO1FBRUEsSUFBSW5CLFdBQVc7WUFDYixNQUFNb0IsV0FBVyxNQUFNcEIsVUFBVW9CLFFBQVE7WUFDekNsQixhQUFhLE1BQU1GLFVBQVVxQixRQUFRLENBQUM7Z0JBQUVDLG1CQUFtQjtZQUFLO1lBQzlELENBQUEsRUFBRW5CLEdBQUcsRUFBRUMsSUFBSSxFQUFFLEdBQUcsTUFBTW1CLElBQUFBLG9CQUFVLEVBQUNyQixXQUFXMUMsSUFBSSxFQUFHLGdEQUFnRDtZQUFuRDtZQUNsRGdDLFNBQVMwQixLQUFLLEdBQUdoQixXQUFXc0IsSUFBSSxDQUFDTixLQUFLO1lBQ3RDMUIsU0FBUzJCLE1BQU0sR0FBR2pCLFdBQVdzQixJQUFJLENBQUNMLE1BQU07WUFDeEMzQixTQUFTaUMsUUFBUSxHQUFHdkIsV0FBV3NCLElBQUksQ0FBQ0UsSUFBSTtZQUV4QywwR0FBMEc7WUFDMUcsSUFBSU4sU0FBU08sS0FBSyxFQUFFO2dCQUNsQm5DLFNBQVMyQixNQUFNLEdBQUdqQixXQUFXc0IsSUFBSSxDQUFDTCxNQUFNLEdBQUdDLFNBQVNPLEtBQUs7Z0JBQ3pEbkMsU0FBU2lDLFFBQVEsR0FBR3ZCLFdBQVcxQyxJQUFJLENBQUNvRSxNQUFNO1lBQzVDO1FBQ0YsT0FBTztZQUNMeEIsT0FBT3RDLEtBQUs0QixRQUFRO1lBQ3BCRixTQUFTaUMsUUFBUSxHQUFHM0QsS0FBSzRELElBQUk7WUFFN0IsSUFBSTVELEtBQUsrRCxJQUFJLENBQUNDLFFBQVEsQ0FBQyxNQUFNO2dCQUMzQjNCLE1BQU1yQyxLQUFLK0QsSUFBSSxDQUFDRSxLQUFLLENBQUMsS0FBS0MsR0FBRztZQUNoQyxPQUFPO2dCQUNMN0IsTUFBTTtZQUNSO1FBQ0Y7UUFFQSwrQ0FBK0M7UUFDL0MsSUFBSUMsU0FBUyxxQkFBcUJELFFBQVEsT0FBT0MsT0FBTztRQUN4RFosU0FBU3lDLFFBQVEsR0FBRzdCO1FBRXBCLE1BQU04QixlQUFlQyxJQUFBQSx5QkFBUSxFQUFDckUsS0FBSytELElBQUksQ0FBQ08sU0FBUyxDQUFDLEdBQUd0RSxLQUFLK0QsSUFBSSxDQUFDUSxXQUFXLENBQUMsU0FBU3ZFLEtBQUsrRCxJQUFJO1FBQzdGOUIsYUFBYSxDQUFDLEVBQUVtQyxhQUFhLEVBQUUvQixNQUFNLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFckQsSUFBSSxDQUFDMUMsd0JBQXdCO1lBQzNCc0MsYUFBYSxNQUFNdUMsSUFBQUEsd0JBQWUsRUFBQztnQkFDakNDLGdCQUFnQmhGLGlCQUFpQmlGLElBQUk7Z0JBQ3JDQyxpQkFBaUIxQztnQkFDakJyQztnQkFDQWM7WUFDRjtRQUNGO1FBRUFnQixTQUFTVixRQUFRLEdBQUdpQjtRQUNwQixJQUFJMkMsZ0JBQWdCNUU7UUFFcEIsSUFBSXVDLG1CQUFtQlYsVUFBVTtZQUMvQixNQUFNLEVBQUVuQyxNQUFNbUYsWUFBWSxFQUFFbkIsSUFBSSxFQUFFLEdBQUcsTUFBTW9CLElBQUFBLGtCQUFTLEVBQUM7Z0JBQUVqRDtnQkFBVU07Z0JBQVluQztZQUFLO1lBRWxGeUIsWUFBWXNELElBQUksQ0FBQztnQkFDZkMsUUFBUUg7Z0JBQ1JqRSxNQUFNLENBQUMsRUFBRUYsV0FBVyxDQUFDLEVBQUV1QixXQUFXLENBQUM7WUFDckM7WUFFQTJDLGdCQUFnQjtnQkFDZCxHQUFHNUUsSUFBSTtnQkFDUE4sTUFBTW1GO2dCQUNOakIsTUFBTUYsS0FBS0UsSUFBSTtZQUNqQjtZQUNBbEMsU0FBUzBCLEtBQUssR0FBR00sS0FBS04sS0FBSztZQUMzQjFCLFNBQVMyQixNQUFNLEdBQUdLLEtBQUtMLE1BQU07WUFDN0IzQixTQUFTaUMsUUFBUSxHQUFHRCxLQUFLRSxJQUFJO1lBQzdCaEUsSUFBSUcsS0FBSyxDQUFDQyxJQUFJLEdBQUc0RTtRQUNuQixPQUFPO1lBQ0xuRCxZQUFZc0QsSUFBSSxDQUFDO2dCQUNmQyxRQUFRNUMsWUFBWTFDLFFBQVFNLEtBQUtOLElBQUk7Z0JBQ3JDa0IsTUFBTSxDQUFDLEVBQUVGLFdBQVcsQ0FBQyxFQUFFdUIsV0FBVyxDQUFDO1lBQ3JDO1FBQ0Y7UUFFQSxJQUFJZ0QsTUFBTUMsT0FBTyxDQUFDNUUsZUFBZXlCLG9CQUFvQjtZQUNuRG5DLElBQUl1RixrQkFBa0IsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUUsR0FBRyxNQUFNQyxJQUFBQSxxQkFBNEIsRUFBQztnQkFDbkU5RixRQUFRQztnQkFDUjBDLFlBQVksQ0FBQ04sV0FDVE0sYUFDQTtvQkFDRSxHQUFHQSxVQUFVO29CQUNia0IsUUFBUTNCLFNBQVMyQixNQUFNO29CQUN2QkQsT0FBTzFCLFNBQVMwQixLQUFLO2dCQUN2QjtnQkFDSnBELE1BQU00RTtnQkFDTlQsVUFBVXpDLFNBQVN5QyxRQUFRO2dCQUMzQnZFO2dCQUNBMkYsZUFBZXRELGNBQWNqQyxLQUFLK0QsSUFBSTtnQkFDdENyRDtZQUNGO1lBRUFnQixTQUFTOEQsS0FBSyxHQUFHSjtZQUNqQjNELFlBQVlzRCxJQUFJLElBQUlNO1FBQ3RCO0lBQ0YsRUFBRSxPQUFPSSxLQUFLO1FBQ1pDLFFBQVFDLEtBQUssQ0FBQ0Y7UUFDZCxNQUFNLElBQUlHLHVCQUFlLENBQUNoRyxJQUFJeUIsQ0FBQztJQUNqQztJQUVBRyxVQUFVO1FBQ1IsR0FBR0EsT0FBTztRQUNWLEdBQUdFLFFBQVE7SUFDYjtJQUVBLE9BQU87UUFDTGhDLE1BQU04QjtRQUNOekIsT0FBTzBCO0lBQ1Q7QUFDRiJ9
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvciwgTWlzc2luZ0ZpbGUgfSBmcm9tICcuLi9lcnJvcnMnXG5pbXBvcnQgY2FuUmVzaXplSW1hZ2UgZnJvbSAnLi9jYW5SZXNpemVJbWFnZSdcbmltcG9ydCBjcm9wSW1hZ2UgZnJvbSAnLi9jcm9wSW1hZ2UnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHRocm93T25NaXNzaW5nRmlsZT86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQ8VD4gPSBQcm9taXNlPHtcbiAgZGF0YTogVFxuICBmaWxlczogRmlsZVRvU2F2ZVtdXG59PlxuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVGaWxlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gIGNvbmZpZyxcbiAgZGF0YSxcbiAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgcmVxLFxuICB0aHJvd09uTWlzc2luZ0ZpbGUsXG59OiBBcmdzPFQ+KTogUmVzdWx0PFQ+ID0+IHtcbiAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGxldCBmaWxlID0gcmVxLmZpbGVzPy5maWxlIHx8IHVuZGVmaW5lZFxuICBjb25zdCB7IHVwbG9hZEVkaXRzIH0gPSByZXEucXVlcnkgfHwge31cblxuICBjb25zdCB7IGRpc2FibGVMb2NhbFN0b3JhZ2UsIGZvcm1hdE9wdGlvbnMsIGltYWdlU2l6ZXMsIHJlc2l6ZU9wdGlvbnMsIHN0YXRpY0RpciwgdHJpbU9wdGlvbnMgfSA9XG4gICAgY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG4gICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEZpbGVCeVBhdGgoZmlsZVBhdGgpXG5cbiAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgIGZpbGUgPSByZXNwb25zZSBhcyBVcGxvYWRlZEZpbGVcbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkID0gZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL2dpZicgfHwgZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnXG4gIGNvbnN0IGNyb3BEYXRhID1cbiAgICB0eXBlb2YgdXBsb2FkRWRpdHMgPT09ICdvYmplY3QnICYmICdjcm9wJyBpbiB1cGxvYWRFZGl0cyA/IHVwbG9hZEVkaXRzLmNyb3AgOiB1bmRlZmluZWRcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyXG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcbiAgICBjb25zdCBpc1NoYXJwUmVxdWlyZWQgPSBmaWxlU3VwcG9ydHNSZXNpemUgJiYgKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCB0cmltT3B0aW9ucylcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZCkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGlzU2hhcnBSZXF1aXJlZCkge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUucmVzaXplKHJlc2l6ZU9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudG9Gb3JtYXQoZm9ybWF0T3B0aW9ucy5mb3JtYXQsIGZvcm1hdE9wdGlvbnMub3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudHJpbSh0cmltT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNJbWFnZShmaWxlLm1pbWV0eXBlKSkge1xuICAgICAgZGltZW5zaW9ucyA9IGF3YWl0IGdldEltYWdlU2l6ZShmaWxlKVxuICAgICAgZmlsZURhdGEud2lkdGggPSBkaW1lbnNpb25zLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBkaW1lbnNpb25zLmhlaWdodFxuICAgIH1cblxuICAgIGlmIChzaGFycEZpbGUpIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgIGZpbGVCdWZmZXIgPSBhd2FpdCBzaGFycEZpbGUudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuICAgICAgOyh7IGV4dCwgbWltZSB9ID0gYXdhaXQgZnJvbUJ1ZmZlcihmaWxlQnVmZmVyLmRhdGEpKSAvLyBUaGlzIGlzIGdldHRpbmcgYW4gaW5jb3JyZWN0IGdpZiBoZWlnaHQgYmFjay5cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZmlsZUJ1ZmZlci5pbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuaW5mby5zaXplXG5cbiAgICAgIC8vIEFuaW1hdGVkIEdJRnMgKyBXZWJQIGFnZ3JlZ2F0ZSB0aGUgaGVpZ2h0IGZyb20gZXZlcnkgZnJhbWUsIHNvIHdlIG5lZWQgdG8gdXNlIGRpdmlkZSBieSBudW1iZXIgb2YgcGFnZXNcbiAgICAgIGlmIChtZXRhZGF0YS5wYWdlcykge1xuICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0IC8gbWV0YWRhdGEucGFnZXNcbiAgICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmRhdGEubGVuZ3RoXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1pbWUgPSBmaWxlLm1pbWV0eXBlXG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGUuc2l6ZVxuXG4gICAgICBpZiAoZmlsZS5uYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgZXh0ID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWR1c3QgU1ZHIG1pbWUgdHlwZS4gZnJvbUJ1ZmZlciBtb2RpZmllcyBpdC5cbiAgICBpZiAobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXh0ID09PSAnc3ZnJykgbWltZSA9ICdpbWFnZS9zdmcreG1sJ1xuICAgIGZpbGVEYXRhLm1pbWVUeXBlID0gbWltZVxuXG4gICAgY29uc3QgYmFzZUZpbGVuYW1lID0gc2FuaXRpemUoZmlsZS5uYW1lLnN1YnN0cmluZygwLCBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKSkgfHwgZmlsZS5uYW1lKVxuICAgIGZzU2FmZU5hbWUgPSBgJHtiYXNlRmlsZW5hbWV9JHtleHQgPyBgLiR7ZXh0fWAgOiAnJ31gXG5cbiAgICBpZiAoIW92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMpIHtcbiAgICAgIGZzU2FmZU5hbWUgPSBhd2FpdCBnZXRTYWZlRmlsZU5hbWUoe1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZzogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkZXNpcmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZmlsZURhdGEuZmlsZW5hbWUgPSBmc1NhZmVOYW1lXG4gICAgbGV0IGZpbGVGb3JSZXNpemUgPSBmaWxlXG5cbiAgICBpZiAoaXNTaGFycFJlcXVpcmVkICYmIGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBpbmZvLnNpemVcbiAgICAgIHJlcS5maWxlcy5maWxlID0gZmlsZUZvclJlc2l6ZVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBmaWxlQnVmZmVyPy5kYXRhKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IHtcbiAgICAgICAgICAuLi5maWxlLFxuICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgIHNpemU6IGZpbGVCdWZmZXI/LmluZm8uc2l6ZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsInJlcSIsInRocm93T25NaXNzaW5nRmlsZSIsInVwbG9hZCIsImZpbGVzIiwiZmlsZSIsInVuZGVmaW5lZCIsInVwbG9hZEVkaXRzIiwicXVlcnkiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwicmVzcG9uc2UiLCJnZXRGaWxlQnlQYXRoIiwiTWlzc2luZ0ZpbGUiLCJ0IiwibWtkaXJwIiwic3luYyIsIm5ld0RhdGEiLCJmaWxlc1RvU2F2ZSIsImZpbGVEYXRhIiwiZmlsZUlzQW5pbWF0ZWQiLCJtaW1ldHlwZSIsImNyb3BEYXRhIiwiY3JvcCIsImZpbGVTdXBwb3J0c1Jlc2l6ZSIsImNhblJlc2l6ZUltYWdlIiwiZnNTYWZlTmFtZSIsInNoYXJwRmlsZSIsImRpbWVuc2lvbnMiLCJmaWxlQnVmZmVyIiwiZXh0IiwibWltZSIsImlzU2hhcnBSZXF1aXJlZCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwidGVtcEZpbGVQYXRoIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJpbmNsdWRlcyIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJGaWxlVXBsb2FkRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBc0NhQTs7O2VBQUFBOzs7MEJBbkNjOzJEQUNaOytEQUNJOzZEQUNGO3lFQUNJOzhEQUNIO3dCQU8yQjt1RUFDbEI7a0VBQ0w7c0VBQ0k7cUVBQ0Q7d0VBQ0c7cUVBQ2E7Z0VBQ3JCOzs7Ozs7QUFnQmIsTUFBTUEsbUJBQW1CLE9BQVUsRUFDeENDLFlBQVksRUFBRUMsUUFBUUMsZ0JBQWdCLEVBQUUsRUFDeENELE1BQU0sRUFDTkUsSUFBSSxFQUNKQyxzQkFBc0IsRUFDdEJDLEdBQUcsRUFDSEMsa0JBQWtCLEVBQ1Y7SUFDUixJQUFJLENBQUNKLGlCQUFpQkssTUFBTSxFQUFFO1FBQzVCLE9BQU87WUFDTEo7WUFDQUssT0FBTyxFQUFFO1FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiHD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiHD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmIxC"}
|
|
@@ -134,23 +134,26 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
134
134
|
return createResult(imageResizeConfig.name);
|
|
135
135
|
}
|
|
136
136
|
let resized = sharpBase.clone();
|
|
137
|
-
|
|
137
|
+
const hasEdits = req.query?.uploadEdits;
|
|
138
|
+
if (hasEdits && imageResizeConfig.width && imageResizeConfig.height) {
|
|
138
139
|
const { height, width } = imageResizeConfig;
|
|
139
|
-
const
|
|
140
|
-
x: 0.5,
|
|
141
|
-
y: 0.5
|
|
142
|
-
};
|
|
143
|
-
if (req.query?.uploadEdits?.focalPoint) {
|
|
144
|
-
if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x)) {
|
|
145
|
-
focalPoint.x = req.query.uploadEdits.focalPoint.x;
|
|
146
|
-
}
|
|
147
|
-
if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y)) {
|
|
148
|
-
focalPoint.y = req.query.uploadEdits.focalPoint.y;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
140
|
+
const targetAspectRatio = width / height;
|
|
151
141
|
const originalAspectRatio = dimensions.width / dimensions.height;
|
|
152
|
-
|
|
153
|
-
|
|
142
|
+
if (originalAspectRatio === targetAspectRatio) {
|
|
143
|
+
resized = resized.resize(imageResizeConfig);
|
|
144
|
+
} else {
|
|
145
|
+
const focalPoint = {
|
|
146
|
+
x: 0.5,
|
|
147
|
+
y: 0.5
|
|
148
|
+
};
|
|
149
|
+
if (req.query.uploadEdits?.focalPoint) {
|
|
150
|
+
if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x)) {
|
|
151
|
+
focalPoint.x = req.query.uploadEdits.focalPoint.x;
|
|
152
|
+
}
|
|
153
|
+
if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y)) {
|
|
154
|
+
focalPoint.y = req.query.uploadEdits.focalPoint.y;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
154
157
|
const prioritizeHeight = originalAspectRatio > targetAspectRatio;
|
|
155
158
|
const { info } = await resized.resize({
|
|
156
159
|
height: prioritizeHeight ? height : null,
|
|
@@ -215,4 +218,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
215
218
|
});
|
|
216
219
|
}
|
|
217
220
|
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFVwbG9hZEVkaXRzIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVTaXplLCBGaWxlU2l6ZXMsIEZpbGVUb1NhdmUsIEltYWdlU2l6ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tICcuL2ZpbGVFeGlzdHMnXG5cbnR5cGUgUmVzaXplQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZVxuICBmaWxlOiBVcGxvYWRlZEZpbGVcbiAgbWltZVR5cGU6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0ICYge1xuICAgIHF1ZXJ5Pzoge1xuICAgICAgdXBsb2FkRWRpdHM/OiBVcGxvYWRFZGl0c1xuICAgIH1cbiAgfVxuICBzYXZlZEZpbGVuYW1lOiBzdHJpbmdcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBuZWVkc1Jlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gYWxsb3cgZW5sYXJnZW1lbnQgb3IgcHJldmVudCByZWR1Y3Rpb24gKG91ciBkZWZhdWx0IGlzIHRvIHByZXZlbnRcbiAgLy8gZW5sYXJnZW1lbnQgYW5kIGFsbG93IHJlZHVjdGlvbilcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkIHx8IHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcblxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IG9yaWdpbmFsLndpZHRoIDwgZGVzaXJlZFdpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IG9yaWdpbmFsLmhlaWdodCA8IGRlc2lyZWRIZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuICAvLyBOb3RpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfVxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmICghbmVlZHNSZXNpemUoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoaW1hZ2VSZXNpemVDb25maWcubmFtZSlcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc2l6ZWQgPSBzaGFycEJhc2UuY2xvbmUoKVxuXG4gICAgICBpZiAocmVxLnF1ZXJ5ICYmIGltYWdlUmVzaXplQ29uZmlnLndpZHRoICYmIGltYWdlUmVzaXplQ29uZmlnLmhlaWdodCkge1xuICAgICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IGltYWdlUmVzaXplQ29uZmlnXG5cbiAgICAgICAgY29uc3QgZm9jYWxQb2ludCA9IHtcbiAgICAgICAgICB4OiAwLjUsXG4gICAgICAgICAgeTogMC41LFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQpIHtcbiAgICAgICAgICBpZiAoaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LngpKSB7XG4gICAgICAgICAgICBmb2NhbFBvaW50LnggPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc051bWJlcihyZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludD8ueSkpIHtcbiAgICAgICAgICAgIGZvY2FsUG9pbnQueSA9IHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50LnlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gZGltZW5zaW9ucy53aWR0aCAvIGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgICAgIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gaW1hZ2VSZXNpemVDb25maWcud2lkdGggLyBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHRcblxuICAgICAgICBpZiAob3JpZ2luYWxBc3BlY3RSYXRpbyAhPT0gdGFyZ2V0QXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICBjb25zdCBwcmlvcml0aXplSGVpZ2h0ID0gb3JpZ2luYWxBc3BlY3RSYXRpbyA+IHRhcmdldEFzcGVjdFJhdGlvXG5cbiAgICAgICAgICBjb25zdCB7IGluZm8gfSA9IGF3YWl0IHJlc2l6ZWRcbiAgICAgICAgICAgIC5yZXNpemUoe1xuICAgICAgICAgICAgICBoZWlnaHQ6IHByaW9yaXRpemVIZWlnaHQgPyBoZWlnaHQgOiBudWxsLFxuICAgICAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiB3aWR0aCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WCA9IE1hdGgubWF4KGluZm8ud2lkdGggLSB3aWR0aCwgMClcbiAgICAgICAgICBjb25zdCBtYXhPZmZzZXRZID0gTWF0aC5tYXgoaW5mby5oZWlnaHQgLSBoZWlnaHQsIDApXG5cbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50WCA9IE1hdGguZmxvb3IoKGluZm8ud2lkdGggLyAxMDApICogZm9jYWxQb2ludC54KVxuICAgICAgICAgIGNvbnN0IGZvY2FsUG9pbnRZID0gTWF0aC5mbG9vcigoaW5mby5oZWlnaHQgLyAxMDApICogZm9jYWxQb2ludC55KVxuXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRYIC0gd2lkdGggLyAyLCAwKSwgbWF4T2Zmc2V0WClcbiAgICAgICAgICBjb25zdCBvZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoZm9jYWxQb2ludFkgLSBoZWlnaHQgLyAyLCAwKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLmV4dHJhY3Qoe1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgbGVmdDogb2Zmc2V0WCxcbiAgICAgICAgICAgIHRvcDogb2Zmc2V0WSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIGlmIChyZXEucGF5bG9hZFVwbG9hZFNpemVzKSB7XG4gICAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJuZWVkc1Jlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsInNoYXJwQmFzZSIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsInJvdGF0ZSIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1hZ2VSZXNpemVDb25maWciLCJyZXNpemVkIiwiY2xvbmUiLCJxdWVyeSIsImZvY2FsUG9pbnQiLCJ4IiwieSIsInVwbG9hZEVkaXRzIiwiaXNOdW1iZXIiLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0IiwiaW5mbyIsInJlc2l6ZSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJtYXhPZmZzZXRYIiwiTWF0aCIsIm1heCIsIm1heE9mZnNldFkiLCJmb2NhbFBvaW50WCIsImZsb29yIiwiZm9jYWxQb2ludFkiLCJvZmZzZXRYIiwibWluIiwib2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1KQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Skg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBT087bUVBQ0Y7Ozs7OztBQTJCdkI7Ozs7O0NBS0MsR0FDRCxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDN0IsTUFBTUMsWUFBWUQsWUFBWUUsS0FBSyxDQUFDLEtBQUtDLEdBQUc7SUFDNUMsTUFBTUMsT0FBT0MsSUFBQUEseUJB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
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFVwbG9hZEVkaXRzIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVTaXplLCBGaWxlU2l6ZXMsIEZpbGVUb1NhdmUsIEltYWdlU2l6ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tICcuL2ZpbGVFeGlzdHMnXG5cbnR5cGUgUmVzaXplQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZVxuICBmaWxlOiBVcGxvYWRlZEZpbGVcbiAgbWltZVR5cGU6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0ICYge1xuICAgIHF1ZXJ5Pzoge1xuICAgICAgdXBsb2FkRWRpdHM/OiBVcGxvYWRFZGl0c1xuICAgIH1cbiAgfVxuICBzYXZlZEZpbGVuYW1lOiBzdHJpbmdcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBuZWVkc1Jlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gYWxsb3cgZW5sYXJnZW1lbnQgb3IgcHJldmVudCByZWR1Y3Rpb24gKG91ciBkZWZhdWx0IGlzIHRvIHByZXZlbnRcbiAgLy8gZW5sYXJnZW1lbnQgYW5kIGFsbG93IHJlZHVjdGlvbilcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkIHx8IHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcblxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IG9yaWdpbmFsLndpZHRoIDwgZGVzaXJlZFdpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IG9yaWdpbmFsLmhlaWdodCA8IGRlc2lyZWRIZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuICAvLyBOb3RpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfVxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmICghbmVlZHNSZXNpemUoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoaW1hZ2VSZXNpemVDb25maWcubmFtZSlcbiAgICAgIH1cbiAgICAgIGxldCByZXNpemVkID0gc2hhcnBCYXNlLmNsb25lKClcblxuICAgICAgY29uc3QgaGFzRWRpdHMgPSByZXEucXVlcnk/LnVwbG9hZEVkaXRzXG5cbiAgICAgIGlmIChoYXNFZGl0cyAmJiBpbWFnZVJlc2l6ZUNvbmZpZy53aWR0aCAmJiBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gd2lkdGggLyBoZWlnaHRcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuXG4gICAgICAgIGlmIChvcmlnaW5hbEFzcGVjdFJhdGlvID09PSB0YXJnZXRBc3BlY3RSYXRpbykge1xuICAgICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgICAgeDogMC41LFxuICAgICAgICAgICAgeTogMC41LFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZXEucXVlcnkudXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQpIHtcbiAgICAgICAgICAgIGlmIChpc051bWJlcihyZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludD8ueCkpIHtcbiAgICAgICAgICAgICAgZm9jYWxQb2ludC54ID0gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KSkge1xuICAgICAgICAgICAgICBmb2NhbFBvaW50LnkgPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IG9yaWdpbmFsQXNwZWN0UmF0aW8gPiB0YXJnZXRBc3BlY3RSYXRpb1xuXG4gICAgICAgICAgY29uc3QgeyBpbmZvIH0gPSBhd2FpdCByZXNpemVkXG4gICAgICAgICAgICAucmVzaXplKHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogd2lkdGgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBNYXRoLm1heChpbmZvLndpZHRoIC0gd2lkdGgsIDApXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IE1hdGgubWF4KGluZm8uaGVpZ2h0IC0gaGVpZ2h0LCAwKVxuXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFggPSBNYXRoLmZsb29yKChpbmZvLndpZHRoIC8gMTAwKSAqIGZvY2FsUG9pbnQueClcbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50WSA9IE1hdGguZmxvb3IoKGluZm8uaGVpZ2h0IC8gMTAwKSAqIGZvY2FsUG9pbnQueSlcblxuICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heChmb2NhbFBvaW50WCAtIHdpZHRoIC8gMiwgMCksIG1heE9mZnNldFgpXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRZIC0gaGVpZ2h0IC8gMiwgMCksIG1heE9mZnNldFkpXG5cbiAgICAgICAgICByZXNpemVkID0gcmVzaXplZC5leHRyYWN0KHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIGxlZnQ6IG9mZnNldFgsXG4gICAgICAgICAgICB0b3A6IG9mZnNldFksXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC5yZXNpemUoaW1hZ2VSZXNpemVDb25maWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChcbiAgICAgICAgaW1hZ2VSZXNpemVDb25maWcubmFtZSxcbiAgICAgICAgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBbeyBidWZmZXI6IGJ1ZmZlckRhdGEsIHBhdGg6IGltYWdlUGF0aCB9XSxcbiAgICAgIClcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZShcbiAgICAoYWNjLCByZXN1bHQpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH0sXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwibmVlZHNSZXNpemUiLCJkZXNpcmVkSGVpZ2h0IiwiZGVzaXJlZFdpZHRoIiwid2l0aG91dEVubGFyZ2VtZW50Iiwid2l0aG91dFJlZHVjdGlvbiIsIm9yaWdpbmFsIiwidW5kZWZpbmVkIiwiaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCIsImhhc0luc3VmZmljaWVudFdpZHRoIiwiaGFzSW5zdWZmaWNpZW50SGVpZ2h0IiwiY29uZmlnIiwiZGltZW5zaW9ucyIsImZpbGUiLCJyZXEiLCJzYXZlZEZpbGVuYW1lIiwic3RhdGljUGF0aCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJzaGFycEJhc2UiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJyb3RhdGUiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwicmVzaXplZCIsImNsb25lIiwiaGFzRWRpdHMiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwicmVzaXplIiwiZm9jYWxQb2ludCIsIngiLCJ5IiwiaXNOdW1iZXIiLCJwcmlvcml0aXplSGVpZ2h0IiwiaW5mbyIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJtYXhPZmZzZXRYIiwiTWF0aCIsIm1heCIsIm1heE9mZnNldFkiLCJmb2NhbFBvaW50WCIsImZsb29yIiwiZm9jYWxQb2ludFkiLCJvZmZzZXRYIiwibWluIiwib2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1KQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Skg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBT087bUVBQ0Y7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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PayloadRequest } from '../express/types';
|
|
2
|
+
/**
|
|
3
|
+
* complete a transaction calling adapter db.commitTransaction and delete the transactionID from req
|
|
4
|
+
*/
|
|
5
|
+
export declare function commitTransaction(req: PayloadRequest): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=commitTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/commitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E"}
|
|
@@ -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"}
|