@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.
Files changed (272) hide show
  1. package/dist/integrations.cjs +1608 -7
  2. package/dist/integrations.js +1841 -5
  3. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +13 -5
  4. package/lib/cjs/graph/nodes/base.cjs +35 -0
  5. package/lib/cjs/graph/nodes/flow-control.cjs +31 -3
  6. package/lib/cjs/graph/nodes/index.cjs +3 -2
  7. package/lib/cjs/graph/types.cjs +2 -2
  8. package/lib/cjs/index.cjs +6 -5
  9. package/lib/cjs/namespaces/index.cjs +26 -0
  10. package/lib/cjs/namespaces/models/authorization-model.cjs +12 -0
  11. package/lib/cjs/namespaces/models/effective-permission.model.cjs +95 -0
  12. package/lib/cjs/namespaces/models/group-membership.model.cjs +66 -0
  13. package/lib/cjs/namespaces/models/group.model.cjs +74 -0
  14. package/lib/cjs/namespaces/models/index.cjs +39 -0
  15. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +76 -0
  16. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +66 -0
  17. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +73 -0
  18. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +64 -0
  19. package/lib/cjs/namespaces/models/org-unit.model.cjs +102 -0
  20. package/lib/cjs/namespaces/models/permission.model.cjs +64 -0
  21. package/lib/cjs/namespaces/models/principal.model.cjs +77 -0
  22. package/lib/cjs/namespaces/models/protected-resource.model.cjs +99 -0
  23. package/lib/cjs/namespaces/models/resource-grant.model.cjs +88 -0
  24. package/lib/cjs/namespaces/models/role-assignment.model.cjs +98 -0
  25. package/lib/cjs/namespaces/models/role-permission.model.cjs +55 -0
  26. package/lib/cjs/namespaces/models/role.model.cjs +84 -0
  27. package/lib/cjs/namespaces/models/storage-binding.model.cjs +85 -0
  28. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +67 -0
  29. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +64 -0
  30. package/lib/cjs/namespaces/models/tenant.model.cjs +88 -0
  31. package/lib/cjs/namespaces/models/user.model.cjs +75 -0
  32. package/lib/cjs/namespaces/org-based-authorization-system.cjs +286 -0
  33. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +968 -0
  34. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +1046 -0
  35. package/lib/cjs/namespaces/services/authz.service.cjs +76 -0
  36. package/lib/cjs/namespaces/services/bootstrap.service.cjs +112 -0
  37. package/lib/cjs/namespaces/services/effective-permission.service.cjs +150 -0
  38. package/lib/cjs/namespaces/services/group-membership.service.cjs +42 -0
  39. package/lib/cjs/namespaces/services/group.service.cjs +30 -0
  40. package/lib/cjs/namespaces/services/index.cjs +42 -0
  41. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +32 -0
  42. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +55 -0
  43. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +34 -0
  44. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +23 -0
  45. package/lib/cjs/namespaces/services/org-unit.service.cjs +160 -0
  46. package/lib/cjs/namespaces/services/permission.service.cjs +29 -0
  47. package/lib/cjs/namespaces/services/principal.service.cjs +35 -0
  48. package/lib/cjs/namespaces/services/protected-resource.service.cjs +43 -0
  49. package/lib/cjs/namespaces/services/resource-grant.service.cjs +45 -0
  50. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +24 -0
  51. package/lib/cjs/namespaces/services/role-assignment.service.cjs +41 -0
  52. package/lib/cjs/namespaces/services/role-permission.service.cjs +51 -0
  53. package/lib/cjs/namespaces/services/role.service.cjs +45 -0
  54. package/lib/cjs/namespaces/services/storage-binding.service.cjs +39 -0
  55. package/lib/cjs/namespaces/services/system-management.service.cjs +102 -0
  56. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +33 -0
  57. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +28 -0
  58. package/lib/cjs/namespaces/services/tenant.service.cjs +36 -0
  59. package/lib/cjs/namespaces/services/user.service.cjs +32 -0
  60. package/lib/cjs/namespaces/types.cjs +67 -0
  61. package/lib/cjs/namespaces/utils.cjs +161 -0
  62. package/lib/cjs/nest/authService.cjs +5 -2
  63. package/lib/cjs/nest/graph/GraphExecutionController.cjs +153 -0
  64. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +84 -0
  65. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +82 -0
  66. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +66 -0
  67. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +35 -0
  68. package/lib/cjs/nest/graph/index.cjs +28 -0
  69. package/lib/cjs/nest/index.cjs +3 -2
  70. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +12 -4
  71. package/lib/esm/graph/nodes/base.js +30 -0
  72. package/lib/esm/graph/nodes/flow-control.js +31 -3
  73. package/lib/esm/graph/nodes/index.js +2 -1
  74. package/lib/esm/graph/types.js +1 -1
  75. package/lib/esm/index.js +5 -4
  76. package/lib/esm/namespaces/index.js +9 -0
  77. package/lib/esm/namespaces/models/authorization-model.js +7 -0
  78. package/lib/esm/namespaces/models/effective-permission.model.js +86 -0
  79. package/lib/esm/namespaces/models/group-membership.model.js +57 -0
  80. package/lib/esm/namespaces/models/group.model.js +65 -0
  81. package/lib/esm/namespaces/models/index.js +22 -0
  82. package/lib/esm/namespaces/models/inheritance-block.model.js +67 -0
  83. package/lib/esm/namespaces/models/org-unit-closure.model.js +57 -0
  84. package/lib/esm/namespaces/models/org-unit-membership.model.js +64 -0
  85. package/lib/esm/namespaces/models/org-unit-profile.model.js +55 -0
  86. package/lib/esm/namespaces/models/org-unit.model.js +93 -0
  87. package/lib/esm/namespaces/models/permission.model.js +55 -0
  88. package/lib/esm/namespaces/models/principal.model.js +68 -0
  89. package/lib/esm/namespaces/models/protected-resource.model.js +90 -0
  90. package/lib/esm/namespaces/models/resource-grant.model.js +79 -0
  91. package/lib/esm/namespaces/models/role-assignment.model.js +89 -0
  92. package/lib/esm/namespaces/models/role-permission.model.js +46 -0
  93. package/lib/esm/namespaces/models/role.model.js +75 -0
  94. package/lib/esm/namespaces/models/storage-binding.model.js +76 -0
  95. package/lib/esm/namespaces/models/tenant-membership.model.js +58 -0
  96. package/lib/esm/namespaces/models/tenant-profile.model.js +55 -0
  97. package/lib/esm/namespaces/models/tenant.model.js +79 -0
  98. package/lib/esm/namespaces/models/user.model.js +66 -0
  99. package/lib/esm/namespaces/org-based-authorization-system.js +283 -0
  100. package/lib/esm/namespaces/org-based-authorization-system.models.js +958 -0
  101. package/lib/esm/namespaces/org-based-authorization-system.services.js +1014 -0
  102. package/lib/esm/namespaces/services/authz.service.js +71 -0
  103. package/lib/esm/namespaces/services/bootstrap.service.js +102 -0
  104. package/lib/esm/namespaces/services/effective-permission.service.js +140 -0
  105. package/lib/esm/namespaces/services/group-membership.service.js +37 -0
  106. package/lib/esm/namespaces/services/group.service.js +25 -0
  107. package/lib/esm/namespaces/services/index.js +25 -0
  108. package/lib/esm/namespaces/services/inheritance-block.service.js +27 -0
  109. package/lib/esm/namespaces/services/org-unit-closure.service.js +50 -0
  110. package/lib/esm/namespaces/services/org-unit-membership.service.js +29 -0
  111. package/lib/esm/namespaces/services/org-unit-profile.service.js +18 -0
  112. package/lib/esm/namespaces/services/org-unit.service.js +150 -0
  113. package/lib/esm/namespaces/services/permission.service.js +24 -0
  114. package/lib/esm/namespaces/services/principal.service.js +30 -0
  115. package/lib/esm/namespaces/services/protected-resource.service.js +38 -0
  116. package/lib/esm/namespaces/services/resource-grant.service.js +40 -0
  117. package/lib/esm/namespaces/services/resource-lifecycle.service.js +19 -0
  118. package/lib/esm/namespaces/services/role-assignment.service.js +36 -0
  119. package/lib/esm/namespaces/services/role-permission.service.js +46 -0
  120. package/lib/esm/namespaces/services/role.service.js +40 -0
  121. package/lib/esm/namespaces/services/storage-binding.service.js +34 -0
  122. package/lib/esm/namespaces/services/system-management.service.js +92 -0
  123. package/lib/esm/namespaces/services/tenant-membership.service.js +28 -0
  124. package/lib/esm/namespaces/services/tenant-profile.service.js +23 -0
  125. package/lib/esm/namespaces/services/tenant.service.js +31 -0
  126. package/lib/esm/namespaces/services/user.service.js +27 -0
  127. package/lib/esm/namespaces/types.js +71 -0
  128. package/lib/esm/namespaces/utils.js +143 -0
  129. package/lib/esm/nest/authService.js +4 -1
  130. package/lib/esm/nest/graph/GraphExecutionController.js +144 -0
  131. package/lib/esm/nest/graph/GraphExecutionModule.js +76 -0
  132. package/lib/esm/nest/graph/GraphExecutionResultModel.js +73 -0
  133. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +60 -0
  134. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +31 -0
  135. package/lib/esm/nest/graph/index.js +11 -0
  136. package/lib/esm/nest/index.js +2 -1
  137. package/lib/types/graph/nodes/base.d.cts +28 -0
  138. package/lib/types/graph/nodes/base.d.mts +28 -0
  139. package/lib/types/graph/nodes/flow-control.d.cts +9 -1
  140. package/lib/types/graph/nodes/flow-control.d.mts +9 -1
  141. package/lib/types/graph/nodes/index.d.cts +1 -0
  142. package/lib/types/graph/nodes/index.d.mts +1 -0
  143. package/lib/types/graph/types.d.cts +15 -1
  144. package/lib/types/graph/types.d.mts +15 -1
  145. package/lib/types/index.d.cts +3 -2
  146. package/lib/types/index.d.mts +3 -2
  147. package/lib/types/namespaces/index.d.cts +8 -0
  148. package/lib/types/namespaces/index.d.mts +8 -0
  149. package/lib/types/namespaces/models/authorization-model.d.cts +4 -0
  150. package/lib/types/namespaces/models/authorization-model.d.mts +4 -0
  151. package/lib/types/namespaces/models/effective-permission.model.d.cts +18 -0
  152. package/lib/types/namespaces/models/effective-permission.model.d.mts +18 -0
  153. package/lib/types/namespaces/models/group-membership.model.d.cts +13 -0
  154. package/lib/types/namespaces/models/group-membership.model.d.mts +13 -0
  155. package/lib/types/namespaces/models/group.model.d.cts +15 -0
  156. package/lib/types/namespaces/models/group.model.d.mts +15 -0
  157. package/lib/types/namespaces/models/index.d.cts +21 -0
  158. package/lib/types/namespaces/models/index.d.mts +21 -0
  159. package/lib/types/namespaces/models/inheritance-block.model.d.cts +15 -0
  160. package/lib/types/namespaces/models/inheritance-block.model.d.mts +15 -0
  161. package/lib/types/namespaces/models/org-unit-closure.model.d.cts +12 -0
  162. package/lib/types/namespaces/models/org-unit-closure.model.d.mts +12 -0
  163. package/lib/types/namespaces/models/org-unit-membership.model.d.cts +15 -0
  164. package/lib/types/namespaces/models/org-unit-membership.model.d.mts +15 -0
  165. package/lib/types/namespaces/models/org-unit-profile.model.d.cts +11 -0
  166. package/lib/types/namespaces/models/org-unit-profile.model.d.mts +11 -0
  167. package/lib/types/namespaces/models/org-unit.model.d.cts +23 -0
  168. package/lib/types/namespaces/models/org-unit.model.d.mts +23 -0
  169. package/lib/types/namespaces/models/permission.model.d.cts +11 -0
  170. package/lib/types/namespaces/models/permission.model.d.mts +11 -0
  171. package/lib/types/namespaces/models/principal.model.d.cts +16 -0
  172. package/lib/types/namespaces/models/principal.model.d.mts +16 -0
  173. package/lib/types/namespaces/models/protected-resource.model.d.cts +21 -0
  174. package/lib/types/namespaces/models/protected-resource.model.d.mts +21 -0
  175. package/lib/types/namespaces/models/resource-grant.model.d.cts +18 -0
  176. package/lib/types/namespaces/models/resource-grant.model.d.mts +18 -0
  177. package/lib/types/namespaces/models/role-assignment.model.d.cts +20 -0
  178. package/lib/types/namespaces/models/role-assignment.model.d.mts +20 -0
  179. package/lib/types/namespaces/models/role-permission.model.d.cts +10 -0
  180. package/lib/types/namespaces/models/role-permission.model.d.mts +10 -0
  181. package/lib/types/namespaces/models/role.model.d.cts +17 -0
  182. package/lib/types/namespaces/models/role.model.d.mts +17 -0
  183. package/lib/types/namespaces/models/storage-binding.model.d.cts +15 -0
  184. package/lib/types/namespaces/models/storage-binding.model.d.mts +15 -0
  185. package/lib/types/namespaces/models/tenant-membership.model.d.cts +13 -0
  186. package/lib/types/namespaces/models/tenant-membership.model.d.mts +13 -0
  187. package/lib/types/namespaces/models/tenant-profile.model.d.cts +11 -0
  188. package/lib/types/namespaces/models/tenant-profile.model.d.mts +11 -0
  189. package/lib/types/namespaces/models/tenant.model.d.cts +19 -0
  190. package/lib/types/namespaces/models/tenant.model.d.mts +19 -0
  191. package/lib/types/namespaces/models/user.model.d.cts +14 -0
  192. package/lib/types/namespaces/models/user.model.d.mts +14 -0
  193. package/lib/types/namespaces/org-based-authorization-system.d.cts +299 -0
  194. package/lib/types/namespaces/org-based-authorization-system.d.mts +299 -0
  195. package/lib/types/namespaces/org-based-authorization-system.models.d.cts +212 -0
  196. package/lib/types/namespaces/org-based-authorization-system.models.d.mts +212 -0
  197. package/lib/types/namespaces/org-based-authorization-system.services.d.cts +217 -0
  198. package/lib/types/namespaces/org-based-authorization-system.services.d.mts +217 -0
  199. package/lib/types/namespaces/services/authz.service.d.cts +10 -0
  200. package/lib/types/namespaces/services/authz.service.d.mts +10 -0
  201. package/lib/types/namespaces/services/bootstrap.service.d.cts +21 -0
  202. package/lib/types/namespaces/services/bootstrap.service.d.mts +21 -0
  203. package/lib/types/namespaces/services/effective-permission.service.d.cts +13 -0
  204. package/lib/types/namespaces/services/effective-permission.service.d.mts +13 -0
  205. package/lib/types/namespaces/services/group-membership.service.d.cts +10 -0
  206. package/lib/types/namespaces/services/group-membership.service.d.mts +10 -0
  207. package/lib/types/namespaces/services/group.service.d.cts +9 -0
  208. package/lib/types/namespaces/services/group.service.d.mts +9 -0
  209. package/lib/types/namespaces/services/index.d.cts +24 -0
  210. package/lib/types/namespaces/services/index.d.mts +24 -0
  211. package/lib/types/namespaces/services/inheritance-block.service.d.cts +10 -0
  212. package/lib/types/namespaces/services/inheritance-block.service.d.mts +10 -0
  213. package/lib/types/namespaces/services/org-unit-closure.service.d.cts +11 -0
  214. package/lib/types/namespaces/services/org-unit-closure.service.d.mts +11 -0
  215. package/lib/types/namespaces/services/org-unit-membership.service.d.cts +11 -0
  216. package/lib/types/namespaces/services/org-unit-membership.service.d.mts +11 -0
  217. package/lib/types/namespaces/services/org-unit-profile.service.d.cts +7 -0
  218. package/lib/types/namespaces/services/org-unit-profile.service.d.mts +7 -0
  219. package/lib/types/namespaces/services/org-unit.service.d.cts +18 -0
  220. package/lib/types/namespaces/services/org-unit.service.d.mts +18 -0
  221. package/lib/types/namespaces/services/permission.service.d.cts +10 -0
  222. package/lib/types/namespaces/services/permission.service.d.mts +10 -0
  223. package/lib/types/namespaces/services/principal.service.d.cts +11 -0
  224. package/lib/types/namespaces/services/principal.service.d.mts +11 -0
  225. package/lib/types/namespaces/services/protected-resource.service.d.cts +13 -0
  226. package/lib/types/namespaces/services/protected-resource.service.d.mts +13 -0
  227. package/lib/types/namespaces/services/resource-grant.service.d.cts +12 -0
  228. package/lib/types/namespaces/services/resource-grant.service.d.mts +12 -0
  229. package/lib/types/namespaces/services/resource-lifecycle.service.d.cts +10 -0
  230. package/lib/types/namespaces/services/resource-lifecycle.service.d.mts +10 -0
  231. package/lib/types/namespaces/services/role-assignment.service.d.cts +12 -0
  232. package/lib/types/namespaces/services/role-assignment.service.d.mts +12 -0
  233. package/lib/types/namespaces/services/role-permission.service.d.cts +12 -0
  234. package/lib/types/namespaces/services/role-permission.service.d.mts +12 -0
  235. package/lib/types/namespaces/services/role.service.d.cts +12 -0
  236. package/lib/types/namespaces/services/role.service.d.mts +12 -0
  237. package/lib/types/namespaces/services/storage-binding.service.d.cts +12 -0
  238. package/lib/types/namespaces/services/storage-binding.service.d.mts +12 -0
  239. package/lib/types/namespaces/services/system-management.service.d.cts +14 -0
  240. package/lib/types/namespaces/services/system-management.service.d.mts +14 -0
  241. package/lib/types/namespaces/services/tenant-membership.service.d.cts +11 -0
  242. package/lib/types/namespaces/services/tenant-membership.service.d.mts +11 -0
  243. package/lib/types/namespaces/services/tenant-profile.service.d.cts +8 -0
  244. package/lib/types/namespaces/services/tenant-profile.service.d.mts +8 -0
  245. package/lib/types/namespaces/services/tenant.service.d.cts +12 -0
  246. package/lib/types/namespaces/services/tenant.service.d.mts +12 -0
  247. package/lib/types/namespaces/services/user.service.d.cts +11 -0
  248. package/lib/types/namespaces/services/user.service.d.mts +11 -0
  249. package/lib/types/namespaces/types.d.cts +230 -0
  250. package/lib/types/namespaces/types.d.mts +230 -0
  251. package/lib/types/namespaces/utils.d.cts +68 -0
  252. package/lib/types/namespaces/utils.d.mts +68 -0
  253. package/lib/types/nest/authService.d.cts +1 -0
  254. package/lib/types/nest/authService.d.mts +1 -0
  255. package/lib/types/nest/graph/GraphExecutionController.d.cts +62 -0
  256. package/lib/types/nest/graph/GraphExecutionController.d.mts +62 -0
  257. package/lib/types/nest/graph/GraphExecutionModule.d.cts +39 -0
  258. package/lib/types/nest/graph/GraphExecutionModule.d.mts +39 -0
  259. package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +46 -0
  260. package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +46 -0
  261. package/lib/types/nest/graph/GraphExecutionResultRepository.d.cts +38 -0
  262. package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +38 -0
  263. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +17 -0
  264. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +17 -0
  265. package/lib/types/nest/graph/index.d.cts +10 -0
  266. package/lib/types/nest/graph/index.d.mts +10 -0
  267. package/lib/types/nest/index.d.cts +1 -0
  268. package/lib/types/nest/index.d.mts +1 -0
  269. package/package.json +16 -5
  270. package/sql/001_constraints.sql +11 -0
  271. package/sql/002_rls.sql +20 -0
  272. package/sql/003_indexes.sql +2 -0
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tenant = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const core_1 = require("@decaf-ts/core");
19
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
20
+ const types_js_1 = require("./../types.cjs");
21
+ const utils_js_1 = require("./../utils.cjs");
22
+ const authorization_model_js_1 = require("./authorization-model.cjs");
23
+ const org_unit_model_1 = require("./org-unit.model");
24
+ const tenant_membership_model_1 = require("./tenant-membership.model");
25
+ const principal_model_1 = require("./principal.model");
26
+ const storage_binding_model_1 = require("./storage-binding.model");
27
+ let Tenant = class Tenant extends authorization_model_js_1.AuthorizationModel {
28
+ constructor(data) {
29
+ super(data);
30
+ }
31
+ };
32
+ exports.Tenant = Tenant;
33
+ __decorate([
34
+ (0, core_1.pk)({ type: String }),
35
+ (0, core_1.uuid)(),
36
+ __metadata("design:type", String)
37
+ ], Tenant.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, core_1.unique)(),
40
+ (0, decorator_validation_1.required)(),
41
+ (0, decorator_validation_1.type)(String),
42
+ (0, core_1.column)(),
43
+ __metadata("design:type", String)
44
+ ], Tenant.prototype, "slug", void 0);
45
+ __decorate([
46
+ (0, decorator_validation_1.required)(),
47
+ (0, decorator_validation_1.type)(String),
48
+ (0, core_1.column)(),
49
+ __metadata("design:type", String)
50
+ ], Tenant.prototype, "name", void 0);
51
+ __decorate([
52
+ (0, decorator_validation_1.required)(),
53
+ (0, decorator_validation_1.type)(String),
54
+ (0, decorator_validation_1.option)(types_js_1.IsolationTierOptions),
55
+ (0, core_1.column)(),
56
+ __metadata("design:type", String)
57
+ ], Tenant.prototype, "isolationTier", void 0);
58
+ __decorate([
59
+ (0, core_1.oneToMany)(() => org_unit_model_1.OrgUnit, utils_js_1.REL_RESTRICT, false),
60
+ __metadata("design:type", Array)
61
+ ], Tenant.prototype, "orgUnits", void 0);
62
+ __decorate([
63
+ (0, core_1.oneToMany)(() => tenant_membership_model_1.TenantMembership, utils_js_1.REL_RESTRICT, false),
64
+ __metadata("design:type", Array)
65
+ ], Tenant.prototype, "memberships", void 0);
66
+ __decorate([
67
+ (0, core_1.oneToMany)(() => principal_model_1.Principal, utils_js_1.REL_RESTRICT, false),
68
+ __metadata("design:type", Array)
69
+ ], Tenant.prototype, "principals", void 0);
70
+ __decorate([
71
+ (0, core_1.oneToMany)(() => storage_binding_model_1.StorageBinding, utils_js_1.REL_RESTRICT, false),
72
+ __metadata("design:type", Array)
73
+ ], Tenant.prototype, "storageBindings", void 0);
74
+ __decorate([
75
+ (0, core_1.createdAt)(),
76
+ __metadata("design:type", Date)
77
+ ], Tenant.prototype, "createdAt", void 0);
78
+ __decorate([
79
+ (0, core_1.updatedAt)(),
80
+ __metadata("design:type", Date)
81
+ ], Tenant.prototype, "updatedAt", void 0);
82
+ exports.Tenant = Tenant = __decorate([
83
+ (0, core_1.table)("tenants"),
84
+ (0, decorator_validation_1.model)(),
85
+ __metadata("design:paramtypes", [Object])
86
+ ], Tenant);
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvbW9kZWxzL3RlbmFudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBYSxTQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxzQkFBaUI7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBaUI7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlDQUE4QjtBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRCxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU8sU0FBUSxrQkFBa0I7SUFDNUMsWUFBWSxJQUFjO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FZRixDQUFBO0FBVitCO0lBQTdCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUFFLElBQUksRUFBRTs7a0NBQWE7QUFDTTtJQUEvQyxNQUFNLEVBQUU7SUFBRSxRQUFRLEVBQUU7SUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQUUsTUFBTSxFQUFFOztvQ0FBZTtBQUN4QjtJQUFyQyxRQUFRLEVBQUU7SUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQUUsTUFBTSxFQUFFOztvQ0FBZTtBQUNnQjtJQUFuRSxRQUFRLEVBQUU7SUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDO0lBQUUsTUFBTSxFQUFFOzs2Q0FBK0I7QUFDbkQ7SUFBOUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDOzt3Q0FBaUM7QUFDdkI7SUFBdkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7OzJDQUE2QztBQUNuRDtJQUFoRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7OzBDQUFxQztBQUMvQjtJQUFyRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7OytDQUErQztBQUN2RjtJQUFaLFNBQVMsRUFBRTs4QkFBYSxJQUFJO3lDQUFDO0FBQ2pCO0lBQVosU0FBUyxFQUFFOzhCQUFhLElBQUk7eUNBQUM7QUFkbkIsTUFBTTtJQUZsQixLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2hCLEtBQUssRUFBRTs7R0FDSyxNQUFNLENBZWxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sdW1uLCBjcmVhdGVkQXQsIG1hbnlUb09uZSwgb25lVG9NYW55LCBwaywgdGFibGUsIHVuaXF1ZSwgdXBkYXRlZEF0LCB1dWlkIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgb3B0aW9uLCByZXF1aXJlZCwgdHlwZSBhcyB0eXBlT2YgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJc29sYXRpb25UaWVyLCBJc29sYXRpb25UaWVyT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgUkVMX1JFU1RSSUNUIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBdXRob3JpemF0aW9uTW9kZWwgfSBmcm9tIFwiLi9hdXRob3JpemF0aW9uLW1vZGVsXCI7XG5pbXBvcnQgeyBPcmdVbml0IH0gZnJvbSBcIi4vb3JnLXVuaXQubW9kZWxcIjtcbmltcG9ydCB7IFRlbmFudE1lbWJlcnNoaXAgfSBmcm9tIFwiLi90ZW5hbnQtbWVtYmVyc2hpcC5tb2RlbFwiO1xuaW1wb3J0IHsgUHJpbmNpcGFsIH0gZnJvbSBcIi4vcHJpbmNpcGFsLm1vZGVsXCI7XG5pbXBvcnQgeyBTdG9yYWdlQmluZGluZyB9IGZyb20gXCIuL3N0b3JhZ2UtYmluZGluZy5tb2RlbFwiO1xuXG5AdGFibGUoXCJ0ZW5hbnRzXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIFRlbmFudCBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIGNvbnN0cnVjdG9yKGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoZGF0YSk7XG4gIH1cblxuICBAcGsoeyB0eXBlOiBTdHJpbmcgfSkgQHV1aWQoKSBpZCE6IHN0cmluZztcbiAgQHVuaXF1ZSgpIEByZXF1aXJlZCgpIEB0eXBlT2YoU3RyaW5nKSBAY29sdW1uKCkgc2x1ZyE6IHN0cmluZztcbiAgQHJlcXVpcmVkKCkgQHR5cGVPZihTdHJpbmcpIEBjb2x1bW4oKSBuYW1lITogc3RyaW5nO1xuICBAcmVxdWlyZWQoKSBAdHlwZU9mKFN0cmluZykgQG9wdGlvbihJc29sYXRpb25UaWVyT3B0aW9ucykgQGNvbHVtbigpIGlzb2xhdGlvblRpZXIhOiBJc29sYXRpb25UaWVyO1xuICBAb25lVG9NYW55KCgpID0+IE9yZ1VuaXQsIFJFTF9SRVNUUklDVCwgZmFsc2UpIG9yZ1VuaXRzPzogT3JnVW5pdFtdIHwgc3RyaW5nW107XG4gIEBvbmVUb01hbnkoKCkgPT4gVGVuYW50TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSkgbWVtYmVyc2hpcHM/OiBUZW5hbnRNZW1iZXJzaGlwW10gfCBzdHJpbmdbXTtcbiAgQG9uZVRvTWFueSgoKSA9PiBQcmluY2lwYWwsIFJFTF9SRVNUUklDVCwgZmFsc2UpIHByaW5jaXBhbHM/OiBQcmluY2lwYWxbXSB8IHN0cmluZ1tdO1xuICBAb25lVG9NYW55KCgpID0+IFN0b3JhZ2VCaW5kaW5nLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSBzdG9yYWdlQmluZGluZ3M/OiBTdG9yYWdlQmluZGluZ1tdIHwgc3RyaW5nW107XG4gIEBjcmVhdGVkQXQoKSBjcmVhdGVkQXQhOiBEYXRlO1xuICBAdXBkYXRlZEF0KCkgdXBkYXRlZEF0ITogRGF0ZTtcbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVuYW50Lm1vZGVsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FB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QUMsMkJBQVMsRUFBRSx1QkFBWSxFQUFFLEtBQUssQ0FBQztJQUMvQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztDQUNuQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDM0MsVUFBVSxDQUFDO0lBQ1AsSUFBQSxnQkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLHNDQUFjLEVBQUUsdUJBQVksRUFBRSxLQUFLLENBQUM7SUFDcEQsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7Q0FDbkMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEQsVUFBVSxDQUFDO0lBQ1AsSUFBQSxnQkFBUyxHQUFFO0lBQ1gsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7Q0FDbEMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLFVBQVUsQ0FBQztJQUNQLElBQUEsZ0JBQVMsR0FBRTtJQUNYLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0NBQ2xDLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQyxpQkFBQSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQ2hCLElBQUEsWUFBSyxFQUFDLFNBQVMsQ0FBQztJQUNoQixJQUFBLDRCQUFLLEdBQUU7SUFDUCxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUM1QyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRVgsczlIQUFzOUgiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgY29sdW1uLCBjcmVhdGVkQXQsIG9uZVRvTWFueSwgcGssIHRhYmxlLCB1bmlxdWUsIHVwZGF0ZWRBdCwgdXVpZCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgbW9kZWwsIG9wdGlvbiwgcmVxdWlyZWQsIHR5cGUgYXMgdHlwZU9mIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgSXNvbGF0aW9uVGllciwgSXNvbGF0aW9uVGllck9wdGlvbnMgfSBmcm9tIFwiLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgUkVMX1JFU1RSSUNUIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25Nb2RlbCB9IGZyb20gXCIuL2F1dGhvcml6YXRpb24tbW9kZWwuanNcIjtcbmltcG9ydCB7IE9yZ1VuaXQgfSBmcm9tIFwiLi9vcmctdW5pdC5tb2RlbFwiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLm1vZGVsXCI7XG5pbXBvcnQgeyBQcmluY2lwYWwgfSBmcm9tIFwiLi9wcmluY2lwYWwubW9kZWxcIjtcbmltcG9ydCB7IFN0b3JhZ2VCaW5kaW5nIH0gZnJvbSBcIi4vc3RvcmFnZS1iaW5kaW5nLm1vZGVsXCI7XG5sZXQgVGVuYW50ID0gY2xhc3MgVGVuYW50IGV4dGVuZHMgQXV0aG9yaXphdGlvbk1vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihkYXRhKSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBwayh7IHR5cGU6IFN0cmluZyB9KSxcbiAgICB1dWlkKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFRlbmFudC5wcm90b3R5cGUsIFwiaWRcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHVuaXF1ZSgpLFxuICAgIHJlcXVpcmVkKCksXG4gICAgdHlwZU9mKFN0cmluZyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFRlbmFudC5wcm90b3R5cGUsIFwic2x1Z1wiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgcmVxdWlyZWQoKSxcbiAgICB0eXBlT2YoU3RyaW5nKSxcbiAgICBjb2x1bW4oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgVGVuYW50LnByb3RvdHlwZSwgXCJuYW1lXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICByZXF1aXJlZCgpLFxuICAgIHR5cGVPZihTdHJpbmcpLFxuICAgIG9wdGlvbihJc29sYXRpb25UaWVyT3B0aW9ucyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFRlbmFudC5wcm90b3R5cGUsIFwiaXNvbGF0aW9uVGllclwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgb25lVG9NYW55KCgpID0+IE9yZ1VuaXQsIFJFTF9SRVNUUklDVCwgZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBBcnJheSlcbl0sIFRlbmFudC5wcm90b3R5cGUsIFwib3JnVW5pdHNcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIG9uZVRvTWFueSgoKSA9PiBUZW5hbnRNZW1iZXJzaGlwLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgQXJyYXkpXG5dLCBUZW5hbnQucHJvdG90eXBlLCBcIm1lbWJlcnNoaXBzXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBvbmVUb01hbnkoKCkgPT4gUHJpbmNpcGFsLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgQXJyYXkpXG5dLCBUZW5hbnQucHJvdG90eXBlLCBcInByaW5jaXBhbHNcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIG9uZVRvTWFueSgoKSA9PiBTdG9yYWdlQmluZGluZywgUkVMX1JFU1RSSUNULCBmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgVGVuYW50LnByb3RvdHlwZSwgXCJzdG9yYWdlQmluZGluZ3NcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNyZWF0ZWRBdCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBEYXRlKVxuXSwgVGVuYW50LnByb3RvdHlwZSwgXCJjcmVhdGVkQXRcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHVwZGF0ZWRBdCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBEYXRlKVxuXSwgVGVuYW50LnByb3RvdHlwZSwgXCJ1cGRhdGVkQXRcIiwgdm9pZCAwKTtcblRlbmFudCA9IF9fZGVjb3JhdGUoW1xuICAgIHRhYmxlKFwidGVuYW50c1wiKSxcbiAgICBtb2RlbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0XSlcbl0sIFRlbmFudCk7XG5leHBvcnQgeyBUZW5hbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRHVnVZVzUwTG0xdlpHVnNMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDI1aGJXVnpjR0ZqWlhNdmJXOWtaV3h6TDNSbGJtRnVkQzV0YjJSbGJDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxGTkJRVk1zUlVGQllTeFRRVUZUTEVWQlFVVXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlF6ZEhMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRWxCUVVrc1RVRkJUU3hGUVVGRkxFMUJRVTBzWjBOQlFXZERMRU5CUVVNN1FVRkRla1lzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHpRa0ZCYVVJN1FVRkRMMFFzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4elFrRkJhVUk3UVVGRGVFTXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEdsRFFVRTRRanRCUVVNelJDeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTFCUVUwc2EwSkJRV3RDTEVOQlFVTTdRVUZETTBNc1QwRkJUeXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMRTFCUVUwc01rSkJRVEpDTEVOQlFVTTdRVUZETjBRc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeE5RVUZOTEcxQ1FVRnRRaXhEUVVGRE8wRkJRemxETEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVbHNSQ3hKUVVGTkxFMUJRVTBzUjBGQldpeE5RVUZOTEUxQlFVOHNVMEZCVVN4clFrRkJhMEk3U1VGRE5VTXNXVUZCV1N4SlFVRmpPMUZCUTNoQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTmtMRU5CUVVNN1EwRlpSaXhEUVVGQk8wRkJWaXRDTzBsQlFUZENMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVRkZMRWxCUVVrc1JVRkJSVHM3YTBOQlFXRTdRVUZEVFR0SlFVRXZReXhOUVVGTkxFVkJRVVU3U1VGQlJTeFJRVUZSTEVWQlFVVTdTVUZCUlN4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRVVVzVFVGQlRTeEZRVUZGT3p0dlEwRkJaVHRCUVVONFFqdEpRVUZ5UXl4UlFVRlJMRVZCUVVVN1NVRkJSU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlFVVXNUVUZCVFN4RlFVRkZPenR2UTBGQlpUdEJRVU5uUWp0SlFVRnVSU3hSUVVGUkxFVkJRVVU3U1VGQlJTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUVVVc1RVRkJUU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMGxCUVVVc1RVRkJUU3hGUVVGRk96czJRMEZCSzBJN1FVRkRia1E3U1VGQk9VTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRPenQzUTBGQmFVTTdRVUZEZGtJN1NVRkJka1FzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNN096SkRRVUUyUXp0QlFVTnVSRHRKUVVGb1JDeFRRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTTdPekJEUVVGeFF6dEJRVU12UWp0SlFVRnlSQ3hUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU03T3l0RFFVRXJRenRCUVVOMlJqdEpRVUZhTEZOQlFWTXNSVUZCUlRzNFFrRkJZU3hKUVVGSk8zbERRVUZETzBGQlEycENPMGxCUVZvc1UwRkJVeXhGUVVGRk96aENRVUZoTEVsQlFVazdlVU5CUVVNN1FVRmtia0lzVFVGQlRUdEpRVVpzUWl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRMmhDTEV0QlFVc3NSVUZCUlRzN1IwRkRTeXhOUVVGTkxFTkJaV3hDSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1kyOXNkVzF1TENCamNtVmhkR1ZrUVhRc0lHMWhibmxVYjA5dVpTd2diMjVsVkc5TllXNTVMQ0J3YXl3Z2RHRmliR1VzSUhWdWFYRjFaU3dnZFhCa1lYUmxaRUYwTENCMWRXbGtJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJ0YjJSbGJDd2diM0IwYVc5dUxDQnlaWEYxYVhKbFpDd2dkSGx3WlNCaGN5QjBlWEJsVDJZZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhSdmNpMTJZV3hwWkdGMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCSmMyOXNZWFJwYjI1VWFXVnlMQ0JKYzI5c1lYUnBiMjVVYVdWeVQzQjBhVzl1Y3lCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dVa1ZNWDFKRlUxUlNTVU5VSUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QkJkWFJvYjNKcGVtRjBhVzl1VFc5a1pXd2dmU0JtY205dElGd2lMaTloZFhSb2IzSnBlbUYwYVc5dUxXMXZaR1ZzWENJN1hHNXBiWEJ2Y25RZ2V5QlBjbWRWYm1sMElIMGdabkp2YlNCY0lpNHZiM0puTFhWdWFYUXViVzlrWld4Y0lqdGNibWx0Y0c5eWRDQjdJRlJsYm1GdWRFMWxiV0psY25Ob2FYQWdmU0JtY205dElGd2lMaTkwWlc1aGJuUXRiV1Z0WW1WeWMyaHBjQzV0YjJSbGJGd2lPMXh1YVcxd2IzSjBJSHNnVUhKcGJtTnBjR0ZzSUgwZ1puSnZiU0JjSWk0dmNISnBibU5wY0dGc0xtMXZaR1ZzWENJN1hHNXBiWEJ2Y25RZ2V5QlRkRzl5WVdkbFFtbHVaR2x1WnlCOUlHWnliMjBnWENJdUwzTjBiM0poWjJVdFltbHVaR2x1Wnk1dGIyUmxiRndpTzF4dVhHNUFkR0ZpYkdVb1hDSjBaVzVoYm5SelhDSXBYRzVBYlc5a1pXd29LVnh1Wlhod2IzSjBJR05zWVhOeklGUmxibUZ1ZENCbGVIUmxibVJ6SUVGMWRHaHZjbWw2WVhScGIyNU5iMlJsYkNCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0dSaGRHRS9PaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdjM1Z3WlhJb1pHRjBZU2s3WEc0Z0lIMWNibHh1SUNCQWNHc29leUIwZVhCbE9pQlRkSEpwYm1jZ2ZTa2dRSFYxYVdRb0tTQnBaQ0U2SUhOMGNtbHVaenRjYmlBZ1FIVnVhWEYxWlNncElFQnlaWEYxYVhKbFpDZ3BJRUIwZVhCbFQyWW9VM1J5YVc1bktTQkFZMjlzZFcxdUtDa2djMngxWnlFNklITjBjbWx1Wnp0Y2JpQWdRSEpsY1hWcGNtVmtLQ2tnUUhSNWNHVlBaaWhUZEhKcGJtY3BJRUJqYjJ4MWJXNG9LU0J1WVcxbElUb2djM1J5YVc1bk8xeHVJQ0JBY21WeGRXbHlaV1FvS1NCQWRIbHdaVTltS0ZOMGNtbHVaeWtnUUc5d2RHbHZiaWhKYzI5c1lYUnBiMjVVYVdWeVQzQjBhVzl1Y3lrZ1FHTnZiSFZ0YmlncElHbHpiMnhoZEdsdmJsUnBaWEloT2lCSmMyOXNZWFJwYjI1VWFXVnlPMXh1SUNCQWIyNWxWRzlOWVc1NUtDZ3BJRDArSUU5eVoxVnVhWFFzSUZKRlRGOVNSVk5VVWtsRFZDd2dabUZzYzJVcElHOXlaMVZ1YVhSelB6b2dUM0puVlc1cGRGdGRJSHdnYzNSeWFXNW5XMTA3WEc0Z0lFQnZibVZVYjAxaGJua29LQ2tnUFQ0Z1ZHVnVZVzUwVFdWdFltVnljMmhwY0N3Z1VrVk1YMUpGVTFSU1NVTlVMQ0JtWVd4elpTa2diV1Z0WW1WeWMyaHBjSE0vT2lCVVpXNWhiblJOWlcxaVpYSnphR2x3VzEwZ2ZDQnpkSEpwYm1kYlhUdGNiaUFnUUc5dVpWUnZUV0Z1ZVNnb0tTQTlQaUJRY21sdVkybHdZV3dzSUZKRlRGOVNSVk5VVWtsRFZDd2dabUZzYzJVcElIQnlhVzVqYVhCaGJITS9PaUJRY21sdVkybHdZV3hiWFNCOElITjBjbWx1WjF0ZE8xeHVJQ0JBYjI1bFZHOU5ZVzU1S0NncElEMCtJRk4wYjNKaFoyVkNhVzVrYVc1bkxDQlNSVXhmVWtWVFZGSkpRMVFzSUdaaGJITmxLU0J6ZEc5eVlXZGxRbWx1WkdsdVozTS9PaUJUZEc5eVlXZGxRbWx1WkdsdVoxdGRJSHdnYzNSeWFXNW5XMTA3WEc0Z0lFQmpjbVZoZEdWa1FYUW9LU0JqY21WaGRHVmtRWFFoT2lCRVlYUmxPMXh1SUNCQWRYQmtZWFJsWkVGMEtDa2dkWEJrWVhSbFpFRjBJVG9nUkdGMFpUdGNibjFjYmlKZGZRPT0iXX0=
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const core_1 = require("@decaf-ts/core");
19
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
20
+ const utils_js_1 = require("./../utils.cjs");
21
+ const authorization_model_js_1 = require("./authorization-model.cjs");
22
+ const tenant_membership_model_1 = require("./tenant-membership.model");
23
+ const org_unit_membership_model_1 = require("./org-unit-membership.model");
24
+ let User = class User extends authorization_model_js_1.AuthorizationModel {
25
+ constructor(data) {
26
+ super(data);
27
+ }
28
+ };
29
+ exports.User = User;
30
+ __decorate([
31
+ (0, core_1.pk)({ type: String }),
32
+ (0, core_1.uuid)(),
33
+ __metadata("design:type", String)
34
+ ], User.prototype, "id", void 0);
35
+ __decorate([
36
+ (0, core_1.unique)(),
37
+ (0, decorator_validation_1.type)(String),
38
+ (0, core_1.column)(),
39
+ __metadata("design:type", String)
40
+ ], User.prototype, "email", void 0);
41
+ __decorate([
42
+ (0, core_1.unique)(),
43
+ (0, decorator_validation_1.type)(String),
44
+ (0, core_1.column)(),
45
+ __metadata("design:type", String)
46
+ ], User.prototype, "phone", void 0);
47
+ __decorate([
48
+ (0, decorator_validation_1.required)(),
49
+ (0, decorator_validation_1.type)(String),
50
+ (0, core_1.column)(),
51
+ __metadata("design:type", String)
52
+ ], User.prototype, "displayName", void 0);
53
+ __decorate([
54
+ (0, core_1.oneToMany)(() => tenant_membership_model_1.TenantMembership, utils_js_1.REL_RESTRICT, false),
55
+ __metadata("design:type", Array)
56
+ ], User.prototype, "tenantMemberships", void 0);
57
+ __decorate([
58
+ (0, core_1.oneToMany)(() => org_unit_membership_model_1.OrgUnitMembership, utils_js_1.REL_RESTRICT, false),
59
+ __metadata("design:type", Array)
60
+ ], User.prototype, "orgUnitMemberships", void 0);
61
+ __decorate([
62
+ (0, core_1.createdAt)(),
63
+ __metadata("design:type", Date)
64
+ ], User.prototype, "createdAt", void 0);
65
+ __decorate([
66
+ (0, core_1.updatedAt)(),
67
+ __metadata("design:type", Date)
68
+ ], User.prototype, "updatedAt", void 0);
69
+ exports.User = User = __decorate([
70
+ (0, core_1.table)("users"),
71
+ (0, decorator_validation_1.model)(),
72
+ __metadata("design:paramtypes", [Object])
73
+ ], User);
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL21vZGVscy91c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxFQUFFLEVBQ0YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBaUI7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlDQUE4QjtBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxJQUFNLElBQUksR0FBVixNQUFNLElBQUssU0FBUSxrQkFBa0I7SUFnQzFDLFlBQVksSUFBYztRQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0NBQ0YsQ0FBQTtBQWhDQztJQUZDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixJQUFJLEVBQUU7O2dDQUNLO0FBS1o7SUFIQyxNQUFNLEVBQUU7SUFDUixJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ1osTUFBTSxFQUFFOzttQ0FDTTtBQUtmO0lBSEMsTUFBTSxFQUFFO0lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNaLE1BQU0sRUFBRTs7bUNBQ007QUFLZjtJQUhDLFFBQVEsRUFBRTtJQUNWLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDWixNQUFNLEVBQUU7O3lDQUNZO0FBR3JCO0lBREMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7OytDQUNMO0FBR2xEO0lBREMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7O2dEQUNKO0FBR3BEO0lBREMsU0FBUyxFQUFFOzhCQUNBLElBQUk7dUNBQUM7QUFHakI7SUFEQyxTQUFTLEVBQUU7OEJBQ0EsSUFBSTt1Q0FBQztBQTlCTixJQUFJO0lBRmhCLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDZCxLQUFLLEVBQUU7O0dBQ0ssSUFBSSxDQW1DaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb2x1bW4sXG4gIGNyZWF0ZWRBdCxcbiAgb25lVG9NYW55LFxuICBwayxcbiAgdGFibGUsXG4gIHVuaXF1ZSxcbiAgdXBkYXRlZEF0LFxuICB1dWlkLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCwgdHlwZSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJFTF9SRVNUUklDVCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbk1vZGVsIH0gZnJvbSBcIi4vYXV0aG9yaXphdGlvbi1tb2RlbFwiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLm1vZGVsXCI7XG5pbXBvcnQgeyBPcmdVbml0TWVtYmVyc2hpcCB9IGZyb20gXCIuL29yZy11bml0LW1lbWJlcnNoaXAubW9kZWxcIjtcblxuQHRhYmxlKFwidXNlcnNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgVXNlciBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KVxuICBAdXVpZCgpXG4gIGlkITogc3RyaW5nO1xuXG4gIEB1bmlxdWUoKVxuICBAdHlwZShTdHJpbmcpXG4gIEBjb2x1bW4oKVxuICBlbWFpbD86IHN0cmluZztcblxuICBAdW5pcXVlKClcbiAgQHR5cGUoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgcGhvbmU/OiBzdHJpbmc7XG5cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGUoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG5cbiAgQG9uZVRvTWFueSgoKSA9PiBUZW5hbnRNZW1iZXJzaGlwLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKVxuICB0ZW5hbnRNZW1iZXJzaGlwcz86IFRlbmFudE1lbWJlcnNoaXBbXSB8IHN0cmluZ1tdO1xuXG4gIEBvbmVUb01hbnkoKCkgPT4gT3JnVW5pdE1lbWJlcnNoaXAsIFJFTF9SRVNUUklDVCwgZmFsc2UpXG4gIG9yZ1VuaXRNZW1iZXJzaGlwcz86IE9yZ1VuaXRNZW1iZXJzaGlwW10gfCBzdHJpbmdbXTtcblxuICBAY3JlYXRlZEF0KClcbiAgY3JlYXRlZEF0ITogRGF0ZTtcblxuICBAdXBkYXRlZEF0KClcbiAgdXBkYXRlZEF0ITogRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogdW5rbm93bikge1xuICAgIHN1cGVyKGRhdGEpO1xuICB9XG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENB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LENBQUM7SUFDUCxJQUFBLGdCQUFTLEdBQUU7SUFDWCxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztDQUNsQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEMsZUFBQSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQ2QsSUFBQSxZQUFLLEVBQUMsT0FBTyxDQUFDO0lBQ2QsSUFBQSw0QkFBSyxHQUFFO0lBQ1AsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDNUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVULHNsR0FBc2xHIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbmltcG9ydCB7IGNvbHVtbiwgY3JlYXRlZEF0LCBvbmVUb01hbnksIHBrLCB0YWJsZSwgdW5pcXVlLCB1cGRhdGVkQXQsIHV1aWQsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQsIHR5cGUgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSRUxfUkVTVFJJQ1QgfSBmcm9tIFwiLi8uLi91dGlscy5qc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbk1vZGVsIH0gZnJvbSBcIi4vYXV0aG9yaXphdGlvbi1tb2RlbC5qc1wiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLm1vZGVsXCI7XG5pbXBvcnQgeyBPcmdVbml0TWVtYmVyc2hpcCB9IGZyb20gXCIuL29yZy11bml0LW1lbWJlcnNoaXAubW9kZWxcIjtcbmxldCBVc2VyID0gY2xhc3MgVXNlciBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gICAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcGsoeyB0eXBlOiBTdHJpbmcgfSksXG4gICAgdXVpZCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJpZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdW5pcXVlKCksXG4gICAgdHlwZShTdHJpbmcpLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJlbWFpbFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdW5pcXVlKCksXG4gICAgdHlwZShTdHJpbmcpLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJwaG9uZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgcmVxdWlyZWQoKSxcbiAgICB0eXBlKFN0cmluZyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFVzZXIucHJvdG90eXBlLCBcImRpc3BsYXlOYW1lXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBvbmVUb01hbnkoKCkgPT4gVGVuYW50TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgVXNlci5wcm90b3R5cGUsIFwidGVuYW50TWVtYmVyc2hpcHNcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIG9uZVRvTWFueSgoKSA9PiBPcmdVbml0TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgVXNlci5wcm90b3R5cGUsIFwib3JnVW5pdE1lbWJlcnNoaXBzXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjcmVhdGVkQXQoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRGF0ZSlcbl0sIFVzZXIucHJvdG90eXBlLCBcImNyZWF0ZWRBdFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdXBkYXRlZEF0KCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIERhdGUpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJ1cGRhdGVkQXRcIiwgdm9pZCAwKTtcblVzZXIgPSBfX2RlY29yYXRlKFtcbiAgICB0YWJsZShcInVzZXJzXCIpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgVXNlcik7XG5leHBvcnQgeyBVc2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWE5sY2k1dGIyUmxiQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5dVlXMWxjM0JoWTJWekwyMXZaR1ZzY3k5MWMyVnlMbTF2WkdWc0xuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZEVEN4TlFVRk5MRVZCUTA0c1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeEZRVUZGTEVWQlEwWXNTMEZCU3l4RlFVTk1MRTFCUVUwc1JVRkRUaXhUUVVGVExFVkJRMVFzU1VGQlNTeEhRVU5NTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGVFSXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3h6UWtGQmFVSTdRVUZEZUVNc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMR2xEUVVFNFFqdEJRVU16UkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNUVUZCVFN3eVFrRkJNa0lzUTBGQlF6dEJRVU0zUkN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVWw2UkN4SlFVRk5MRWxCUVVrc1IwRkJWaXhOUVVGTkxFbEJRVXNzVTBGQlVTeHJRa0ZCYTBJN1NVRm5RekZETEZsQlFWa3NTVUZCWXp0UlFVTjRRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEWkN4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVdoRFF6dEpRVVpETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU53UWl4SlFVRkpMRVZCUVVVN08yZERRVU5MTzBGQlMxbzdTVUZJUXl4TlFVRk5MRVZCUVVVN1NVRkRVaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlExb3NUVUZCVFN4RlFVRkZPenR0UTBGRFRUdEJRVXRtTzBsQlNFTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU5hTEUxQlFVMHNSVUZCUlRzN2JVTkJRMDA3UVVGTFpqdEpRVWhETEZGQlFWRXNSVUZCUlR0SlFVTldMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRFdpeE5RVUZOTEVWQlFVVTdPM2xEUVVOWk8wRkJSM0pDTzBsQlJFTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU03T3l0RFFVTk1PMEZCUjJ4RU8wbEJSRU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNN08yZEVRVU5LTzBGQlIzQkVPMGxCUkVNc1UwRkJVeXhGUVVGRk96aENRVU5CTEVsQlFVazdkVU5CUVVNN1FVRkhha0k3U1VGRVF5eFRRVUZUTEVWQlFVVTdPRUpCUTBFc1NVRkJTVHQxUTBGQlF6dEJRVGxDVGl4SlFVRkpPMGxCUm1oQ0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTTdTVUZEWkN4TFFVRkxMRVZCUVVVN08wZEJRMHNzU1VGQlNTeERRVzFEYUVJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JqYjJ4MWJXNHNYRzRnSUdOeVpXRjBaV1JCZEN4Y2JpQWdiMjVsVkc5TllXNTVMRnh1SUNCd2F5eGNiaUFnZEdGaWJHVXNYRzRnSUhWdWFYRjFaU3hjYmlBZ2RYQmtZWFJsWkVGMExGeHVJQ0IxZFdsa0xGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRzF2WkdWc0xDQnlaWEYxYVhKbFpDd2dkSGx3WlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZKRlRGOVNSVk5VVWtsRFZDQjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1YVcxd2IzSjBJSHNnUVhWMGFHOXlhWHBoZEdsdmJrMXZaR1ZzSUgwZ1puSnZiU0JjSWk0dllYVjBhRzl5YVhwaGRHbHZiaTF0YjJSbGJGd2lPMXh1YVcxd2IzSjBJSHNnVkdWdVlXNTBUV1Z0WW1WeWMyaHBjQ0I5SUdaeWIyMGdYQ0l1TDNSbGJtRnVkQzF0WlcxaVpYSnphR2x3TG0xdlpHVnNYQ0k3WEc1cGJYQnZjblFnZXlCUGNtZFZibWwwVFdWdFltVnljMmhwY0NCOUlHWnliMjBnWENJdUwyOXlaeTExYm1sMExXMWxiV0psY25Ob2FYQXViVzlrWld4Y0lqdGNibHh1UUhSaFlteGxLRndpZFhObGNuTmNJaWxjYmtCdGIyUmxiQ2dwWEc1bGVIQnZjblFnWTJ4aGMzTWdWWE5sY2lCbGVIUmxibVJ6SUVGMWRHaHZjbWw2WVhScGIyNU5iMlJsYkNCN1hHNGdJRUJ3YXloN0lIUjVjR1U2SUZOMGNtbHVaeUI5S1Z4dUlDQkFkWFZwWkNncFhHNGdJR2xrSVRvZ2MzUnlhVzVuTzF4dVhHNGdJRUIxYm1seGRXVW9LVnh1SUNCQWRIbHdaU2hUZEhKcGJtY3BYRzRnSUVCamIyeDFiVzRvS1Z4dUlDQmxiV0ZwYkQ4NklITjBjbWx1Wnp0Y2JseHVJQ0JBZFc1cGNYVmxLQ2xjYmlBZ1FIUjVjR1VvVTNSeWFXNW5LVnh1SUNCQVkyOXNkVzF1S0NsY2JpQWdjR2h2Ym1VL09pQnpkSEpwYm1jN1hHNWNiaUFnUUhKbGNYVnBjbVZrS0NsY2JpQWdRSFI1Y0dVb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtDbGNiaUFnWkdsemNHeGhlVTVoYldVaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUc5dVpWUnZUV0Z1ZVNnb0tTQTlQaUJVWlc1aGJuUk5aVzFpWlhKemFHbHdMQ0JTUlV4ZlVrVlRWRkpKUTFRc0lHWmhiSE5sS1Z4dUlDQjBaVzVoYm5STlpXMWlaWEp6YUdsd2N6ODZJRlJsYm1GdWRFMWxiV0psY25Ob2FYQmJYU0I4SUhOMGNtbHVaMXRkTzF4dVhHNGdJRUJ2Ym1WVWIwMWhibmtvS0NrZ1BUNGdUM0puVlc1cGRFMWxiV0psY25Ob2FYQXNJRkpGVEY5U1JWTlVVa2xEVkN3Z1ptRnNjMlVwWEc0Z0lHOXlaMVZ1YVhSTlpXMWlaWEp6YUdsd2N6ODZJRTl5WjFWdWFYUk5aVzFpWlhKemFHbHdXMTBnZkNCemRISnBibWRiWFR0Y2JseHVJQ0JBWTNKbFlYUmxaRUYwS0NsY2JpQWdZM0psWVhSbFpFRjBJVG9nUkdGMFpUdGNibHh1SUNCQWRYQmtZWFJsWkVGMEtDbGNiaUFnZFhCa1lYUmxaRUYwSVRvZ1JHRjBaVHRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWhrWVhSaFB6b2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lITjFjR1Z5S0dSaGRHRXBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==