@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,34 @@
|
|
|
1
|
+
import { BaseModelService, relationId } from "./../utils.js";
|
|
2
|
+
import { StorageBindingKind } from "./../types.js";
|
|
3
|
+
import { StorageBinding } from "../models/storage-binding.model";
|
|
4
|
+
export class StorageBindingService extends BaseModelService {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(StorageBinding);
|
|
7
|
+
}
|
|
8
|
+
async createBinding(input, ...args) {
|
|
9
|
+
return this.create({
|
|
10
|
+
tenant: input.tenantId,
|
|
11
|
+
storageKind: input.storageKind,
|
|
12
|
+
bindingKind: input.bindingKind,
|
|
13
|
+
bindingKey: input.bindingKey,
|
|
14
|
+
region: input.region,
|
|
15
|
+
config: input.config,
|
|
16
|
+
}, ...args);
|
|
17
|
+
}
|
|
18
|
+
async listTenantBindings(tenantId, ...args) {
|
|
19
|
+
return (await this.listAll(...args)).filter((binding) => relationId(binding.tenant) === tenantId);
|
|
20
|
+
}
|
|
21
|
+
async getBinding(tenantId, storageKind, ...args) {
|
|
22
|
+
return (await this.listTenantBindings(tenantId, ...args)).find((binding) => binding.storageKind === storageKind);
|
|
23
|
+
}
|
|
24
|
+
async setBindingConfig(bindingId, config, ...args) {
|
|
25
|
+
return this.updateOne(bindingId, { config }, ...args);
|
|
26
|
+
}
|
|
27
|
+
async promoteToDedicated(bindingId, bindingKey, region, config, ...args) {
|
|
28
|
+
return this.updateOne(bindingId, { bindingKind: StorageBindingKind.Dedicated, bindingKey, region, config }, ...args);
|
|
29
|
+
}
|
|
30
|
+
async setShared(bindingId, bindingKey, region, config, ...args) {
|
|
31
|
+
return this.updateOne(bindingId, { bindingKind: StorageBindingKind.Shared, bindingKey, region, config }, ...args);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1iaW5kaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy9zZXJ2aWNlcy9zdG9yYWdlLWJpbmRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLHNCQUFpQjtBQUN4RCxPQUFPLEVBQTZCLGtCQUFrQixFQUFlLHNCQUFpQjtBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQztJQUN6RTtRQUNFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFnQyxFQUFFLEdBQUcsSUFBVztRQUNsRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCO1lBQ0UsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3RCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07U0FDckIsRUFDRCxHQUFHLElBQUksQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLEdBQUcsSUFBVztRQUN2RCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxXQUF3QixFQUFFLEdBQUcsSUFBVztRQUN6RSxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsU0FBaUIsRUFDakIsTUFBMkMsRUFDM0MsR0FBRyxJQUFXO1FBRWQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsU0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsTUFBYyxFQUNkLE1BQWdDLEVBQ2hDLEdBQUcsSUFBVztRQUVkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FDYixTQUFpQixFQUNqQixVQUFrQixFQUNsQixNQUFjLEVBQ2QsTUFBZ0MsRUFDaEMsR0FBRyxJQUFXO1FBRWQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbFNlcnZpY2UsIHJlbGF0aW9uSWQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IENyZWF0ZVN0b3JhZ2VCaW5kaW5nSW5wdXQsIFN0b3JhZ2VCaW5kaW5nS2luZCwgU3RvcmFnZUtpbmQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IFN0b3JhZ2VCaW5kaW5nIH0gZnJvbSBcIi4uL21vZGVscy9zdG9yYWdlLWJpbmRpbmcubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VCaW5kaW5nU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8U3RvcmFnZUJpbmRpbmc+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoU3RvcmFnZUJpbmRpbmcpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQmluZGluZyhpbnB1dDogQ3JlYXRlU3RvcmFnZUJpbmRpbmdJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAge1xuICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICBzdG9yYWdlS2luZDogaW5wdXQuc3RvcmFnZUtpbmQsXG4gICAgICAgIGJpbmRpbmdLaW5kOiBpbnB1dC5iaW5kaW5nS2luZCxcbiAgICAgICAgYmluZGluZ0tleTogaW5wdXQuYmluZGluZ0tleSxcbiAgICAgICAgcmVnaW9uOiBpbnB1dC5yZWdpb24sXG4gICAgICAgIGNvbmZpZzogaW5wdXQuY29uZmlnLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudEJpbmRpbmdzKHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZ1tdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYmluZGluZykgPT4gcmVsYXRpb25JZChiaW5kaW5nLnRlbmFudCkgPT09IHRlbmFudElkKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJpbmRpbmcodGVuYW50SWQ6IHN0cmluZywgc3RvcmFnZUtpbmQ6IFN0b3JhZ2VLaW5kLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdFRlbmFudEJpbmRpbmdzKHRlbmFudElkLCAuLi5hcmdzKSkuZmluZCgoYmluZGluZykgPT4gYmluZGluZy5zdG9yYWdlS2luZCA9PT0gc3RvcmFnZUtpbmQpO1xuICB9XG5cbiAgYXN5bmMgc2V0QmluZGluZ0NvbmZpZyhcbiAgICBiaW5kaW5nSWQ6IHN0cmluZyxcbiAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmc+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoYmluZGluZ0lkLCB7IGNvbmZpZyB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHByb21vdGVUb0RlZGljYXRlZChcbiAgICBiaW5kaW5nSWQ6IHN0cmluZyxcbiAgICBiaW5kaW5nS2V5OiBzdHJpbmcsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZz4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShiaW5kaW5nSWQsIHsgYmluZGluZ0tpbmQ6IFN0b3JhZ2VCaW5kaW5nS2luZC5EZWRpY2F0ZWQsIGJpbmRpbmdLZXksIHJlZ2lvbiwgY29uZmlnIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc2V0U2hhcmVkKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGJpbmRpbmdLZXk6IHN0cmluZyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGJpbmRpbmdJZCwgeyBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kLlNoYXJlZCwgYmluZGluZ0tleSwgcmVnaW9uLCBjb25maWcgfSwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
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 { transactional } from "./../utils.js";
|
|
11
|
+
import { MembershipStatus, ScopeKind } from "./../types.js";
|
|
12
|
+
import { TenantMembershipService } from "./tenant-membership.service";
|
|
13
|
+
import { OrgUnitMembershipService } from "./org-unit-membership.service";
|
|
14
|
+
import { PrincipalService } from "./principal.service";
|
|
15
|
+
import { RoleService } from "./role.service";
|
|
16
|
+
import { RoleAssignmentService } from "./role-assignment.service";
|
|
17
|
+
import { EffectivePermissionService } from "./effective-permission.service";
|
|
18
|
+
export class SystemManagementService {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.membershipService = new TenantMembershipService();
|
|
21
|
+
this.orgMembershipService = new OrgUnitMembershipService();
|
|
22
|
+
this.principalService = new PrincipalService();
|
|
23
|
+
this.roleService = new RoleService();
|
|
24
|
+
this.roleAssignmentService = new RoleAssignmentService();
|
|
25
|
+
this.effectivePermissionService = new EffectivePermissionService();
|
|
26
|
+
}
|
|
27
|
+
async onboardUserToTenantAndOrgUnit(tenantId, userId, orgUnitId, roleKey, ...args) {
|
|
28
|
+
await this.membershipService.addUserToTenant(tenantId, userId, MembershipStatus.Active, ...args);
|
|
29
|
+
await this.orgMembershipService.addUserToOrgUnit(tenantId, orgUnitId, userId, MembershipStatus.Active, ...args);
|
|
30
|
+
const principal = await this.principalService.getUserPrincipal(tenantId, userId, ...args);
|
|
31
|
+
const role = await this.roleService.getTenantRoleByKey(tenantId, roleKey, ...args);
|
|
32
|
+
await this.roleAssignmentService.assignRole({
|
|
33
|
+
tenantId,
|
|
34
|
+
principalId: principal.id,
|
|
35
|
+
roleId: role.id,
|
|
36
|
+
scopeKind: ScopeKind.OrgUnit,
|
|
37
|
+
scopeId: orgUnitId,
|
|
38
|
+
inheritDown: true,
|
|
39
|
+
}, ...args);
|
|
40
|
+
await this.effectivePermissionService.rebuildForPrincipal(tenantId, principal.id, ...args);
|
|
41
|
+
return { principalId: principal.id };
|
|
42
|
+
}
|
|
43
|
+
async changeUserOrgRole(tenantId, principalId, orgUnitId, roleKey, inheritDown, ...args) {
|
|
44
|
+
const role = await this.roleService.getTenantRoleByKey(tenantId, roleKey, ...args);
|
|
45
|
+
const currentAssignments = await this.roleAssignmentService.listPrincipalAssignments(tenantId, principalId, ...args);
|
|
46
|
+
for (const assignment of currentAssignments.filter((row) => row.scopeKind === ScopeKind.OrgUnit && row.scopeId === orgUnitId)) {
|
|
47
|
+
await this.roleAssignmentService.revokeAssignment(assignment.id, ...args);
|
|
48
|
+
}
|
|
49
|
+
await this.roleAssignmentService.assignRole({
|
|
50
|
+
tenantId,
|
|
51
|
+
principalId,
|
|
52
|
+
roleId: role.id,
|
|
53
|
+
scopeKind: ScopeKind.OrgUnit,
|
|
54
|
+
scopeId: orgUnitId,
|
|
55
|
+
inheritDown,
|
|
56
|
+
}, ...args);
|
|
57
|
+
await this.effectivePermissionService.rebuildForPrincipal(tenantId, principalId, ...args);
|
|
58
|
+
}
|
|
59
|
+
async suspendUserInTenant(tenantMembershipId, tenantId, principalId, ...args) {
|
|
60
|
+
await this.membershipService.setStatus(tenantMembershipId, MembershipStatus.Suspended, ...args);
|
|
61
|
+
await this.effectivePermissionService.deleteForPrincipal(tenantId, principalId, ...args);
|
|
62
|
+
}
|
|
63
|
+
async reactivateUserInTenant(tenantMembershipId, tenantId, principalId, ...args) {
|
|
64
|
+
await this.membershipService.setStatus(tenantMembershipId, MembershipStatus.Active, ...args);
|
|
65
|
+
await this.effectivePermissionService.rebuildForPrincipal(tenantId, principalId, ...args);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
__decorate([
|
|
69
|
+
transactional(),
|
|
70
|
+
__metadata("design:type", Function),
|
|
71
|
+
__metadata("design:paramtypes", [String, String, String, String, Object]),
|
|
72
|
+
__metadata("design:returntype", Promise)
|
|
73
|
+
], SystemManagementService.prototype, "onboardUserToTenantAndOrgUnit", null);
|
|
74
|
+
__decorate([
|
|
75
|
+
transactional(),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [String, String, String, String, Boolean, Object]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], SystemManagementService.prototype, "changeUserOrgRole", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
transactional(),
|
|
82
|
+
__metadata("design:type", Function),
|
|
83
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
84
|
+
__metadata("design:returntype", Promise)
|
|
85
|
+
], SystemManagementService.prototype, "suspendUserInTenant", null);
|
|
86
|
+
__decorate([
|
|
87
|
+
transactional(),
|
|
88
|
+
__metadata("design:type", Function),
|
|
89
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
90
|
+
__metadata("design:returntype", Promise)
|
|
91
|
+
], SystemManagementService.prototype, "reactivateUserInTenant", null);
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL3N5c3RlbS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBaUI7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxzQkFBaUI7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTVFLE1BQU0sT0FBTyx1QkFBdUI7SUFBcEM7UUFDVSxzQkFBaUIsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDbEQseUJBQW9CLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3RELHFCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsMEJBQXFCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELCtCQUEwQixHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztJQW9FeEUsQ0FBQztJQWpFTyxBQUFOLEtBQUssQ0FBQyw2QkFBNkIsQ0FDakMsUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixHQUFHLElBQVc7UUFFZCxNQUFNLElB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QUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsc0JBQXNCLENBQUMsa0JBQTBCLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQixFQUFFLEdBQUcsSUFBVztRQUM1RyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDN0YsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzVGLENBQUM7Q0FDRjtBQWpFTztJQURMLGFBQWEsRUFBRTs7Ozs0RUF5QmY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztnRUEwQmY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztrRUFJZjtBQUdLO0lBREwsYUFBYSxFQUFFOzs7O3FFQUlmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNhY3Rpb25hbCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgTWVtYmVyc2hpcFN0YXR1cywgU2NvcGVLaW5kIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLnNlcnZpY2VcIjtcbmltcG9ydCB7IE9yZ1VuaXRNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL29yZy11bml0LW1lbWJlcnNoaXAuc2VydmljZVwiO1xuaW1wb3J0IHsgUHJpbmNpcGFsU2VydmljZSB9IGZyb20gXCIuL3ByaW5jaXBhbC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSb2xlU2VydmljZSB9IGZyb20gXCIuL3JvbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU3lzdGVtTWFuYWdlbWVudFNlcnZpY2Uge1xuICBwcml2YXRlIG1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gIHByaXZhdGUgb3JnTWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgT3JnVW5pdE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcm9sZVNlcnZpY2UgPSBuZXcgUm9sZVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlQXNzaWdubWVudFNlcnZpY2UgPSBuZXcgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UoKTtcblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIG9uYm9hcmRVc2VyVG9UZW5hbnRBbmRPcmdVbml0KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgcm9sZUtleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8eyBwcmluY2lwYWxJZDogc3RyaW5nIH0+IHtcbiAgICBhd2FpdCB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlLmFkZFVzZXJUb1RlbmFudCh0ZW5hbnRJZCwgdXNlcklkLCBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncyk7XG4gICAgYXdhaXQgdGhpcy5vcmdNZW1iZXJzaGlwU2VydmljZS5hZGRVc2VyVG9PcmdVbml0KHRlbmFudElkLCBvcmdVbml0SWQsIHVzZXJJZCwgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IHByaW5jaXBhbCA9IGF3YWl0IHRoaXMucHJpbmNpcGFsU2VydmljZS5nZXRVc2VyUHJpbmNpcGFsKHRlbmFudElkLCB1c2VySWQsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IHJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdldFRlbmFudFJvbGVCeUtleSh0ZW5hbnRJZCwgcm9sZUtleSwgLi4uYXJncyk7XG4gICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBwcmluY2lwYWwuaWQsXG4gICAgICAgIHJvbGVJZDogcm9sZS5pZCxcbiAgICAgICAgc2NvcGVLaW5kOiBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgc2NvcGVJZDogb3JnVW5pdElkLFxuICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbC5pZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHsgcHJpbmNpcGFsSWQ6IHByaW5jaXBhbC5pZCB9O1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBjaGFuZ2VVc2VyT3JnUm9sZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgcm9sZUtleTogc3RyaW5nLFxuICAgIGluaGVyaXREb3duOiBib29sZWFuLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdldFRlbmFudFJvbGVCeUtleSh0ZW5hbnRJZCwgcm9sZUtleSwgLi4uYXJncyk7XG4gICAgY29uc3QgY3VycmVudEFzc2lnbm1lbnRzID0gYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGN1cnJlbnRBc3NpZ25tZW50cy5maWx0ZXIoKHJvdykgPT4gcm93LnNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiYgcm93LnNjb3BlSWQgPT09IG9yZ1VuaXRJZCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLnJldm9rZUFzc2lnbm1lbnQoYXNzaWdubWVudC5pZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmFzc2lnblJvbGUoXG4gICAgICB7XG4gICAgICAgIHRlbmFudElkLFxuICAgICAgICBwcmluY2lwYWxJZCxcbiAgICAgICAgcm9sZUlkOiByb2xlLmlkLFxuICAgICAgICBzY29wZUtpbmQ6IFNjb3BlS2luZC5PcmdVbml0LFxuICAgICAgICBzY29wZUlkOiBvcmdVbml0SWQsXG4gICAgICAgIGluaGVyaXREb3duLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UucmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBzdXNwZW5kVXNlckluVGVuYW50KHRlbmFudE1lbWJlcnNoaXBJZDogc3RyaW5nLCB0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2Uuc2V0U3RhdHVzKHRlbmFudE1lbWJlcnNoaXBJZCwgTWVtYmVyc2hpcFN0YXR1cy5TdXNwZW5kZWQsIC4uLmFyZ3MpO1xuICAgIGF3YWl0IHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UuZGVsZXRlRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYWN0aXZhdGVVc2VySW5UZW5hbnQodGVuYW50TWVtYmVyc2hpcElkOiBzdHJpbmcsIHRlbmFudElkOiBzdHJpbmcsIHByaW5jaXBhbElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5zZXRTdGF0dXModGVuYW50TWVtYmVyc2hpcElkLCBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncyk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseModelService, relationMatch, sameTenant } from "./../utils.js";
|
|
2
|
+
import { MembershipStatus } from "./../types.js";
|
|
3
|
+
import { TenantMembership } from "../models/tenant-membership.model";
|
|
4
|
+
export class TenantMembershipService extends BaseModelService {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(TenantMembership);
|
|
7
|
+
}
|
|
8
|
+
async addUserToTenant(tenantId, userId, status = MembershipStatus.Active, ...args) {
|
|
9
|
+
return this.create({
|
|
10
|
+
tenant: tenantId,
|
|
11
|
+
user: userId,
|
|
12
|
+
status,
|
|
13
|
+
}, ...args);
|
|
14
|
+
}
|
|
15
|
+
async setStatus(membershipId, status, ...args) {
|
|
16
|
+
return this.updateOne(membershipId, { status }, ...args);
|
|
17
|
+
}
|
|
18
|
+
async listUserTenants(userId, ...args) {
|
|
19
|
+
return (await this.listAll(...args)).filter((membership) => relationMatch(membership.user, userId));
|
|
20
|
+
}
|
|
21
|
+
async listTenantUsers(tenantId, ...args) {
|
|
22
|
+
return (await this.listAll(...args)).filter((membership) => sameTenant(membership.tenant, tenantId));
|
|
23
|
+
}
|
|
24
|
+
async removeUserFromTenant(membershipId, ...args) {
|
|
25
|
+
await this.deleteById(membershipId, ...args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1lbWJlcnNoaXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL3RlbmFudC1tZW1iZXJzaGlwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsc0JBQWlCO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBaUI7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFrQztJQUM3RTtRQUNFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUNuQixRQUFnQixFQUNoQixNQUFjLEVBQ2QsU0FBMkIsZ0JBQWdCLENBQUMsTUFBTSxFQUNsRCxHQUFHLElBQVc7UUFFZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCO1lBQ0UsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNO1NBQ1AsRUFDRCxHQUFHLElBQUksQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBb0IsRUFBRSxNQUF3QixFQUFFLEdBQUcsSUFBVztRQUM1RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFjLEVBQUUsR0FBRyxJQUFXO1FBQ2xELE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFnQixFQUFFLEdBQUcsSUFBVztRQUNwRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLEdBQUcsSUFBVztRQUM3RCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsU2VydmljZSwgcmVsYXRpb25NYXRjaCwgc2FtZVRlbmFudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgTWVtYmVyc2hpcFN0YXR1cyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuLi9tb2RlbHMvdGVuYW50LW1lbWJlcnNoaXAubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxUZW5hbnRNZW1iZXJzaGlwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFRlbmFudE1lbWJlcnNoaXApO1xuICB9XG5cbiAgYXN5bmMgYWRkVXNlclRvVGVuYW50KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgc3RhdHVzOiBNZW1iZXJzaGlwU3RhdHVzID0gTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAge1xuICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICB1c2VyOiB1c2VySWQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldFN0YXR1cyhtZW1iZXJzaGlwSWQ6IHN0cmluZywgc3RhdHVzOiBNZW1iZXJzaGlwU3RhdHVzLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50TWVtYmVyc2hpcD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShtZW1iZXJzaGlwSWQsIHsgc3RhdHVzIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFVzZXJUZW5hbnRzKHVzZXJJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50TWVtYmVyc2hpcFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigobWVtYmVyc2hpcCkgPT4gcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnVzZXIsIHVzZXJJZCkpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFVzZXJzKHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PiBzYW1lVGVuYW50KG1lbWJlcnNoaXAudGVuYW50LCB0ZW5hbnRJZCkpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckZyb21UZW5hbnQobWVtYmVyc2hpcElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKG1lbWJlcnNoaXBJZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseModelService, sameTenant } from "./../utils.js";
|
|
2
|
+
import { TenantProfile } from "../models/tenant-profile.model";
|
|
3
|
+
export class TenantProfileService extends BaseModelService {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(TenantProfile);
|
|
6
|
+
}
|
|
7
|
+
async createProfile(tenantId, profileKey, metadata, ...args) {
|
|
8
|
+
return this.create({
|
|
9
|
+
tenant: tenantId,
|
|
10
|
+
profileKey,
|
|
11
|
+
metadata,
|
|
12
|
+
}, ...args);
|
|
13
|
+
}
|
|
14
|
+
async listForTenant(tenantId, ...args) {
|
|
15
|
+
return (await this.listAll(...args)).filter((profile) => sameTenant(profile.tenant, tenantId));
|
|
16
|
+
}
|
|
17
|
+
async deleteForTenant(tenantId, ...args) {
|
|
18
|
+
for (const row of await this.listForTenant(tenantId, ...args)) {
|
|
19
|
+
await this.deleteById(row.id, ...args);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXByb2ZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL3RlbmFudC1wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFrQixVQUFVLEVBQUUsc0JBQWlCO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQStCO0lBQ3ZFO1FBQ0UsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUNqQixRQUFnQixFQUNoQixVQUFrQixFQUNsQixRQUFrQyxFQUNsQyxHQUFHLElBQVc7UUFFZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCO1lBQ0UsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVTtZQUNWLFFBQVE7U0FDVCxFQUNELEdBQUcsSUFBSSxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFnQixFQUFFLEdBQUcsSUFBVztRQUNsRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBZ0IsRUFBRSxHQUFHLElBQVc7UUFDcEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5RCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWxTZXJ2aWNlLCBpZCwgcmVsYXRpb25JZCwgc2FtZVRlbmFudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgVGVuYW50UHJvZmlsZSB9IGZyb20gXCIuLi9tb2RlbHMvdGVuYW50LXByb2ZpbGUubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIFRlbmFudFByb2ZpbGVTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxUZW5hbnRQcm9maWxlPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFRlbmFudFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByb2ZpbGVLZXk6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8VGVuYW50UHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgcHJvZmlsZUtleSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBsaXN0Rm9yVGVuYW50KHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxUZW5hbnRQcm9maWxlW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwcm9maWxlKSA9PiBzYW1lVGVuYW50KHByb2ZpbGUudGVuYW50LCB0ZW5hbnRJZCkpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRm9yVGVuYW50KHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCByb3cgb2YgYXdhaXQgdGhpcy5saXN0Rm9yVGVuYW50KHRlbmFudElkLCAuLi5hcmdzKSkge1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKHJvdy5pZCwgLi4uYXJncyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BaseModelService } from "./../utils.js";
|
|
2
|
+
import { IsolationTier } from "./../types.js";
|
|
3
|
+
import { Tenant } from "../models/tenant.model";
|
|
4
|
+
export class TenantService extends BaseModelService {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(Tenant);
|
|
7
|
+
}
|
|
8
|
+
async createTenant(input, ...args) {
|
|
9
|
+
return this.create({
|
|
10
|
+
slug: input.slug,
|
|
11
|
+
name: input.name,
|
|
12
|
+
isolationTier: input.isolationTier ?? IsolationTier.Pooled,
|
|
13
|
+
}, ...args);
|
|
14
|
+
}
|
|
15
|
+
async getBySlug(slug, ...args) {
|
|
16
|
+
return this.findOneBy("slug", slug, ...args);
|
|
17
|
+
}
|
|
18
|
+
async renameTenant(tenantId, name, ...args) {
|
|
19
|
+
return this.updateOne(tenantId, { name }, ...args);
|
|
20
|
+
}
|
|
21
|
+
async changeSlug(tenantId, slug, ...args) {
|
|
22
|
+
return this.updateOne(tenantId, { slug }, ...args);
|
|
23
|
+
}
|
|
24
|
+
async setIsolationTier(tenantId, isolationTier, ...args) {
|
|
25
|
+
return this.updateOne(tenantId, { isolationTier }, ...args);
|
|
26
|
+
}
|
|
27
|
+
async deleteTenantControlled(tenantId, ...args) {
|
|
28
|
+
await this.deleteById(tenantId, ...args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy9zZXJ2aWNlcy90ZW5hbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQWlCO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQXFCLHNCQUFpQjtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEQsTUFBTSxPQUFPLGFBQWMsU0FBUSxnQkFBd0I7SUFDekQ7UUFDRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBd0IsRUFBRSxHQUFHLElBQVc7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQjtZQUNFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU07U0FDM0QsRUFDRCxHQUFHLElBQUksQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLEdBQUcsSUFBVztRQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsSUFBWSxFQUFFLEdBQUcsSUFBVztRQUMvRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFnQixFQUFFLElBQVksRUFBRSxHQUFHLElBQVc7UUFDN0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsUUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsR0FBRyxJQUFXO1FBRWQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLEdBQUcsSUFBVztRQUMzRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsU2VydmljZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgSXNvbGF0aW9uVGllciwgQ3JlYXRlVGVuYW50SW5wdXQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IFRlbmFudCB9IGZyb20gXCIuLi9tb2RlbHMvdGVuYW50Lm1vZGVsXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxUZW5hbnQ+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVGVuYW50KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVRlbmFudChpbnB1dDogQ3JlYXRlVGVuYW50SW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxUZW5hbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB7XG4gICAgICAgIHNsdWc6IGlucHV0LnNsdWcsXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIGlzb2xhdGlvblRpZXI6IGlucHV0Lmlzb2xhdGlvblRpZXIgPz8gSXNvbGF0aW9uVGllci5Qb29sZWQsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZUJ5KFwic2x1Z1wiLCBzbHVnIGFzIG5ldmVyLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHJlbmFtZVRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxUZW5hbnQ+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUodGVuYW50SWQsIHsgbmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZVNsdWcodGVuYW50SWQ6IHN0cmluZywgc2x1Zzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50PiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHRlbmFudElkLCB7IHNsdWcgfSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBzZXRJc29sYXRpb25UaWVyKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgaXNvbGF0aW9uVGllcjogSXNvbGF0aW9uVGllcixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh0ZW5hbnRJZCwgeyBpc29sYXRpb25UaWVyIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlVGVuYW50Q29udHJvbGxlZCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZCh0ZW5hbnRJZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseModelService } from "./../utils.js";
|
|
2
|
+
import { User } from "../models/user.model";
|
|
3
|
+
export class UserService extends BaseModelService {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(User);
|
|
6
|
+
}
|
|
7
|
+
async createUser(input, ...args) {
|
|
8
|
+
return this.create({
|
|
9
|
+
email: input.email,
|
|
10
|
+
phone: input.phone,
|
|
11
|
+
displayName: input.displayName,
|
|
12
|
+
}, ...args);
|
|
13
|
+
}
|
|
14
|
+
async getByEmail(email, ...args) {
|
|
15
|
+
return (await this.listAll(...args)).find((user) => user.email === email);
|
|
16
|
+
}
|
|
17
|
+
async updateDisplayName(userId, displayName, ...args) {
|
|
18
|
+
return this.updateOne(userId, { displayName }, ...args);
|
|
19
|
+
}
|
|
20
|
+
async updateEmail(userId, email, ...args) {
|
|
21
|
+
return this.updateOne(userId, { email }, ...args);
|
|
22
|
+
}
|
|
23
|
+
async updatePhone(userId, phone, ...args) {
|
|
24
|
+
return this.updateOne(userId, { phone }, ...args);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBaUI7QUFFNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxXQUFZLFNBQVEsZ0JBQXNCO0lBQ3JEO1FBQ0UsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBc0IsRUFBRSxHQUFHLElBQVc7UUFDckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQjtZQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLEVBQ0QsR0FBRyxJQUFJLENBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQVc7UUFDNUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBUyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsR0FBRyxJQUFXO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWMsRUFBRSxLQUF5QixFQUFFLEdBQUcsSUFBVztRQUN6RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsS0FBeUIsRUFBRSxHQUFHLElBQVc7UUFDekUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsU2VydmljZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQ3JlYXRlVXNlcklucHV0IH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4uL21vZGVscy91c2VyLm1vZGVsXCI7XG5cbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8VXNlcj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihVc2VyKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVVzZXIoaW5wdXQ6IENyZWF0ZVVzZXJJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB7XG4gICAgICAgIGVtYWlsOiBpbnB1dC5lbWFpbCxcbiAgICAgICAgcGhvbmU6IGlucHV0LnBob25lLFxuICAgICAgICBkaXNwbGF5TmFtZTogaW5wdXQuZGlzcGxheU5hbWUsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCeUVtYWlsKGVtYWlsOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoKHVzZXIpID0+IHVzZXIuZW1haWwgPT09IGVtYWlsKSBhcyBVc2VyO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGlzcGxheU5hbWUodXNlcklkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBkaXNwbGF5TmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUVtYWlsKHVzZXJJZDogc3RyaW5nLCBlbWFpbDogc3RyaW5nIHwgdW5kZWZpbmVkLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VXNlcj4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh1c2VySWQsIHsgZW1haWwgfSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVQaG9uZSh1c2VySWQ6IHN0cmluZywgcGhvbmU6IHN0cmluZyB8IHVuZGVmaW5lZCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUodXNlcklkLCB7IHBob25lIH0sIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export var IsolationTier;
|
|
2
|
+
(function (IsolationTier) {
|
|
3
|
+
IsolationTier["Pooled"] = "pooled";
|
|
4
|
+
IsolationTier["Bridge"] = "bridge";
|
|
5
|
+
IsolationTier["Silo"] = "silo";
|
|
6
|
+
})(IsolationTier || (IsolationTier = {}));
|
|
7
|
+
export var MembershipStatus;
|
|
8
|
+
(function (MembershipStatus) {
|
|
9
|
+
MembershipStatus["Invited"] = "invited";
|
|
10
|
+
MembershipStatus["Active"] = "active";
|
|
11
|
+
MembershipStatus["Suspended"] = "suspended";
|
|
12
|
+
MembershipStatus["Removed"] = "removed";
|
|
13
|
+
})(MembershipStatus || (MembershipStatus = {}));
|
|
14
|
+
export var PrincipalKind;
|
|
15
|
+
(function (PrincipalKind) {
|
|
16
|
+
PrincipalKind["User"] = "user";
|
|
17
|
+
PrincipalKind["Group"] = "group";
|
|
18
|
+
PrincipalKind["ServiceAccount"] = "service_account";
|
|
19
|
+
PrincipalKind["Agent"] = "agent";
|
|
20
|
+
PrincipalKind["ApiKey"] = "api_key";
|
|
21
|
+
})(PrincipalKind || (PrincipalKind = {}));
|
|
22
|
+
export var ScopeKind;
|
|
23
|
+
(function (ScopeKind) {
|
|
24
|
+
ScopeKind["Tenant"] = "tenant";
|
|
25
|
+
ScopeKind["OrgUnit"] = "org_unit";
|
|
26
|
+
ScopeKind["Resource"] = "resource";
|
|
27
|
+
})(ScopeKind || (ScopeKind = {}));
|
|
28
|
+
export var PermissionCategory;
|
|
29
|
+
(function (PermissionCategory) {
|
|
30
|
+
PermissionCategory["Admin"] = "admin";
|
|
31
|
+
PermissionCategory["ContentRead"] = "content_read";
|
|
32
|
+
PermissionCategory["ContentWrite"] = "content_write";
|
|
33
|
+
PermissionCategory["Memory"] = "memory";
|
|
34
|
+
PermissionCategory["Graph"] = "graph";
|
|
35
|
+
PermissionCategory["Vector"] = "vector";
|
|
36
|
+
PermissionCategory["Export"] = "export";
|
|
37
|
+
PermissionCategory["Billing"] = "billing";
|
|
38
|
+
PermissionCategory["Audit"] = "audit";
|
|
39
|
+
PermissionCategory["Security"] = "security";
|
|
40
|
+
PermissionCategory["Data"] = "data";
|
|
41
|
+
PermissionCategory["Automation"] = "automation";
|
|
42
|
+
})(PermissionCategory || (PermissionCategory = {}));
|
|
43
|
+
export var ResourceVisibility;
|
|
44
|
+
(function (ResourceVisibility) {
|
|
45
|
+
ResourceVisibility["Private"] = "private";
|
|
46
|
+
ResourceVisibility["ResourceAcl"] = "resource_acl";
|
|
47
|
+
ResourceVisibility["OrgUnit"] = "org_unit";
|
|
48
|
+
ResourceVisibility["OrgSubtree"] = "org_subtree";
|
|
49
|
+
ResourceVisibility["Tenant"] = "tenant";
|
|
50
|
+
})(ResourceVisibility || (ResourceVisibility = {}));
|
|
51
|
+
export var StorageKind;
|
|
52
|
+
(function (StorageKind) {
|
|
53
|
+
StorageKind["Postgres"] = "postgres";
|
|
54
|
+
StorageKind["Arango"] = "arango";
|
|
55
|
+
StorageKind["Qdrant"] = "qdrant";
|
|
56
|
+
StorageKind["ObjectStorage"] = "object_storage";
|
|
57
|
+
})(StorageKind || (StorageKind = {}));
|
|
58
|
+
export var StorageBindingKind;
|
|
59
|
+
(function (StorageBindingKind) {
|
|
60
|
+
StorageBindingKind["Shared"] = "shared";
|
|
61
|
+
StorageBindingKind["Dedicated"] = "dedicated";
|
|
62
|
+
})(StorageBindingKind || (StorageBindingKind = {}));
|
|
63
|
+
export const IsolationTierOptions = Object.values(IsolationTier);
|
|
64
|
+
export const MembershipStatusOptions = Object.values(MembershipStatus);
|
|
65
|
+
export const PrincipalKindOptions = Object.values(PrincipalKind);
|
|
66
|
+
export const ScopeKindOptions = Object.values(ScopeKind);
|
|
67
|
+
export const PermissionCategoryOptions = Object.values(PermissionCategory);
|
|
68
|
+
export const ResourceVisibilityOptions = Object.values(ResourceVisibility);
|
|
69
|
+
export const StorageKindOptions = Object.values(StorageKind);
|
|
70
|
+
export const StorageBindingKindOptions = Object.values(StorageBindingKind);
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFBO0lBQ2pCLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLHVDQUFtQixDQUFBO0lBQ25CLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0lBQ3ZCLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtJQUNmLG1EQUFrQyxDQUFBO0lBQ2xDLGdDQUFlLENBQUE7SUFDZixtQ0FBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsYUFBYSxLQUFiLGFBQWEsUUFNeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGlDQUFvQixDQUFBO0lBQ3BCLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQWFYO0FBYkQsV0FBWSxrQkFBa0I7SUFDNUIscUNBQWUsQ0FBQTtJQUNmLGtEQUE0QixDQUFBO0lBQzVCLG9EQUE4QixDQUFBO0lBQzlCLHVDQUFpQixDQUFBO0lBQ2pCLHFDQUFlLENBQUE7SUFDZix1Q0FBaUIsQ0FBQTtJQUNqQix1Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBbUIsQ0FBQTtJQUNuQixxQ0FBZSxDQUFBO0lBQ2YsMkNBQXFCLENBQUE7SUFDckIsbUNBQWEsQ0FBQTtJQUNiLCtDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFiVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBYTdCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUM1Qix5Q0FBbUIsQ0FBQTtJQUNuQixrREFBNEIsQ0FBQTtJQUM1QiwwQ0FBb0IsQ0FBQTtJQUNwQixnREFBMEIsQ0FBQTtJQUMxQix1Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU03QjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsZ0NBQWlCLENBQUE7SUFDakIsZ0NBQWlCLENBQUE7SUFDakIsK0NBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUxXLFdBQVcsS0FBWCxXQUFXLFFBS3RCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1Qix1Q0FBaUIsQ0FBQTtJQUNqQiw2Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSXNvbGF0aW9uVGllciB7XG4gIFBvb2xlZCA9IFwicG9vbGVkXCIsXG4gIEJyaWRnZSA9IFwiYnJpZGdlXCIsXG4gIFNpbG8gPSBcInNpbG9cIixcbn1cblxuZXhwb3J0IGVudW0gTWVtYmVyc2hpcFN0YXR1cyB7XG4gIEludml0ZWQgPSBcImludml0ZWRcIixcbiAgQWN0aXZlID0gXCJhY3RpdmVcIixcbiAgU3VzcGVuZGVkID0gXCJzdXNwZW5kZWRcIixcbiAgUmVtb3ZlZCA9IFwicmVtb3ZlZFwiLFxufVxuXG5leHBvcnQgZW51bSBQcmluY2lwYWxLaW5kIHtcbiAgVXNlciA9IFwidXNlclwiLFxuICBHcm91cCA9IFwiZ3JvdXBcIixcbiAgU2VydmljZUFjY291bnQgPSBcInNlcnZpY2VfYWNjb3VudFwiLFxuICBBZ2VudCA9IFwiYWdlbnRcIixcbiAgQXBpS2V5ID0gXCJhcGlfa2V5XCIsXG59XG5cbmV4cG9ydCBlbnVtIFNjb3BlS2luZCB7XG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIFJlc291cmNlID0gXCJyZXNvdXJjZVwiLFxufVxuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQ2F0ZWdvcnkge1xuICBBZG1pbiA9IFwiYWRtaW5cIixcbiAgQ29udGVudFJlYWQgPSBcImNvbnRlbnRfcmVhZFwiLFxuICBDb250ZW50V3JpdGUgPSBcImNvbnRlbnRfd3JpdGVcIixcbiAgTWVtb3J5ID0gXCJtZW1vcnlcIixcbiAgR3JhcGggPSBcImdyYXBoXCIsXG4gIFZlY3RvciA9IFwidmVjdG9yXCIsXG4gIEV4cG9ydCA9IFwiZXhwb3J0XCIsXG4gIEJpbGxpbmcgPSBcImJpbGxpbmdcIixcbiAgQXVkaXQgPSBcImF1ZGl0XCIsXG4gIFNlY3VyaXR5ID0gXCJzZWN1cml0eVwiLFxuICBEYXRhID0gXCJkYXRhXCIsXG4gIEF1dG9tYXRpb24gPSBcImF1dG9tYXRpb25cIixcbn1cblxuZXhwb3J0IGVudW0gUmVzb3VyY2VWaXNpYmlsaXR5IHtcbiAgUHJpdmF0ZSA9IFwicHJpdmF0ZVwiLFxuICBSZXNvdXJjZUFjbCA9IFwicmVzb3VyY2VfYWNsXCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIE9yZ1N1YnRyZWUgPSBcIm9yZ19zdWJ0cmVlXCIsXG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VLaW5kIHtcbiAgUG9zdGdyZXMgPSBcInBvc3RncmVzXCIsXG4gIEFyYW5nbyA9IFwiYXJhbmdvXCIsXG4gIFFkcmFudCA9IFwicWRyYW50XCIsXG4gIE9iamVjdFN0b3JhZ2UgPSBcIm9iamVjdF9zdG9yYWdlXCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VCaW5kaW5nS2luZCB7XG4gIFNoYXJlZCA9IFwic2hhcmVkXCIsXG4gIERlZGljYXRlZCA9IFwiZGVkaWNhdGVkXCIsXG59XG5cbmV4cG9ydCBjb25zdCBJc29sYXRpb25UaWVyT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoSXNvbGF0aW9uVGllcik7XG5leHBvcnQgY29uc3QgTWVtYmVyc2hpcFN0YXR1c09wdGlvbnMgPSBPYmplY3QudmFsdWVzKE1lbWJlcnNoaXBTdGF0dXMpO1xuZXhwb3J0IGNvbnN0IFByaW5jaXBhbEtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhQcmluY2lwYWxLaW5kKTtcbmV4cG9ydCBjb25zdCBTY29wZUtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTY29wZUtpbmQpO1xuZXhwb3J0IGNvbnN0IFBlcm1pc3Npb25DYXRlZ29yeU9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFBlcm1pc3Npb25DYXRlZ29yeSk7XG5leHBvcnQgY29uc3QgUmVzb3VyY2VWaXNpYmlsaXR5T3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoUmVzb3VyY2VWaXNpYmlsaXR5KTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFN0b3JhZ2VLaW5kKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlQmluZGluZ0tpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTdG9yYWdlQmluZGluZ0tpbmQpO1xuXG5leHBvcnQgdHlwZSBUeEFyZ3MgPSBhbnlbXTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUZW5hbnRJbnB1dCB7XG4gIHNsdWc6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBpc29sYXRpb25UaWVyPzogSXNvbGF0aW9uVGllcjtcbiAgcHJvZmlsZUtleT86IHN0cmluZztcbiAgcHJvZmlsZU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVXNlcklucHV0IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9yZ1VuaXRJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHBhcmVudE9yZ1VuaXRJZD86IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcm9maWxlS2V5Pzogc3RyaW5nO1xuICBwcm9maWxlTWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSb2xlSW5wdXQge1xuICB0ZW5hbnRJZD86IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUGVybWlzc2lvbklucHV0IHtcbiAga2V5OiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnk7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2lnblJvbGVJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHJvbGVJZDogc3RyaW5nO1xuICBzY29wZUtpbmQ6IFNjb3BlS2luZDtcbiAgc2NvcGVJZDogc3RyaW5nO1xuICBpbmhlcml0RG93bj86IGJvb2xlYW47XG4gIHN0YXJ0c0F0PzogRGF0ZTtcbiAgZXhwaXJlc0F0PzogRGF0ZTtcbiAgY29uZGl0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUmVzb3VyY2VJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIG9yZ1VuaXRJZDogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVzb3VyY2VJZDogc3RyaW5nO1xuICB2aXNpYmlsaXR5OiBSZXNvdXJjZVZpc2liaWxpdHk7XG4gIG93bmVyUHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG4gIHNlbnNpdGl2aXR5Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UmVzb3VyY2VJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHJlc291cmNlSWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG4gIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY3JlYXRlZEJ5UHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQWNjZXNzSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uS2V5OiBzdHJpbmc7XG4gIHJlc291cmNlUHJvdGVjdGVkSWQ/OiBzdHJpbmc7XG4gIHNjb3BlS2luZD86IFNjb3BlS2luZDtcbiAgc2NvcGVJZD86IHN0cmluZztcbiAgYXQ/OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc0NvbnRleHQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uc0J5U2NvcGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb246IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgcmVzb3VyY2VHcmFudHM6IEFycmF5PHsgcmVzb3VyY2VJZDogc3RyaW5nOyBwZXJtaXNzaW9uS2V5OiBzdHJpbmcgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJhbmdvQXV0aENvbnRleHQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uS2V5OiBzdHJpbmc7XG4gIGFsbG93ZWRPcmdVbml0SWRzOiBzdHJpbmdbXTtcbiAgYWxsb3dlZFJlc291cmNlSWRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRZHJhbnRBdXRoRmlsdGVyIHtcbiAgbXVzdDogQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICBtdXN0X25vdD86IEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTdG9yYWdlQmluZGluZ0lucHV0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgc3RvcmFnZUtpbmQ6IFN0b3JhZ2VLaW5kO1xuICBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kO1xuICBiaW5kaW5nS2V5OiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBQZXJtaXNzaW9uIHtcbiAga2V5OiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnk7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFJvbGUge1xuICBrZXk6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGVybWlzc2lvbktleXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcE9yZ1VuaXQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb2ZpbGVLZXk/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNoaWxkcmVuPzogQm9vdHN0cmFwT3JnVW5pdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFRlbXBsYXRlIHtcbiAgdGVuYW50OiBDcmVhdGVUZW5hbnRJbnB1dDtcbiAgcm9vdE9yZ1VuaXQ6IEJvb3RzdHJhcE9yZ1VuaXQ7XG4gIHBlcm1pc3Npb25zOiBCb290c3RyYXBQZXJtaXNzaW9uW107XG4gIHJvbGVzOiBCb290c3RyYXBSb2xlW107XG4gIG93bmVyVXNlcjogQ3JlYXRlVXNlcklucHV0O1xuICBvd25lclJvbGVLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVNuYXBzaG90IHtcbiAgaWQ6IHN0cmluZztcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgb3JnVW5pdElkOiBzdHJpbmc7XG4gIHJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHZpc2liaWxpdHk6IFJlc291cmNlVmlzaWJpbGl0eTtcbiAgb3duZXJQcmluY2lwYWxJZD86IHN0cmluZztcbiAgc2Vuc2l0aXZpdHk/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTbmFwc2hvdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHJlc291cmNlSWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG4gIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY3JlYXRlZEJ5UHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90IHtcbiAgaWQ6IHN0cmluZztcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBzY29wZUtpbmQ6IFNjb3BlS2luZDtcbiAgc2NvcGVJZDogc3RyaW5nO1xuICBzb3VyY2VLaW5kOiBzdHJpbmc7XG4gIHNvdXJjZUlkOiBzdHJpbmc7XG4gIHN0YXJ0c0F0PzogRGF0ZTtcbiAgZXhwaXJlc0F0PzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoekRhdGFTb3VyY2VzIHtcbiAgbG9hZFJlc291cmNlPzogKHRlbmFudElkOiBzdHJpbmcsIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxSZXNvdXJjZVNuYXBzaG90IHwgdW5kZWZpbmVkPjtcbiAgbGlzdFJlc291cmNlR3JhbnRzPzogKHRlbmFudElkOiBzdHJpbmcsIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxHcmFudFNuYXBzaG90W10+O1xuICBsaXN0UHJpbmNpcGFsR3JhbnRzPzogKHRlbmFudElkOiBzdHJpbmcsIHByaW5jaXBhbElkOiBzdHJpbmcpID0+IFByb21pc2U8R3JhbnRTbmFwc2hvdFtdPjtcbiAgbGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zPzogKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZ1xuICApID0+IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W10+O1xuICBsaXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLFxuICAgIHNjb3BlSWQ6IHN0cmluZ1xuICApID0+IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W10+O1xufVxuIl19
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Cascade, ModelService } from "@decaf-ts/core";
|
|
2
|
+
import { ScopeKind, } from "./types.js";
|
|
3
|
+
export const REL_RESTRICT = {
|
|
4
|
+
update: Cascade.NONE,
|
|
5
|
+
delete: Cascade.NONE,
|
|
6
|
+
nullable: false,
|
|
7
|
+
};
|
|
8
|
+
export const REL_NULLIFY = {
|
|
9
|
+
update: Cascade.NONE,
|
|
10
|
+
delete: Cascade.NONE,
|
|
11
|
+
nullable: true,
|
|
12
|
+
};
|
|
13
|
+
export const REL_CASCADE_DEPENDENT = {
|
|
14
|
+
update: Cascade.CASCADE,
|
|
15
|
+
delete: Cascade.CASCADE,
|
|
16
|
+
nullable: false,
|
|
17
|
+
};
|
|
18
|
+
export const REL_CASCADE_INSERT_UPDATE = {
|
|
19
|
+
update: Cascade.CASCADE,
|
|
20
|
+
delete: Cascade.NONE,
|
|
21
|
+
nullable: false,
|
|
22
|
+
};
|
|
23
|
+
export function buildArangoContext(options) {
|
|
24
|
+
return {
|
|
25
|
+
tenantId: options.tenantId,
|
|
26
|
+
principalId: options.principalId,
|
|
27
|
+
permissionKey: options.permissionKey,
|
|
28
|
+
allowedOrgUnitIds: [...options.allowedOrgUnitIds],
|
|
29
|
+
allowedResourceIds: [...options.allowedResourceIds],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function buildQdrantFilter(options) {
|
|
33
|
+
return {
|
|
34
|
+
must: [
|
|
35
|
+
{
|
|
36
|
+
key: "tenant_id",
|
|
37
|
+
match: { value: options.tenantId },
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
should: [
|
|
41
|
+
{ key: "org_unit_id", match: { any: options.allowedOrgUnitIds } },
|
|
42
|
+
{ key: "protected_resource_id", match: { any: options.allowedResourceIds } },
|
|
43
|
+
{ key: "owner_principal_id", match: { value: options.principalId } },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function scopeKey(scopeKind, scopeId) {
|
|
50
|
+
return `${scopeKind}:${scopeId}`;
|
|
51
|
+
}
|
|
52
|
+
export function nowIso() {
|
|
53
|
+
return new Date();
|
|
54
|
+
}
|
|
55
|
+
export function asArray(value) {
|
|
56
|
+
return value ?? [];
|
|
57
|
+
}
|
|
58
|
+
export function sameTenant(rowTenant, tenantId) {
|
|
59
|
+
return relationId(rowTenant) === tenantId;
|
|
60
|
+
}
|
|
61
|
+
export function relationMatch(value, target) {
|
|
62
|
+
return target ? relationId(value) === target : false;
|
|
63
|
+
}
|
|
64
|
+
export function lowerSlug(value) {
|
|
65
|
+
return (value
|
|
66
|
+
.trim()
|
|
67
|
+
.toLowerCase()
|
|
68
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
69
|
+
.replace(/^-+|-+$/g, "") || "item");
|
|
70
|
+
}
|
|
71
|
+
export function isTimeValid(at, startsAt, expiresAt) {
|
|
72
|
+
const instant = at ?? new Date();
|
|
73
|
+
if (startsAt && instant < startsAt)
|
|
74
|
+
return false;
|
|
75
|
+
if (expiresAt && instant > expiresAt)
|
|
76
|
+
return false;
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
export function buildAccessContext(options) {
|
|
80
|
+
const permissionsByScope = {};
|
|
81
|
+
const allowedOrgUnitIdsByPermission = {};
|
|
82
|
+
for (const permission of options.permissions) {
|
|
83
|
+
const key = scopeKey(permission.scopeKind, permission.scopeId);
|
|
84
|
+
permissionsByScope[key] = permissionsByScope[key] ?? [];
|
|
85
|
+
permissionsByScope[key].push(permission.permissionKey);
|
|
86
|
+
if (permission.scopeKind === ScopeKind.OrgUnit) {
|
|
87
|
+
allowedOrgUnitIdsByPermission[permission.permissionKey] =
|
|
88
|
+
allowedOrgUnitIdsByPermission[permission.permissionKey] ?? [];
|
|
89
|
+
allowedOrgUnitIdsByPermission[permission.permissionKey].push(permission.scopeId);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
tenantId: options.tenantId,
|
|
94
|
+
principalId: options.principalId,
|
|
95
|
+
permissionsByScope,
|
|
96
|
+
allowedOrgUnitIdsByPermission,
|
|
97
|
+
resourceGrants: options.grants.map((grant) => ({
|
|
98
|
+
resourceId: grant.resourceId,
|
|
99
|
+
permissionKey: grant.permissionKey,
|
|
100
|
+
})),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export class BaseModelService extends ModelService {
|
|
104
|
+
constructor(clazz) {
|
|
105
|
+
super(clazz);
|
|
106
|
+
}
|
|
107
|
+
newModel(clazz, data) {
|
|
108
|
+
return Object.assign(new clazz(), data);
|
|
109
|
+
}
|
|
110
|
+
async create(data, ...args) {
|
|
111
|
+
return this.repo.create(Object.assign({}, data), ...args);
|
|
112
|
+
}
|
|
113
|
+
async createOne(data, ...args) {
|
|
114
|
+
return this.create(data, ...args);
|
|
115
|
+
}
|
|
116
|
+
async getById(id, ...args) {
|
|
117
|
+
return this.repo.read(id, ...args);
|
|
118
|
+
}
|
|
119
|
+
async updateOne(id, patch, ...args) {
|
|
120
|
+
const existing = await this.repo.read(id, ...args);
|
|
121
|
+
return this.repo.update(Object.assign(existing, patch), ...args);
|
|
122
|
+
}
|
|
123
|
+
async deleteById(id, ...args) {
|
|
124
|
+
await this.repo.delete(id, ...args);
|
|
125
|
+
}
|
|
126
|
+
async findOneBy(key, value, ...args) {
|
|
127
|
+
return this.repo.findOneBy(key, value, ...args);
|
|
128
|
+
}
|
|
129
|
+
async findManyBy(key, value, ...args) {
|
|
130
|
+
return this.repo.select().where({ [key]: value }).execute(...args);
|
|
131
|
+
}
|
|
132
|
+
async listAll(...args) {
|
|
133
|
+
return this.repo.select().execute(...args);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export function id() {
|
|
137
|
+
return crypto.randomUUID();
|
|
138
|
+
}
|
|
139
|
+
export function relationId(value) {
|
|
140
|
+
return typeof value === "string" ? value : value.id;
|
|
141
|
+
}
|
|
142
|
+
export { AuthorizationError, transactional } from "@decaf-ts/core";
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RixPQUFPLEVBT0wsU0FBUyxHQUNWLG1CQUFnQjtBQUVqQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0lBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSTtJQUNwQixRQUFRLEVBQUUsS0FBSztDQUNQLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0lBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSTtJQUNwQixRQUFRLEVBQUUsSUFBSTtDQUNOLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU87SUFDdkIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPO0lBQ3ZCLFFBQVEsRUFBRSxLQUFLO0NBQ1AsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTztJQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUk7SUFDcEIsUUFBUSxFQUFFLEtBQUs7Q0FDUCxDQUFDO0FBRVgsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BTWxDO0lBQ0MsT0FBTztRQUNMLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7UUFDaEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQ3BDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDakQsa0JBQWtCLEVB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QUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBVztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLEVBQUU7SUFDaEIsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBOEI7SUFDdkQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBDYXNjYWRlLCBNb2RlbFNlcnZpY2UsIFJlcG9zaXRvcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgQWNjZXNzQ29udGV4dCxcbiAgQXJhbmdvQXV0aENvbnRleHQsXG4gIEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdCxcbiAgR3JhbnRTbmFwc2hvdCxcbiAgUWRyYW50QXV0aEZpbHRlcixcbiAgUmVzb3VyY2VWaXNpYmlsaXR5LFxuICBTY29wZUtpbmQsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRUxfUkVTVFJJQ1QgPSB7XG4gIHVwZGF0ZTogQ2FzY2FkZS5OT05FLFxuICBkZWxldGU6IENhc2NhZGUuTk9ORSxcbiAgbnVsbGFibGU6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFJFTF9OVUxMSUZZID0ge1xuICB1cGRhdGU6IENhc2NhZGUuTk9ORSxcbiAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gIG51bGxhYmxlOiB0cnVlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFJFTF9DQVNDQURFX0RFUEVOREVOVCA9IHtcbiAgdXBkYXRlOiBDYXNjYWRlLkNBU0NBREUsXG4gIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICBudWxsYWJsZTogZmFsc2UsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgUkVMX0NBU0NBREVfSU5TRVJUX1VQREFURSA9IHtcbiAgdXBkYXRlOiBDYXNjYWRlLkNBU0NBREUsXG4gIGRlbGV0ZTogQ2FzY2FkZS5OT05FLFxuICBudWxsYWJsZTogZmFsc2UsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBcmFuZ29Db250ZXh0KG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogQXJhbmdvQXV0aENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIHRlbmFudElkOiBvcHRpb25zLnRlbmFudElkLFxuICAgIHByaW5jaXBhbElkOiBvcHRpb25zLnByaW5jaXBhbElkLFxuICAgIHBlcm1pc3Npb25LZXk6IG9wdGlvbnMucGVybWlzc2lvbktleSxcbiAgICBhbGxvd2VkT3JnVW5pdElkczogWy4uLm9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHNdLFxuICAgIGFsbG93ZWRSZXNvdXJjZUlkczogWy4uLm9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUWRyYW50RmlsdGVyKG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogUWRyYW50QXV0aEZpbHRlciB7XG4gIHJldHVybiB7XG4gICAgbXVzdDogW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVuYW50X2lkXCIsXG4gICAgICAgIG1hdGNoOiB7IHZhbHVlOiBvcHRpb25zLnRlbmFudElkIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzaG91bGQ6IFtcbiAgICAgICAgICB7IGtleTogXCJvcmdfdW5pdF9pZFwiLCBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHMgfSB9LFxuICAgICAgICAgIHsga2V5OiBcInByb3RlY3RlZF9yZXNvdXJjZV9pZFwiLCBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzIH0gfSxcbiAgICAgICAgICB7IGtleTogXCJvd25lcl9wcmluY2lwYWxfaWRcIiwgbWF0Y2g6IHsgdmFsdWU6IG9wdGlvbnMucHJpbmNpcGFsSWQgfSB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzY29wZUtleShzY29wZUtpbmQ6IFNjb3BlS2luZCwgc2NvcGVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Njb3BlS2luZH06JHtzY29wZUlkfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3dJc28oKTogRGF0ZSB7XG4gIHJldHVybiBuZXcgRGF0ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNBcnJheTxUPih2YWx1ZTogVFtdIHwgdW5kZWZpbmVkKTogVFtdIHtcbiAgcmV0dXJuIHZhbHVlID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FtZVRlbmFudChyb3dUZW5hbnQ6IHVua25vd24sIHRlbmFudElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlbGF0aW9uSWQocm93VGVuYW50IGFzIHsgaWQ6IHN0cmluZyB9IHwgc3RyaW5nKSA9PT0gdGVuYW50SWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGlvbk1hdGNoKHZhbHVlOiB1bmtub3duLCB0YXJnZXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdGFyZ2V0ID8gcmVsYXRpb25JZCh2YWx1ZSBhcyB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZykgPT09IHRhcmdldCA6IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJTbHVnKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHZhbHVlXG4gICAgICAudHJpbSgpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgXCItXCIpXG4gICAgICAucmVwbGFjZSgvXi0rfC0rJC9nLCBcIlwiKSB8fCBcIml0ZW1cIlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUaW1lVmFsaWQoYXQ6IERhdGUgfCB1bmRlZmluZWQsIHN0YXJ0c0F0PzogRGF0ZSwgZXhwaXJlc0F0PzogRGF0ZSk6IGJvb2xlYW4ge1xuICBjb25zdCBpbnN0YW50ID0gYXQgPz8gbmV3IERhdGUoKTtcbiAgaWYgKHN0YXJ0c0F0ICYmIGluc3RhbnQgPCBzdGFydHNBdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoZXhwaXJlc0F0ICYmIGluc3RhbnQgPiBleHBpcmVzQXQpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFjY2Vzc0NvbnRleHQob3B0aW9uczoge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W107XG4gIGdyYW50czogR3JhbnRTbmFwc2hvdFtdO1xufSk6IEFjY2Vzc0NvbnRleHQge1xuICBjb25zdCBwZXJtaXNzaW9uc0J5U2NvcGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBjb25zdCBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cbiAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIG9wdGlvbnMucGVybWlzc2lvbnMpIHtcbiAgICBjb25zdCBrZXkgPSBzY29wZUtleShwZXJtaXNzaW9uLnNjb3BlS2luZCwgcGVybWlzc2lvbi5zY29wZUlkKTtcbiAgICBwZXJtaXNzaW9uc0J5U2NvcGVba2V5XSA9IHBlcm1pc3Npb25zQnlTY29wZVtrZXldID8/IFtdO1xuICAgIHBlcm1pc3Npb25zQnlTY29wZVtrZXldLnB1c2gocGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5KTtcbiAgICBpZiAocGVybWlzc2lvbi5zY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0KSB7XG4gICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXldID1cbiAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb24ucGVybWlzc2lvbktleV0ucHVzaChwZXJtaXNzaW9uLnNjb3BlSWQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgcHJpbmNpcGFsSWQ6IG9wdGlvbnMucHJpbmNpcGFsSWQsXG4gICAgcGVybWlzc2lvbnNCeVNjb3BlLFxuICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uLFxuICAgICAgcmVzb3VyY2VHcmFudHM6IG9wdGlvbnMuZ3JhbnRzLm1hcCgoZ3JhbnQpID0+ICh7XG4gICAgICAgIHJlc291cmNlSWQ6IGdyYW50LnJlc291cmNlSWQsXG4gICAgICAgIHBlcm1pc3Npb25LZXk6IGdyYW50LnBlcm1pc3Npb25LZXksXG4gICAgICB9KSksXG4gIH07XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWxTZXJ2aWNlPE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPiAmIHsgaWQ6IHN0cmluZyB9PiBleHRlbmRzIE1vZGVsU2VydmljZTxcbiAgTSxcbiAgUmVwb3NpdG9yeTxNLCBhbnk+XG4+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXp6OiBuZXcgKCkgPT4gTSkge1xuICAgIHN1cGVyKGNsYXp6KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXdNb2RlbDxUPihjbGF6ejogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgY2xhenooKSBhcyBvYmplY3QsIGRhdGEgYXMgb2JqZWN0KSBhcyBUO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGRhdGE6IFBhcnRpYWw8TT4sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5jcmVhdGUoT2JqZWN0LmFzc2lnbih7fSBhcyBNLCBkYXRhIGFzIG9iamVjdCksIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlT25lKGRhdGE6IFBhcnRpYWw8TT4sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGRhdGEsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChpZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZChpZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPbmUoaWQ6IHN0cmluZywgcGF0Y2g6IFBhcnRpYWw8TT4sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZChpZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGUoT2JqZWN0LmFzc2lnbihleGlzdGluZywgcGF0Y2gpLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUJ5SWQoaWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlcG8uZGVsZXRlKGlkLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmVCeTxLIGV4dGVuZHMga2V5b2YgTSAmIHN0cmluZz4oa2V5OiBLLCB2YWx1ZTogTVtLXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRNYW55Qnk8SyBleHRlbmRzIGtleW9mIE0gJiBzdHJpbmc+KGtleTogSywgdmFsdWU6IE1bS10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnNlbGVjdCgpLndoZXJlKHsgW2tleV06IHZhbHVlIH0gYXMgYW55KS5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdEFsbCguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zZWxlY3QoKS5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZCgpOiBzdHJpbmcge1xuICByZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aW9uSWQodmFsdWU6IHN0cmluZyB8IHsgaWQ6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUuaWQ7XG59XG5cbmV4cG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgdHJhbnNhY3Rpb25hbCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuIl19
|
|
@@ -19,6 +19,9 @@ export class AuthService {
|
|
|
19
19
|
this.clockToleranceSeconds = options.clockToleranceSeconds ?? 5;
|
|
20
20
|
this.excludedClients = options.excludedClients ?? ["account"];
|
|
21
21
|
}
|
|
22
|
+
isTokenVerificationEnabled() {
|
|
23
|
+
return this.verifyToken;
|
|
24
|
+
}
|
|
22
25
|
getTokenPayload(jwt) {
|
|
23
26
|
return getTokenPayload(jwt);
|
|
24
27
|
}
|
|
@@ -80,4 +83,4 @@ export class AuthService {
|
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmVzdC9hdXRoU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsT0FBTyxFQUNQLGNBQWMsR0FDZixtQkFBZ0I7QUErQmpCLE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQVksVUFBOEIsRUFBRTtRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3pCLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUEwQztRQUM3RCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FDaEIsT0FBMEM7UUFFMUMsT0FBTyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBVztRQUM1QixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLEdBQVc7UUFFWCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsaUJBQWlCLENBQzdCLEdBQVc7UUFFWCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNsRCxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEdBQUc7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxPQUFnRCxDQUFDO1FBQzFELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9uZXN0L2F1dGhTZXJ2aWNlXG4gKiBAc3VtbWFyeSBOZXN0LWNvbXBhdGlibGUgYXV0aGVudGljYXRpb24gc2VydmljZSBoZWxwZXJzLlxuICogQGRlc2NyaXB0aW9uIFJlcXVlc3QtY29udGV4dC1hd2FyZSBhdXRoIGhlbHBlcnMgZm9yIE5lc3QgYXBwbGljYXRpb25zIHVzaW5nIERlY2FmIGludGVncmF0aW9uIHBhdHRlcm5zLlxuICpcbiAqIFN1cHBvcnRzIHR3byBtb2RlczpcbiAqIC0gKipWZXJpZnkgbW9kZSoqIChkZWZhdWx0IHdoZW4gYHZlcmlmeVVybGAgaXMgc2V0KTogdmFsaWRhdGVzIHRoZSBKV1Qgc2lnbmF0dXJlXG4gKiAgIGFnYWluc3QgdGhlIEtleWNsb2FrIEpXS1MgZW5kcG9pbnQgdXNpbmcgYGpvc2Uuand0VmVyaWZ5YC5cbiAqIC0gKipEZWNvZGUtb25seSBtb2RlKiogKHdoZW4gYHZlcmlmeVRva2VuYCBpcyBmYWxzZSAvIGB2ZXJpZnlVcmxgIGlzIGVtcHR5KTpcbiAqICAgZGVjb2RlcyB0aGUgSldUIHdpdGhvdXQgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiAoZGV2L2xvY2FsIG1vZGUpLlxuICovXG5pbXBvcnQgeyBBdXRob3JpemF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IGNyZWF0ZVJlbW90ZUpXS1NldCwgand0VmVyaWZ5IH0gZnJvbSBcImpvc2VcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RLZXljbG9ha1JvbGVzLFxuICBnZXRSZWFsbUZyb21Jc3N1ZXIsXG4gIGdldFRva2VuUGF5bG9hZCxcbiAgZ2V0VXNlcixcbiAgZ2V0Q2xpZW50Um9sZXMsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWNsb2FrQWNjZXNzVG9rZW5QYXlsb2FkLCBLZXljbG9ha1VzZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgQXV0aFNlcnZpY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhTZXJ2aWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZlcmlmeSB0aGUgSldUIHNpZ25hdHVyZSBhZ2FpbnN0IHRoZSBLZXljbG9hayBKV0tTIGVuZHBvaW50LlxuICAgKiBXaGVuIGBmYWxzZWAgKG9yIGB2ZXJpZnlVcmxgIGlzIGVtcHR5KSwgdG9rZW5zIGFyZSBkZWNvZGVkIHdpdGhvdXRcbiAgICogc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiAoZGV2L2xvY2FsIG1vZGUgb25seSkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICB2ZXJpZnlUb2tlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgS2V5Y2xvYWsgSldLUyBVUkwgKGUuZy4gYGh0dHBzOi8va2V5Y2xvYWsvcmVhbG1zL215cmVhbG0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHNgKS5cbiAgICogUmVxdWlyZWQgd2hlbiBgdmVyaWZ5VG9rZW5gIGlzIGB0cnVlYC5cbiAgICovXG4gIHZlcmlmeVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIENsb2NrIHRvbGVyYW5jZSBmb3IgSldUIGV4cGlyeSB2ZXJpZmljYXRpb24gKGluIHNlY29uZHMpLlxuICAgKiBAZGVmYXVsdCA1XG4gICAqL1xuICBjbG9ja1RvbGVyYW5jZVNlY29uZHM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBLZXljbG9hayBjbGllbnQgSURzIHRvIGV4Y2x1ZGUgd2hlbiBleHRyYWN0aW5nIHJvbGVzIGZyb20gYHJlc291cmNlX2FjY2Vzc2AuXG4gICAqIEBkZWZhdWx0IFtcImFjY291bnRcIl1cbiAgICovXG4gIGV4Y2x1ZGVkQ2xpZW50cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcmlmeVRva2VuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcmlmeVVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNsb2NrVG9sZXJhbmNlU2Vjb25kczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGVkQ2xpZW50czogc3RyaW5nW107XG4gIHByaXZhdGUgandrczogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlUmVtb3RlSldLU2V0PiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBdXRoU2VydmljZU9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMudmVyaWZ5VG9rZW4gPSAhIW9wdGlvbnMudmVyaWZ5VG9rZW4gJiYgISFvcHRpb25zLnZlcmlmeVVybDtcbiAgICB0aGlzLnZlcmlmeVVybCA9IG9wdGlvbnMudmVyaWZ5VXJsID8/IFwiXCI7XG4gICAgdGhpcy5jbG9ja1RvbGVyYW5jZVNlY29uZHMgPSBvcHRpb25zLmNsb2NrVG9sZXJhbmNlU2Vjb25kcyA/PyA1O1xuICAgIHRoaXMuZXhjbHVkZWRDbGllbnRzID0gb3B0aW9ucy5leGNsdWRlZENsaWVudHMgPz8gW1wiYWNjb3VudFwiXTtcbiAgfVxuXG4gIGlzVG9rZW5WZXJpZmljYXRpb25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZlcmlmeVRva2VuO1xuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkKGp3dDogc3RyaW5nKTogS2V5Y2xvYWtBY2Nlc3NUb2tlblBheWxvYWQgfCBudWxsIHtcbiAgICByZXR1cm4gZ2V0VG9rZW5QYXlsb2FkKGp3dCk7XG4gIH1cblxuICBnZXRSb2xlcyhqd3Q6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0S2V5Y2xvYWtSb2xlcyh0aGlzLmdldFRva2VuUGF5bG9hZChqd3QpKTtcbiAgfVxuXG4gIGdldFVzZXIoand0OiBzdHJpbmcpOiBLZXljbG9ha1VzZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRVc2VyKGp3dCk7XG4gIH1cblxuICBleHRyYWN0S2V5Y2xvYWtSb2xlcyhwYXlsb2FkOiBLZXljbG9ha0FjY2Vzc1Rva2VuUGF5bG9hZCB8IG51bGwpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGV4dHJhY3RLZXljbG9ha1JvbGVzKHBheWxvYWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGNsaWVudCByb2xlcyBmcm9tIHRoZSBgcmVzb3VyY2VfYWNjZXNzYCBjbGFpbSwgZXhjbHVkaW5nXG4gICAqIHRoZSBjb25maWd1cmVkIGBleGNsdWRlZENsaWVudHNgIChkZWZhdWx0OiBgW1wiYWNjb3VudFwiXWApLlxuICAgKi9cbiAgZXh0cmFjdENsaWVudFJvbGVzKFxuICAgIHBheWxvYWQ6IEtleWNsb2FrQWNjZXNzVG9rZW5QYXlsb2FkIHwgbnVsbFxuICApOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGdldENsaWVudFJvbGVzKHBheWxvYWQsIHRoaXMuZXhjbHVkZWRDbGllbnRzKTtcbiAgfVxuXG4gIGdldFJlYWxtRnJvbUlzc3Vlcihqd3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldFJlYWxtRnJvbUlzc3Vlcihqd3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhIEpXVDpcbiAgICogLSBJbiAqKnZlcmlmeSBtb2RlKio6IHZlcmlmaWVzIHRoZSBzaWduYXR1cmUgYWdhaW5zdCB0aGUgS2V5Y2xvYWsgSldLU1xuICAgKiAgIGVuZHBvaW50IHVzaW5nIGBqb3NlLmp3dFZlcmlmeWAsIHRoZW4gcmV0dXJucyB0aGUgdmVyaWZpZWQgcGF5bG9hZC5cbiAgICogLSBJbiAqKmRlY29kZS1vbmx5IG1vZGUqKjogZGVjb2RlcyB0aGUgSldUIHdpdGhvdXQgdmVyaWZpY2F0aW9uIGFuZFxuICAgKiAgIHJldHVybnMgdGhlIHBheWxvYWQgKG9yIHRocm93cyBpZiB1bnBhcnNlYWJsZSkuXG4gICAqXG4gICAqIEB0aHJvd3Mge0F1dGhvcml6YXRpb25FcnJvcn0gd2hlbiB0aGUgdG9rZW4gaXMgaW52YWxpZCwgZXhwaXJlZCwgb3JcbiAgICogICBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgYXNzZXJ0VmFsaWRUb2tlbihcbiAgICBqd3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNsb2FrQWNjZXNzVG9rZW5QYXlsb2FkPiB7XG4gICAgaWYgKHRoaXMudmVyaWZ5VG9rZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnZlcmlmeUFnYWluc3RKd2tzKGp3dCk7XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmdldFRva2VuUGF5bG9hZChqd3QpO1xuICAgIGlmICghcGF5bG9hZCkge1xuICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcIkludmFsaWQgdG9rZW5cIik7XG4gICAgfVxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBKV1Qgc2lnbmF0dXJlIGFnYWluc3QgdGhlIEtleWNsb2FrIEpXS1MgZW5kcG9pbnQuXG4gICAqIExhemlseSBjcmVhdGVzIHRoZSBKV0tTIGtleXN0b3JlIG9uIGZpcnN0IGNhbGwuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHZlcmlmeUFnYWluc3RKd2tzKFxuICAgIGp3dDogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2xvYWtBY2Nlc3NUb2tlblBheWxvYWQ+IHtcbiAgICBpZiAoIXRoaXMuandrcykge1xuICAgICAgdGhpcy5qd2tzID0gY3JlYXRlUmVtb3RlSldLU2V0KG5ldyBVUkwodGhpcy52ZXJpZnlVcmwpKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gYXdhaXQgand0VmVyaWZ5KGp3dCwgdGhpcy5qd2tzLCB7XG4gICAgICAgIGNsb2NrVG9sZXJhbmNlOiBgJHt0aGlzLmNsb2NrVG9sZXJhbmNlU2Vjb25kc31zYCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHBheWxvYWQgYXMgdW5rbm93biBhcyBLZXljbG9ha0FjY2Vzc1Rva2VuUGF5bG9hZDtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXCJJbnZhbGlkIHRva2VuOiBcIiArIChlPy5tZXNzYWdlID8/IGUpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|