@decaf-ts/integrations 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integrations.cjs +1608 -7
- package/dist/integrations.js +1841 -5
- package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +13 -5
- package/lib/cjs/graph/nodes/base.cjs +35 -0
- package/lib/cjs/graph/nodes/flow-control.cjs +31 -3
- package/lib/cjs/graph/nodes/index.cjs +3 -2
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/namespaces/index.cjs +26 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +12 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +95 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +66 -0
- package/lib/cjs/namespaces/models/group.model.cjs +74 -0
- package/lib/cjs/namespaces/models/index.cjs +39 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +76 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +66 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +73 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +64 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +102 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +64 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +77 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +99 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +88 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +98 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +55 -0
- package/lib/cjs/namespaces/models/role.model.cjs +84 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +85 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +67 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +64 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +88 -0
- package/lib/cjs/namespaces/models/user.model.cjs +75 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +286 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +968 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +1046 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +76 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +112 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +150 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +42 -0
- package/lib/cjs/namespaces/services/group.service.cjs +30 -0
- package/lib/cjs/namespaces/services/index.cjs +42 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +32 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +55 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +34 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +23 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +160 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +29 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +35 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +43 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +45 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +24 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +41 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +51 -0
- package/lib/cjs/namespaces/services/role.service.cjs +45 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +39 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +102 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +33 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +28 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +36 -0
- package/lib/cjs/namespaces/services/user.service.cjs +32 -0
- package/lib/cjs/namespaces/types.cjs +67 -0
- package/lib/cjs/namespaces/utils.cjs +161 -0
- package/lib/cjs/nest/authService.cjs +5 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +153 -0
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +84 -0
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +82 -0
- package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +66 -0
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +35 -0
- package/lib/cjs/nest/graph/index.cjs +28 -0
- package/lib/cjs/nest/index.cjs +3 -2
- package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +12 -4
- package/lib/esm/graph/nodes/base.js +30 -0
- package/lib/esm/graph/nodes/flow-control.js +31 -3
- package/lib/esm/graph/nodes/index.js +2 -1
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/namespaces/index.js +9 -0
- package/lib/esm/namespaces/models/authorization-model.js +7 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +86 -0
- package/lib/esm/namespaces/models/group-membership.model.js +57 -0
- package/lib/esm/namespaces/models/group.model.js +65 -0
- package/lib/esm/namespaces/models/index.js +22 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +67 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +57 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +64 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +55 -0
- package/lib/esm/namespaces/models/org-unit.model.js +93 -0
- package/lib/esm/namespaces/models/permission.model.js +55 -0
- package/lib/esm/namespaces/models/principal.model.js +68 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +90 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +79 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +89 -0
- package/lib/esm/namespaces/models/role-permission.model.js +46 -0
- package/lib/esm/namespaces/models/role.model.js +75 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +76 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +58 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +55 -0
- package/lib/esm/namespaces/models/tenant.model.js +79 -0
- package/lib/esm/namespaces/models/user.model.js +66 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +283 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +958 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1014 -0
- package/lib/esm/namespaces/services/authz.service.js +71 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +102 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +140 -0
- package/lib/esm/namespaces/services/group-membership.service.js +37 -0
- package/lib/esm/namespaces/services/group.service.js +25 -0
- package/lib/esm/namespaces/services/index.js +25 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +27 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +50 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +29 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +18 -0
- package/lib/esm/namespaces/services/org-unit.service.js +150 -0
- package/lib/esm/namespaces/services/permission.service.js +24 -0
- package/lib/esm/namespaces/services/principal.service.js +30 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +38 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +40 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +19 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +36 -0
- package/lib/esm/namespaces/services/role-permission.service.js +46 -0
- package/lib/esm/namespaces/services/role.service.js +40 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +34 -0
- package/lib/esm/namespaces/services/system-management.service.js +92 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +28 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +23 -0
- package/lib/esm/namespaces/services/tenant.service.js +31 -0
- package/lib/esm/namespaces/services/user.service.js +27 -0
- package/lib/esm/namespaces/types.js +71 -0
- package/lib/esm/namespaces/utils.js +143 -0
- package/lib/esm/nest/authService.js +4 -1
- package/lib/esm/nest/graph/GraphExecutionController.js +144 -0
- package/lib/esm/nest/graph/GraphExecutionModule.js +76 -0
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +73 -0
- package/lib/esm/nest/graph/GraphExecutionResultRepository.js +60 -0
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +31 -0
- package/lib/esm/nest/graph/index.js +11 -0
- package/lib/esm/nest/index.js +2 -1
- package/lib/types/graph/nodes/base.d.cts +28 -0
- package/lib/types/graph/nodes/base.d.mts +28 -0
- package/lib/types/graph/nodes/flow-control.d.cts +9 -1
- package/lib/types/graph/nodes/flow-control.d.mts +9 -1
- package/lib/types/graph/nodes/index.d.cts +1 -0
- package/lib/types/graph/nodes/index.d.mts +1 -0
- package/lib/types/graph/types.d.cts +15 -1
- package/lib/types/graph/types.d.mts +15 -1
- package/lib/types/index.d.cts +3 -2
- package/lib/types/index.d.mts +3 -2
- package/lib/types/namespaces/index.d.cts +8 -0
- package/lib/types/namespaces/index.d.mts +8 -0
- package/lib/types/namespaces/models/authorization-model.d.cts +4 -0
- package/lib/types/namespaces/models/authorization-model.d.mts +4 -0
- package/lib/types/namespaces/models/effective-permission.model.d.cts +18 -0
- package/lib/types/namespaces/models/effective-permission.model.d.mts +18 -0
- package/lib/types/namespaces/models/group-membership.model.d.cts +13 -0
- package/lib/types/namespaces/models/group-membership.model.d.mts +13 -0
- package/lib/types/namespaces/models/group.model.d.cts +15 -0
- package/lib/types/namespaces/models/group.model.d.mts +15 -0
- package/lib/types/namespaces/models/index.d.cts +21 -0
- package/lib/types/namespaces/models/index.d.mts +21 -0
- package/lib/types/namespaces/models/inheritance-block.model.d.cts +15 -0
- package/lib/types/namespaces/models/inheritance-block.model.d.mts +15 -0
- package/lib/types/namespaces/models/org-unit-closure.model.d.cts +12 -0
- package/lib/types/namespaces/models/org-unit-closure.model.d.mts +12 -0
- package/lib/types/namespaces/models/org-unit-membership.model.d.cts +15 -0
- package/lib/types/namespaces/models/org-unit-membership.model.d.mts +15 -0
- package/lib/types/namespaces/models/org-unit-profile.model.d.cts +11 -0
- package/lib/types/namespaces/models/org-unit-profile.model.d.mts +11 -0
- package/lib/types/namespaces/models/org-unit.model.d.cts +23 -0
- package/lib/types/namespaces/models/org-unit.model.d.mts +23 -0
- package/lib/types/namespaces/models/permission.model.d.cts +11 -0
- package/lib/types/namespaces/models/permission.model.d.mts +11 -0
- package/lib/types/namespaces/models/principal.model.d.cts +16 -0
- package/lib/types/namespaces/models/principal.model.d.mts +16 -0
- package/lib/types/namespaces/models/protected-resource.model.d.cts +21 -0
- package/lib/types/namespaces/models/protected-resource.model.d.mts +21 -0
- package/lib/types/namespaces/models/resource-grant.model.d.cts +18 -0
- package/lib/types/namespaces/models/resource-grant.model.d.mts +18 -0
- package/lib/types/namespaces/models/role-assignment.model.d.cts +20 -0
- package/lib/types/namespaces/models/role-assignment.model.d.mts +20 -0
- package/lib/types/namespaces/models/role-permission.model.d.cts +10 -0
- package/lib/types/namespaces/models/role-permission.model.d.mts +10 -0
- package/lib/types/namespaces/models/role.model.d.cts +17 -0
- package/lib/types/namespaces/models/role.model.d.mts +17 -0
- package/lib/types/namespaces/models/storage-binding.model.d.cts +15 -0
- package/lib/types/namespaces/models/storage-binding.model.d.mts +15 -0
- package/lib/types/namespaces/models/tenant-membership.model.d.cts +13 -0
- package/lib/types/namespaces/models/tenant-membership.model.d.mts +13 -0
- package/lib/types/namespaces/models/tenant-profile.model.d.cts +11 -0
- package/lib/types/namespaces/models/tenant-profile.model.d.mts +11 -0
- package/lib/types/namespaces/models/tenant.model.d.cts +19 -0
- package/lib/types/namespaces/models/tenant.model.d.mts +19 -0
- package/lib/types/namespaces/models/user.model.d.cts +14 -0
- package/lib/types/namespaces/models/user.model.d.mts +14 -0
- package/lib/types/namespaces/org-based-authorization-system.d.cts +299 -0
- package/lib/types/namespaces/org-based-authorization-system.d.mts +299 -0
- package/lib/types/namespaces/org-based-authorization-system.models.d.cts +212 -0
- package/lib/types/namespaces/org-based-authorization-system.models.d.mts +212 -0
- package/lib/types/namespaces/org-based-authorization-system.services.d.cts +217 -0
- package/lib/types/namespaces/org-based-authorization-system.services.d.mts +217 -0
- package/lib/types/namespaces/services/authz.service.d.cts +10 -0
- package/lib/types/namespaces/services/authz.service.d.mts +10 -0
- package/lib/types/namespaces/services/bootstrap.service.d.cts +21 -0
- package/lib/types/namespaces/services/bootstrap.service.d.mts +21 -0
- package/lib/types/namespaces/services/effective-permission.service.d.cts +13 -0
- package/lib/types/namespaces/services/effective-permission.service.d.mts +13 -0
- package/lib/types/namespaces/services/group-membership.service.d.cts +10 -0
- package/lib/types/namespaces/services/group-membership.service.d.mts +10 -0
- package/lib/types/namespaces/services/group.service.d.cts +9 -0
- package/lib/types/namespaces/services/group.service.d.mts +9 -0
- package/lib/types/namespaces/services/index.d.cts +24 -0
- package/lib/types/namespaces/services/index.d.mts +24 -0
- package/lib/types/namespaces/services/inheritance-block.service.d.cts +10 -0
- package/lib/types/namespaces/services/inheritance-block.service.d.mts +10 -0
- package/lib/types/namespaces/services/org-unit-closure.service.d.cts +11 -0
- package/lib/types/namespaces/services/org-unit-closure.service.d.mts +11 -0
- package/lib/types/namespaces/services/org-unit-membership.service.d.cts +11 -0
- package/lib/types/namespaces/services/org-unit-membership.service.d.mts +11 -0
- package/lib/types/namespaces/services/org-unit-profile.service.d.cts +7 -0
- package/lib/types/namespaces/services/org-unit-profile.service.d.mts +7 -0
- package/lib/types/namespaces/services/org-unit.service.d.cts +18 -0
- package/lib/types/namespaces/services/org-unit.service.d.mts +18 -0
- package/lib/types/namespaces/services/permission.service.d.cts +10 -0
- package/lib/types/namespaces/services/permission.service.d.mts +10 -0
- package/lib/types/namespaces/services/principal.service.d.cts +11 -0
- package/lib/types/namespaces/services/principal.service.d.mts +11 -0
- package/lib/types/namespaces/services/protected-resource.service.d.cts +13 -0
- package/lib/types/namespaces/services/protected-resource.service.d.mts +13 -0
- package/lib/types/namespaces/services/resource-grant.service.d.cts +12 -0
- package/lib/types/namespaces/services/resource-grant.service.d.mts +12 -0
- package/lib/types/namespaces/services/resource-lifecycle.service.d.cts +10 -0
- package/lib/types/namespaces/services/resource-lifecycle.service.d.mts +10 -0
- package/lib/types/namespaces/services/role-assignment.service.d.cts +12 -0
- package/lib/types/namespaces/services/role-assignment.service.d.mts +12 -0
- package/lib/types/namespaces/services/role-permission.service.d.cts +12 -0
- package/lib/types/namespaces/services/role-permission.service.d.mts +12 -0
- package/lib/types/namespaces/services/role.service.d.cts +12 -0
- package/lib/types/namespaces/services/role.service.d.mts +12 -0
- package/lib/types/namespaces/services/storage-binding.service.d.cts +12 -0
- package/lib/types/namespaces/services/storage-binding.service.d.mts +12 -0
- package/lib/types/namespaces/services/system-management.service.d.cts +14 -0
- package/lib/types/namespaces/services/system-management.service.d.mts +14 -0
- package/lib/types/namespaces/services/tenant-membership.service.d.cts +11 -0
- package/lib/types/namespaces/services/tenant-membership.service.d.mts +11 -0
- package/lib/types/namespaces/services/tenant-profile.service.d.cts +8 -0
- package/lib/types/namespaces/services/tenant-profile.service.d.mts +8 -0
- package/lib/types/namespaces/services/tenant.service.d.cts +12 -0
- package/lib/types/namespaces/services/tenant.service.d.mts +12 -0
- package/lib/types/namespaces/services/user.service.d.cts +11 -0
- package/lib/types/namespaces/services/user.service.d.mts +11 -0
- package/lib/types/namespaces/types.d.cts +230 -0
- package/lib/types/namespaces/types.d.mts +230 -0
- package/lib/types/namespaces/utils.d.cts +68 -0
- package/lib/types/namespaces/utils.d.mts +68 -0
- package/lib/types/nest/authService.d.cts +1 -0
- package/lib/types/nest/authService.d.mts +1 -0
- package/lib/types/nest/graph/GraphExecutionController.d.cts +62 -0
- package/lib/types/nest/graph/GraphExecutionController.d.mts +62 -0
- package/lib/types/nest/graph/GraphExecutionModule.d.cts +39 -0
- package/lib/types/nest/graph/GraphExecutionModule.d.mts +39 -0
- package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +46 -0
- package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +46 -0
- package/lib/types/nest/graph/GraphExecutionResultRepository.d.cts +38 -0
- package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +38 -0
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +17 -0
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +17 -0
- package/lib/types/nest/graph/index.d.cts +10 -0
- package/lib/types/nest/graph/index.d.mts +10 -0
- package/lib/types/nest/index.d.cts +1 -0
- package/lib/types/nest/index.d.mts +1 -0
- package/package.json +16 -5
- package/sql/001_constraints.sql +11 -0
- package/sql/002_rls.sql +20 -0
- package/sql/003_indexes.sql +2 -0
|
@@ -0,0 +1,958 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { column, createdAt, manyToOne, oneToMany, pk, table, unique, updatedAt, } from "@decaf-ts/core";
|
|
11
|
+
import { Model, model, option, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
|
+
import { IsolationTier, IsolationTierOptions, MembershipStatus, MembershipStatusOptions, PermissionCategory, PermissionCategoryOptions, PrincipalKind, PrincipalKindOptions, REL_CASCADE_DEPENDENT, REL_NULLIFY, REL_RESTRICT, ResourceVisibility, ResourceVisibilityOptions, ScopeKind, ScopeKindOptions, StorageBindingKind, StorageBindingKindOptions, StorageKind, StorageKindOptions, } from "./org-based-authorization-system.js";
|
|
13
|
+
export class AuthorizationModel extends Model {
|
|
14
|
+
constructor(data) {
|
|
15
|
+
super(data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
let Tenant = class Tenant extends AuthorizationModel {
|
|
19
|
+
};
|
|
20
|
+
__decorate([
|
|
21
|
+
pk({ type: String }),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], Tenant.prototype, "id", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
unique(),
|
|
26
|
+
required(),
|
|
27
|
+
typeOf(String),
|
|
28
|
+
column(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], Tenant.prototype, "slug", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
required(),
|
|
33
|
+
typeOf(String),
|
|
34
|
+
column(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], Tenant.prototype, "name", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
required(),
|
|
39
|
+
typeOf(String),
|
|
40
|
+
option(IsolationTierOptions),
|
|
41
|
+
column(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], Tenant.prototype, "isolationTier", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
oneToMany(() => OrgUnit, REL_RESTRICT, false),
|
|
46
|
+
__metadata("design:type", Array)
|
|
47
|
+
], Tenant.prototype, "orgUnits", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
oneToMany(() => TenantMembership, REL_RESTRICT, false),
|
|
50
|
+
__metadata("design:type", Array)
|
|
51
|
+
], Tenant.prototype, "memberships", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
oneToMany(() => Principal, REL_RESTRICT, false),
|
|
54
|
+
__metadata("design:type", Array)
|
|
55
|
+
], Tenant.prototype, "principals", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
oneToMany(() => StorageBinding, REL_RESTRICT, false),
|
|
58
|
+
__metadata("design:type", Array)
|
|
59
|
+
], Tenant.prototype, "storageBindings", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
createdAt(),
|
|
62
|
+
__metadata("design:type", Date)
|
|
63
|
+
], Tenant.prototype, "createdAt", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
updatedAt(),
|
|
66
|
+
__metadata("design:type", Date)
|
|
67
|
+
], Tenant.prototype, "updatedAt", void 0);
|
|
68
|
+
Tenant = __decorate([
|
|
69
|
+
table("tenants"),
|
|
70
|
+
model()
|
|
71
|
+
], Tenant);
|
|
72
|
+
export { Tenant };
|
|
73
|
+
let TenantProfile = class TenantProfile extends AuthorizationModel {
|
|
74
|
+
};
|
|
75
|
+
__decorate([
|
|
76
|
+
pk({ type: String }),
|
|
77
|
+
__metadata("design:type", String)
|
|
78
|
+
], TenantProfile.prototype, "id", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_tenant_profiles_tenant"),
|
|
81
|
+
required(),
|
|
82
|
+
__metadata("design:type", Object)
|
|
83
|
+
], TenantProfile.prototype, "tenant", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
required(),
|
|
86
|
+
typeOf(String),
|
|
87
|
+
column(),
|
|
88
|
+
__metadata("design:type", String)
|
|
89
|
+
], TenantProfile.prototype, "profileKey", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
typeOf(Object),
|
|
92
|
+
column(),
|
|
93
|
+
__metadata("design:type", Object)
|
|
94
|
+
], TenantProfile.prototype, "metadata", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
createdAt(),
|
|
97
|
+
__metadata("design:type", Date)
|
|
98
|
+
], TenantProfile.prototype, "createdAt", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
updatedAt(),
|
|
101
|
+
__metadata("design:type", Date)
|
|
102
|
+
], TenantProfile.prototype, "updatedAt", void 0);
|
|
103
|
+
TenantProfile = __decorate([
|
|
104
|
+
table("tenant_profiles"),
|
|
105
|
+
model()
|
|
106
|
+
], TenantProfile);
|
|
107
|
+
export { TenantProfile };
|
|
108
|
+
let OrgUnit = class OrgUnit extends AuthorizationModel {
|
|
109
|
+
};
|
|
110
|
+
__decorate([
|
|
111
|
+
pk({ type: String }),
|
|
112
|
+
__metadata("design:type", String)
|
|
113
|
+
], OrgUnit.prototype, "id", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
manyToOne(() => Tenant, REL_RESTRICT, false, undefined, "fk_org_units_tenant"),
|
|
116
|
+
required(),
|
|
117
|
+
__metadata("design:type", Object)
|
|
118
|
+
], OrgUnit.prototype, "tenant", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
manyToOne(() => OrgUnit, REL_RESTRICT, false, undefined, "fk_org_units_parent"),
|
|
121
|
+
__metadata("design:type", Object)
|
|
122
|
+
], OrgUnit.prototype, "parent", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
oneToMany(() => OrgUnit, REL_RESTRICT, false),
|
|
125
|
+
__metadata("design:type", Array)
|
|
126
|
+
], OrgUnit.prototype, "children", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
required(),
|
|
129
|
+
typeOf(String),
|
|
130
|
+
column(),
|
|
131
|
+
__metadata("design:type", String)
|
|
132
|
+
], OrgUnit.prototype, "name", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
required(),
|
|
135
|
+
typeOf(String),
|
|
136
|
+
column(),
|
|
137
|
+
__metadata("design:type", String)
|
|
138
|
+
], OrgUnit.prototype, "path", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
typeOf(Object),
|
|
141
|
+
column(),
|
|
142
|
+
__metadata("design:type", Object)
|
|
143
|
+
], OrgUnit.prototype, "metadata", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
oneToMany(() => OrgUnitMembership, REL_RESTRICT, false),
|
|
146
|
+
__metadata("design:type", Array)
|
|
147
|
+
], OrgUnit.prototype, "memberships", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
oneToMany(() => ProtectedResource, REL_RESTRICT, false),
|
|
150
|
+
__metadata("design:type", Array)
|
|
151
|
+
], OrgUnit.prototype, "resources", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
oneToMany(() => InheritanceBlock, REL_RESTRICT, false),
|
|
154
|
+
__metadata("design:type", Array)
|
|
155
|
+
], OrgUnit.prototype, "inheritanceBlocks", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
oneToMany(() => OrgUnitClosure, REL_RESTRICT, false),
|
|
158
|
+
__metadata("design:type", Array)
|
|
159
|
+
], OrgUnit.prototype, "ancestorLinks", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
oneToMany(() => OrgUnitClosure, REL_RESTRICT, false),
|
|
162
|
+
__metadata("design:type", Array)
|
|
163
|
+
], OrgUnit.prototype, "descendantLinks", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
createdAt(),
|
|
166
|
+
__metadata("design:type", Date)
|
|
167
|
+
], OrgUnit.prototype, "createdAt", void 0);
|
|
168
|
+
__decorate([
|
|
169
|
+
updatedAt(),
|
|
170
|
+
__metadata("design:type", Date)
|
|
171
|
+
], OrgUnit.prototype, "updatedAt", void 0);
|
|
172
|
+
OrgUnit = __decorate([
|
|
173
|
+
table("org_units"),
|
|
174
|
+
model()
|
|
175
|
+
], OrgUnit);
|
|
176
|
+
export { OrgUnit };
|
|
177
|
+
let OrgUnitProfile = class OrgUnitProfile extends AuthorizationModel {
|
|
178
|
+
};
|
|
179
|
+
__decorate([
|
|
180
|
+
pk({ type: String }),
|
|
181
|
+
__metadata("design:type", String)
|
|
182
|
+
], OrgUnitProfile.prototype, "id", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
manyToOne(() => OrgUnit, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_unit_profiles_org_unit"),
|
|
185
|
+
required(),
|
|
186
|
+
__metadata("design:type", Object)
|
|
187
|
+
], OrgUnitProfile.prototype, "orgUnit", void 0);
|
|
188
|
+
__decorate([
|
|
189
|
+
required(),
|
|
190
|
+
typeOf(String),
|
|
191
|
+
column(),
|
|
192
|
+
__metadata("design:type", String)
|
|
193
|
+
], OrgUnitProfile.prototype, "profileKey", void 0);
|
|
194
|
+
__decorate([
|
|
195
|
+
typeOf(Object),
|
|
196
|
+
column(),
|
|
197
|
+
__metadata("design:type", Object)
|
|
198
|
+
], OrgUnitProfile.prototype, "metadata", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
createdAt(),
|
|
201
|
+
__metadata("design:type", Date)
|
|
202
|
+
], OrgUnitProfile.prototype, "createdAt", void 0);
|
|
203
|
+
__decorate([
|
|
204
|
+
updatedAt(),
|
|
205
|
+
__metadata("design:type", Date)
|
|
206
|
+
], OrgUnitProfile.prototype, "updatedAt", void 0);
|
|
207
|
+
OrgUnitProfile = __decorate([
|
|
208
|
+
table("org_unit_profiles"),
|
|
209
|
+
model()
|
|
210
|
+
], OrgUnitProfile);
|
|
211
|
+
export { OrgUnitProfile };
|
|
212
|
+
let OrgUnitClosure = class OrgUnitClosure extends AuthorizationModel {
|
|
213
|
+
};
|
|
214
|
+
__decorate([
|
|
215
|
+
pk({ type: String }),
|
|
216
|
+
__metadata("design:type", String)
|
|
217
|
+
], OrgUnitClosure.prototype, "id", void 0);
|
|
218
|
+
__decorate([
|
|
219
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_closure_tenant"),
|
|
220
|
+
required(),
|
|
221
|
+
__metadata("design:type", Object)
|
|
222
|
+
], OrgUnitClosure.prototype, "tenant", void 0);
|
|
223
|
+
__decorate([
|
|
224
|
+
manyToOne(() => OrgUnit, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_closure_ancestor"),
|
|
225
|
+
required(),
|
|
226
|
+
__metadata("design:type", Object)
|
|
227
|
+
], OrgUnitClosure.prototype, "ancestor", void 0);
|
|
228
|
+
__decorate([
|
|
229
|
+
manyToOne(() => OrgUnit, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_closure_descendant"),
|
|
230
|
+
required(),
|
|
231
|
+
__metadata("design:type", Object)
|
|
232
|
+
], OrgUnitClosure.prototype, "descendant", void 0);
|
|
233
|
+
__decorate([
|
|
234
|
+
required(),
|
|
235
|
+
typeOf(Number),
|
|
236
|
+
column(),
|
|
237
|
+
__metadata("design:type", Number)
|
|
238
|
+
], OrgUnitClosure.prototype, "depth", void 0);
|
|
239
|
+
__decorate([
|
|
240
|
+
createdAt(),
|
|
241
|
+
__metadata("design:type", Date)
|
|
242
|
+
], OrgUnitClosure.prototype, "createdAt", void 0);
|
|
243
|
+
OrgUnitClosure = __decorate([
|
|
244
|
+
table("org_unit_closure"),
|
|
245
|
+
model()
|
|
246
|
+
], OrgUnitClosure);
|
|
247
|
+
export { OrgUnitClosure };
|
|
248
|
+
let User = class User extends AuthorizationModel {
|
|
249
|
+
};
|
|
250
|
+
__decorate([
|
|
251
|
+
pk({ type: String }),
|
|
252
|
+
__metadata("design:type", String)
|
|
253
|
+
], User.prototype, "id", void 0);
|
|
254
|
+
__decorate([
|
|
255
|
+
unique(),
|
|
256
|
+
typeOf(String),
|
|
257
|
+
column(),
|
|
258
|
+
__metadata("design:type", String)
|
|
259
|
+
], User.prototype, "email", void 0);
|
|
260
|
+
__decorate([
|
|
261
|
+
unique(),
|
|
262
|
+
typeOf(String),
|
|
263
|
+
column(),
|
|
264
|
+
__metadata("design:type", String)
|
|
265
|
+
], User.prototype, "phone", void 0);
|
|
266
|
+
__decorate([
|
|
267
|
+
required(),
|
|
268
|
+
typeOf(String),
|
|
269
|
+
column(),
|
|
270
|
+
__metadata("design:type", String)
|
|
271
|
+
], User.prototype, "displayName", void 0);
|
|
272
|
+
__decorate([
|
|
273
|
+
oneToMany(() => TenantMembership, REL_RESTRICT, false),
|
|
274
|
+
__metadata("design:type", Array)
|
|
275
|
+
], User.prototype, "tenantMemberships", void 0);
|
|
276
|
+
__decorate([
|
|
277
|
+
oneToMany(() => OrgUnitMembership, REL_RESTRICT, false),
|
|
278
|
+
__metadata("design:type", Array)
|
|
279
|
+
], User.prototype, "orgUnitMemberships", void 0);
|
|
280
|
+
__decorate([
|
|
281
|
+
createdAt(),
|
|
282
|
+
__metadata("design:type", Date)
|
|
283
|
+
], User.prototype, "createdAt", void 0);
|
|
284
|
+
__decorate([
|
|
285
|
+
updatedAt(),
|
|
286
|
+
__metadata("design:type", Date)
|
|
287
|
+
], User.prototype, "updatedAt", void 0);
|
|
288
|
+
User = __decorate([
|
|
289
|
+
table("users"),
|
|
290
|
+
model()
|
|
291
|
+
], User);
|
|
292
|
+
export { User };
|
|
293
|
+
let Group = class Group extends AuthorizationModel {
|
|
294
|
+
};
|
|
295
|
+
__decorate([
|
|
296
|
+
pk({ type: String }),
|
|
297
|
+
__metadata("design:type", String)
|
|
298
|
+
], Group.prototype, "id", void 0);
|
|
299
|
+
__decorate([
|
|
300
|
+
manyToOne(() => Tenant, REL_RESTRICT, false, undefined, "fk_groups_tenant"),
|
|
301
|
+
required(),
|
|
302
|
+
__metadata("design:type", Object)
|
|
303
|
+
], Group.prototype, "tenant", void 0);
|
|
304
|
+
__decorate([
|
|
305
|
+
manyToOne(() => OrgUnit, REL_NULLIFY, false, undefined, "fk_groups_org_unit"),
|
|
306
|
+
__metadata("design:type", Object)
|
|
307
|
+
], Group.prototype, "orgUnit", void 0);
|
|
308
|
+
__decorate([
|
|
309
|
+
required(),
|
|
310
|
+
typeOf(String),
|
|
311
|
+
column(),
|
|
312
|
+
__metadata("design:type", String)
|
|
313
|
+
], Group.prototype, "name", void 0);
|
|
314
|
+
__decorate([
|
|
315
|
+
typeOf(Object),
|
|
316
|
+
column(),
|
|
317
|
+
__metadata("design:type", Object)
|
|
318
|
+
], Group.prototype, "metadata", void 0);
|
|
319
|
+
__decorate([
|
|
320
|
+
oneToMany(() => GroupMembership, REL_RESTRICT, false),
|
|
321
|
+
__metadata("design:type", Array)
|
|
322
|
+
], Group.prototype, "members", void 0);
|
|
323
|
+
__decorate([
|
|
324
|
+
createdAt(),
|
|
325
|
+
__metadata("design:type", Date)
|
|
326
|
+
], Group.prototype, "createdAt", void 0);
|
|
327
|
+
__decorate([
|
|
328
|
+
updatedAt(),
|
|
329
|
+
__metadata("design:type", Date)
|
|
330
|
+
], Group.prototype, "updatedAt", void 0);
|
|
331
|
+
Group = __decorate([
|
|
332
|
+
table("groups"),
|
|
333
|
+
model()
|
|
334
|
+
], Group);
|
|
335
|
+
export { Group };
|
|
336
|
+
let Principal = class Principal extends AuthorizationModel {
|
|
337
|
+
};
|
|
338
|
+
__decorate([
|
|
339
|
+
pk({ type: String }),
|
|
340
|
+
__metadata("design:type", String)
|
|
341
|
+
], Principal.prototype, "id", void 0);
|
|
342
|
+
__decorate([
|
|
343
|
+
manyToOne(() => Tenant, REL_RESTRICT, false, undefined, "fk_principals_tenant"),
|
|
344
|
+
required(),
|
|
345
|
+
__metadata("design:type", Object)
|
|
346
|
+
], Principal.prototype, "tenant", void 0);
|
|
347
|
+
__decorate([
|
|
348
|
+
required(),
|
|
349
|
+
typeOf(String),
|
|
350
|
+
option(PrincipalKindOptions),
|
|
351
|
+
column(),
|
|
352
|
+
__metadata("design:type", String)
|
|
353
|
+
], Principal.prototype, "kind", void 0);
|
|
354
|
+
__decorate([
|
|
355
|
+
required(),
|
|
356
|
+
typeOf(String),
|
|
357
|
+
column(),
|
|
358
|
+
__metadata("design:type", String)
|
|
359
|
+
], Principal.prototype, "subjectId", void 0);
|
|
360
|
+
__decorate([
|
|
361
|
+
oneToMany(() => RoleAssignment, REL_RESTRICT, false),
|
|
362
|
+
__metadata("design:type", Array)
|
|
363
|
+
], Principal.prototype, "roleAssignments", void 0);
|
|
364
|
+
__decorate([
|
|
365
|
+
oneToMany(() => ResourceGrant, REL_RESTRICT, false),
|
|
366
|
+
__metadata("design:type", Array)
|
|
367
|
+
], Principal.prototype, "resourceGrants", void 0);
|
|
368
|
+
__decorate([
|
|
369
|
+
createdAt(),
|
|
370
|
+
__metadata("design:type", Date)
|
|
371
|
+
], Principal.prototype, "createdAt", void 0);
|
|
372
|
+
__decorate([
|
|
373
|
+
updatedAt(),
|
|
374
|
+
__metadata("design:type", Date)
|
|
375
|
+
], Principal.prototype, "updatedAt", void 0);
|
|
376
|
+
Principal = __decorate([
|
|
377
|
+
table("principals"),
|
|
378
|
+
model()
|
|
379
|
+
], Principal);
|
|
380
|
+
export { Principal };
|
|
381
|
+
let TenantMembership = class TenantMembership extends AuthorizationModel {
|
|
382
|
+
};
|
|
383
|
+
__decorate([
|
|
384
|
+
pk({ type: String }),
|
|
385
|
+
__metadata("design:type", String)
|
|
386
|
+
], TenantMembership.prototype, "id", void 0);
|
|
387
|
+
__decorate([
|
|
388
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_tenant_memberships_tenant"),
|
|
389
|
+
required(),
|
|
390
|
+
__metadata("design:type", Object)
|
|
391
|
+
], TenantMembership.prototype, "tenant", void 0);
|
|
392
|
+
__decorate([
|
|
393
|
+
manyToOne(() => User, REL_CASCADE_DEPENDENT, false, undefined, "fk_tenant_memberships_user"),
|
|
394
|
+
required(),
|
|
395
|
+
__metadata("design:type", Object)
|
|
396
|
+
], TenantMembership.prototype, "user", void 0);
|
|
397
|
+
__decorate([
|
|
398
|
+
required(),
|
|
399
|
+
typeOf(String),
|
|
400
|
+
option(MembershipStatusOptions),
|
|
401
|
+
column(),
|
|
402
|
+
__metadata("design:type", String)
|
|
403
|
+
], TenantMembership.prototype, "status", void 0);
|
|
404
|
+
__decorate([
|
|
405
|
+
createdAt(),
|
|
406
|
+
__metadata("design:type", Date)
|
|
407
|
+
], TenantMembership.prototype, "createdAt", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
updatedAt(),
|
|
410
|
+
__metadata("design:type", Date)
|
|
411
|
+
], TenantMembership.prototype, "updatedAt", void 0);
|
|
412
|
+
TenantMembership = __decorate([
|
|
413
|
+
table("tenant_memberships"),
|
|
414
|
+
model()
|
|
415
|
+
], TenantMembership);
|
|
416
|
+
export { TenantMembership };
|
|
417
|
+
let OrgUnitMembership = class OrgUnitMembership extends AuthorizationModel {
|
|
418
|
+
};
|
|
419
|
+
__decorate([
|
|
420
|
+
pk({ type: String }),
|
|
421
|
+
__metadata("design:type", String)
|
|
422
|
+
], OrgUnitMembership.prototype, "id", void 0);
|
|
423
|
+
__decorate([
|
|
424
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_memberships_tenant"),
|
|
425
|
+
required(),
|
|
426
|
+
__metadata("design:type", Object)
|
|
427
|
+
], OrgUnitMembership.prototype, "tenant", void 0);
|
|
428
|
+
__decorate([
|
|
429
|
+
manyToOne(() => OrgUnit, REL_CASCADE_DEPENDENT, false, undefined, "fk_org_memberships_org_unit"),
|
|
430
|
+
required(),
|
|
431
|
+
__metadata("design:type", Object)
|
|
432
|
+
], OrgUnitMembership.prototype, "orgUnit", void 0);
|
|
433
|
+
__decorate([
|
|
434
|
+
manyToOne(() => User, REL_RESTRICT, false, undefined, "fk_org_memberships_user"),
|
|
435
|
+
required(),
|
|
436
|
+
__metadata("design:type", Object)
|
|
437
|
+
], OrgUnitMembership.prototype, "user", void 0);
|
|
438
|
+
__decorate([
|
|
439
|
+
required(),
|
|
440
|
+
typeOf(String),
|
|
441
|
+
option(MembershipStatusOptions),
|
|
442
|
+
column(),
|
|
443
|
+
__metadata("design:type", String)
|
|
444
|
+
], OrgUnitMembership.prototype, "status", void 0);
|
|
445
|
+
__decorate([
|
|
446
|
+
createdAt(),
|
|
447
|
+
__metadata("design:type", Date)
|
|
448
|
+
], OrgUnitMembership.prototype, "createdAt", void 0);
|
|
449
|
+
__decorate([
|
|
450
|
+
updatedAt(),
|
|
451
|
+
__metadata("design:type", Date)
|
|
452
|
+
], OrgUnitMembership.prototype, "updatedAt", void 0);
|
|
453
|
+
OrgUnitMembership = __decorate([
|
|
454
|
+
table("org_unit_memberships"),
|
|
455
|
+
model()
|
|
456
|
+
], OrgUnitMembership);
|
|
457
|
+
export { OrgUnitMembership };
|
|
458
|
+
let GroupMembership = class GroupMembership extends AuthorizationModel {
|
|
459
|
+
};
|
|
460
|
+
__decorate([
|
|
461
|
+
pk({ type: String }),
|
|
462
|
+
__metadata("design:type", String)
|
|
463
|
+
], GroupMembership.prototype, "id", void 0);
|
|
464
|
+
__decorate([
|
|
465
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_group_memberships_tenant"),
|
|
466
|
+
required(),
|
|
467
|
+
__metadata("design:type", Object)
|
|
468
|
+
], GroupMembership.prototype, "tenant", void 0);
|
|
469
|
+
__decorate([
|
|
470
|
+
manyToOne(() => Group, REL_CASCADE_DEPENDENT, false, undefined, "fk_group_memberships_group"),
|
|
471
|
+
required(),
|
|
472
|
+
__metadata("design:type", Object)
|
|
473
|
+
], GroupMembership.prototype, "group", void 0);
|
|
474
|
+
__decorate([
|
|
475
|
+
manyToOne(() => Principal, REL_CASCADE_DEPENDENT, false, undefined, "fk_group_memberships_principal"),
|
|
476
|
+
required(),
|
|
477
|
+
__metadata("design:type", Object)
|
|
478
|
+
], GroupMembership.prototype, "principal", void 0);
|
|
479
|
+
__decorate([
|
|
480
|
+
typeOf(Object),
|
|
481
|
+
column(),
|
|
482
|
+
__metadata("design:type", Object)
|
|
483
|
+
], GroupMembership.prototype, "metadata", void 0);
|
|
484
|
+
__decorate([
|
|
485
|
+
createdAt(),
|
|
486
|
+
__metadata("design:type", Date)
|
|
487
|
+
], GroupMembership.prototype, "createdAt", void 0);
|
|
488
|
+
GroupMembership = __decorate([
|
|
489
|
+
table("group_memberships"),
|
|
490
|
+
model()
|
|
491
|
+
], GroupMembership);
|
|
492
|
+
export { GroupMembership };
|
|
493
|
+
let Permission = class Permission extends AuthorizationModel {
|
|
494
|
+
};
|
|
495
|
+
__decorate([
|
|
496
|
+
pk({ type: String }),
|
|
497
|
+
__metadata("design:type", String)
|
|
498
|
+
], Permission.prototype, "id", void 0);
|
|
499
|
+
__decorate([
|
|
500
|
+
unique(),
|
|
501
|
+
required(),
|
|
502
|
+
typeOf(String),
|
|
503
|
+
column(),
|
|
504
|
+
__metadata("design:type", String)
|
|
505
|
+
], Permission.prototype, "key", void 0);
|
|
506
|
+
__decorate([
|
|
507
|
+
required(),
|
|
508
|
+
typeOf(String),
|
|
509
|
+
option(PermissionCategoryOptions),
|
|
510
|
+
column(),
|
|
511
|
+
__metadata("design:type", String)
|
|
512
|
+
], Permission.prototype, "category", void 0);
|
|
513
|
+
__decorate([
|
|
514
|
+
typeOf(String),
|
|
515
|
+
column(),
|
|
516
|
+
__metadata("design:type", String)
|
|
517
|
+
], Permission.prototype, "description", void 0);
|
|
518
|
+
__decorate([
|
|
519
|
+
oneToMany(() => RolePermission, REL_RESTRICT, false),
|
|
520
|
+
__metadata("design:type", Array)
|
|
521
|
+
], Permission.prototype, "rolePermissions", void 0);
|
|
522
|
+
Permission = __decorate([
|
|
523
|
+
table("permissions"),
|
|
524
|
+
model()
|
|
525
|
+
], Permission);
|
|
526
|
+
export { Permission };
|
|
527
|
+
let Role = class Role extends AuthorizationModel {
|
|
528
|
+
};
|
|
529
|
+
__decorate([
|
|
530
|
+
pk({ type: String }),
|
|
531
|
+
__metadata("design:type", String)
|
|
532
|
+
], Role.prototype, "id", void 0);
|
|
533
|
+
__decorate([
|
|
534
|
+
manyToOne(() => Tenant, REL_NULLIFY, false, undefined, "fk_roles_tenant"),
|
|
535
|
+
__metadata("design:type", Object)
|
|
536
|
+
], Role.prototype, "tenant", void 0);
|
|
537
|
+
__decorate([
|
|
538
|
+
required(),
|
|
539
|
+
typeOf(String),
|
|
540
|
+
column(),
|
|
541
|
+
__metadata("design:type", String)
|
|
542
|
+
], Role.prototype, "key", void 0);
|
|
543
|
+
__decorate([
|
|
544
|
+
required(),
|
|
545
|
+
typeOf(String),
|
|
546
|
+
column(),
|
|
547
|
+
__metadata("design:type", String)
|
|
548
|
+
], Role.prototype, "name", void 0);
|
|
549
|
+
__decorate([
|
|
550
|
+
typeOf(String),
|
|
551
|
+
column(),
|
|
552
|
+
__metadata("design:type", String)
|
|
553
|
+
], Role.prototype, "description", void 0);
|
|
554
|
+
__decorate([
|
|
555
|
+
typeOf(Object),
|
|
556
|
+
column(),
|
|
557
|
+
__metadata("design:type", Object)
|
|
558
|
+
], Role.prototype, "metadata", void 0);
|
|
559
|
+
__decorate([
|
|
560
|
+
oneToMany(() => RolePermission, REL_RESTRICT, false),
|
|
561
|
+
__metadata("design:type", Array)
|
|
562
|
+
], Role.prototype, "rolePermissions", void 0);
|
|
563
|
+
__decorate([
|
|
564
|
+
oneToMany(() => RoleAssignment, REL_RESTRICT, false),
|
|
565
|
+
__metadata("design:type", Array)
|
|
566
|
+
], Role.prototype, "assignments", void 0);
|
|
567
|
+
__decorate([
|
|
568
|
+
createdAt(),
|
|
569
|
+
__metadata("design:type", Date)
|
|
570
|
+
], Role.prototype, "createdAt", void 0);
|
|
571
|
+
__decorate([
|
|
572
|
+
updatedAt(),
|
|
573
|
+
__metadata("design:type", Date)
|
|
574
|
+
], Role.prototype, "updatedAt", void 0);
|
|
575
|
+
Role = __decorate([
|
|
576
|
+
table("roles"),
|
|
577
|
+
model()
|
|
578
|
+
], Role);
|
|
579
|
+
export { Role };
|
|
580
|
+
let RolePermission = class RolePermission extends AuthorizationModel {
|
|
581
|
+
};
|
|
582
|
+
__decorate([
|
|
583
|
+
pk({ type: String }),
|
|
584
|
+
__metadata("design:type", String)
|
|
585
|
+
], RolePermission.prototype, "id", void 0);
|
|
586
|
+
__decorate([
|
|
587
|
+
manyToOne(() => Role, REL_CASCADE_DEPENDENT, false, undefined, "fk_role_permissions_role"),
|
|
588
|
+
required(),
|
|
589
|
+
__metadata("design:type", Object)
|
|
590
|
+
], RolePermission.prototype, "role", void 0);
|
|
591
|
+
__decorate([
|
|
592
|
+
manyToOne(() => Permission, REL_CASCADE_DEPENDENT, false, undefined, "fk_role_permissions_permission"),
|
|
593
|
+
required(),
|
|
594
|
+
__metadata("design:type", Object)
|
|
595
|
+
], RolePermission.prototype, "permission", void 0);
|
|
596
|
+
__decorate([
|
|
597
|
+
createdAt(),
|
|
598
|
+
__metadata("design:type", Date)
|
|
599
|
+
], RolePermission.prototype, "createdAt", void 0);
|
|
600
|
+
RolePermission = __decorate([
|
|
601
|
+
table("role_permissions"),
|
|
602
|
+
model()
|
|
603
|
+
], RolePermission);
|
|
604
|
+
export { RolePermission };
|
|
605
|
+
let RoleAssignment = class RoleAssignment extends AuthorizationModel {
|
|
606
|
+
};
|
|
607
|
+
__decorate([
|
|
608
|
+
pk({ type: String }),
|
|
609
|
+
__metadata("design:type", String)
|
|
610
|
+
], RoleAssignment.prototype, "id", void 0);
|
|
611
|
+
__decorate([
|
|
612
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_role_assignments_tenant"),
|
|
613
|
+
required(),
|
|
614
|
+
__metadata("design:type", Object)
|
|
615
|
+
], RoleAssignment.prototype, "tenant", void 0);
|
|
616
|
+
__decorate([
|
|
617
|
+
manyToOne(() => Principal, REL_CASCADE_DEPENDENT, false, undefined, "fk_role_assignments_principal"),
|
|
618
|
+
required(),
|
|
619
|
+
__metadata("design:type", Object)
|
|
620
|
+
], RoleAssignment.prototype, "principal", void 0);
|
|
621
|
+
__decorate([
|
|
622
|
+
manyToOne(() => Role, REL_RESTRICT, false, undefined, "fk_role_assignments_role"),
|
|
623
|
+
required(),
|
|
624
|
+
__metadata("design:type", Object)
|
|
625
|
+
], RoleAssignment.prototype, "role", void 0);
|
|
626
|
+
__decorate([
|
|
627
|
+
required(),
|
|
628
|
+
typeOf(String),
|
|
629
|
+
option(ScopeKindOptions),
|
|
630
|
+
column(),
|
|
631
|
+
__metadata("design:type", String)
|
|
632
|
+
], RoleAssignment.prototype, "scopeKind", void 0);
|
|
633
|
+
__decorate([
|
|
634
|
+
required(),
|
|
635
|
+
typeOf(String),
|
|
636
|
+
column(),
|
|
637
|
+
__metadata("design:type", String)
|
|
638
|
+
], RoleAssignment.prototype, "scopeId", void 0);
|
|
639
|
+
__decorate([
|
|
640
|
+
required(),
|
|
641
|
+
typeOf(Boolean),
|
|
642
|
+
column(),
|
|
643
|
+
__metadata("design:type", Boolean)
|
|
644
|
+
], RoleAssignment.prototype, "inheritDown", void 0);
|
|
645
|
+
__decorate([
|
|
646
|
+
column(),
|
|
647
|
+
__metadata("design:type", Date)
|
|
648
|
+
], RoleAssignment.prototype, "startsAt", void 0);
|
|
649
|
+
__decorate([
|
|
650
|
+
column(),
|
|
651
|
+
__metadata("design:type", Date)
|
|
652
|
+
], RoleAssignment.prototype, "expiresAt", void 0);
|
|
653
|
+
__decorate([
|
|
654
|
+
typeOf(Object),
|
|
655
|
+
column(),
|
|
656
|
+
__metadata("design:type", Object)
|
|
657
|
+
], RoleAssignment.prototype, "conditions", void 0);
|
|
658
|
+
__decorate([
|
|
659
|
+
createdAt(),
|
|
660
|
+
__metadata("design:type", Date)
|
|
661
|
+
], RoleAssignment.prototype, "createdAt", void 0);
|
|
662
|
+
__decorate([
|
|
663
|
+
updatedAt(),
|
|
664
|
+
__metadata("design:type", Date)
|
|
665
|
+
], RoleAssignment.prototype, "updatedAt", void 0);
|
|
666
|
+
RoleAssignment = __decorate([
|
|
667
|
+
table("role_assignments"),
|
|
668
|
+
model()
|
|
669
|
+
], RoleAssignment);
|
|
670
|
+
export { RoleAssignment };
|
|
671
|
+
let InheritanceBlock = class InheritanceBlock extends AuthorizationModel {
|
|
672
|
+
};
|
|
673
|
+
__decorate([
|
|
674
|
+
pk({ type: String }),
|
|
675
|
+
__metadata("design:type", String)
|
|
676
|
+
], InheritanceBlock.prototype, "id", void 0);
|
|
677
|
+
__decorate([
|
|
678
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_inheritance_blocks_tenant"),
|
|
679
|
+
required(),
|
|
680
|
+
__metadata("design:type", Object)
|
|
681
|
+
], InheritanceBlock.prototype, "tenant", void 0);
|
|
682
|
+
__decorate([
|
|
683
|
+
manyToOne(() => OrgUnit, REL_CASCADE_DEPENDENT, false, undefined, "fk_inheritance_blocks_org_unit"),
|
|
684
|
+
required(),
|
|
685
|
+
__metadata("design:type", Object)
|
|
686
|
+
], InheritanceBlock.prototype, "orgUnit", void 0);
|
|
687
|
+
__decorate([
|
|
688
|
+
manyToOne(() => OrgUnit, REL_NULLIFY, false, undefined, "fk_inheritance_blocks_blocked_ancestor"),
|
|
689
|
+
__metadata("design:type", Object)
|
|
690
|
+
], InheritanceBlock.prototype, "blockedFromAncestor", void 0);
|
|
691
|
+
__decorate([
|
|
692
|
+
required(),
|
|
693
|
+
typeOf(String),
|
|
694
|
+
option(PermissionCategoryOptions),
|
|
695
|
+
column(),
|
|
696
|
+
__metadata("design:type", String)
|
|
697
|
+
], InheritanceBlock.prototype, "permissionCategory", void 0);
|
|
698
|
+
__decorate([
|
|
699
|
+
typeOf(String),
|
|
700
|
+
column(),
|
|
701
|
+
__metadata("design:type", String)
|
|
702
|
+
], InheritanceBlock.prototype, "reason", void 0);
|
|
703
|
+
__decorate([
|
|
704
|
+
createdAt(),
|
|
705
|
+
__metadata("design:type", Date)
|
|
706
|
+
], InheritanceBlock.prototype, "createdAt", void 0);
|
|
707
|
+
__decorate([
|
|
708
|
+
updatedAt(),
|
|
709
|
+
__metadata("design:type", Date)
|
|
710
|
+
], InheritanceBlock.prototype, "updatedAt", void 0);
|
|
711
|
+
InheritanceBlock = __decorate([
|
|
712
|
+
table("inheritance_blocks"),
|
|
713
|
+
model()
|
|
714
|
+
], InheritanceBlock);
|
|
715
|
+
export { InheritanceBlock };
|
|
716
|
+
let ProtectedResource = class ProtectedResource extends AuthorizationModel {
|
|
717
|
+
};
|
|
718
|
+
__decorate([
|
|
719
|
+
pk({ type: String }),
|
|
720
|
+
__metadata("design:type", String)
|
|
721
|
+
], ProtectedResource.prototype, "id", void 0);
|
|
722
|
+
__decorate([
|
|
723
|
+
manyToOne(() => Tenant, REL_RESTRICT, false, undefined, "fk_protected_resources_tenant"),
|
|
724
|
+
required(),
|
|
725
|
+
__metadata("design:type", Object)
|
|
726
|
+
], ProtectedResource.prototype, "tenant", void 0);
|
|
727
|
+
__decorate([
|
|
728
|
+
manyToOne(() => OrgUnit, REL_RESTRICT, false, undefined, "fk_protected_resources_org_unit"),
|
|
729
|
+
required(),
|
|
730
|
+
__metadata("design:type", Object)
|
|
731
|
+
], ProtectedResource.prototype, "orgUnit", void 0);
|
|
732
|
+
__decorate([
|
|
733
|
+
required(),
|
|
734
|
+
typeOf(String),
|
|
735
|
+
column(),
|
|
736
|
+
__metadata("design:type", String)
|
|
737
|
+
], ProtectedResource.prototype, "resourceType", void 0);
|
|
738
|
+
__decorate([
|
|
739
|
+
required(),
|
|
740
|
+
typeOf(String),
|
|
741
|
+
column(),
|
|
742
|
+
__metadata("design:type", String)
|
|
743
|
+
], ProtectedResource.prototype, "resourceId", void 0);
|
|
744
|
+
__decorate([
|
|
745
|
+
required(),
|
|
746
|
+
typeOf(String),
|
|
747
|
+
option(ResourceVisibilityOptions),
|
|
748
|
+
column(),
|
|
749
|
+
__metadata("design:type", String)
|
|
750
|
+
], ProtectedResource.prototype, "visibility", void 0);
|
|
751
|
+
__decorate([
|
|
752
|
+
manyToOne(() => Principal, REL_NULLIFY, false, undefined, "fk_protected_resources_owner"),
|
|
753
|
+
__metadata("design:type", Object)
|
|
754
|
+
], ProtectedResource.prototype, "owner", void 0);
|
|
755
|
+
__decorate([
|
|
756
|
+
typeOf(String),
|
|
757
|
+
column(),
|
|
758
|
+
__metadata("design:type", String)
|
|
759
|
+
], ProtectedResource.prototype, "sensitivity", void 0);
|
|
760
|
+
__decorate([
|
|
761
|
+
typeOf(Object),
|
|
762
|
+
column(),
|
|
763
|
+
__metadata("design:type", Object)
|
|
764
|
+
], ProtectedResource.prototype, "metadata", void 0);
|
|
765
|
+
__decorate([
|
|
766
|
+
oneToMany(() => ResourceGrant, REL_RESTRICT, false),
|
|
767
|
+
__metadata("design:type", Array)
|
|
768
|
+
], ProtectedResource.prototype, "grants", void 0);
|
|
769
|
+
__decorate([
|
|
770
|
+
createdAt(),
|
|
771
|
+
__metadata("design:type", Date)
|
|
772
|
+
], ProtectedResource.prototype, "createdAt", void 0);
|
|
773
|
+
__decorate([
|
|
774
|
+
updatedAt(),
|
|
775
|
+
__metadata("design:type", Date)
|
|
776
|
+
], ProtectedResource.prototype, "updatedAt", void 0);
|
|
777
|
+
ProtectedResource = __decorate([
|
|
778
|
+
table("protected_resources"),
|
|
779
|
+
model()
|
|
780
|
+
], ProtectedResource);
|
|
781
|
+
export { ProtectedResource };
|
|
782
|
+
let ResourceGrant = class ResourceGrant extends AuthorizationModel {
|
|
783
|
+
};
|
|
784
|
+
__decorate([
|
|
785
|
+
pk({ type: String }),
|
|
786
|
+
__metadata("design:type", String)
|
|
787
|
+
], ResourceGrant.prototype, "id", void 0);
|
|
788
|
+
__decorate([
|
|
789
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_resource_grants_tenant"),
|
|
790
|
+
required(),
|
|
791
|
+
__metadata("design:type", Object)
|
|
792
|
+
], ResourceGrant.prototype, "tenant", void 0);
|
|
793
|
+
__decorate([
|
|
794
|
+
manyToOne(() => ProtectedResource, REL_CASCADE_DEPENDENT, false, undefined, "fk_resource_grants_resource"),
|
|
795
|
+
required(),
|
|
796
|
+
__metadata("design:type", Object)
|
|
797
|
+
], ResourceGrant.prototype, "resource", void 0);
|
|
798
|
+
__decorate([
|
|
799
|
+
manyToOne(() => Principal, REL_CASCADE_DEPENDENT, false, undefined, "fk_resource_grants_principal"),
|
|
800
|
+
required(),
|
|
801
|
+
__metadata("design:type", Object)
|
|
802
|
+
], ResourceGrant.prototype, "principal", void 0);
|
|
803
|
+
__decorate([
|
|
804
|
+
required(),
|
|
805
|
+
typeOf(String),
|
|
806
|
+
column(),
|
|
807
|
+
__metadata("design:type", String)
|
|
808
|
+
], ResourceGrant.prototype, "permissionKey", void 0);
|
|
809
|
+
__decorate([
|
|
810
|
+
column(),
|
|
811
|
+
__metadata("design:type", Date)
|
|
812
|
+
], ResourceGrant.prototype, "startsAt", void 0);
|
|
813
|
+
__decorate([
|
|
814
|
+
column(),
|
|
815
|
+
__metadata("design:type", Date)
|
|
816
|
+
], ResourceGrant.prototype, "expiresAt", void 0);
|
|
817
|
+
__decorate([
|
|
818
|
+
typeOf(Object),
|
|
819
|
+
column(),
|
|
820
|
+
__metadata("design:type", Object)
|
|
821
|
+
], ResourceGrant.prototype, "conditions", void 0);
|
|
822
|
+
__decorate([
|
|
823
|
+
manyToOne(() => Principal, REL_RESTRICT, false, undefined, "fk_resource_grants_created_by"),
|
|
824
|
+
__metadata("design:type", Object)
|
|
825
|
+
], ResourceGrant.prototype, "createdBy", void 0);
|
|
826
|
+
__decorate([
|
|
827
|
+
createdAt(),
|
|
828
|
+
__metadata("design:type", Date)
|
|
829
|
+
], ResourceGrant.prototype, "createdAt", void 0);
|
|
830
|
+
__decorate([
|
|
831
|
+
updatedAt(),
|
|
832
|
+
__metadata("design:type", Date)
|
|
833
|
+
], ResourceGrant.prototype, "updatedAt", void 0);
|
|
834
|
+
ResourceGrant = __decorate([
|
|
835
|
+
table("resource_grants"),
|
|
836
|
+
model()
|
|
837
|
+
], ResourceGrant);
|
|
838
|
+
export { ResourceGrant };
|
|
839
|
+
let EffectivePermission = class EffectivePermission extends AuthorizationModel {
|
|
840
|
+
};
|
|
841
|
+
__decorate([
|
|
842
|
+
pk({ type: String }),
|
|
843
|
+
__metadata("design:type", String)
|
|
844
|
+
], EffectivePermission.prototype, "id", void 0);
|
|
845
|
+
__decorate([
|
|
846
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_effective_permissions_tenant"),
|
|
847
|
+
required(),
|
|
848
|
+
__metadata("design:type", Object)
|
|
849
|
+
], EffectivePermission.prototype, "tenant", void 0);
|
|
850
|
+
__decorate([
|
|
851
|
+
manyToOne(() => Principal, REL_CASCADE_DEPENDENT, false, undefined, "fk_effective_permissions_principal"),
|
|
852
|
+
required(),
|
|
853
|
+
__metadata("design:type", Object)
|
|
854
|
+
], EffectivePermission.prototype, "principal", void 0);
|
|
855
|
+
__decorate([
|
|
856
|
+
required(),
|
|
857
|
+
typeOf(String),
|
|
858
|
+
column(),
|
|
859
|
+
__metadata("design:type", String)
|
|
860
|
+
], EffectivePermission.prototype, "permissionKey", void 0);
|
|
861
|
+
__decorate([
|
|
862
|
+
required(),
|
|
863
|
+
typeOf(String),
|
|
864
|
+
option(ScopeKindOptions),
|
|
865
|
+
column(),
|
|
866
|
+
__metadata("design:type", String)
|
|
867
|
+
], EffectivePermission.prototype, "scopeKind", void 0);
|
|
868
|
+
__decorate([
|
|
869
|
+
required(),
|
|
870
|
+
typeOf(String),
|
|
871
|
+
column(),
|
|
872
|
+
__metadata("design:type", String)
|
|
873
|
+
], EffectivePermission.prototype, "scopeId", void 0);
|
|
874
|
+
__decorate([
|
|
875
|
+
required(),
|
|
876
|
+
typeOf(String),
|
|
877
|
+
column(),
|
|
878
|
+
__metadata("design:type", String)
|
|
879
|
+
], EffectivePermission.prototype, "sourceKind", void 0);
|
|
880
|
+
__decorate([
|
|
881
|
+
required(),
|
|
882
|
+
typeOf(String),
|
|
883
|
+
column(),
|
|
884
|
+
__metadata("design:type", String)
|
|
885
|
+
], EffectivePermission.prototype, "sourceId", void 0);
|
|
886
|
+
__decorate([
|
|
887
|
+
column(),
|
|
888
|
+
__metadata("design:type", Date)
|
|
889
|
+
], EffectivePermission.prototype, "startsAt", void 0);
|
|
890
|
+
__decorate([
|
|
891
|
+
column(),
|
|
892
|
+
__metadata("design:type", Date)
|
|
893
|
+
], EffectivePermission.prototype, "expiresAt", void 0);
|
|
894
|
+
__decorate([
|
|
895
|
+
createdAt(),
|
|
896
|
+
__metadata("design:type", Date)
|
|
897
|
+
], EffectivePermission.prototype, "createdAt", void 0);
|
|
898
|
+
EffectivePermission = __decorate([
|
|
899
|
+
table("effective_permissions"),
|
|
900
|
+
model()
|
|
901
|
+
], EffectivePermission);
|
|
902
|
+
export { EffectivePermission };
|
|
903
|
+
let StorageBinding = class StorageBinding extends AuthorizationModel {
|
|
904
|
+
};
|
|
905
|
+
__decorate([
|
|
906
|
+
pk({ type: String }),
|
|
907
|
+
__metadata("design:type", String)
|
|
908
|
+
], StorageBinding.prototype, "id", void 0);
|
|
909
|
+
__decorate([
|
|
910
|
+
manyToOne(() => Tenant, REL_CASCADE_DEPENDENT, false, undefined, "fk_storage_bindings_tenant"),
|
|
911
|
+
required(),
|
|
912
|
+
__metadata("design:type", Object)
|
|
913
|
+
], StorageBinding.prototype, "tenant", void 0);
|
|
914
|
+
__decorate([
|
|
915
|
+
required(),
|
|
916
|
+
typeOf(String),
|
|
917
|
+
option(StorageKindOptions),
|
|
918
|
+
column(),
|
|
919
|
+
__metadata("design:type", String)
|
|
920
|
+
], StorageBinding.prototype, "storageKind", void 0);
|
|
921
|
+
__decorate([
|
|
922
|
+
required(),
|
|
923
|
+
typeOf(String),
|
|
924
|
+
option(StorageBindingKindOptions),
|
|
925
|
+
column(),
|
|
926
|
+
__metadata("design:type", String)
|
|
927
|
+
], StorageBinding.prototype, "bindingKind", void 0);
|
|
928
|
+
__decorate([
|
|
929
|
+
required(),
|
|
930
|
+
typeOf(String),
|
|
931
|
+
column(),
|
|
932
|
+
__metadata("design:type", String)
|
|
933
|
+
], StorageBinding.prototype, "bindingKey", void 0);
|
|
934
|
+
__decorate([
|
|
935
|
+
required(),
|
|
936
|
+
typeOf(String),
|
|
937
|
+
column(),
|
|
938
|
+
__metadata("design:type", String)
|
|
939
|
+
], StorageBinding.prototype, "region", void 0);
|
|
940
|
+
__decorate([
|
|
941
|
+
typeOf(Object),
|
|
942
|
+
column(),
|
|
943
|
+
__metadata("design:type", Object)
|
|
944
|
+
], StorageBinding.prototype, "config", void 0);
|
|
945
|
+
__decorate([
|
|
946
|
+
createdAt(),
|
|
947
|
+
__metadata("design:type", Date)
|
|
948
|
+
], StorageBinding.prototype, "createdAt", void 0);
|
|
949
|
+
__decorate([
|
|
950
|
+
updatedAt(),
|
|
951
|
+
__metadata("design:type", Date)
|
|
952
|
+
], StorageBinding.prototype, "updatedAt", void 0);
|
|
953
|
+
StorageBinding = __decorate([
|
|
954
|
+
table("storage_bindings"),
|
|
955
|
+
model()
|
|
956
|
+
], StorageBinding);
|
|
957
|
+
export { StorageBinding };
|
|
958
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL29yZy1iYXNlZC1hdXRob3JpemF0aW9uLXN5c3RlbS5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxFQUFFLEVBQ0YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLFlBQVksRUFDWixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsa0JBQWtCLEdBQ25CLDRDQUF5QztBQUUxQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsS0FBSztJQUMzQyxZQUFZLElBQWM7UUFDeEIsS0FBSyxDQUFDLElBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQUlNLElBQU0sTUFBTSxHQUFaLE1BQU0sTUFBTyxTQUFRLGtCQUFrQjtDQVc3QyxDQUFBO0FBVnVCO0lBQXJCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7a0NBQWE7QUFDYztJQUEvQyxNQUFNLEVBQUU7SUFBRSxRQUFRLEVBQUU7SUFBRSxNQUFN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O0FBSU0sSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLGtCQUFrQjtDQVlyRCxDQUFBO0FBWHVCO0lBQXJCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7MENBQWE7QUFHbEM7SUFGQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsNEJBQTRCLENBQUM7SUFDOUYsUUFBUSxFQUFFOzs4Q0FDYztBQUN5QztJQUFqRSxRQUFRLEVBQUU7SUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQUUsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQUUsTUFBTSxFQUFFOzttREFBMkI7QUFDbkI7SUFBeEUsUUFBUSxFQUFFO0lBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUFFLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztJQUFFLE1BQU0sRUFBRTs7bURBQWtDO0FBQ3BFO0lBQXJDLFFBQVEsRUFBRTtJQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFBRSxNQUFNLEVBQUU7O2tEQUFxQjtBQUNwQjtJQUFyQyxRQUFRLEVBQUU7SUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQUUsTUFBTSxFQUFFOzs4Q0FBaUI7QUFDNUI7SUFBekIsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUFFLE1BQU0sRUFBRTs7OENBQWtDO0FBQzlDO0lBQVosU0FBUyxFQUFFOzhCQUFhLElBQUk7aURBQUM7QUFDakI7SUFBWixTQUFTLEVBQUU7OEJBQWEsSUFBSTtpREFBQztBQVhuQixjQUFjO0lBRjFCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixLQUFLLEVBQUU7R0FDSyxjQUFjLENBWTFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29sdW1uLFxuICBjcmVhdGVkQXQsXG4gIG1hbnlUb09uZSxcbiAgb25lVG9NYW55LFxuICBwayxcbiAgdGFibGUsXG4gIHVuaXF1ZSxcbiAgdXBkYXRlZEF0LFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsLCBtb2RlbCwgb3B0aW9uLCByZXF1aXJlZCwgdHlwZSBhcyB0eXBlT2YgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBJc29sYXRpb25UaWVyLFxuICBJc29sYXRpb25UaWVyT3B0aW9ucyxcbiAgTWVtYmVyc2hpcFN0YXR1cyxcbiAgTWVtYmVyc2hpcFN0YXR1c09wdGlvbnMsXG4gIFBlcm1pc3Npb25DYXRlZ29yeSxcbiAgUGVybWlzc2lvbkNhdGVnb3J5T3B0aW9ucyxcbiAgUHJpbmNpcGFsS2luZCxcbiAgUHJpbmNpcGFsS2luZE9wdGlvbnMsXG4gIFJFTF9DQVNDQURFX0RFUEVOREVOVCxcbiAgUkVMX05VTExJRlksXG4gIFJFTF9SRVNUUklDVCxcbiAgUmVzb3VyY2VWaXNpYmlsaXR5LFxuICBSZXNvdXJjZVZpc2liaWxpdHlPcHRpb25zLFxuICBTY29wZUtpbmQsXG4gIFNjb3BlS2luZE9wdGlvbnMsXG4gIFN0b3JhZ2VCaW5kaW5nS2luZCxcbiAgU3RvcmFnZUJpbmRpbmdLaW5kT3B0aW9ucyxcbiAgU3RvcmFnZUtpbmQsXG4gIFN0b3JhZ2VLaW5kT3B0aW9ucyxcbn0gZnJvbSBcIi4vb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uTW9kZWwgZXh0ZW5kcyBNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoZGF0YSBhcyBuZXZlcik7XG4gIH1cbn1cblxuQHRhYmxlKFwidGVuYW50c1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBUZW5hbnQgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEB1bmlxdWUoKSBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHNsdWchOiBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgbmFtZSE6IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBvcHRpb24oSXNvbGF0aW9uVGllck9wdGlvbnMpIEBjb2x1bW4oKSBpc29sYXRpb25UaWVyITogSXNvbGF0aW9uVGllcjtcbiAgQG9uZVRvTWFueSgoKSA9PiBPcmdVbml0LCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSBvcmdVbml0cz86IE9yZ1VuaXRbXSB8IHN0cmluZ1tdO1xuICBAb25lVG9NYW55KCgpID0+IFRlbmFudE1lbWJlcnNoaXAsIFJFTF9SRVNUUklDVCwgZmFsc2UpIG1lbWJlcnNoaXBzPzogVGVuYW50TWVtYmVyc2hpcFtdIHwgc3RyaW5nW107XG4gIEBvbmVUb01hbnkoKCkgPT4gUHJpbmNpcGFsLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSBwcmluY2lwYWxzPzogUHJpbmNpcGFsW10gfCBzdHJpbmdbXTtcbiAgQG9uZVRvTWFueSgoKSA9PiBTdG9yYWdlQmluZGluZywgUkVMX1JFU1RSSUNULCBmYWxzZSkgc3RvcmFnZUJpbmRpbmdzPzogU3RvcmFnZUJpbmRpbmdbXSB8IHN0cmluZ1tdO1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpIHVwZGF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcInRlbmFudF9wcm9maWxlc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBUZW5hbnRQcm9maWxlIGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pIGlkITogc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IFRlbmFudCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3RlbmFudF9wcm9maWxlc190ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHByb2ZpbGVLZXkhOiBzdHJpbmc7XG4gIEB0eXBlT2YoT2JqZWN0KSBAY29sdW1uKCkgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG4gIEB1cGRhdGVkQXQoKSB1cGRhdGVkQXQhOiBEYXRlO1xufVxuXG5AdGFibGUoXCJvcmdfdW5pdHNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgT3JnVW5pdCBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9SRVNUUklDVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19vcmdfdW5pdHNfdGVuYW50XCIpXG4gIEByZXF1aXJlZCgpXG4gIHRlbmFudCE6IFRlbmFudCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBPcmdVbml0LCBSRUxfUkVTVFJJQ1QsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfb3JnX3VuaXRzX3BhcmVudFwiKVxuICBwYXJlbnQ/OiBPcmdVbml0IHwgc3RyaW5nO1xuICBAb25lVG9NYW55KCgpID0+IE9yZ1VuaXQsIFJFTF9SRVNUUklDVCwgZmFsc2UpIGNoaWxkcmVuPzogT3JnVW5pdFtdIHwgc3RyaW5nW107XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgbmFtZSE6IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBwYXRoITogc3RyaW5nO1xuICBAdHlwZU9mKE9iamVjdCkgQGNvbHVtbigpIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIEBvbmVUb01hbnkoKCkgPT4gT3JnVW5pdE1lbWJlcnNoaXAsIFJFTF9SRVNUUklDVCwgZmFsc2UpIG1lbWJlcnNoaXBzPzogT3JnVW5pdE1lbWJlcnNoaXBbXSB8IHN0cmluZ1tdO1xuICBAb25lVG9NYW55KCgpID0+IFByb3RlY3RlZFJlc291cmNlLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSByZXNvdXJjZXM/OiBQcm90ZWN0ZWRSZXNvdXJjZVtdIHwgc3RyaW5nW107XG4gIEBvbmVUb01hbnkoKCkgPT4gSW5oZXJpdGFuY2VCbG9jaywgUkVMX1JFU1RSSUNULCBmYWxzZSkgaW5oZXJpdGFuY2VCbG9ja3M/OiBJbmhlcml0YW5jZUJsb2NrW10gfCBzdHJpbmdbXTtcbiAgQG9uZVRvTWFueSgoKSA9PiBPcmdVbml0Q2xvc3VyZSwgUkVMX1JFU1RSSUNULCBmYWxzZSkgYW5jZXN0b3JMaW5rcz86IE9yZ1VuaXRDbG9zdXJlW10gfCBzdHJpbmdbXTtcbiAgQG9uZVRvTWFueSgoKSA9PiBPcmdVbml0Q2xvc3VyZSwgUkVMX1JFU1RSSUNULCBmYWxzZSkgZGVzY2VuZGFudExpbmtzPzogT3JnVW5pdENsb3N1cmVbXSB8IHN0cmluZ1tdO1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpIHVwZGF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcIm9yZ191bml0X3Byb2ZpbGVzXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRQcm9maWxlIGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pIGlkITogc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IE9yZ1VuaXQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19vcmdfdW5pdF9wcm9maWxlc19vcmdfdW5pdFwiKVxuICBAcmVxdWlyZWQoKVxuICBvcmdVbml0ITogT3JnVW5pdCB8IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBwcm9maWxlS2V5ITogc3RyaW5nO1xuICBAdHlwZU9mKE9iamVjdCkgQGNvbHVtbigpIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwib3JnX3VuaXRfY2xvc3VyZVwiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBPcmdVbml0Q2xvc3VyZSBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19vcmdfY2xvc3VyZV90ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IE9yZ1VuaXQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19vcmdfY2xvc3VyZV9hbmNlc3RvclwiKVxuICBAcmVxdWlyZWQoKVxuICBhbmNlc3RvciE6IE9yZ1VuaXQgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gT3JnVW5pdCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX29yZ19jbG9zdXJlX2Rlc2NlbmRhbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgZGVzY2VuZGFudCE6IE9yZ1VuaXQgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoTnVtYmVyKSBAY29sdW1uKCkgZGVwdGghOiBudW1iZXI7XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xufVxuXG5AdGFibGUoXCJ1c2Vyc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBVc2VyIGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pIGlkITogc3RyaW5nO1xuICBAdW5pcXVlKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBlbWFpbD86IHN0cmluZztcbiAgQHVuaXF1ZSgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgcGhvbmU/OiBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG4gIEBvbmVUb01hbnkoKCkgPT4gVGVuYW50TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSkgdGVuYW50TWVtYmVyc2hpcHM/OiBUZW5hbnRNZW1iZXJzaGlwW10gfCBzdHJpbmdbXTtcbiAgQG9uZVRvTWFueSgoKSA9PiBPcmdVbml0TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSkgb3JnVW5pdE1lbWJlcnNoaXBzPzogT3JnVW5pdE1lbWJlcnNoaXBbXSB8IHN0cmluZ1tdO1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpIHVwZGF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcImdyb3Vwc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBHcm91cCBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9SRVNUUklDVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19ncm91cHNfdGVuYW50XCIpXG4gIEByZXF1aXJlZCgpXG4gIHRlbmFudCE6IFRlbmFudCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBPcmdVbml0LCBSRUxfTlVMTElGWSwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19ncm91cHNfb3JnX3VuaXRcIilcbiAgb3JnVW5pdD86IE9yZ1VuaXQgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgbmFtZSE6IHN0cmluZztcbiAgQHR5cGVPZihPYmplY3QpIEBjb2x1bW4oKSBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBAb25lVG9NYW55KCgpID0+IEdyb3VwTWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSkgbWVtYmVycz86IEdyb3VwTWVtYmVyc2hpcFtdIHwgc3RyaW5nW107XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwicHJpbmNpcGFsc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBQcmluY2lwYWwgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfUkVTVFJJQ1QsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfcHJpbmNpcGFsc190ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihQcmluY2lwYWxLaW5kT3B0aW9ucykgQGNvbHVtbigpIGtpbmQhOiBQcmluY2lwYWxLaW5kO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHN1YmplY3RJZCE6IHN0cmluZztcbiAgQG9uZVRvTWFueSgoKSA9PiBSb2xlQXNzaWdubWVudCwgUkVMX1JFU1RSSUNULCBmYWxzZSkgcm9sZUFzc2lnbm1lbnRzPzogUm9sZUFzc2lnbm1lbnRbXSB8IHN0cmluZ1tdO1xuICBAb25lVG9NYW55KCgpID0+IFJlc291cmNlR3JhbnQsIFJFTF9SRVNUUklDVCwgZmFsc2UpIHJlc291cmNlR3JhbnRzPzogUmVzb3VyY2VHcmFudFtdIHwgc3RyaW5nW107XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwidGVuYW50X21lbWJlcnNoaXBzXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIFRlbmFudE1lbWJlcnNoaXAgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfdGVuYW50X21lbWJlcnNoaXBzX3RlbmFudFwiKVxuICBAcmVxdWlyZWQoKVxuICB0ZW5hbnQhOiBUZW5hbnQgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVXNlciwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3RlbmFudF9tZW1iZXJzaGlwc191c2VyXCIpXG4gIEByZXF1aXJlZCgpXG4gIHVzZXIhOiBVc2VyIHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihNZW1iZXJzaGlwU3RhdHVzT3B0aW9ucykgQGNvbHVtbigpIHN0YXR1cyE6IE1lbWJlcnNoaXBTdGF0dXM7XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwib3JnX3VuaXRfbWVtYmVyc2hpcHNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgT3JnVW5pdE1lbWJlcnNoaXAgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfb3JnX21lbWJlcnNoaXBzX3RlbmFudFwiKVxuICBAcmVxdWlyZWQoKVxuICB0ZW5hbnQhOiBUZW5hbnQgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gT3JnVW5pdCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX29yZ19tZW1iZXJzaGlwc19vcmdfdW5pdFwiKVxuICBAcmVxdWlyZWQoKVxuICBvcmdVbml0ITogT3JnVW5pdCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBVc2VyLCBSRUxfUkVTVFJJQ1QsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfb3JnX21lbWJlcnNoaXBzX3VzZXJcIilcbiAgQHJlcXVpcmVkKClcbiAgdXNlciE6IFVzZXIgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAb3B0aW9uKE1lbWJlcnNoaXBTdGF0dXNPcHRpb25zKSBAY29sdW1uKCkgc3RhdHVzITogTWVtYmVyc2hpcFN0YXR1cztcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG4gIEB1cGRhdGVkQXQoKSB1cGRhdGVkQXQhOiBEYXRlO1xufVxuXG5AdGFibGUoXCJncm91cF9tZW1iZXJzaGlwc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBHcm91cE1lbWJlcnNoaXAgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfZ3JvdXBfbWVtYmVyc2hpcHNfdGVuYW50XCIpXG4gIEByZXF1aXJlZCgpXG4gIHRlbmFudCE6IFRlbmFudCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBHcm91cCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX2dyb3VwX21lbWJlcnNoaXBzX2dyb3VwXCIpXG4gIEByZXF1aXJlZCgpXG4gIGdyb3VwITogR3JvdXAgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gUHJpbmNpcGFsLCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfZ3JvdXBfbWVtYmVyc2hpcHNfcHJpbmNpcGFsXCIpXG4gIEByZXF1aXJlZCgpXG4gIHByaW5jaXBhbCE6IFByaW5jaXBhbCB8IHN0cmluZztcbiAgQHR5cGVPZihPYmplY3QpIEBjb2x1bW4oKSBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwicGVybWlzc2lvbnNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbiBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQHVuaXF1ZSgpIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkga2V5ITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihQZXJtaXNzaW9uQ2F0ZWdvcnlPcHRpb25zKSBAY29sdW1uKCkgY2F0ZWdvcnkhOiBQZXJtaXNzaW9uQ2F0ZWdvcnk7XG4gIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBvbmVUb01hbnkoKCkgPT4gUm9sZVBlcm1pc3Npb24sIFJFTF9SRVNUUklDVCwgZmFsc2UpIHJvbGVQZXJtaXNzaW9ucz86IFJvbGVQZXJtaXNzaW9uW10gfCBzdHJpbmdbXTtcbn1cblxuQHRhYmxlKFwicm9sZXNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUm9sZSBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9OVUxMSUZZLCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3JvbGVzX3RlbmFudFwiKVxuICB0ZW5hbnQ/OiBUZW5hbnQgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkga2V5ITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIG5hbWUhOiBzdHJpbmc7XG4gIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEB0eXBlT2YoT2JqZWN0KSBAY29sdW1uKCkgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQG9uZVRvTWFueSgoKSA9PiBSb2xlUGVybWlzc2lvbiwgUkVMX1JFU1RSSUNULCBmYWxzZSkgcm9sZVBlcm1pc3Npb25zPzogUm9sZVBlcm1pc3Npb25bXSB8IHN0cmluZ1tdO1xuICBAb25lVG9NYW55KCgpID0+IFJvbGVBc3NpZ25tZW50LCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSBhc3NpZ25tZW50cz86IFJvbGVBc3NpZ25tZW50W10gfCBzdHJpbmdbXTtcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG4gIEB1cGRhdGVkQXQoKSB1cGRhdGVkQXQhOiBEYXRlO1xufVxuXG5AdGFibGUoXCJyb2xlX3Blcm1pc3Npb25zXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIFJvbGVQZXJtaXNzaW9uIGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pIGlkITogc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IFJvbGUsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19yb2xlX3Blcm1pc3Npb25zX3JvbGVcIilcbiAgQHJlcXVpcmVkKClcbiAgcm9sZSE6IFJvbGUgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gUGVybWlzc2lvbiwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3JvbGVfcGVybWlzc2lvbnNfcGVybWlzc2lvblwiKVxuICBAcmVxdWlyZWQoKVxuICBwZXJtaXNzaW9uITogUGVybWlzc2lvbiB8IHN0cmluZztcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcInJvbGVfYXNzaWdubWVudHNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUm9sZUFzc2lnbm1lbnQgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfcm9sZV9hc3NpZ25tZW50c190ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IFByaW5jaXBhbCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3JvbGVfYXNzaWdubWVudHNfcHJpbmNpcGFsXCIpXG4gIEByZXF1aXJlZCgpXG4gIHByaW5jaXBhbCE6IFByaW5jaXBhbCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBSb2xlLCBSRUxfUkVTVFJJQ1QsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfcm9sZV9hc3NpZ25tZW50c19yb2xlXCIpXG4gIEByZXF1aXJlZCgpXG4gIHJvbGUhOiBSb2xlIHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihTY29wZUtpbmRPcHRpb25zKSBAY29sdW1uKCkgc2NvcGVLaW5kITogU2NvcGVLaW5kO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHNjb3BlSWQhOiBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoQm9vbGVhbikgQGNvbHVtbigpIGluaGVyaXREb3duITogYm9vbGVhbjtcbiAgQGNvbHVtbigpIHN0YXJ0c0F0PzogRGF0ZTtcbiAgQGNvbHVtbigpIGV4cGlyZXNBdD86IERhdGU7XG4gIEB0eXBlT2YoT2JqZWN0KSBAY29sdW1uKCkgY29uZGl0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpIHVwZGF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcImluaGVyaXRhbmNlX2Jsb2Nrc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJbmhlcml0YW5jZUJsb2NrIGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pIGlkITogc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IFRlbmFudCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX2luaGVyaXRhbmNlX2Jsb2Nrc190ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IE9yZ1VuaXQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19pbmhlcml0YW5jZV9ibG9ja3Nfb3JnX3VuaXRcIilcbiAgQHJlcXVpcmVkKClcbiAgb3JnVW5pdCE6IE9yZ1VuaXQgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gT3JnVW5pdCwgUkVMX05VTExJRlksIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfaW5oZXJpdGFuY2VfYmxvY2tzX2Jsb2NrZWRfYW5jZXN0b3JcIilcbiAgYmxvY2tlZEZyb21BbmNlc3Rvcj86IE9yZ1VuaXQgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAb3B0aW9uKFBlcm1pc3Npb25DYXRlZ29yeU9wdGlvbnMpIEBjb2x1bW4oKSBwZXJtaXNzaW9uQ2F0ZWdvcnkhOiBQZXJtaXNzaW9uQ2F0ZWdvcnk7XG4gIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgcmVhc29uPzogc3RyaW5nO1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpIHVwZGF0ZWRBdCE6IERhdGU7XG59XG5cbkB0YWJsZShcInByb3RlY3RlZF9yZXNvdXJjZXNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUHJvdGVjdGVkUmVzb3VyY2UgZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfUkVTVFJJQ1QsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfcHJvdGVjdGVkX3Jlc291cmNlc190ZW5hbnRcIilcbiAgQHJlcXVpcmVkKClcbiAgdGVuYW50ITogVGVuYW50IHwgc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IE9yZ1VuaXQsIFJFTF9SRVNUUklDVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19wcm90ZWN0ZWRfcmVzb3VyY2VzX29yZ191bml0XCIpXG4gIEByZXF1aXJlZCgpXG4gIG9yZ1VuaXQhOiBPcmdVbml0IHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHJlc291cmNlVHlwZSE6IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSByZXNvdXJjZUlkITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihSZXNvdXJjZVZpc2liaWxpdHlPcHRpb25zKSBAY29sdW1uKCkgdmlzaWJpbGl0eSE6IFJlc291cmNlVmlzaWJpbGl0eTtcbiAgQG1hbnlUb09uZSgoKSA9PiBQcmluY2lwYWwsIFJFTF9OVUxMSUZZLCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3Byb3RlY3RlZF9yZXNvdXJjZXNfb3duZXJcIilcbiAgb3duZXI/OiBQcmluY2lwYWwgfCBzdHJpbmc7XG4gIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgc2Vuc2l0aXZpdHk/OiBzdHJpbmc7XG4gIEB0eXBlT2YoT2JqZWN0KSBAY29sdW1uKCkgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQG9uZVRvTWFueSgoKSA9PiBSZXNvdXJjZUdyYW50LCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSBncmFudHM/OiBSZXNvdXJjZUdyYW50W10gfCBzdHJpbmdbXTtcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG4gIEB1cGRhdGVkQXQoKSB1cGRhdGVkQXQhOiBEYXRlO1xufVxuXG5AdGFibGUoXCJyZXNvdXJjZV9ncmFudHNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VHcmFudCBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19yZXNvdXJjZV9ncmFudHNfdGVuYW50XCIpXG4gIEByZXF1aXJlZCgpXG4gIHRlbmFudCE6IFRlbmFudCB8IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBQcm90ZWN0ZWRSZXNvdXJjZSwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3Jlc291cmNlX2dyYW50c19yZXNvdXJjZVwiKVxuICBAcmVxdWlyZWQoKVxuICByZXNvdXJjZSE6IFByb3RlY3RlZFJlc291cmNlIHwgc3RyaW5nO1xuICBAbWFueVRvT25lKCgpID0+IFByaW5jaXBhbCwgUkVMX0NBU0NBREVfREVQRU5ERU5ULCBmYWxzZSwgdW5kZWZpbmVkLCBcImZrX3Jlc291cmNlX2dyYW50c19wcmluY2lwYWxcIilcbiAgQHJlcXVpcmVkKClcbiAgcHJpbmNpcGFsITogUHJpbmNpcGFsIHwgc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHBlcm1pc3Npb25LZXkhOiBzdHJpbmc7XG4gIEBjb2x1bW4oKSBzdGFydHNBdD86IERhdGU7XG4gIEBjb2x1bW4oKSBleHBpcmVzQXQ/OiBEYXRlO1xuICBAdHlwZU9mKE9iamVjdCkgQGNvbHVtbigpIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQG1hbnlUb09uZSgoKSA9PiBQcmluY2lwYWwsIFJFTF9SRVNUUklDVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19yZXNvdXJjZV9ncmFudHNfY3JlYXRlZF9ieVwiKVxuICBjcmVhdGVkQnk/OiBQcmluY2lwYWwgfCBzdHJpbmc7XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwiZWZmZWN0aXZlX3Blcm1pc3Npb25zXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIEVmZmVjdGl2ZVBlcm1pc3Npb24gZXh0ZW5kcyBBdXRob3JpemF0aW9uTW9kZWwge1xuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgaWQhOiBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gVGVuYW50LCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfZWZmZWN0aXZlX3Blcm1pc3Npb25zX3RlbmFudFwiKVxuICBAcmVxdWlyZWQoKVxuICB0ZW5hbnQhOiBUZW5hbnQgfCBzdHJpbmc7XG4gIEBtYW55VG9PbmUoKCkgPT4gUHJpbmNpcGFsLCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQsIGZhbHNlLCB1bmRlZmluZWQsIFwiZmtfZWZmZWN0aXZlX3Blcm1pc3Npb25zX3ByaW5jaXBhbFwiKVxuICBAcmVxdWlyZWQoKVxuICBwcmluY2lwYWwhOiBQcmluY2lwYWwgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgcGVybWlzc2lvbktleSE6IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBvcHRpb24oU2NvcGVLaW5kT3B0aW9ucykgQGNvbHVtbigpIHNjb3BlS2luZCE6IFNjb3BlS2luZDtcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBzY29wZUlkITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHNvdXJjZUtpbmQhOiBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgc291cmNlSWQhOiBzdHJpbmc7XG4gIEBjb2x1bW4oKSBzdGFydHNBdD86IERhdGU7XG4gIEBjb2x1bW4oKSBleHBpcmVzQXQ/OiBEYXRlO1xuICBAY3JlYXRlZEF0KCkgY3JlYXRlZEF0ITogRGF0ZTtcbn1cblxuQHRhYmxlKFwic3RvcmFnZV9iaW5kaW5nc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBTdG9yYWdlQmluZGluZyBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KSBpZCE6IHN0cmluZztcbiAgQG1hbnlUb09uZSgoKSA9PiBUZW5hbnQsIFJFTF9DQVNDQURFX0RFUEVOREVOVCwgZmFsc2UsIHVuZGVmaW5lZCwgXCJma19zdG9yYWdlX2JpbmRpbmdzX3RlbmFudFwiKVxuICBAcmVxdWlyZWQoKVxuICB0ZW5hbnQhOiBUZW5hbnQgfCBzdHJpbmc7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAb3B0aW9uKFN0b3JhZ2VLaW5kT3B0aW9ucykgQGNvbHVtbigpIHN0b3JhZ2VLaW5kITogU3RvcmFnZUtpbmQ7XG4gIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAb3B0aW9uKFN0b3JhZ2VCaW5kaW5nS2luZE9wdGlvbnMpIEBjb2x1bW4oKSBiaW5kaW5nS2luZCE6IFN0b3JhZ2VCaW5kaW5nS2luZDtcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBiaW5kaW5nS2V5ITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQGNvbHVtbigpIHJlZ2lvbiE6IHN0cmluZztcbiAgQHR5cGVPZihPYmplY3QpIEBjb2x1bW4oKSBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQGNyZWF0ZWRBdCgpIGNyZWF0ZWRBdCE6IERhdGU7XG4gIEB1cGRhdGVkQXQoKSB1cGRhdGVkQXQhOiBEYXRlO1xufVxuIl19
|