@c8y/ngx-components 1017.0.92 → 1017.0.94
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/ecosystem/shared/ecosystem-error.d.ts +5 -0
- package/ecosystem/shared/ecosystem.constants.d.ts +2 -0
- package/ecosystem/shared/ecosystem.model.d.ts +3 -1
- package/ecosystem/shared/ecosystem.service.d.ts +11 -4
- package/esm2020/core/dynamic-forms/select/select.type.component.mjs +5 -3
- package/esm2020/ecosystem/shared/ecosystem-error.mjs +8 -0
- package/esm2020/ecosystem/shared/ecosystem.constants.mjs +4 -2
- package/esm2020/ecosystem/shared/ecosystem.model.mjs +3 -1
- package/esm2020/ecosystem/shared/ecosystem.service.mjs +59 -26
- package/esm2020/ecosystem/shared/upload-archive.component.mjs +5 -8
- package/esm2020/protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.mjs +4 -4
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs +76 -31
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs +3 -3
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m.mjs +3 -3
- package/fesm2015/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +5 -3
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs +72 -31
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs +3 -3
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m.mjs +3 -3
- package/fesm2020/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +4 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +6 -0
- package/package.json +2 -2
package/esm2020/protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.mjs
CHANGED
|
@@ -53,9 +53,9 @@ export class Lwm2mBootstrapParametersComponent {
|
|
|
53
53
|
key: 'securityMode',
|
|
54
54
|
id: 'bs-securityMode',
|
|
55
55
|
type: 'select',
|
|
56
|
+
defaultValue: securityMode || SecurityMode.NO_SEC,
|
|
56
57
|
templateOptions: {
|
|
57
58
|
label: gettext('Security mode'),
|
|
58
|
-
initValue: securityMode || SecurityMode.NO_SEC,
|
|
59
59
|
options: [
|
|
60
60
|
{ label: SecurityMode.NO_SEC, value: SecurityMode.NO_SEC },
|
|
61
61
|
{ label: SecurityMode.PSK, value: SecurityMode.PSK }
|
|
@@ -139,9 +139,9 @@ export class Lwm2mBootstrapParametersComponent {
|
|
|
139
139
|
key: 'bindingMode',
|
|
140
140
|
id: 'bs-bindingMode',
|
|
141
141
|
type: 'select',
|
|
142
|
+
defaultValue: bindingMode || BindingMode.U,
|
|
142
143
|
templateOptions: {
|
|
143
144
|
label: gettext('Binding mode'),
|
|
144
|
-
initValue: bindingMode || BindingMode.U,
|
|
145
145
|
options: [
|
|
146
146
|
{ label: gettext('UDP'), value: BindingMode.U },
|
|
147
147
|
{ label: gettext('UDP with queue mode'), value: BindingMode.UQ }
|
|
@@ -223,9 +223,9 @@ export class Lwm2mBootstrapParametersComponent {
|
|
|
223
223
|
key: 'generateBootstrapServerConfig',
|
|
224
224
|
id: 'bs-generateBootstrapServerConfig',
|
|
225
225
|
type: 'select',
|
|
226
|
+
defaultValue: generateBootstrapServerConfig || false,
|
|
226
227
|
templateOptions: {
|
|
227
228
|
label: gettext('Generate bootstrap server config'),
|
|
228
|
-
initValue: generateBootstrapServerConfig || false,
|
|
229
229
|
options: [
|
|
230
230
|
{ label: gettext('Yes'), value: true },
|
|
231
231
|
{ label: gettext('No'), value: false }
|
|
@@ -330,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
330
330
|
type: Component,
|
|
331
331
|
args: [{ selector: 'c8y-lwm2m-bootstrap-parameters', template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
332
332
|
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i1.Permissions }, { type: i2.FormlyFormBuilder }, { type: i3.Lwm2mBootstrapParametersService }, { type: i4.ActivatedRoute }]; } });
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vYm9vdHN0cmFwLXBhcmFtZXRlcnMvbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vYm9vdHN0cmFwLXBhcmFtZXRlcnMvbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQXFCLGlCQUFpQixFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQzNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUNiLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNNUMsTUFBTSxPQUFPLGlDQUFpQztJQXNCNUMsWUFDVSxZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUEwQixFQUMxQiwyQkFBNEQsRUFDNUQsS0FBcUI7UUFKckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFpQztRQUM1RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQXpCL0IsU0FBSSxHQUFjLElBQUksU0FBUyxDQUFDLEVB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QUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIsSUFBSTtZQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNsRSxJQUFnQyxDQUFDO1NBQ3JDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzs4SEFuV1UsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsc0VDaEI5QyxzMEJBNEJBOzJGRFphLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDRSxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXR0ZXh0LCBBbGVydFNlcnZpY2UsIFBlcm1pc3Npb25zLCBBbGVydCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm1CdWlsZGVyLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4vbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBCaW5kaW5nTW9kZSxcbiAgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzLFxuICBTZWN1cml0eU1vZGVcbn0gZnJvbSAnLi9sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBtb2RlbCA9IHt9O1xuICBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHtcbiAgICBmb3JtU3RhdGU6IHtcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgIG1haW5Nb2RlbDogdGhpcy5tb2RlbFxuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydDogQWxlcnQgPSB7XG4gICAgdGV4dDogZ2V0dGV4dCgnWW91IGRvIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb25zLiBUaGlzIGZvcm0gaXMgcmVhZC1vbmx5LicpLFxuICAgIHR5cGU6ICdpbmZvJ1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgRElTQUJMRURfSElOVF9URVhUOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdDaGFuZ2UgdGhlIHNlY3VyaXR5IG1vZGUgdG8gZW5hYmxlIHRoaXMgZmllbGQuJ1xuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhdHRlcm46IFJlZ0V4cCA9IC9eKFthLWZBLUYwLTldezJ9KSskLztcbiAgcHJpdmF0ZSBkZXZpY2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBidWlsZGVyOiBGb3JtbHlGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGx3bTJtQm9vdHN0cmFwUGFyYW1ldGVyc1N2YzogTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLmRldmljZUlkID0gdGhpcy5yb3V0ZT8uc25hcHNob3Q/LnBhcmVudD8ucGFyYW1zPy5pZDtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEx3bTJtQm9vdHN0cmFwUGFyYW1ldGVycyA9IGF3YWl0IHRoaXMuZ2V0Qm9vdHN0cmFwUGFyYW1ldGVycygpO1xuICAgIGNvbnN0IHtcbiAgICAgIGJpbmRpbmdNb2RlLFxuICAgICAgYm9vdHN0cmFwSWQsXG4gICAgICBib290c3RyYXBLZXksXG4gICAgICBib290c3RyYXBTaG9ydFNlcnZlcklkLFxuICAgICAgZGVmYXVsdE1heGltdW1QZXJpb2QsXG4gICAgICBkZWZhdWx0TWluaW11bVBlcmlvZCxcbiAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgZ2VuZXJhdGVCb290c3RyYXBTZXJ2ZXJDb25maWcsXG4gICAgICBsd20ybVNob3J0U2VydmVySWQsXG4gICAgICBzZXJ2ZXJVcmksXG4gICAgICByZWdpc3RyYXRpb25MaWZlVGltZSxcbiAgICAgIHNlcnZlclB1YmxpY0tleSxcbiAgICAgIHNlY3VyaXR5SW5zdGFuY2VPZmZzZXQsXG4gICAgICBwdWJsaWNLZXlPcklkLFxuICAgICAgc2VjcmV0S2V5XG4gICAgfTogTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcblxuICAgIGNvbnN0IGxlZnRGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2VuZHBvaW50JyxcbiAgICAgICAgaWQ6ICdicy1lbmRwb2ludCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGVuZHBvaW50LFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRW5kcG9pbnQnKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ3VybjppbWVpOjAxMjM0NTY3ODkwMTIzNCcsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgaWQ6ICdicy1zZWN1cml0eU1vZGUnLFxuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlY3VyaXR5IG1vZGUnKSxcbiAgICAgICAgICBpbml0VmFsdWU6IHNlY3VyaXR5TW9kZSB8fCBTZWN1cml0eU1vZGUuTk9fU0VDLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgbGFiZWw6IFNlY3VyaXR5TW9kZS5OT19TRUMsIHZhbHVlOiBTZWN1cml0eU1vZGUuTk9fU0VDIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiBTZWN1cml0eU1vZGUuUFNLLCB2YWx1ZTogU2VjdXJpdHlNb2RlLlBTSyB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdib290c3RyYXBJZCcsXG4gICAgICAgIGlkOiAnYnMtYm9vdHN0cmFwSWQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBQU0sgSUQnKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5ESVNBQkxFRF9ISU5UX1RFWFQsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICBvbkluaXQ6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoYm9vdHN0cmFwSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQU0tGaWVsZChmb3JtU3RhdGUsIGZpZWxkKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdib290c3RyYXBLZXknLFxuICAgICAgICBpZDogJ2JzLWJvb3RzdHJhcEtleScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQm9vdHN0cmFwIHByZS1zaGFyZWQga2V5JyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuRElTQUJMRURfSElOVF9URVhULFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMDEyMzQ1Njc4OWFiY2RlZicsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgcGF0dGVybjogdGhpcy5wYXR0ZXJuXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGJvb3RzdHJhcEtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSwgZm9ybVN0YXRlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVBTS0ZpZWxkKGZvcm1TdGF0ZSwgZmllbGQpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlY3VyaXR5SW5zdGFuY2VPZmZzZXQnLFxuICAgICAgICBpZDogJ2JzLXNlY3VyaXR5SW5zdGFuY2VPZmZzZXQnLFxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBzZWN1cml0eUluc3RhbmNlT2Zmc2V0LFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2VjdXJpdHkgaW5zdGFuY2Ugb2Zmc2V0JyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcwJyxcbiAgICAgICAgICBtaW46IDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwU2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgIGlkOiAnYnMtYm9vdHN0cmFwU2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGJvb3RzdHJhcFNob3J0U2VydmVySWQsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdMV00yTSBib290c3RyYXAgc2hvcnQgc2VydmVyIElEJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcwJyxcbiAgICAgICAgICBtaW46IDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAncmVnaXN0cmF0aW9uTGlmZVRpbWUnLFxuICAgICAgICBpZDogJ2JzLXJlZ2lzdHJhdGlvbkxpZmVUaW1lJyxcbiAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogcmVnaXN0cmF0aW9uTGlmZVRpbWUsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSZWdpc3RyYXRpb24gbGlmZXRpbWUnKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnNjAwJyxcbiAgICAgICAgICBtaW46IDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYmluZGluZ01vZGUnLFxuICAgICAgICBpZDogJ2JzLWJpbmRpbmdNb2RlJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCaW5kaW5nIG1vZGUnKSxcbiAgICAgICAgICBpbml0VmFsdWU6IGJpbmRpbmdNb2RlIHx8IEJpbmRpbmdNb2RlLlUsXG4gICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgeyBsYWJlbDogZ2V0dGV4dCgnVURQJyksIHZhbHVlOiBCaW5kaW5nTW9kZS5VIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiBnZXR0ZXh0KCdVRFAgd2l0aCBxdWV1ZSBtb2RlJyksIHZhbHVlOiBCaW5kaW5nTW9kZS5VUSB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IHJpZ2h0RmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6ICdzZXJ2ZXJQdWJsaWNLZXknLFxuICAgICAgICBpZDogJ2JzLXNlcnZlclB1YmxpY0tleScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHNlcnZlclB1YmxpY0tleSxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBwdWJsaWMga2V5JyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdBQUFBQjNOemFDMXljMkXigKYnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlcnZlclVyaScsXG4gICAgICAgIGlkOiAnYnMtc2VydmVyVXJpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogc2VydmVyVXJpLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTFdNMk0gc2VydmVyIFVSSScpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnY29hcHM6Ly88TFdNMk0tc2VydmVyLWRvbWFpbj46PGNvYXBzLXBvcnQ+J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdwdWJsaWNLZXlPcklkJyxcbiAgICAgICAgaWQ6ICdicy1wdWJsaWNLZXlPcklkJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdMV00yTSBQU0sgSUQnKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5ESVNBQkxFRF9ISU5UX1RFWFQsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICBvbkluaXQ6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnBhdGNoVmFsdWUocHVibGljS2V5T3JJZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSwgZm9ybVN0YXRlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVBTS0ZpZWxkKGZvcm1TdGF0ZSwgZmllbGQpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlY3JldEtleScsXG4gICAgICAgIGlkOiAnYnMtc2VjcmV0S2V5JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdMV00yTSBwcmUtc2hhcmVkIGtleScpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLkRJU0FCTEVEX0hJTlRfVEVYVCxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJzAxMjM0NTY3ODlhYmNkZWYnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIHBhdHRlcm46IHRoaXMucGF0dGVyblxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgIG9uSW5pdDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShzZWNyZXRLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQU0tGaWVsZChmb3JtU3RhdGUsIGZpZWxkKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdsd20ybVNob3J0U2VydmVySWQnLFxuICAgICAgICBpZDogJ2JzLWx3bTJtU2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGx3bTJtU2hvcnRTZXJ2ZXJJZCxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0xXTTJNIHNob3J0IHNlcnZlciBJRCcpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2dlbmVyYXRlQm9vdHN0cmFwU2VydmVyQ29uZmlnJyxcbiAgICAgICAgaWQ6ICdicy1nZW5lcmF0ZUJvb3RzdHJhcFNlcnZlckNvbmZpZycsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnR2VuZXJhdGUgYm9vdHN0cmFwIHNlcnZlciBjb25maWcnKSxcbiAgICAgICAgICBpbml0VmFsdWU6IGdlbmVyYXRlQm9vdHN0cmFwU2VydmVyQ29uZmlnIHx8IGZhbHNlLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgbGFiZWw6IGdldHRleHQoJ1llcycpLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBsYWJlbDogZ2V0dGV4dCgnTm8nKSwgdmFsdWU6IGZhbHNlIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlZmF1bHRNaW5pbXVtUGVyaW9kJyxcbiAgICAgICAgaWQ6ICdicy1kZWZhdWx0TWluaW11bVBlcmlvZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRNaW5pbXVtUGVyaW9kLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtaW5pbXVtIHBlcmlvZCcpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcxMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlZmF1bHRNYXhpbXVtUGVyaW9kJyxcbiAgICAgICAgaWQ6ICdicy1kZWZhdWx0TWF4aW11bVBlcmlvZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRNYXhpbXVtUGVyaW9kLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtYXhpbXVtIHBlcmlvZCcpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICc2MCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5maWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdjYXJkLWJsb2NrIGQtZ3JpZCBncmlkX19jb2wtLTYtNicsXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1ncm91cCBwLTI0IHAtdC04IHAtYi04IG0tYi0wJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IGxlZnRGaWVsZHNcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWdyb3VwIHAtMjQgcC10LTggcC1iLTggbS1iLTAnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogcmlnaHRGaWVsZHNcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5idWlsZGVyLmJ1aWxkRm9ybSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLm1vZGVsLCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgY29uc3QgdXNlckhhc1dyaXRlUGVybWlzc2lvbiA9IHRoaXMucGVybWlzc2lvbnMuaGFzUm9sZSgnUk9MRV9JTlZFTlRPUllfQURNSU4nKTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5sZW5ndGggPT09IDAgfHwgIXVzZXJIYXNXcml0ZVBlcm1pc3Npb24pIHtcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG5cbiAgICAgIHRoaXMub3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdXNlckhhc1dyaXRlUGVybWlzc2lvbikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLndyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydC50ZXh0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gYWxlcnRTZXJ2aWNlIGNoZWNrcyBpZiBnaXZlbiBhbGVydCBleGlzdHMuXG4gICAgLy8gc2F2ZSB0byByZW1vdmUgaXQgd2l0aG91dCBhZGRpdGlvbmFsIGNoZWNrc1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnJlbW92ZSh0aGlzLndyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydCk7XG4gIH1cblxuICBkaXNhYmxlUFNLRmllbGQoXG4gICAgZm9ybVN0YXRlOiB7IGRpc2FibGVkOiBib29sZWFuOyBtYWluTW9kZWw6IEx3bTJtQm9vdHN0cmFwUGFyYW1ldGVycyB9LFxuICAgIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ1xuICApIHtcbiAgICBpZiAoZm9ybVN0YXRlLmRpc2FibGVkKSB7XG4gICAgICBkZWxldGUgZmllbGQudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFmb3JtU3RhdGUubWFpbk1vZGVsLnNlY3VyaXR5TW9kZSB8fFxuICAgICAgZm9ybVN0YXRlLm1haW5Nb2RlbC5zZWN1cml0eU1vZGUgPT09IFNlY3VyaXR5TW9kZS5OT19TRUNcbiAgICApIHtcbiAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9IHRoaXMuRElTQUJMRURfSElOVF9URVhUO1xuICAgICAgZmllbGQuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBkZWxldGUgZmllbGQudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU3ZjLnVwZGF0ZSh7IC4uLnRoaXMubW9kZWwsIC4uLnsgaWQ6IHRoaXMuZGV2aWNlSWQgfSB9KTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQm9vdHN0cmFwIHBhcmFtZXRlcnMgdXBkYXRlZCcpKTtcbiAgICAgIC8vIGRpc2FibGVzIHNhdmUgYnV0dG9uXG4gICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoeyAuLi5lcnJvciB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRCb290c3RyYXBQYXJhbWV0ZXJzKCk6IFByb21pc2U8THdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5sd20ybUJvb3RzdHJhcFBhcmFtZXRlcnNTdmMuZGV0YWlsKHRoaXMuZGV2aWNlSWQpKVxuICAgICAgICAuZGF0YSBhcyBMd20ybUJvb3RzdHJhcFBhcmFtZXRlcnM7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoeyAuLi5lcnJvciB9KTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQgY29udGVudC1mdWxscGFnZSBmaXQtaFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3IgZ3JpZF9fY29sLS1mdWxsc3BhblwiPlxuICAgICAgPGgxIGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7ICdMV00yTSBib290c3RyYXAgcGFyYW1ldGVycycgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGxcIj5cbiAgICAgIDxmb3JtbHktZm9ybVxuICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxuICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgID48L2Zvcm1seS1mb3JtPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtoaWRkZW5dPVwib3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWRcIlxuICAgICAgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3IgZ3JpZF9fY29sLS1mdWxsc3BhbiBzdGlja3ktYm90dG9tXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHRpdGxlPVwie3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vYm9vdHN0cmFwLXBhcmFtZXRlcnMvbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vYm9vdHN0cmFwLXBhcmFtZXRlcnMvbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQXFCLGlCQUFpQixFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQzNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUNiLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNNUMsTUFBTSxPQUFPLGlDQUFpQztJQXNCNUMsWUFDVSxZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUEwQixFQUMxQiwyQkFBNEQsRUFDNUQsS0FBcUI7UUFKckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFpQztRQUM1RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQXpCL0IsU0FBSSxHQUFjLElBQUksU0FBUyxDQUFDLEVB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QUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIsSUFBSTtZQUNGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNsRSxJQUFnQyxDQUFDO1NBQ3JDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzs4SEFuV1UsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsc0VDaEI5QyxzMEJBNEJBOzJGRFphLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDRSxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXR0ZXh0LCBBbGVydFNlcnZpY2UsIFBlcm1pc3Npb25zLCBBbGVydCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm1CdWlsZGVyLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4vbHdtMm0tYm9vdHN0cmFwLXBhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBCaW5kaW5nTW9kZSxcbiAgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzLFxuICBTZWN1cml0eU1vZGVcbn0gZnJvbSAnLi9sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sd20ybS1ib290c3RyYXAtcGFyYW1ldGVycy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBtb2RlbCA9IHt9O1xuICBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHtcbiAgICBmb3JtU3RhdGU6IHtcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgIG1haW5Nb2RlbDogdGhpcy5tb2RlbFxuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydDogQWxlcnQgPSB7XG4gICAgdGV4dDogZ2V0dGV4dCgnWW91IGRvIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb25zLiBUaGlzIGZvcm0gaXMgcmVhZC1vbmx5LicpLFxuICAgIHR5cGU6ICdpbmZvJ1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgRElTQUJMRURfSElOVF9URVhUOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdDaGFuZ2UgdGhlIHNlY3VyaXR5IG1vZGUgdG8gZW5hYmxlIHRoaXMgZmllbGQuJ1xuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhdHRlcm46IFJlZ0V4cCA9IC9eKFthLWZBLUYwLTldezJ9KSskLztcbiAgcHJpdmF0ZSBkZXZpY2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBidWlsZGVyOiBGb3JtbHlGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGx3bTJtQm9vdHN0cmFwUGFyYW1ldGVyc1N2YzogTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLmRldmljZUlkID0gdGhpcy5yb3V0ZT8uc25hcHNob3Q/LnBhcmVudD8ucGFyYW1zPy5pZDtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEx3bTJtQm9vdHN0cmFwUGFyYW1ldGVycyA9IGF3YWl0IHRoaXMuZ2V0Qm9vdHN0cmFwUGFyYW1ldGVycygpO1xuICAgIGNvbnN0IHtcbiAgICAgIGJpbmRpbmdNb2RlLFxuICAgICAgYm9vdHN0cmFwSWQsXG4gICAgICBib290c3RyYXBLZXksXG4gICAgICBib290c3RyYXBTaG9ydFNlcnZlcklkLFxuICAgICAgZGVmYXVsdE1heGltdW1QZXJpb2QsXG4gICAgICBkZWZhdWx0TWluaW11bVBlcmlvZCxcbiAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgZ2VuZXJhdGVCb290c3RyYXBTZXJ2ZXJDb25maWcsXG4gICAgICBsd20ybVNob3J0U2VydmVySWQsXG4gICAgICBzZXJ2ZXJVcmksXG4gICAgICByZWdpc3RyYXRpb25MaWZlVGltZSxcbiAgICAgIHNlcnZlclB1YmxpY0tleSxcbiAgICAgIHNlY3VyaXR5SW5zdGFuY2VPZmZzZXQsXG4gICAgICBwdWJsaWNLZXlPcklkLFxuICAgICAgc2VjcmV0S2V5XG4gICAgfTogTHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcblxuICAgIGNvbnN0IGxlZnRGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2VuZHBvaW50JyxcbiAgICAgICAgaWQ6ICdicy1lbmRwb2ludCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGVuZHBvaW50LFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRW5kcG9pbnQnKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ3VybjppbWVpOjAxMjM0NTY3ODkwMTIzNCcsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgaWQ6ICdicy1zZWN1cml0eU1vZGUnLFxuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBzZWN1cml0eU1vZGUgfHwgU2VjdXJpdHlNb2RlLk5PX1NFQyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlY3VyaXR5IG1vZGUnKSxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IGxhYmVsOiBTZWN1cml0eU1vZGUuTk9fU0VDLCB2YWx1ZTogU2VjdXJpdHlNb2RlLk5PX1NFQyB9LFxuICAgICAgICAgICAgeyBsYWJlbDogU2VjdXJpdHlNb2RlLlBTSywgdmFsdWU6IFNlY3VyaXR5TW9kZS5QU0sgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwSWQnLFxuICAgICAgICBpZDogJ2JzLWJvb3RzdHJhcElkJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCb290c3RyYXAgUFNLIElEJyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuRElTQUJMRURfSElOVF9URVhULFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGJvb3RzdHJhcElkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55LCBmb3JtU3RhdGU6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlUFNLRmllbGQoZm9ybVN0YXRlLCBmaWVsZClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwS2V5JyxcbiAgICAgICAgaWQ6ICdicy1ib290c3RyYXBLZXknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBwcmUtc2hhcmVkIGtleScpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLkRJU0FCTEVEX0hJTlRfVEVYVCxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJzAxMjM0NTY3ODlhYmNkZWYnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIHBhdHRlcm46IHRoaXMucGF0dGVyblxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgIG9uSW5pdDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShib290c3RyYXBLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQU0tGaWVsZChmb3JtU3RhdGUsIGZpZWxkKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzZWN1cml0eUluc3RhbmNlT2Zmc2V0JyxcbiAgICAgICAgaWQ6ICdicy1zZWN1cml0eUluc3RhbmNlT2Zmc2V0JyxcbiAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogc2VjdXJpdHlJbnN0YW5jZU9mZnNldCxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlY3VyaXR5IGluc3RhbmNlIG9mZnNldCcpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2Jvb3RzdHJhcFNob3J0U2VydmVySWQnLFxuICAgICAgICBpZDogJ2JzLWJvb3RzdHJhcFNob3J0U2VydmVySWQnLFxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBib290c3RyYXBTaG9ydFNlcnZlcklkLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTFdNMk0gYm9vdHN0cmFwIHNob3J0IHNlcnZlciBJRCcpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3JlZ2lzdHJhdGlvbkxpZmVUaW1lJyxcbiAgICAgICAgaWQ6ICdicy1yZWdpc3RyYXRpb25MaWZlVGltZScsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHJlZ2lzdHJhdGlvbkxpZmVUaW1lLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUmVnaXN0cmF0aW9uIGxpZmV0aW1lJyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ2luIHNlY29uZHMnKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJzYwMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2JpbmRpbmdNb2RlJyxcbiAgICAgICAgaWQ6ICdicy1iaW5kaW5nTW9kZScsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGJpbmRpbmdNb2RlIHx8IEJpbmRpbmdNb2RlLlUsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCaW5kaW5nIG1vZGUnKSxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IGxhYmVsOiBnZXR0ZXh0KCdVRFAnKSwgdmFsdWU6IEJpbmRpbmdNb2RlLlUgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6IGdldHRleHQoJ1VEUCB3aXRoIHF1ZXVlIG1vZGUnKSwgdmFsdWU6IEJpbmRpbmdNb2RlLlVRIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgY29uc3QgcmlnaHRGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlcnZlclB1YmxpY0tleScsXG4gICAgICAgIGlkOiAnYnMtc2VydmVyUHVibGljS2V5JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogc2VydmVyUHVibGljS2V5LFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2VydmVyIHB1YmxpYyBrZXknKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ0FBQUFCM056YUMxeWMyReKApidcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmVyVXJpJyxcbiAgICAgICAgaWQ6ICdicy1zZXJ2ZXJVcmknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBzZXJ2ZXJVcmksXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdMV00yTSBzZXJ2ZXIgVVJJJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdjb2FwczovLzxMV00yTS1zZXJ2ZXItZG9tYWluPjo8Y29hcHMtcG9ydD4nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3B1YmxpY0tleU9ySWQnLFxuICAgICAgICBpZDogJ2JzLXB1YmxpY0tleU9ySWQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0xXTTJNIFBTSyBJRCcpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLkRJU0FCTEVEX0hJTlRfVEVYVCxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgIG9uSW5pdDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShwdWJsaWNLZXlPcklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55LCBmb3JtU3RhdGU6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlUFNLRmllbGQoZm9ybVN0YXRlLCBmaWVsZClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VjcmV0S2V5JyxcbiAgICAgICAgaWQ6ICdicy1zZWNyZXRLZXknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0xXTTJNIHByZS1zaGFyZWQga2V5JyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuRElTQUJMRURfSElOVF9URVhULFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMDEyMzQ1Njc4OWFiY2RlZicsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgcGF0dGVybjogdGhpcy5wYXR0ZXJuXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHNlY3JldEtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSwgZm9ybVN0YXRlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVBTS0ZpZWxkKGZvcm1TdGF0ZSwgZmllbGQpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2x3bTJtU2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgIGlkOiAnYnMtbHdtMm1TaG9ydFNlcnZlcklkJyxcbiAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogbHdtMm1TaG9ydFNlcnZlcklkLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTFdNMk0gc2hvcnQgc2VydmVyIElEJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcwJyxcbiAgICAgICAgICBtaW46IDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2VuZXJhdGVCb290c3RyYXBTZXJ2ZXJDb25maWcnLFxuICAgICAgICBpZDogJ2JzLWdlbmVyYXRlQm9vdHN0cmFwU2VydmVyQ29uZmlnJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2VuZXJhdGVCb290c3RyYXBTZXJ2ZXJDb25maWcgfHwgZmFsc2UsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdHZW5lcmF0ZSBib290c3RyYXAgc2VydmVyIGNvbmZpZycpLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgbGFiZWw6IGdldHRleHQoJ1llcycpLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBsYWJlbDogZ2V0dGV4dCgnTm8nKSwgdmFsdWU6IGZhbHNlIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlZmF1bHRNaW5pbXVtUGVyaW9kJyxcbiAgICAgICAgaWQ6ICdicy1kZWZhdWx0TWluaW11bVBlcmlvZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRNaW5pbXVtUGVyaW9kLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtaW5pbXVtIHBlcmlvZCcpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcxMCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlZmF1bHRNYXhpbXVtUGVyaW9kJyxcbiAgICAgICAgaWQ6ICdicy1kZWZhdWx0TWF4aW11bVBlcmlvZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRNYXhpbXVtUGVyaW9kLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtYXhpbXVtIHBlcmlvZCcpLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICc2MCcsXG4gICAgICAgICAgbWluOiAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5maWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdjYXJkLWJsb2NrIGQtZ3JpZCBncmlkX19jb2wtLTYtNicsXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1ncm91cCBwLTI0IHAtdC04IHAtYi04IG0tYi0wJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IGxlZnRGaWVsZHNcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWdyb3VwIHAtMjQgcC10LTggcC1iLTggbS1iLTAnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogcmlnaHRGaWVsZHNcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5idWlsZGVyLmJ1aWxkRm9ybSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLm1vZGVsLCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgY29uc3QgdXNlckhhc1dyaXRlUGVybWlzc2lvbiA9IHRoaXMucGVybWlzc2lvbnMuaGFzUm9sZSgnUk9MRV9JTlZFTlRPUllfQURNSU4nKTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5sZW5ndGggPT09IDAgfHwgIXVzZXJIYXNXcml0ZVBlcm1pc3Npb24pIHtcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG5cbiAgICAgIHRoaXMub3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdXNlckhhc1dyaXRlUGVybWlzc2lvbikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLndyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydC50ZXh0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gYWxlcnRTZXJ2aWNlIGNoZWNrcyBpZiBnaXZlbiBhbGVydCBleGlzdHMuXG4gICAgLy8gc2F2ZSB0byByZW1vdmUgaXQgd2l0aG91dCBhZGRpdGlvbmFsIGNoZWNrc1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnJlbW92ZSh0aGlzLndyaXRlUGVybWlzc2lvbk1pc3NpbmdBbGVydCk7XG4gIH1cblxuICBkaXNhYmxlUFNLRmllbGQoXG4gICAgZm9ybVN0YXRlOiB7IGRpc2FibGVkOiBib29sZWFuOyBtYWluTW9kZWw6IEx3bTJtQm9vdHN0cmFwUGFyYW1ldGVycyB9LFxuICAgIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ1xuICApIHtcbiAgICBpZiAoZm9ybVN0YXRlLmRpc2FibGVkKSB7XG4gICAgICBkZWxldGUgZmllbGQudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFmb3JtU3RhdGUubWFpbk1vZGVsLnNlY3VyaXR5TW9kZSB8fFxuICAgICAgZm9ybVN0YXRlLm1haW5Nb2RlbC5zZWN1cml0eU1vZGUgPT09IFNlY3VyaXR5TW9kZS5OT19TRUNcbiAgICApIHtcbiAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9IHRoaXMuRElTQUJMRURfSElOVF9URVhUO1xuICAgICAgZmllbGQuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBkZWxldGUgZmllbGQudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubHdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzU3ZjLnVwZGF0ZSh7IC4uLnRoaXMubW9kZWwsIC4uLnsgaWQ6IHRoaXMuZGV2aWNlSWQgfSB9KTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQm9vdHN0cmFwIHBhcmFtZXRlcnMgdXBkYXRlZCcpKTtcbiAgICAgIC8vIGRpc2FibGVzIHNhdmUgYnV0dG9uXG4gICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoeyAuLi5lcnJvciB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRCb290c3RyYXBQYXJhbWV0ZXJzKCk6IFByb21pc2U8THdtMm1Cb290c3RyYXBQYXJhbWV0ZXJzPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5sd20ybUJvb3RzdHJhcFBhcmFtZXRlcnNTdmMuZGV0YWlsKHRoaXMuZGV2aWNlSWQpKVxuICAgICAgICAuZGF0YSBhcyBMd20ybUJvb3RzdHJhcFBhcmFtZXRlcnM7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoeyAuLi5lcnJvciB9KTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQgY29udGVudC1mdWxscGFnZSBmaXQtaFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3IgZ3JpZF9fY29sLS1mdWxsc3BhblwiPlxuICAgICAgPGgxIGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7ICdMV00yTSBib290c3RyYXAgcGFyYW1ldGVycycgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGxcIj5cbiAgICAgIDxmb3JtbHktZm9ybVxuICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxuICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgID48L2Zvcm1seS1mb3JtPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtoaWRkZW5dPVwib3B0aW9ucy5mb3JtU3RhdGUuZGlzYWJsZWRcIlxuICAgICAgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3IgZ3JpZF9fY29sLS1mdWxsc3BhbiBzdGlja3ktYm90dG9tXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHRpdGxlPVwie3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -38,6 +38,8 @@ var ERROR_TYPE;
|
|
|
38
38
|
ERROR_TYPE["INVALID_PACKAGE"] = "INVALID_PACKAGE";
|
|
39
39
|
ERROR_TYPE["INVALID_APPLICATION"] = "INVALID_APPLICATION";
|
|
40
40
|
ERROR_TYPE["MICROSERVICE_NAME_TOO_LONG"] = "MICROSERVICE_NAME_TOO_LONG";
|
|
41
|
+
ERROR_TYPE["APPLICATION_CREATION_FAILED"] = "APPLICATION_CREATION_FAILED";
|
|
42
|
+
ERROR_TYPE["KEY_OR_CONTEXT_PATH_MISMATCH"] = "KEY_OR_CONTEXT_PATH_MISMATCH";
|
|
41
43
|
})(ERROR_TYPE || (ERROR_TYPE = {}));
|
|
42
44
|
const PRODUCT_EXPERIENCE = {
|
|
43
45
|
APPLICATIONS: {
|
|
@@ -96,7 +98,9 @@ const ERROR_MESSAGES = {
|
|
|
96
98
|
[ERROR_TYPE.INVALID_PACKAGE]: gettext('You have not uploaded a valid package.'),
|
|
97
99
|
[ERROR_TYPE.INVALID_APPLICATION]: gettext('You have not uploaded a valid application.'),
|
|
98
100
|
[ERROR_TYPE.INTERNAL_ERROR]: gettext('An internal error occurred, try to upload again.'),
|
|
99
|
-
[ERROR_TYPE.MICROSERVICE_NAME_TOO_LONG]: gettext('Microservice name "{{ name }}" must not be longer than {{ maxChars }} characters.')
|
|
101
|
+
[ERROR_TYPE.MICROSERVICE_NAME_TOO_LONG]: gettext('Microservice name "{{ name }}" must not be longer than {{ maxChars }} characters.'),
|
|
102
|
+
[ERROR_TYPE.APPLICATION_CREATION_FAILED]: gettext('Application creation failed.'),
|
|
103
|
+
[ERROR_TYPE.KEY_OR_CONTEXT_PATH_MISMATCH]: gettext('The contextPath or key of the uploaded archive do not match with the existing app.')
|
|
100
104
|
};
|
|
101
105
|
const APP_STATE = {
|
|
102
106
|
SUBSCRIBED: {
|
|
@@ -160,6 +164,13 @@ const packageProperties = [
|
|
|
160
164
|
}
|
|
161
165
|
];
|
|
162
166
|
|
|
167
|
+
class EcosystemError extends Error {
|
|
168
|
+
constructor(type) {
|
|
169
|
+
super(ERROR_MESSAGES[type]);
|
|
170
|
+
this.type = type;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
163
174
|
const CUMULOCITY_JSON = 'cumulocity.json';
|
|
164
175
|
const MICROSERVICE_NAME_MAX_LENGTH = 23;
|
|
165
176
|
class EcosystemService {
|
|
@@ -420,10 +431,10 @@ class EcosystemService {
|
|
|
420
431
|
return yield this.applicationService.update(app);
|
|
421
432
|
}
|
|
422
433
|
catch (ex) {
|
|
423
|
-
this.
|
|
434
|
+
this.alertError(ex);
|
|
424
435
|
if (deleteOnFailure) {
|
|
425
436
|
yield this.applicationService.delete(app.id);
|
|
426
|
-
throw new
|
|
437
|
+
throw new EcosystemError(ERROR_TYPE.APPLICATION_CREATION_FAILED);
|
|
427
438
|
}
|
|
428
439
|
}
|
|
429
440
|
});
|
|
@@ -456,7 +467,7 @@ class EcosystemService {
|
|
|
456
467
|
this.alertService.success(gettext('Successfully subscribed to application.'));
|
|
457
468
|
}
|
|
458
469
|
catch (ex) {
|
|
459
|
-
this.
|
|
470
|
+
this.alertError(ex);
|
|
460
471
|
}
|
|
461
472
|
});
|
|
462
473
|
}
|
|
@@ -468,7 +479,7 @@ class EcosystemService {
|
|
|
468
479
|
this.alertService.success(gettext('Successfully unsubscribed from application.'));
|
|
469
480
|
}
|
|
470
481
|
catch (ex) {
|
|
471
|
-
this.
|
|
482
|
+
this.alertError(ex);
|
|
472
483
|
}
|
|
473
484
|
});
|
|
474
485
|
}
|
|
@@ -477,7 +488,7 @@ class EcosystemService {
|
|
|
477
488
|
try {
|
|
478
489
|
const currentType = yield this.getAppType(archive);
|
|
479
490
|
if (currentType !== appType) {
|
|
480
|
-
throw new
|
|
491
|
+
throw new EcosystemError(ERROR_TYPE.TYPE_VALIDATION);
|
|
481
492
|
}
|
|
482
493
|
else {
|
|
483
494
|
this.progress.next(this.progress.value + 10);
|
|
@@ -485,7 +496,7 @@ class EcosystemService {
|
|
|
485
496
|
}
|
|
486
497
|
}
|
|
487
498
|
catch (ex) {
|
|
488
|
-
throw new
|
|
499
|
+
throw new EcosystemError(ERROR_TYPE.TYPE_VALIDATION);
|
|
489
500
|
}
|
|
490
501
|
});
|
|
491
502
|
}
|
|
@@ -506,16 +517,32 @@ class EcosystemService {
|
|
|
506
517
|
return (yield this.setAppActiveVersion(app, (binaryMo.binaryId || binaryMo.id))).data;
|
|
507
518
|
});
|
|
508
519
|
}
|
|
509
|
-
|
|
520
|
+
validateArchiveToAppCompatibility(archive, app) {
|
|
510
521
|
return __awaiter(this, void 0, void 0, function* () {
|
|
511
|
-
const
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
522
|
+
const appType = yield this.getAppType(archive);
|
|
523
|
+
if (appType !== app.type) {
|
|
524
|
+
throw new EcosystemError(ERROR_TYPE.INVALID_APPLICATION);
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
this.progress.next(this.progress.value + 10);
|
|
528
|
+
}
|
|
529
|
+
const manifest = yield this.getCumulocityJson(archive);
|
|
530
|
+
// A user can upload an app without a Cumulocity JSON file (e.g. a react app).
|
|
531
|
+
// This is allowed and should not trigger a validation error.
|
|
532
|
+
if (!manifest) {
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
yield this.validatePackageKeyAndContextPath(manifest, app);
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
getCumulocityJson(archive) {
|
|
539
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
540
|
+
try {
|
|
541
|
+
const c8yManifest = yield this.getCumulocityJson$(archive).toPromise();
|
|
542
|
+
return c8yManifest;
|
|
543
|
+
}
|
|
544
|
+
catch (ex) {
|
|
545
|
+
return null;
|
|
519
546
|
}
|
|
520
547
|
});
|
|
521
548
|
}
|
|
@@ -527,7 +554,7 @@ class EcosystemService {
|
|
|
527
554
|
const supportedAppTypes = [ApplicationType.HOSTED, ApplicationType.MICROSERVICE];
|
|
528
555
|
if (supportedAppTypes.includes(appType)) {
|
|
529
556
|
try {
|
|
530
|
-
appModel = yield this.getCumulocityJson(archive).toPromise();
|
|
557
|
+
appModel = yield this.getCumulocityJson$(archive).toPromise();
|
|
531
558
|
isPackage = appModel.isPackage;
|
|
532
559
|
}
|
|
533
560
|
catch (e) {
|
|
@@ -546,10 +573,10 @@ class EcosystemService {
|
|
|
546
573
|
contextPath
|
|
547
574
|
};
|
|
548
575
|
if (isPackageTypeArchive && !isPackage) {
|
|
549
|
-
throw new
|
|
576
|
+
throw new EcosystemError(ERROR_TYPE.INVALID_PACKAGE);
|
|
550
577
|
}
|
|
551
578
|
else if (!isPackageTypeArchive && isPackage) {
|
|
552
|
-
throw new
|
|
579
|
+
throw new EcosystemError(ERROR_TYPE.INVALID_APPLICATION);
|
|
553
580
|
}
|
|
554
581
|
else if (this.isNameLengthExceeded(name, appType)) {
|
|
555
582
|
const error = new Error();
|
|
@@ -570,7 +597,7 @@ class EcosystemService {
|
|
|
570
597
|
this.alertService.success(gettext('Application reactivated.'));
|
|
571
598
|
}
|
|
572
599
|
catch (ex) {
|
|
573
|
-
this.
|
|
600
|
+
this.alertError(ex);
|
|
574
601
|
}
|
|
575
602
|
});
|
|
576
603
|
}
|
|
@@ -583,7 +610,7 @@ class EcosystemService {
|
|
|
583
610
|
this.alertService.success(gettext('Archive deleted.'));
|
|
584
611
|
}
|
|
585
612
|
catch (ex) {
|
|
586
|
-
this.
|
|
613
|
+
this.alertError(ex);
|
|
587
614
|
}
|
|
588
615
|
});
|
|
589
616
|
}
|
|
@@ -660,6 +687,27 @@ class EcosystemService {
|
|
|
660
687
|
app.availability = ApplicationAvailability.PRIVATE;
|
|
661
688
|
return app;
|
|
662
689
|
}
|
|
690
|
+
/**
|
|
691
|
+
* Shows an error dialog.
|
|
692
|
+
* @param error Either a server error or an internal [[EcosystemError]].
|
|
693
|
+
*/
|
|
694
|
+
alertError(error) {
|
|
695
|
+
if (error instanceof EcosystemError) {
|
|
696
|
+
this.alertService.danger(error.message);
|
|
697
|
+
}
|
|
698
|
+
else {
|
|
699
|
+
this.alertService.addServerFailure(error);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
validatePackageKeyAndContextPath(manifest, app) {
|
|
703
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
704
|
+
const contextPath = get(manifest, 'contextPath');
|
|
705
|
+
const appKey = get(manifest, 'key');
|
|
706
|
+
if (contextPath !== app.contextPath || appKey !== app.key) {
|
|
707
|
+
throw new EcosystemError(ERROR_TYPE.KEY_OR_CONTEXT_PATH_MISMATCH);
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
}
|
|
663
711
|
getAppKey(appModel, name) {
|
|
664
712
|
let key = appModel === null || appModel === void 0 ? void 0 : appModel.key;
|
|
665
713
|
if (!key) {
|
|
@@ -677,13 +725,13 @@ class EcosystemService {
|
|
|
677
725
|
const currentApp = this.appStateService.state.app;
|
|
678
726
|
return currentApp.contextPath === app.contextPath;
|
|
679
727
|
}
|
|
680
|
-
getCumulocityJson(archive) {
|
|
728
|
+
getCumulocityJson$(archive) {
|
|
681
729
|
return this.zipService.getJsonData(archive, {
|
|
682
730
|
filename: CUMULOCITY_JSON
|
|
683
731
|
});
|
|
684
732
|
}
|
|
685
733
|
getAppType(archive) {
|
|
686
|
-
return this.getCumulocityJson(archive)
|
|
734
|
+
return this.getCumulocityJson$(archive)
|
|
687
735
|
.toPromise()
|
|
688
736
|
.then(data => get(data, 'type') ||
|
|
689
737
|
(get(data, 'apiVersion') ? ApplicationType.MICROSERVICE : ApplicationType.HOSTED))
|
|
@@ -713,7 +761,7 @@ class EcosystemService {
|
|
|
713
761
|
getUploadOverrides(archive, app) {
|
|
714
762
|
var _a;
|
|
715
763
|
return __awaiter(this, void 0, void 0, function* () {
|
|
716
|
-
const { version } = yield this.getCumulocityJson(archive).toPromise();
|
|
764
|
+
const { version } = yield this.getCumulocityJson$(archive).toPromise();
|
|
717
765
|
const isInitialPackage = ((_a = app.applicationVersions) === null || _a === void 0 ? void 0 : _a.length) === 0;
|
|
718
766
|
return {
|
|
719
767
|
listUrl: 'versions',
|
|
@@ -1046,7 +1094,7 @@ class UploadArchiveComponent {
|
|
|
1046
1094
|
onFile(file) {
|
|
1047
1095
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1048
1096
|
try {
|
|
1049
|
-
yield this.ecosystemService.
|
|
1097
|
+
yield this.ecosystemService.validateArchiveToAppCompatibility(file, this.application);
|
|
1050
1098
|
const isCustomMicroservice = this.ecosystemService.isCustomMicroservice(this.application);
|
|
1051
1099
|
this.archives = isCustomMicroservice
|
|
1052
1100
|
? []
|
|
@@ -1059,9 +1107,6 @@ class UploadArchiveComponent {
|
|
|
1059
1107
|
if (this.archives.length === 6 && !isCustomMicroservice) {
|
|
1060
1108
|
yield this.ecosystemService.removeOldestArchive(this.application, this.archives);
|
|
1061
1109
|
}
|
|
1062
|
-
if (this.uploadNewVersion) {
|
|
1063
|
-
yield this.ecosystemService.validatePackageKeyAndContextPath(file, this.application);
|
|
1064
|
-
}
|
|
1065
1110
|
const app = yield this.ecosystemService.uploadArchiveToApp(file, this.application, this.uploadNewVersion);
|
|
1066
1111
|
this.applicationChange.emit(app);
|
|
1067
1112
|
this.uploadProgress.next(100);
|
|
@@ -1074,16 +1119,16 @@ class UploadArchiveComponent {
|
|
|
1074
1119
|
}
|
|
1075
1120
|
catch (ex) {
|
|
1076
1121
|
this.uploadInProgress = false;
|
|
1077
|
-
this.
|
|
1122
|
+
this.ecosystemService.alertError(ex);
|
|
1078
1123
|
}
|
|
1079
1124
|
});
|
|
1080
1125
|
}
|
|
1081
1126
|
}
|
|
1082
1127
|
UploadArchiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UploadArchiveComponent, deps: [{ token: EcosystemService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1083
|
-
UploadArchiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: { application: "application", uploadNewVersion: "uploadNewVersion", preUploadCallback: "preUploadCallback" }, outputs: { applicationChange: "applicationChange", refresh: "refresh" }, ngImport: i0, template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [
|
|
1128
|
+
UploadArchiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: { application: "application", uploadNewVersion: "uploadNewVersion", preUploadCallback: "preUploadCallback" }, outputs: { applicationChange: "applicationChange", refresh: "refresh" }, ngImport: i0, template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"uploadInProgress\"\n [maxAllowedFiles]=\"1\"\n [message]=\"'Upload a *.zip file' | translate\"\n [progress]=\"uploadProgress | async\"\n [forceHideList]=\"true\"\n class=\"drop-area-sm\"\n>\n</c8y-drop-area>\n", dependencies: [{ kind: "component", type: i2.DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "accept"], outputs: ["dropped"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] });
|
|
1084
1129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UploadArchiveComponent, decorators: [{
|
|
1085
1130
|
type: Component,
|
|
1086
|
-
args: [{ selector: 'c8y-upload-archive', template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [
|
|
1131
|
+
args: [{ selector: 'c8y-upload-archive', template: "<c8y-drop-area\n (dropped)=\"onFileDroppedEvent($event)\"\n [accept]=\"'.zip'\"\n [loading]=\"uploadInProgress\"\n [maxAllowedFiles]=\"1\"\n [message]=\"'Upload a *.zip file' | translate\"\n [progress]=\"uploadProgress | async\"\n [forceHideList]=\"true\"\n class=\"drop-area-sm\"\n>\n</c8y-drop-area>\n" }]
|
|
1087
1132
|
}], ctorParameters: function () { return [{ type: EcosystemService }, { type: i2.AlertService }]; }, propDecorators: { application: [{
|
|
1088
1133
|
type: Input
|
|
1089
1134
|
}], uploadNewVersion: [{
|