@decaf-ts/integrations 0.8.0 → 0.10.0

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 (892) hide show
  1. package/README.md +4 -0
  2. package/dist/integrations.cjs +1 -1
  3. package/docker/minio-compose.yml +1 -1
  4. package/jest.config.cjs +1 -11
  5. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +25 -0
  6. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +1 -0
  7. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +85 -10
  8. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
  9. package/lib/cjs/blob/azure/index.cjs +1 -0
  10. package/lib/cjs/blob/azure/index.cjs.map +1 -1
  11. package/lib/cjs/blob/core/BlobEnvironment.cjs +19 -0
  12. package/lib/cjs/blob/core/BlobEnvironment.cjs.map +1 -0
  13. package/lib/cjs/blob/core/BlobStoreService.cjs +181 -3
  14. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
  15. package/lib/cjs/blob/core/index.cjs +1 -0
  16. package/lib/cjs/blob/core/index.cjs.map +1 -1
  17. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +26 -0
  18. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +1 -0
  19. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +63 -2
  20. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
  21. package/lib/cjs/blob/gcp/index.cjs +1 -0
  22. package/lib/cjs/blob/gcp/index.cjs.map +1 -1
  23. package/lib/cjs/blob/ipfs/IpfsBlobEnvironment.cjs +30 -0
  24. package/lib/cjs/blob/ipfs/IpfsBlobEnvironment.cjs.map +1 -0
  25. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +68 -2
  26. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -1
  27. package/lib/cjs/blob/ipfs/index.cjs +1 -0
  28. package/lib/cjs/blob/ipfs/index.cjs.map +1 -1
  29. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +22 -0
  30. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +1 -0
  31. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +59 -2
  32. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -1
  33. package/lib/cjs/blob/local/index.cjs +1 -0
  34. package/lib/cjs/blob/local/index.cjs.map +1 -1
  35. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +21 -0
  36. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +1 -0
  37. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +58 -2
  38. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -1
  39. package/lib/cjs/blob/memory/index.cjs +1 -0
  40. package/lib/cjs/blob/memory/index.cjs.map +1 -1
  41. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +32 -0
  42. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +1 -0
  43. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +45 -4
  44. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -1
  45. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +32 -0
  46. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +1 -0
  47. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +45 -4
  48. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -1
  49. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +32 -0
  50. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +1 -0
  51. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +43 -310
  52. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
  53. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +358 -0
  54. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -0
  55. package/lib/cjs/blob/s3/index.cjs +4 -0
  56. package/lib/cjs/blob/s3/index.cjs.map +1 -1
  57. package/lib/cjs/calendar/CalendarService.cjs +393 -0
  58. package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
  59. package/lib/cjs/calendar/index.cjs +21 -0
  60. package/lib/cjs/calendar/index.cjs.map +1 -0
  61. package/lib/cjs/calendar/types.cjs.map +1 -0
  62. package/lib/cjs/calendar/validators/cron.cjs +58 -0
  63. package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
  64. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +39 -0
  65. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
  66. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +47 -0
  67. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
  68. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +4 -0
  69. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
  70. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs +100 -0
  71. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs.map +1 -0
  72. package/lib/cjs/graph/engine/catalog/GraphCatalogueErrors.cjs +29 -0
  73. package/lib/cjs/graph/engine/catalog/GraphCatalogueErrors.cjs.map +1 -0
  74. package/lib/cjs/graph/engine/catalog/GraphNodeCatalogue.cjs +270 -0
  75. package/lib/cjs/graph/engine/catalog/GraphNodeCatalogue.cjs.map +1 -0
  76. package/lib/cjs/graph/engine/catalog/GraphNodeManifestResolver.cjs +169 -0
  77. package/lib/cjs/graph/engine/catalog/GraphNodeManifestResolver.cjs.map +1 -0
  78. package/lib/cjs/graph/engine/catalog/GraphNodeMethodRegistry.cjs +64 -0
  79. package/lib/cjs/graph/engine/catalog/GraphNodeMethodRegistry.cjs.map +1 -0
  80. package/lib/cjs/graph/engine/catalog/GraphNodeRegistration.cjs +17 -0
  81. package/lib/cjs/graph/engine/catalog/GraphNodeRegistration.cjs.map +1 -0
  82. package/lib/cjs/graph/engine/catalog/index.cjs +24 -0
  83. package/lib/cjs/graph/engine/catalog/index.cjs.map +1 -0
  84. package/lib/cjs/graph/engine/constants.cjs +2 -2
  85. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +1 -0
  86. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -1
  87. package/lib/cjs/graph/engine/errors/GraphRunCancelledError.cjs +18 -0
  88. package/lib/cjs/graph/engine/errors/GraphRunCancelledError.cjs.map +1 -0
  89. package/lib/cjs/graph/engine/errors/index.cjs +1 -0
  90. package/lib/cjs/graph/engine/errors/index.cjs.map +1 -1
  91. package/lib/cjs/graph/engine/events/index.cjs +0 -1
  92. package/lib/cjs/graph/engine/events/index.cjs.map +1 -1
  93. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +2 -2
  94. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -1
  95. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +10 -6
  96. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -1
  97. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +30 -18
  98. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -1
  99. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +354 -73
  100. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -1
  101. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +3 -3
  102. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -1
  103. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +9 -6
  104. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -1
  105. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +11 -10
  106. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -1
  107. package/lib/cjs/graph/engine/index.cjs +8 -11
  108. package/lib/cjs/graph/engine/index.cjs.map +1 -1
  109. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +37 -12
  110. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -1
  111. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +38 -13
  112. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -1
  113. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +38 -13
  114. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -1
  115. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
  116. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -1
  117. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +43 -14
  118. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -1
  119. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -1
  120. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +79 -88
  121. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -1
  122. package/lib/cjs/graph/engine/planning/index.cjs +0 -1
  123. package/lib/cjs/graph/engine/planning/index.cjs.map +1 -1
  124. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +28 -15
  125. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -1
  126. package/lib/cjs/graph/engine/runs/GraphRunEventPublisher.cjs +69 -0
  127. package/lib/cjs/graph/engine/runs/GraphRunEventPublisher.cjs.map +1 -0
  128. package/lib/cjs/graph/engine/runs/GraphRunExecutor.cjs +291 -0
  129. package/lib/cjs/graph/engine/runs/GraphRunExecutor.cjs.map +1 -0
  130. package/lib/cjs/graph/engine/runs/GraphRunFingerprint.cjs +29 -0
  131. package/lib/cjs/graph/engine/runs/GraphRunFingerprint.cjs.map +1 -0
  132. package/lib/cjs/graph/engine/runs/GraphRunService.cjs +259 -0
  133. package/lib/cjs/graph/engine/runs/GraphRunService.cjs.map +1 -0
  134. package/lib/cjs/graph/engine/runs/InMemoryGraphRunEventStore.cjs +69 -0
  135. package/lib/cjs/graph/engine/runs/InMemoryGraphRunEventStore.cjs.map +1 -0
  136. package/lib/cjs/graph/engine/runs/InMemoryGraphRunStore.cjs +26 -0
  137. package/lib/cjs/graph/engine/runs/InMemoryGraphRunStore.cjs.map +1 -0
  138. package/lib/cjs/graph/engine/runs/index.cjs +26 -0
  139. package/lib/cjs/graph/engine/runs/index.cjs.map +1 -0
  140. package/lib/cjs/graph/engine/runs/ownership.cjs +34 -0
  141. package/lib/cjs/graph/engine/runs/ownership.cjs.map +1 -0
  142. package/lib/cjs/graph/engine/runs/types.cjs +4 -0
  143. package/lib/cjs/graph/engine/runs/types.cjs.map +1 -0
  144. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  145. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -1
  146. package/lib/cjs/graph/engine/validation/GraphConnectionPolicyValidator.cjs +142 -0
  147. package/lib/cjs/graph/engine/validation/GraphConnectionPolicyValidator.cjs.map +1 -0
  148. package/lib/cjs/graph/engine/validation/GraphCredentialReferenceValidator.cjs +160 -0
  149. package/lib/cjs/graph/engine/validation/GraphCredentialReferenceValidator.cjs.map +1 -0
  150. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +6 -10
  151. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -1
  152. package/lib/cjs/graph/engine/validation/GraphEdgeInstanceValidator.cjs +166 -0
  153. package/lib/cjs/graph/engine/validation/GraphEdgeInstanceValidator.cjs.map +1 -0
  154. package/lib/cjs/graph/engine/validation/GraphNodeInstanceValidator.cjs +86 -0
  155. package/lib/cjs/graph/engine/validation/GraphNodeInstanceValidator.cjs.map +1 -0
  156. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs +423 -0
  157. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs.map +1 -0
  158. package/lib/cjs/graph/engine/validation/GraphResolvedWorkflow.cjs +4 -0
  159. package/lib/cjs/graph/engine/validation/GraphResolvedWorkflow.cjs.map +1 -0
  160. package/lib/cjs/graph/engine/validation/GraphValidationErrors.cjs +50 -0
  161. package/lib/cjs/graph/engine/validation/GraphValidationErrors.cjs.map +1 -0
  162. package/lib/cjs/graph/engine/validation/GraphValidationIssue.cjs +4 -0
  163. package/lib/cjs/graph/engine/validation/GraphValidationIssue.cjs.map +1 -0
  164. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs +478 -0
  165. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs.map +1 -0
  166. package/lib/cjs/graph/engine/validation/index.cjs +12 -1
  167. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -1
  168. package/lib/cjs/graph/index.cjs +4 -4
  169. package/lib/cjs/graph/log/GraphRunLogger.cjs +9 -6
  170. package/lib/cjs/graph/log/GraphRunLogger.cjs.map +1 -1
  171. package/lib/cjs/graph/log/LogParameters.cjs +13 -13
  172. package/lib/cjs/graph/log/LogParameters.cjs.map +1 -1
  173. package/lib/cjs/index.cjs +3 -3
  174. package/lib/cjs/nest/graph/GraphExecutionController.cjs +140 -16
  175. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -1
  176. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +94 -7
  177. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -1
  178. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +11 -0
  179. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -1
  180. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +63 -61
  181. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -1
  182. package/lib/cjs/nest/graph/GraphNodeCatalogueController.cjs +270 -0
  183. package/lib/cjs/nest/graph/GraphNodeCatalogueController.cjs.map +1 -0
  184. package/lib/cjs/nest/graph/GraphResultService.cjs +16 -1
  185. package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -1
  186. package/lib/cjs/nest/graph/GraphRunController.cjs +279 -0
  187. package/lib/cjs/nest/graph/GraphRunController.cjs.map +1 -0
  188. package/lib/cjs/nest/graph/GraphRunModel.cjs +83 -0
  189. package/lib/cjs/nest/graph/GraphRunModel.cjs.map +1 -0
  190. package/lib/cjs/nest/graph/GraphRunModelService.cjs +121 -0
  191. package/lib/cjs/nest/graph/GraphRunModelService.cjs.map +1 -0
  192. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs +169 -0
  193. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs.map +1 -0
  194. package/lib/cjs/nest/graph/GraphWorkflowController.cjs +162 -0
  195. package/lib/cjs/nest/graph/GraphWorkflowController.cjs.map +1 -0
  196. package/lib/cjs/nest/graph/GraphWorkflowDocumentLimits.cjs +12 -0
  197. package/lib/cjs/nest/graph/GraphWorkflowDocumentLimits.cjs.map +1 -0
  198. package/lib/cjs/nest/graph/GraphWorkflowErrors.cjs +23 -0
  199. package/lib/cjs/nest/graph/GraphWorkflowErrors.cjs.map +1 -0
  200. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +27 -1
  201. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -1
  202. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +211 -8
  203. package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -1
  204. package/lib/cjs/nest/graph/index.cjs +8 -0
  205. package/lib/cjs/nest/graph/index.cjs.map +1 -1
  206. package/lib/cjs/nest/graph/main.cjs +22 -5
  207. package/lib/cjs/nest/graph/main.cjs.map +1 -1
  208. package/lib/cjs/nest/keycloakModule.cjs +3 -1
  209. package/lib/cjs/nest/keycloakModule.cjs.map +1 -1
  210. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +27 -0
  211. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +1 -0
  212. package/lib/cjs/secrets/aws/AwsSecretService.cjs +53 -19
  213. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  214. package/lib/cjs/secrets/aws/index.cjs +1 -0
  215. package/lib/cjs/secrets/aws/index.cjs.map +1 -1
  216. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +45 -16
  217. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  218. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +23 -0
  219. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +1 -0
  220. package/lib/cjs/secrets/azure/index.cjs +1 -0
  221. package/lib/cjs/secrets/azure/index.cjs.map +1 -1
  222. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +29 -0
  223. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +1 -0
  224. package/lib/cjs/secrets/core/SecretEnvironment.cjs +19 -0
  225. package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +1 -0
  226. package/lib/cjs/secrets/core/index.cjs +2 -0
  227. package/lib/cjs/secrets/core/index.cjs.map +1 -1
  228. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +25 -0
  229. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +1 -0
  230. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +45 -17
  231. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  232. package/lib/cjs/secrets/gcp/index.cjs +1 -0
  233. package/lib/cjs/secrets/gcp/index.cjs.map +1 -1
  234. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +21 -0
  235. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +1 -0
  236. package/lib/cjs/secrets/model/ModelSecretService.cjs +29 -3
  237. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  238. package/lib/cjs/secrets/model/index.cjs +1 -0
  239. package/lib/cjs/secrets/model/index.cjs.map +1 -1
  240. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +24 -0
  241. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +1 -0
  242. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +34 -3
  243. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  244. package/lib/cjs/secrets/onepassword/index.cjs +1 -0
  245. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -1
  246. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +24 -0
  247. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +1 -0
  248. package/lib/cjs/secrets/vault/VaultSecretService.cjs +47 -16
  249. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  250. package/lib/cjs/secrets/vault/index.cjs +1 -0
  251. package/lib/cjs/secrets/vault/index.cjs.map +1 -1
  252. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +31 -0
  253. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +1 -0
  254. package/lib/cjs/sftp/aws/AwsSftpService.cjs +55 -5
  255. package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +1 -1
  256. package/lib/cjs/sftp/core/SftpEnvironment.cjs +19 -0
  257. package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +1 -0
  258. package/lib/cjs/sftp/core/SftpSource.cjs +10 -0
  259. package/lib/cjs/sftp/core/SftpSource.cjs.map +1 -1
  260. package/lib/cjs/sftp/core/index.cjs +1 -0
  261. package/lib/cjs/sftp/core/index.cjs.map +1 -1
  262. package/lib/cjs/sftp/index.cjs +3 -0
  263. package/lib/cjs/sftp/index.cjs.map +1 -1
  264. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +28 -0
  265. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +1 -0
  266. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +46 -5
  267. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +1 -1
  268. package/lib/cjs/shared/environmentValue.cjs +31 -0
  269. package/lib/cjs/shared/environmentValue.cjs.map +1 -0
  270. package/lib/esm/blob/azure/AzureBlobEnvironment.js +21 -0
  271. package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +1 -0
  272. package/lib/esm/blob/azure/AzureBlobStoreService.js +84 -12
  273. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  274. package/lib/esm/blob/azure/index.js +1 -0
  275. package/lib/esm/blob/azure/index.js.map +1 -1
  276. package/lib/esm/blob/core/BlobEnvironment.js +15 -0
  277. package/lib/esm/blob/core/BlobEnvironment.js.map +1 -0
  278. package/lib/esm/blob/core/BlobStoreService.js +181 -3
  279. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  280. package/lib/esm/blob/core/index.js +1 -0
  281. package/lib/esm/blob/core/index.js.map +1 -1
  282. package/lib/esm/blob/gcp/GcsBlobEnvironment.js +22 -0
  283. package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +1 -0
  284. package/lib/esm/blob/gcp/GcsBlobStoreService.js +61 -3
  285. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  286. package/lib/esm/blob/gcp/index.js +1 -0
  287. package/lib/esm/blob/gcp/index.js.map +1 -1
  288. package/lib/esm/blob/ipfs/IpfsBlobEnvironment.js +26 -0
  289. package/lib/esm/blob/ipfs/IpfsBlobEnvironment.js.map +1 -0
  290. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +66 -3
  291. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -1
  292. package/lib/esm/blob/ipfs/index.js +1 -0
  293. package/lib/esm/blob/ipfs/index.js.map +1 -1
  294. package/lib/esm/blob/local/LocalBlobEnvironment.js +18 -0
  295. package/lib/esm/blob/local/LocalBlobEnvironment.js.map +1 -0
  296. package/lib/esm/blob/local/LocalBlobStoreService.js +57 -3
  297. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -1
  298. package/lib/esm/blob/local/index.js +1 -0
  299. package/lib/esm/blob/local/index.js.map +1 -1
  300. package/lib/esm/blob/memory/MemoryBlobEnvironment.js +17 -0
  301. package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +1 -0
  302. package/lib/esm/blob/memory/MemoryBlobStoreService.js +56 -3
  303. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -1
  304. package/lib/esm/blob/memory/index.js +1 -0
  305. package/lib/esm/blob/memory/index.js.map +1 -1
  306. package/lib/esm/blob/s3/MinioBlobEnvironment.js +28 -0
  307. package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +1 -0
  308. package/lib/esm/blob/s3/MinioBlobStoreService.js +42 -4
  309. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -1
  310. package/lib/esm/blob/s3/R2BlobEnvironment.js +28 -0
  311. package/lib/esm/blob/s3/R2BlobEnvironment.js.map +1 -0
  312. package/lib/esm/blob/s3/R2BlobStoreService.js +42 -4
  313. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -1
  314. package/lib/esm/blob/s3/S3BlobEnvironment.js +28 -0
  315. package/lib/esm/blob/s3/S3BlobEnvironment.js.map +1 -0
  316. package/lib/esm/blob/s3/S3BlobStoreService.js +41 -311
  317. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  318. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +353 -0
  319. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -0
  320. package/lib/esm/blob/s3/index.js +4 -0
  321. package/lib/esm/blob/s3/index.js.map +1 -1
  322. package/lib/esm/calendar/CalendarService.js +384 -0
  323. package/lib/esm/calendar/CalendarService.js.map +1 -0
  324. package/lib/esm/calendar/index.js +4 -0
  325. package/lib/esm/calendar/index.js.map +1 -0
  326. package/lib/esm/{graph/shared → calendar}/types.js.map +1 -1
  327. package/lib/esm/calendar/validators/cron.js +48 -0
  328. package/lib/esm/calendar/validators/cron.js.map +1 -0
  329. package/lib/esm/calendar/writers/CalendarFsWriter.js +31 -0
  330. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
  331. package/lib/esm/calendar/writers/CalenderDownloader.js +39 -0
  332. package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
  333. package/lib/esm/calendar/writers/ICalendarWriter.js +2 -0
  334. package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
  335. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js +95 -0
  336. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js.map +1 -0
  337. package/lib/esm/graph/engine/catalog/GraphCatalogueErrors.js +22 -0
  338. package/lib/esm/graph/engine/catalog/GraphCatalogueErrors.js.map +1 -0
  339. package/lib/esm/graph/engine/catalog/GraphNodeCatalogue.js +265 -0
  340. package/lib/esm/graph/engine/catalog/GraphNodeCatalogue.js.map +1 -0
  341. package/lib/esm/graph/engine/catalog/GraphNodeManifestResolver.js +162 -0
  342. package/lib/esm/graph/engine/catalog/GraphNodeManifestResolver.js.map +1 -0
  343. package/lib/esm/graph/engine/catalog/GraphNodeMethodRegistry.js +59 -0
  344. package/lib/esm/graph/engine/catalog/GraphNodeMethodRegistry.js.map +1 -0
  345. package/lib/esm/graph/engine/catalog/GraphNodeRegistration.js +12 -0
  346. package/lib/esm/graph/engine/catalog/GraphNodeRegistration.js.map +1 -0
  347. package/lib/esm/graph/engine/catalog/index.js +7 -0
  348. package/lib/esm/graph/engine/catalog/index.js.map +1 -0
  349. package/lib/esm/graph/engine/constants.js +2 -2
  350. package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -0
  351. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -1
  352. package/lib/esm/graph/engine/errors/GraphRunCancelledError.js +13 -0
  353. package/lib/esm/graph/engine/errors/GraphRunCancelledError.js.map +1 -0
  354. package/lib/esm/graph/engine/errors/index.js +1 -0
  355. package/lib/esm/graph/engine/errors/index.js.map +1 -1
  356. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -1
  357. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -1
  358. package/lib/esm/graph/engine/events/index.js +0 -1
  359. package/lib/esm/graph/engine/events/index.js.map +1 -1
  360. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +2 -2
  361. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -1
  362. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +10 -6
  363. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -1
  364. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +28 -16
  365. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -1
  366. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +322 -41
  367. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -1
  368. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -1
  369. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +3 -3
  370. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -1
  371. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +9 -6
  372. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -1
  373. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +11 -10
  374. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -1
  375. package/lib/esm/graph/engine/index.js +8 -11
  376. package/lib/esm/graph/engine/index.js.map +1 -1
  377. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +32 -7
  378. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -1
  379. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +32 -7
  380. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -1
  381. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +32 -7
  382. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -1
  383. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +2 -2
  384. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -1
  385. package/lib/esm/graph/engine/pinning/GraphPinningService.js +43 -14
  386. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -1
  387. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +3 -1
  388. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -1
  389. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +79 -88
  390. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -1
  391. package/lib/esm/graph/engine/planning/index.js +0 -1
  392. package/lib/esm/graph/engine/planning/index.js.map +1 -1
  393. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +28 -15
  394. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -1
  395. package/lib/esm/graph/engine/runs/GraphRunEventPublisher.js +64 -0
  396. package/lib/esm/graph/engine/runs/GraphRunEventPublisher.js.map +1 -0
  397. package/lib/esm/graph/engine/runs/GraphRunExecutor.js +286 -0
  398. package/lib/esm/graph/engine/runs/GraphRunExecutor.js.map +1 -0
  399. package/lib/esm/graph/engine/runs/GraphRunFingerprint.js +25 -0
  400. package/lib/esm/graph/engine/runs/GraphRunFingerprint.js.map +1 -0
  401. package/lib/esm/graph/engine/runs/GraphRunService.js +254 -0
  402. package/lib/esm/graph/engine/runs/GraphRunService.js.map +1 -0
  403. package/lib/esm/graph/engine/runs/InMemoryGraphRunEventStore.js +64 -0
  404. package/lib/esm/graph/engine/runs/InMemoryGraphRunEventStore.js.map +1 -0
  405. package/lib/esm/graph/engine/runs/InMemoryGraphRunStore.js +21 -0
  406. package/lib/esm/graph/engine/runs/InMemoryGraphRunStore.js.map +1 -0
  407. package/lib/esm/graph/engine/runs/index.js +9 -0
  408. package/lib/esm/graph/engine/runs/index.js.map +1 -0
  409. package/lib/esm/graph/engine/runs/ownership.js +30 -0
  410. package/lib/esm/graph/engine/runs/ownership.js.map +1 -0
  411. package/lib/esm/graph/engine/runs/types.js +2 -0
  412. package/lib/esm/graph/engine/runs/types.js.map +1 -0
  413. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  414. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -1
  415. package/lib/esm/graph/engine/validation/GraphConnectionPolicyValidator.js +137 -0
  416. package/lib/esm/graph/engine/validation/GraphConnectionPolicyValidator.js.map +1 -0
  417. package/lib/esm/graph/engine/validation/GraphCredentialReferenceValidator.js +155 -0
  418. package/lib/esm/graph/engine/validation/GraphCredentialReferenceValidator.js.map +1 -0
  419. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +6 -10
  420. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -1
  421. package/lib/esm/graph/engine/validation/GraphEdgeInstanceValidator.js +161 -0
  422. package/lib/esm/graph/engine/validation/GraphEdgeInstanceValidator.js.map +1 -0
  423. package/lib/esm/graph/engine/validation/GraphNodeInstanceValidator.js +81 -0
  424. package/lib/esm/graph/engine/validation/GraphNodeInstanceValidator.js.map +1 -0
  425. package/lib/esm/graph/engine/validation/GraphParameterValidator.js +416 -0
  426. package/lib/esm/graph/engine/validation/GraphParameterValidator.js.map +1 -0
  427. package/lib/esm/graph/engine/validation/GraphResolvedWorkflow.js +2 -0
  428. package/lib/esm/graph/engine/validation/GraphResolvedWorkflow.js.map +1 -0
  429. package/lib/esm/graph/engine/validation/GraphValidationErrors.js +43 -0
  430. package/lib/esm/graph/engine/validation/GraphValidationErrors.js.map +1 -0
  431. package/lib/esm/graph/engine/validation/GraphValidationIssue.js +2 -0
  432. package/lib/esm/graph/engine/validation/GraphValidationIssue.js.map +1 -0
  433. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js +472 -0
  434. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js.map +1 -0
  435. package/lib/esm/graph/engine/validation/index.js +12 -1
  436. package/lib/esm/graph/engine/validation/index.js.map +1 -1
  437. package/lib/esm/graph/index.js +4 -4
  438. package/lib/esm/graph/log/GraphRunLogger.js +4 -1
  439. package/lib/esm/graph/log/GraphRunLogger.js.map +1 -1
  440. package/lib/esm/graph/log/LogParameters.js +1 -1
  441. package/lib/esm/graph/log/LogParameters.js.map +1 -1
  442. package/lib/esm/index.js +3 -3
  443. package/lib/esm/nest/graph/GraphExecutionController.js +143 -19
  444. package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -1
  445. package/lib/esm/nest/graph/GraphExecutionModule.js +97 -10
  446. package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -1
  447. package/lib/esm/nest/graph/GraphExecutionResultModel.js +11 -0
  448. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -1
  449. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +62 -62
  450. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -1
  451. package/lib/esm/nest/graph/GraphNodeCatalogueController.js +261 -0
  452. package/lib/esm/nest/graph/GraphNodeCatalogueController.js.map +1 -0
  453. package/lib/esm/nest/graph/GraphResultService.js +16 -1
  454. package/lib/esm/nest/graph/GraphResultService.js.map +1 -1
  455. package/lib/esm/nest/graph/GraphRunController.js +270 -0
  456. package/lib/esm/nest/graph/GraphRunController.js.map +1 -0
  457. package/lib/esm/nest/graph/GraphRunModel.js +74 -0
  458. package/lib/esm/nest/graph/GraphRunModel.js.map +1 -0
  459. package/lib/esm/nest/graph/GraphRunModelService.js +112 -0
  460. package/lib/esm/nest/graph/GraphRunModelService.js.map +1 -0
  461. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js +164 -0
  462. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js.map +1 -0
  463. package/lib/esm/nest/graph/GraphWorkflowController.js +153 -0
  464. package/lib/esm/nest/graph/GraphWorkflowController.js.map +1 -0
  465. package/lib/esm/nest/graph/GraphWorkflowDocumentLimits.js +8 -0
  466. package/lib/esm/nest/graph/GraphWorkflowDocumentLimits.js.map +1 -0
  467. package/lib/esm/nest/graph/GraphWorkflowErrors.js +18 -0
  468. package/lib/esm/nest/graph/GraphWorkflowErrors.js.map +1 -0
  469. package/lib/esm/nest/graph/GraphWorkflowModel.js +27 -1
  470. package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -1
  471. package/lib/esm/nest/graph/GraphWorkflowService.js +210 -8
  472. package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -1
  473. package/lib/esm/nest/graph/index.js +8 -0
  474. package/lib/esm/nest/graph/index.js.map +1 -1
  475. package/lib/esm/nest/graph/main.js +22 -5
  476. package/lib/esm/nest/graph/main.js.map +1 -1
  477. package/lib/esm/nest/keycloakModule.js +3 -1
  478. package/lib/esm/nest/keycloakModule.js.map +1 -1
  479. package/lib/esm/secrets/aws/AwsSecretEnvironment.js +23 -0
  480. package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +1 -0
  481. package/lib/esm/secrets/aws/AwsSecretService.js +39 -8
  482. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
  483. package/lib/esm/secrets/aws/index.js +1 -0
  484. package/lib/esm/secrets/aws/index.js.map +1 -1
  485. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +30 -4
  486. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
  487. package/lib/esm/secrets/azure/AzureSecretEnvironment.js +19 -0
  488. package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +1 -0
  489. package/lib/esm/secrets/azure/index.js +1 -0
  490. package/lib/esm/secrets/azure/index.js.map +1 -1
  491. package/lib/esm/secrets/core/ClientBasedSecretService.js +24 -0
  492. package/lib/esm/secrets/core/ClientBasedSecretService.js.map +1 -0
  493. package/lib/esm/secrets/core/SecretEnvironment.js +15 -0
  494. package/lib/esm/secrets/core/SecretEnvironment.js.map +1 -0
  495. package/lib/esm/secrets/core/index.js +2 -0
  496. package/lib/esm/secrets/core/index.js.map +1 -1
  497. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +21 -0
  498. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +1 -0
  499. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +30 -5
  500. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
  501. package/lib/esm/secrets/gcp/index.js +1 -0
  502. package/lib/esm/secrets/gcp/index.js.map +1 -1
  503. package/lib/esm/secrets/model/ModelSecretEnvironment.js +17 -0
  504. package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +1 -0
  505. package/lib/esm/secrets/model/ModelSecretService.js +28 -5
  506. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  507. package/lib/esm/secrets/model/index.js +1 -0
  508. package/lib/esm/secrets/model/index.js.map +1 -1
  509. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +20 -0
  510. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +1 -0
  511. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +33 -5
  512. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
  513. package/lib/esm/secrets/onepassword/index.js +1 -0
  514. package/lib/esm/secrets/onepassword/index.js.map +1 -1
  515. package/lib/esm/secrets/vault/VaultSecretEnvironment.js +20 -0
  516. package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +1 -0
  517. package/lib/esm/secrets/vault/VaultSecretService.js +33 -5
  518. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
  519. package/lib/esm/secrets/vault/index.js +1 -0
  520. package/lib/esm/secrets/vault/index.js.map +1 -1
  521. package/lib/esm/sftp/aws/AwsSftpEnvironment.js +27 -0
  522. package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +1 -0
  523. package/lib/esm/sftp/aws/AwsSftpService.js +52 -6
  524. package/lib/esm/sftp/aws/AwsSftpService.js.map +1 -1
  525. package/lib/esm/sftp/core/SftpEnvironment.js +15 -0
  526. package/lib/esm/sftp/core/SftpEnvironment.js.map +1 -0
  527. package/lib/esm/sftp/core/SftpSource.js +12 -2
  528. package/lib/esm/sftp/core/SftpSource.js.map +1 -1
  529. package/lib/esm/sftp/core/index.js +1 -0
  530. package/lib/esm/sftp/core/index.js.map +1 -1
  531. package/lib/esm/sftp/index.js +3 -0
  532. package/lib/esm/sftp/index.js.map +1 -1
  533. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +24 -0
  534. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +1 -0
  535. package/lib/esm/sftp/ssh2/Ssh2SftpService.js +43 -6
  536. package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +1 -1
  537. package/lib/esm/shared/environmentValue.js +25 -0
  538. package/lib/esm/shared/environmentValue.js.map +1 -0
  539. package/lib/types/blob/azure/AzureBlobEnvironment.d.cts +25 -0
  540. package/lib/types/blob/azure/AzureBlobEnvironment.d.mts +25 -0
  541. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +38 -0
  542. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +38 -0
  543. package/lib/types/blob/azure/index.d.cts +1 -0
  544. package/lib/types/blob/azure/index.d.mts +1 -0
  545. package/lib/types/blob/core/BlobEnvironment.d.cts +11 -0
  546. package/lib/types/blob/core/BlobEnvironment.d.mts +11 -0
  547. package/lib/types/blob/core/BlobStoreService.d.cts +238 -1
  548. package/lib/types/blob/core/BlobStoreService.d.mts +238 -1
  549. package/lib/types/blob/core/index.d.cts +1 -0
  550. package/lib/types/blob/core/index.d.mts +1 -0
  551. package/lib/types/blob/gcp/GcsBlobEnvironment.d.cts +17 -0
  552. package/lib/types/blob/gcp/GcsBlobEnvironment.d.mts +17 -0
  553. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +36 -0
  554. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +36 -0
  555. package/lib/types/blob/gcp/index.d.cts +1 -0
  556. package/lib/types/blob/gcp/index.d.mts +1 -0
  557. package/lib/types/blob/ipfs/IpfsBlobEnvironment.d.cts +24 -0
  558. package/lib/types/blob/ipfs/IpfsBlobEnvironment.d.mts +24 -0
  559. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +35 -0
  560. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +35 -0
  561. package/lib/types/blob/ipfs/index.d.cts +1 -0
  562. package/lib/types/blob/ipfs/index.d.mts +1 -0
  563. package/lib/types/blob/local/LocalBlobEnvironment.d.cts +15 -0
  564. package/lib/types/blob/local/LocalBlobEnvironment.d.mts +15 -0
  565. package/lib/types/blob/local/LocalBlobStoreService.d.cts +28 -0
  566. package/lib/types/blob/local/LocalBlobStoreService.d.mts +28 -0
  567. package/lib/types/blob/local/index.d.cts +1 -0
  568. package/lib/types/blob/local/index.d.mts +1 -0
  569. package/lib/types/blob/memory/MemoryBlobEnvironment.d.cts +14 -0
  570. package/lib/types/blob/memory/MemoryBlobEnvironment.d.mts +14 -0
  571. package/lib/types/blob/memory/MemoryBlobStoreService.d.cts +28 -0
  572. package/lib/types/blob/memory/MemoryBlobStoreService.d.mts +28 -0
  573. package/lib/types/blob/memory/index.d.cts +1 -0
  574. package/lib/types/blob/memory/index.d.mts +1 -0
  575. package/lib/types/blob/s3/MinioBlobEnvironment.d.cts +11 -0
  576. package/lib/types/blob/s3/MinioBlobEnvironment.d.mts +11 -0
  577. package/lib/types/blob/s3/MinioBlobStoreService.d.cts +4 -7
  578. package/lib/types/blob/s3/MinioBlobStoreService.d.mts +4 -7
  579. package/lib/types/blob/s3/R2BlobEnvironment.d.cts +11 -0
  580. package/lib/types/blob/s3/R2BlobEnvironment.d.mts +11 -0
  581. package/lib/types/blob/s3/R2BlobStoreService.d.cts +4 -7
  582. package/lib/types/blob/s3/R2BlobStoreService.d.mts +4 -7
  583. package/lib/types/blob/s3/S3BlobEnvironment.d.cts +26 -0
  584. package/lib/types/blob/s3/S3BlobEnvironment.d.mts +26 -0
  585. package/lib/types/blob/s3/S3BlobStoreService.d.cts +4 -24
  586. package/lib/types/blob/s3/S3BlobStoreService.d.mts +4 -24
  587. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +58 -0
  588. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +58 -0
  589. package/lib/types/blob/s3/index.d.cts +4 -0
  590. package/lib/types/blob/s3/index.d.mts +4 -0
  591. package/lib/types/calendar/CalendarService.d.cts +40 -0
  592. package/lib/types/calendar/CalendarService.d.mts +40 -0
  593. package/lib/types/calendar/index.d.cts +3 -0
  594. package/lib/types/calendar/index.d.mts +3 -0
  595. package/lib/types/calendar/types.d.cts +64 -0
  596. package/lib/types/calendar/types.d.mts +64 -0
  597. package/lib/types/calendar/validators/cron.d.cts +7 -0
  598. package/lib/types/calendar/validators/cron.d.mts +7 -0
  599. package/lib/types/calendar/writers/CalendarFsWriter.d.cts +6 -0
  600. package/lib/types/calendar/writers/CalendarFsWriter.d.mts +6 -0
  601. package/lib/types/calendar/writers/CalenderDownloader.d.cts +6 -0
  602. package/lib/types/calendar/writers/CalenderDownloader.d.mts +6 -0
  603. package/lib/types/calendar/writers/ICalendarWriter.d.cts +5 -0
  604. package/lib/types/calendar/writers/ICalendarWriter.d.mts +5 -0
  605. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.cts +17 -0
  606. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.mts +17 -0
  607. package/lib/types/graph/engine/catalog/GraphCatalogueErrors.d.cts +13 -0
  608. package/lib/types/graph/engine/catalog/GraphCatalogueErrors.d.mts +13 -0
  609. package/lib/types/graph/engine/catalog/GraphNodeCatalogue.d.cts +71 -0
  610. package/lib/types/graph/engine/catalog/GraphNodeCatalogue.d.mts +71 -0
  611. package/lib/types/graph/engine/catalog/GraphNodeManifestResolver.d.cts +42 -0
  612. package/lib/types/graph/engine/catalog/GraphNodeManifestResolver.d.mts +42 -0
  613. package/lib/types/graph/engine/catalog/GraphNodeMethodRegistry.d.cts +22 -0
  614. package/lib/types/graph/engine/catalog/GraphNodeMethodRegistry.d.mts +22 -0
  615. package/lib/types/graph/engine/catalog/GraphNodeRegistration.d.cts +68 -0
  616. package/lib/types/graph/engine/catalog/GraphNodeRegistration.d.mts +68 -0
  617. package/lib/types/graph/engine/catalog/index.d.cts +6 -0
  618. package/lib/types/graph/engine/catalog/index.d.mts +6 -0
  619. package/lib/types/graph/engine/constants.d.cts +2 -2
  620. package/lib/types/graph/engine/constants.d.mts +2 -2
  621. package/lib/types/graph/engine/errors/GraphRunCancelledError.d.cts +9 -0
  622. package/lib/types/graph/engine/errors/GraphRunCancelledError.d.mts +9 -0
  623. package/lib/types/graph/engine/errors/index.d.cts +1 -0
  624. package/lib/types/graph/engine/errors/index.d.mts +1 -0
  625. package/lib/types/graph/engine/events/GraphExecutionEventEmitter.d.cts +1 -1
  626. package/lib/types/graph/engine/events/GraphExecutionEventEmitter.d.mts +1 -1
  627. package/lib/types/graph/engine/events/GraphExecutionEventFactory.d.cts +1 -1
  628. package/lib/types/graph/engine/events/GraphExecutionEventFactory.d.mts +1 -1
  629. package/lib/types/graph/engine/events/GraphExecutionObserver.d.cts +1 -1
  630. package/lib/types/graph/engine/events/GraphExecutionObserver.d.mts +1 -1
  631. package/lib/types/graph/engine/events/index.d.cts +0 -1
  632. package/lib/types/graph/engine/events/index.d.mts +0 -1
  633. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.cts +2 -2
  634. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.mts +2 -2
  635. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +2 -2
  636. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +2 -2
  637. package/lib/types/graph/engine/execution/GraphExecutionContext.d.cts +28 -14
  638. package/lib/types/graph/engine/execution/GraphExecutionContext.d.mts +28 -14
  639. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +106 -23
  640. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +106 -23
  641. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.cts +2 -1
  642. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.mts +2 -1
  643. package/lib/types/graph/engine/execution/GraphExecutionResult.d.cts +3 -3
  644. package/lib/types/graph/engine/execution/GraphExecutionResult.d.mts +3 -3
  645. package/lib/types/graph/engine/execution/GraphNodeExecutor.d.cts +17 -9
  646. package/lib/types/graph/engine/execution/GraphNodeExecutor.d.mts +17 -9
  647. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +3 -3
  648. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +3 -3
  649. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +2 -2
  650. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +2 -2
  651. package/lib/types/graph/engine/index.d.cts +6 -9
  652. package/lib/types/graph/engine/index.d.mts +6 -9
  653. package/lib/types/graph/engine/loops/ConditionExpressionEvaluator.d.cts +1 -1
  654. package/lib/types/graph/engine/loops/ConditionExpressionEvaluator.d.mts +1 -1
  655. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.cts +2 -2
  656. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.mts +2 -2
  657. package/lib/types/graph/engine/loops/GraphConditionEvaluator.d.cts +1 -1
  658. package/lib/types/graph/engine/loops/GraphConditionEvaluator.d.mts +1 -1
  659. package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.cts +2 -2
  660. package/lib/types/graph/engine/loops/UntilGraphNodeExecutor.d.mts +2 -2
  661. package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.cts +2 -2
  662. package/lib/types/graph/engine/loops/WhileGraphNodeExecutor.d.mts +2 -2
  663. package/lib/types/graph/engine/pinning/GraphPinningService.d.cts +16 -5
  664. package/lib/types/graph/engine/pinning/GraphPinningService.d.mts +16 -5
  665. package/lib/types/graph/engine/planning/GraphExecutionPlan.d.cts +8 -4
  666. package/lib/types/graph/engine/planning/GraphExecutionPlan.d.mts +8 -4
  667. package/lib/types/graph/engine/planning/GraphExecutionPlanEdge.d.cts +9 -4
  668. package/lib/types/graph/engine/planning/GraphExecutionPlanEdge.d.mts +9 -4
  669. package/lib/types/graph/engine/planning/GraphExecutionPlanNode.d.cts +17 -9
  670. package/lib/types/graph/engine/planning/GraphExecutionPlanNode.d.mts +17 -9
  671. package/lib/types/graph/engine/planning/GraphExecutionPlanner.d.cts +21 -33
  672. package/lib/types/graph/engine/planning/GraphExecutionPlanner.d.mts +21 -33
  673. package/lib/types/graph/engine/planning/index.d.cts +0 -1
  674. package/lib/types/graph/engine/planning/index.d.mts +0 -1
  675. package/lib/types/graph/engine/registry/GraphNodeExecutorRegistry.d.cts +22 -8
  676. package/lib/types/graph/engine/registry/GraphNodeExecutorRegistry.d.mts +22 -8
  677. package/lib/types/graph/engine/runs/GraphRunEventPublisher.d.cts +26 -0
  678. package/lib/types/graph/engine/runs/GraphRunEventPublisher.d.mts +26 -0
  679. package/lib/types/graph/engine/runs/GraphRunExecutor.d.cts +75 -0
  680. package/lib/types/graph/engine/runs/GraphRunExecutor.d.mts +75 -0
  681. package/lib/types/graph/engine/runs/GraphRunFingerprint.d.cts +8 -0
  682. package/lib/types/graph/engine/runs/GraphRunFingerprint.d.mts +8 -0
  683. package/lib/types/graph/engine/runs/GraphRunService.d.cts +93 -0
  684. package/lib/types/graph/engine/runs/GraphRunService.d.mts +93 -0
  685. package/lib/types/graph/engine/runs/InMemoryGraphRunEventStore.d.cts +28 -0
  686. package/lib/types/graph/engine/runs/InMemoryGraphRunEventStore.d.mts +28 -0
  687. package/lib/types/graph/engine/runs/InMemoryGraphRunStore.d.cts +12 -0
  688. package/lib/types/graph/engine/runs/InMemoryGraphRunStore.d.mts +12 -0
  689. package/lib/types/graph/engine/runs/index.d.cts +8 -0
  690. package/lib/types/graph/engine/runs/index.d.mts +8 -0
  691. package/lib/types/graph/engine/runs/ownership.d.cts +25 -0
  692. package/lib/types/graph/engine/runs/ownership.d.mts +25 -0
  693. package/lib/types/graph/engine/runs/types.d.cts +83 -0
  694. package/lib/types/graph/engine/runs/types.d.mts +83 -0
  695. package/lib/types/graph/engine/types.d.cts +37 -12
  696. package/lib/types/graph/engine/types.d.mts +37 -12
  697. package/lib/types/graph/engine/validation/GraphConnectionPolicyValidator.d.cts +32 -0
  698. package/lib/types/graph/engine/validation/GraphConnectionPolicyValidator.d.mts +32 -0
  699. package/lib/types/graph/engine/validation/GraphCredentialReferenceValidator.d.cts +62 -0
  700. package/lib/types/graph/engine/validation/GraphCredentialReferenceValidator.d.mts +62 -0
  701. package/lib/types/graph/engine/validation/GraphDefinitionValidator.d.cts +11 -9
  702. package/lib/types/graph/engine/validation/GraphDefinitionValidator.d.mts +11 -9
  703. package/lib/types/graph/engine/validation/GraphEdgeInstanceValidator.d.cts +32 -0
  704. package/lib/types/graph/engine/validation/GraphEdgeInstanceValidator.d.mts +32 -0
  705. package/lib/types/graph/engine/validation/GraphNodeInstanceValidator.d.cts +37 -0
  706. package/lib/types/graph/engine/validation/GraphNodeInstanceValidator.d.mts +37 -0
  707. package/lib/types/graph/engine/validation/GraphParameterValidator.d.cts +92 -0
  708. package/lib/types/graph/engine/validation/GraphParameterValidator.d.mts +92 -0
  709. package/lib/types/graph/engine/validation/GraphResolvedWorkflow.d.cts +66 -0
  710. package/lib/types/graph/engine/validation/GraphResolvedWorkflow.d.mts +66 -0
  711. package/lib/types/graph/engine/validation/GraphValidationErrors.d.cts +34 -0
  712. package/lib/types/graph/engine/validation/GraphValidationErrors.d.mts +34 -0
  713. package/lib/types/graph/engine/validation/GraphValidationIssue.d.cts +39 -0
  714. package/lib/types/graph/engine/validation/GraphValidationIssue.d.mts +39 -0
  715. package/lib/types/graph/engine/validation/GraphWorkflowDocumentValidator.d.cts +162 -0
  716. package/lib/types/graph/engine/validation/GraphWorkflowDocumentValidator.d.mts +162 -0
  717. package/lib/types/graph/engine/validation/index.d.cts +12 -1
  718. package/lib/types/graph/engine/validation/index.d.mts +12 -1
  719. package/lib/types/graph/index.d.cts +4 -4
  720. package/lib/types/graph/index.d.mts +4 -4
  721. package/lib/types/graph/log/GraphRunLogger.d.cts +5 -1
  722. package/lib/types/graph/log/GraphRunLogger.d.mts +5 -1
  723. package/lib/types/index.d.cts +2 -2
  724. package/lib/types/index.d.mts +2 -2
  725. package/lib/types/nest/graph/GraphExecutionController.d.cts +83 -4
  726. package/lib/types/nest/graph/GraphExecutionController.d.mts +83 -4
  727. package/lib/types/nest/graph/GraphExecutionModule.d.cts +64 -0
  728. package/lib/types/nest/graph/GraphExecutionModule.d.mts +64 -0
  729. package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +12 -0
  730. package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +12 -0
  731. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +42 -28
  732. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +42 -28
  733. package/lib/types/nest/graph/GraphNodeCatalogueController.d.cts +70 -0
  734. package/lib/types/nest/graph/GraphNodeCatalogueController.d.mts +70 -0
  735. package/lib/types/nest/graph/GraphResultService.d.cts +12 -0
  736. package/lib/types/nest/graph/GraphResultService.d.mts +12 -0
  737. package/lib/types/nest/graph/GraphRunController.d.cts +87 -0
  738. package/lib/types/nest/graph/GraphRunController.d.mts +87 -0
  739. package/lib/types/nest/graph/GraphRunModel.d.cts +22 -0
  740. package/lib/types/nest/graph/GraphRunModel.d.mts +22 -0
  741. package/lib/types/nest/graph/GraphRunModelService.d.cts +21 -0
  742. package/lib/types/nest/graph/GraphRunModelService.d.mts +21 -0
  743. package/lib/types/nest/graph/GraphWorkflowBoundaryValidation.d.cts +28 -0
  744. package/lib/types/nest/graph/GraphWorkflowBoundaryValidation.d.mts +28 -0
  745. package/lib/types/nest/graph/GraphWorkflowController.d.cts +62 -0
  746. package/lib/types/nest/graph/GraphWorkflowController.d.mts +62 -0
  747. package/lib/types/nest/graph/GraphWorkflowDocumentLimits.d.cts +33 -0
  748. package/lib/types/nest/graph/GraphWorkflowDocumentLimits.d.mts +33 -0
  749. package/lib/types/nest/graph/GraphWorkflowErrors.d.cts +13 -0
  750. package/lib/types/nest/graph/GraphWorkflowErrors.d.mts +13 -0
  751. package/lib/types/nest/graph/GraphWorkflowModel.d.cts +19 -1
  752. package/lib/types/nest/graph/GraphWorkflowModel.d.mts +19 -1
  753. package/lib/types/nest/graph/GraphWorkflowService.d.cts +48 -1
  754. package/lib/types/nest/graph/GraphWorkflowService.d.mts +48 -1
  755. package/lib/types/nest/graph/index.d.cts +8 -0
  756. package/lib/types/nest/graph/index.d.mts +8 -0
  757. package/lib/types/nest/keycloakModule.d.cts +9 -1
  758. package/lib/types/nest/keycloakModule.d.mts +9 -1
  759. package/lib/types/secrets/aws/AwsSecretEnvironment.d.cts +21 -0
  760. package/lib/types/secrets/aws/AwsSecretEnvironment.d.mts +21 -0
  761. package/lib/types/secrets/aws/AwsSecretService.d.cts +4 -3
  762. package/lib/types/secrets/aws/AwsSecretService.d.mts +4 -3
  763. package/lib/types/secrets/aws/index.d.cts +1 -0
  764. package/lib/types/secrets/aws/index.d.mts +1 -0
  765. package/lib/types/secrets/azure/AzureKeyVaultSecretService.d.cts +4 -3
  766. package/lib/types/secrets/azure/AzureKeyVaultSecretService.d.mts +4 -3
  767. package/lib/types/secrets/azure/AzureSecretEnvironment.d.cts +14 -0
  768. package/lib/types/secrets/azure/AzureSecretEnvironment.d.mts +14 -0
  769. package/lib/types/secrets/azure/index.d.cts +1 -0
  770. package/lib/types/secrets/azure/index.d.mts +1 -0
  771. package/lib/types/secrets/core/ClientBasedSecretService.d.cts +20 -0
  772. package/lib/types/secrets/core/ClientBasedSecretService.d.mts +20 -0
  773. package/lib/types/secrets/core/SecretEnvironment.d.cts +11 -0
  774. package/lib/types/secrets/core/SecretEnvironment.d.mts +11 -0
  775. package/lib/types/secrets/core/index.d.cts +2 -0
  776. package/lib/types/secrets/core/index.d.mts +2 -0
  777. package/lib/types/secrets/gcp/GcpSecretEnvironment.d.cts +16 -0
  778. package/lib/types/secrets/gcp/GcpSecretEnvironment.d.mts +16 -0
  779. package/lib/types/secrets/gcp/GcpSecretManagerService.d.cts +4 -3
  780. package/lib/types/secrets/gcp/GcpSecretManagerService.d.mts +4 -3
  781. package/lib/types/secrets/gcp/index.d.cts +1 -0
  782. package/lib/types/secrets/gcp/index.d.mts +1 -0
  783. package/lib/types/secrets/model/ModelSecretEnvironment.d.cts +14 -0
  784. package/lib/types/secrets/model/ModelSecretEnvironment.d.mts +14 -0
  785. package/lib/types/secrets/model/ModelSecretService.d.cts +4 -3
  786. package/lib/types/secrets/model/ModelSecretService.d.mts +4 -3
  787. package/lib/types/secrets/model/ModelSecretServiceConfig.d.cts +2 -1
  788. package/lib/types/secrets/model/ModelSecretServiceConfig.d.mts +2 -1
  789. package/lib/types/secrets/model/index.d.cts +1 -0
  790. package/lib/types/secrets/model/index.d.mts +1 -0
  791. package/lib/types/secrets/onepassword/OnePasswordSecretEnvironment.d.cts +17 -0
  792. package/lib/types/secrets/onepassword/OnePasswordSecretEnvironment.d.mts +17 -0
  793. package/lib/types/secrets/onepassword/OnePasswordSecretService.d.cts +4 -3
  794. package/lib/types/secrets/onepassword/OnePasswordSecretService.d.mts +4 -3
  795. package/lib/types/secrets/onepassword/index.d.cts +1 -0
  796. package/lib/types/secrets/onepassword/index.d.mts +1 -0
  797. package/lib/types/secrets/vault/VaultSecretEnvironment.d.cts +17 -0
  798. package/lib/types/secrets/vault/VaultSecretEnvironment.d.mts +17 -0
  799. package/lib/types/secrets/vault/VaultSecretService.d.cts +4 -3
  800. package/lib/types/secrets/vault/VaultSecretService.d.mts +4 -3
  801. package/lib/types/secrets/vault/index.d.cts +1 -0
  802. package/lib/types/secrets/vault/index.d.mts +1 -0
  803. package/lib/types/sftp/aws/AwsSftpEnvironment.d.cts +24 -0
  804. package/lib/types/sftp/aws/AwsSftpEnvironment.d.mts +24 -0
  805. package/lib/types/sftp/aws/AwsSftpService.d.cts +1 -0
  806. package/lib/types/sftp/aws/AwsSftpService.d.mts +1 -0
  807. package/lib/types/sftp/core/SftpEnvironment.d.cts +11 -0
  808. package/lib/types/sftp/core/SftpEnvironment.d.mts +11 -0
  809. package/lib/types/sftp/core/SftpSource.d.cts +7 -0
  810. package/lib/types/sftp/core/SftpSource.d.mts +7 -0
  811. package/lib/types/sftp/core/index.d.cts +1 -0
  812. package/lib/types/sftp/core/index.d.mts +1 -0
  813. package/lib/types/sftp/index.d.cts +3 -0
  814. package/lib/types/sftp/index.d.mts +3 -0
  815. package/lib/types/sftp/ssh2/Ssh2SftpEnvironment.d.cts +21 -0
  816. package/lib/types/sftp/ssh2/Ssh2SftpEnvironment.d.mts +21 -0
  817. package/lib/types/sftp/ssh2/Ssh2SftpService.d.cts +1 -0
  818. package/lib/types/sftp/ssh2/Ssh2SftpService.d.mts +1 -0
  819. package/lib/types/shared/environmentValue.d.cts +16 -0
  820. package/lib/types/shared/environmentValue.d.mts +16 -0
  821. package/package.json +19 -17
  822. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +0 -4
  823. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
  824. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +0 -172
  825. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
  826. package/lib/cjs/graph/shared/GraphExecutionStateMapper.cjs +0 -97
  827. package/lib/cjs/graph/shared/GraphExecutionStateMapper.cjs.map +0 -1
  828. package/lib/cjs/graph/shared/constants.cjs +0 -99
  829. package/lib/cjs/graph/shared/constants.cjs.map +0 -1
  830. package/lib/cjs/graph/shared/index.cjs +0 -46
  831. package/lib/cjs/graph/shared/index.cjs.map +0 -1
  832. package/lib/cjs/graph/shared/nodes/agent.cjs +0 -110
  833. package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
  834. package/lib/cjs/graph/shared/nodes/base.cjs +0 -36
  835. package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
  836. package/lib/cjs/graph/shared/nodes/category-styles.cjs +0 -38
  837. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
  838. package/lib/cjs/graph/shared/nodes/flow-control.cjs +0 -630
  839. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
  840. package/lib/cjs/graph/shared/nodes/index.cjs +0 -35
  841. package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
  842. package/lib/cjs/graph/shared/nodes/triggers.cjs +0 -250
  843. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
  844. package/lib/cjs/graph/shared/types.cjs.map +0 -1
  845. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +0 -2
  846. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
  847. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +0 -167
  848. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
  849. package/lib/esm/graph/shared/GraphExecutionStateMapper.js +0 -91
  850. package/lib/esm/graph/shared/GraphExecutionStateMapper.js.map +0 -1
  851. package/lib/esm/graph/shared/constants.js +0 -135
  852. package/lib/esm/graph/shared/constants.js.map +0 -1
  853. package/lib/esm/graph/shared/index.js +0 -25
  854. package/lib/esm/graph/shared/index.js.map +0 -1
  855. package/lib/esm/graph/shared/nodes/agent.js +0 -101
  856. package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
  857. package/lib/esm/graph/shared/nodes/base.js +0 -31
  858. package/lib/esm/graph/shared/nodes/base.js.map +0 -1
  859. package/lib/esm/graph/shared/nodes/category-styles.js +0 -34
  860. package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
  861. package/lib/esm/graph/shared/nodes/flow-control.js +0 -621
  862. package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
  863. package/lib/esm/graph/shared/nodes/index.js +0 -18
  864. package/lib/esm/graph/shared/nodes/index.js.map +0 -1
  865. package/lib/esm/graph/shared/nodes/triggers.js +0 -241
  866. package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
  867. package/lib/types/graph/engine/events/GraphExecutionEvent.d.cts +0 -6
  868. package/lib/types/graph/engine/events/GraphExecutionEvent.d.mts +0 -6
  869. package/lib/types/graph/engine/planning/GraphRelationResolver.d.cts +0 -62
  870. package/lib/types/graph/engine/planning/GraphRelationResolver.d.mts +0 -62
  871. package/lib/types/graph/shared/GraphExecutionStateMapper.d.cts +0 -66
  872. package/lib/types/graph/shared/GraphExecutionStateMapper.d.mts +0 -66
  873. package/lib/types/graph/shared/constants.d.cts +0 -120
  874. package/lib/types/graph/shared/constants.d.mts +0 -120
  875. package/lib/types/graph/shared/index.d.cts +0 -21
  876. package/lib/types/graph/shared/index.d.mts +0 -21
  877. package/lib/types/graph/shared/nodes/agent.d.cts +0 -44
  878. package/lib/types/graph/shared/nodes/agent.d.mts +0 -44
  879. package/lib/types/graph/shared/nodes/base.d.cts +0 -28
  880. package/lib/types/graph/shared/nodes/base.d.mts +0 -28
  881. package/lib/types/graph/shared/nodes/category-styles.d.cts +0 -8
  882. package/lib/types/graph/shared/nodes/category-styles.d.mts +0 -8
  883. package/lib/types/graph/shared/nodes/flow-control.d.cts +0 -163
  884. package/lib/types/graph/shared/nodes/flow-control.d.mts +0 -163
  885. package/lib/types/graph/shared/nodes/index.d.cts +0 -17
  886. package/lib/types/graph/shared/nodes/index.d.mts +0 -17
  887. package/lib/types/graph/shared/nodes/triggers.d.cts +0 -53
  888. package/lib/types/graph/shared/nodes/triggers.d.mts +0 -53
  889. package/lib/types/graph/shared/types.d.cts +0 -257
  890. package/lib/types/graph/shared/types.d.mts +0 -257
  891. /package/lib/cjs/{graph/shared → calendar}/types.cjs +0 -0
  892. /package/lib/esm/{graph/shared → calendar}/types.js +0 -0
package/README.md CHANGED
@@ -5,6 +5,9 @@
5
5
  ## Exports
6
6
 
7
7
  - `@decaf-ts/integrations`
8
+ - `@decaf-ts/integrations/graph`
9
+ - `@decaf-ts/integrations/graph/shared`
10
+ - `@decaf-ts/integrations/nest/graph`
8
11
  - `@decaf-ts/integrations/keycloak`
9
12
  - `@decaf-ts/integrations/kibana`
10
13
  - `@decaf-ts/integrations/nest`
@@ -16,6 +19,7 @@
16
19
 
17
20
  ## Included Modules
18
21
 
22
+ - Graph engine, backend node catalogue, and run lifecycle (DECAF-50). The engine executes canonical `GraphWorkflowDocument`s only: the nine-stage validation gate resolves every node kind against the trusted backend catalogue, rejects inline client definitions (`node`/`definition`/`executor`/`execute`/`ports`/`component` fields), and rejects unsafe prototype keys (`__proto__`/`prototype`/`constructor`). Node executors implement the §4.9 request contract (`GraphNodeExecutionRequest` separates `parameters`/`credentials`/`metadata` from `inputs`); the legacy input-only executor adapter was removed at the P7 cutover. The Nest module exposes the catalogue API (`GET /graph/node-types*`), document persistence (`PUT|GET /graph/workflows/{id}`, `POST /graph/workflows/validate`), and the asynchronous run lifecycle (`POST /graph/runs` → `202` with `eventsUrl`/`resultUrl`, run-scoped authorized replayable SSE via `GET /graph/runs/{runId}/events`, `DELETE /graph/runs/{runId}` for cancellation). `POST /graph/execute` and the global `GET /graph/events` stream are deprecated (kept, not removed): the run lifecycle is the primary execution path. The `GRAPH_CANONICAL_DOCUMENT_ENABLED` rollout flag was removed at cutover — the canonical path is the sole default.
19
23
  - Keycloak provisioning helpers for realms, users, roles, identity providers, and client-scoped role wiring.
20
24
  - Kibana provisioning helpers for spaces, data views, dashboards, and realm-specific access control, including a fluent `KibanaIndexBuilder` (Builder Pattern) for constructing index pattern configurations with exact match, prefix/glob, and logger-generated matching modes.
21
25
  - Nest-style JWT helpers for extracting Keycloak roles, namespace scopes, and user context from access tokens, plus the `namespace(...)` model decorator for auth-scoped metadata.
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,i,n,o,s){"use strict";var d,c,p,l,u,_,y,g;e.IsolationTier=void 0,(d=e.IsolationTier||(e.IsolationTier={})).Pooled="pooled",d.Bridge="bridge",d.Silo="silo",e.MembershipStatus=void 0,(c=e.MembershipStatus||(e.MembershipStatus={})).Invited="invited",c.Active="active",c.Suspended="suspended",c.Removed="removed",e.PrincipalKind=void 0,(p=e.PrincipalKind||(e.PrincipalKind={})).User="user",p.Group="group",p.ServiceAccount="service_account",p.Agent="agent",p.ApiKey="api_key",e.ScopeKind=void 0,(l=e.ScopeKind||(e.ScopeKind={})).Tenant="tenant",l.OrgUnit="org_unit",l.Resource="resource",e.PermissionCategory=void 0,(u=e.PermissionCategory||(e.PermissionCategory={})).Admin="admin",u.ContentRead="content_read",u.ContentWrite="content_write",u.Memory="memory",u.Graph="graph",u.Vector="vector",u.Export="export",u.Billing="billing",u.Audit="audit",u.Security="security",u.Data="data",u.Automation="automation",e.ResourceVisibility=void 0,(_=e.ResourceVisibility||(e.ResourceVisibility={})).Private="private",_.ResourceAcl="resource_acl",_.OrgUnit="org_unit",_.OrgSubtree="org_subtree",_.Tenant="tenant",e.StorageKind=void 0,(y=e.StorageKind||(e.StorageKind={})).Postgres="postgres",y.Arango="arango",y.Qdrant="qdrant",y.ObjectStorage="object_storage",e.StorageBindingKind=void 0,(g=e.StorageBindingKind||(e.StorageBindingKind={})).Shared="shared",g.Dedicated="dedicated";const m=Object.values(e.IsolationTier),h=Object.values(e.MembershipStatus),f=Object.values(e.PrincipalKind),v=Object.values(e.ScopeKind),b=Object.values(e.PermissionCategory),S=Object.values(e.ResourceVisibility),O=Object.values(e.StorageKind),A=Object.values(e.StorageBindingKind),w={update:i.Cascade.NONE,delete:i.Cascade.NONE,nullable:!1},P={update:i.Cascade.NONE,delete:i.Cascade.NONE,nullable:!0},T={update:i.Cascade.CASCADE,delete:i.Cascade.CASCADE,nullable:!1},F={update:i.Cascade.CASCADE,delete:i.Cascade.NONE,nullable:!1};function U(e){return{tenantId:e.tenantId,principalId:e.principalId,permissionKey:e.permissionKey,allowedOrgUnitIds:[...e.allowedOrgUnitIds],allowedResourceIds:[...e.allowedResourceIds]}}function R(e){return{must:[{key:"tenant_id",match:{value:e.tenantId}},{should:[{key:"org_unit_id",match:{any:e.allowedOrgUnitIds}},{key:"protected_resource_id",match:{any:e.allowedResourceIds}},{key:"owner_principal_id",match:{value:e.principalId}}]}]}}function I(e,t){return`${e}:${t}`}function j(e){return e??[]}function K(e,t){return q(e)===t}function k(e,t){return!!t&&q(e)===t}function B(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"item"}function C(e,t,r){const a=e??new Date;return!(t&&t>a||r&&a>r)}function M(t){const r={},a={};for(const i of t.permissions){const t=I(i.scopeKind,i.scopeId);r[t]=r[t]??[],r[t].push(i.permissionKey),i.scopeKind===e.ScopeKind.OrgUnit&&(a[i.permissionKey]=a[i.permissionKey]??[],a[i.permissionKey].push(i.scopeId))}return{tenantId:t.tenantId,principalId:t.principalId,permissionsByScope:r,allowedOrgUnitIdsByPermission:a,resourceGrants:t.grants.map(e=>({resourceId:e.resourceId,permissionKey:e.permissionKey}))}}class E extends i.ModelService{constructor(e){super(e)}newModel(e,t){return Object.assign(new e,t)}async create(e,...t){return this.repo.create(Object.assign({},e),...t)}async createOne(e,...t){return this.create(e,...t)}async getById(e,...t){return this.repo.read(e,...t)}async updateOne(e,t,...r){const a=await this.repo.read(e,...r);return this.repo.update(Object.assign(a,t),...r)}async deleteById(e,...t){await this.repo.delete(e,...t)}async findOneBy(e,t,...r){return this.repo.findOneBy(e,t,...r)}async findManyBy(e,t,...r){return this.repo.select().where({[e]:t}).execute(...r)}async listAll(...e){return this.repo.select().execute(...e)}}function q(e){return"string"==typeof e?e:e.id}class x extends n.Model{constructor(e){super(e)}}e.TenantMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.TenantMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_tenant_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.TenantMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.User,T,!1,void 0,"fk_tenant_memberships_user"),n.required(),o.__metadata("design:type",Object)],e.TenantMembership.prototype,"user",void 0),o.__decorate([n.required(),n.type(String),n.option(h),i.column(),o.__metadata("design:type",String)],e.TenantMembership.prototype,"status",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.TenantMembership.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.TenantMembership.prototype,"updatedAt",void 0),e.TenantMembership=o.__decorate([i.table("tenant_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.TenantMembership),e.User=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.User.prototype,"id",void 0),o.__decorate([i.unique(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"email",void 0),o.__decorate([i.unique(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"phone",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"displayName",void 0),o.__decorate([i.oneToMany(()=>e.TenantMembership,w,!1),o.__metadata("design:type",Array)],e.User.prototype,"tenantMemberships",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitMembership,w,!1),o.__metadata("design:type",Array)],e.User.prototype,"orgUnitMemberships",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.User.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.User.prototype,"updatedAt",void 0),e.User=o.__decorate([i.table("users"),n.model(),o.__metadata("design:paramtypes",[Object])],e.User),e.OrgUnitMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_org_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_memberships_org_unit"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"orgUnit",void 0),o.__decorate([i.manyToOne(()=>e.User,w,!1,void 0,"fk_org_memberships_user"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"user",void 0),o.__decorate([n.required(),n.type(String),n.option(h),i.column(),o.__metadata("design:type",String)],e.OrgUnitMembership.prototype,"status",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitMembership.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnitMembership.prototype,"updatedAt",void 0),e.OrgUnitMembership=o.__decorate([i.table("org_unit_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitMembership),e.OrgUnitClosure=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitClosure.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_org_closure_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_closure_ancestor"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"ancestor",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_closure_descendant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"descendant",void 0),o.__decorate([n.required(),n.type(Number),i.column(),o.__metadata("design:type",Number)],e.OrgUnitClosure.prototype,"depth",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitClosure.prototype,"createdAt",void 0),e.OrgUnitClosure=o.__decorate([i.table("org_unit_closure"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitClosure),e.Permission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Permission.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"key",void 0),o.__decorate([n.required(),n.type(String),n.option(b),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"category",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"description",void 0),o.__decorate([i.oneToMany(()=>e.RolePermission,w,!1),o.__metadata("design:type",Array)],e.Permission.prototype,"rolePermissions",void 0),e.Permission=o.__decorate([i.table("permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Permission),e.RolePermission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.RolePermission.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Role,T,!1,void 0,"fk_role_permissions_role"),n.required(),o.__metadata("design:type",Object)],e.RolePermission.prototype,"role",void 0),o.__decorate([i.manyToOne(()=>e.Permission,T,!1,void 0,"fk_role_permissions_permission"),n.required(),o.__metadata("design:type",Object)],e.RolePermission.prototype,"permission",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.RolePermission.prototype,"createdAt",void 0),e.RolePermission=o.__decorate([i.table("role_permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.RolePermission),e.Role=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Role.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,P,!1,void 0,"fk_roles_tenant"),o.__metadata("design:type",Object)],e.Role.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"key",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"name",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"description",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.Role.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.RolePermission,w,!1),o.__metadata("design:type",Array)],e.Role.prototype,"rolePermissions",void 0),o.__decorate([i.oneToMany(()=>e.RoleAssignment,w,!1),o.__metadata("design:type",Array)],e.Role.prototype,"assignments",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Role.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Role.prototype,"updatedAt",void 0),e.Role=o.__decorate([i.table("roles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Role),e.RoleAssignment=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_role_assignments_tenant"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_role_assignments_principal"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"principal",void 0),o.__decorate([i.manyToOne(()=>e.Role,w,!1,void 0,"fk_role_assignments_role"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"role",void 0),o.__decorate([n.required(),n.type(String),n.option(v),i.column(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"scopeKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"scopeId",void 0),o.__decorate([n.required(),n.type(Boolean),i.column(),o.__metadata("design:type",Boolean)],e.RoleAssignment.prototype,"inheritDown",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"expiresAt",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"conditions",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"updatedAt",void 0),e.RoleAssignment=o.__decorate([i.table("role_assignments"),n.model(),o.__metadata("design:paramtypes",[Object])],e.RoleAssignment),e.ResourceGrant=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.ResourceGrant.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_resource_grants_tenant"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.ProtectedResource,T,!1,void 0,"fk_resource_grants_resource"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"resource",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_resource_grants_principal"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"principal",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ResourceGrant.prototype,"permissionKey",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"expiresAt",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"conditions",void 0),o.__decorate([i.manyToOne(()=>e.Principal,w,!1,void 0,"fk_resource_grants_created_by"),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"createdBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"updatedAt",void 0),e.ResourceGrant=o.__decorate([i.table("resource_grants"),n.model(),o.__metadata("design:paramtypes",[Object])],e.ResourceGrant),e.Principal=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Principal.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_principals_tenant"),n.required(),o.__metadata("design:type",Object)],e.Principal.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),n.option(f),i.column(),o.__metadata("design:type",String)],e.Principal.prototype,"kind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Principal.prototype,"subjectId",void 0),o.__decorate([i.oneToMany(()=>e.RoleAssignment,w,!1),o.__metadata("design:type",Array)],e.Principal.prototype,"roleAssignments",void 0),o.__decorate([i.oneToMany(()=>e.ResourceGrant,w,!1),o.__metadata("design:type",Array)],e.Principal.prototype,"resourceGrants",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Principal.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Principal.prototype,"updatedAt",void 0),e.Principal=o.__decorate([i.table("principals"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Principal),e.ProtectedResource=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_protected_resources_tenant"),n.required(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,w,!1,void 0,"fk_protected_resources_org_unit"),n.required(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"resourceType",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"resourceId",void 0),o.__decorate([n.required(),n.type(String),n.option(S),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"visibility",void 0),o.__decorate([i.manyToOne(()=>e.Principal,P,!1,void 0,"fk_protected_resources_owner"),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"owner",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"sensitivity",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.ResourceGrant,w,!1),o.__metadata("design:type",Array)],e.ProtectedResource.prototype,"grants",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.ProtectedResource.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.ProtectedResource.prototype,"updatedAt",void 0),e.ProtectedResource=o.__decorate([i.table("protected_resources"),n.model(),o.__metadata("design:paramtypes",[Object])],e.ProtectedResource),e.InheritanceBlock=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_inheritance_blocks_tenant"),n.required(),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_inheritance_blocks_org_unit"),n.required(),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"orgUnit",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,P,!1,void 0,"fk_inheritance_blocks_blocked_ancestor"),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"blockedFromAncestor",void 0),o.__decorate([n.required(),n.type(String),n.option(b),i.column(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"permissionCategory",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"reason",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.InheritanceBlock.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.InheritanceBlock.prototype,"updatedAt",void 0),e.InheritanceBlock=o.__decorate([i.table("inheritance_blocks"),n.model(),o.__metadata("design:paramtypes",[Object])],e.InheritanceBlock),e.OrgUnit=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_org_units_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,w,!1,void 0,"fk_org_units_parent"),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"parent",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnit,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"children",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"name",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"path",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitMembership,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"memberships",void 0),o.__decorate([i.oneToMany(()=>e.ProtectedResource,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"resources",void 0),o.__decorate([i.oneToMany(()=>e.InheritanceBlock,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"inheritanceBlocks",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitClosure,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"ancestorLinks",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitClosure,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"descendantLinks",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnit.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnit.prototype,"updatedAt",void 0),e.OrgUnit=o.__decorate([i.table("org_units"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnit),e.StorageBinding=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_storage_bindings_tenant"),n.required(),o.__metadata("design:type",Object)],e.StorageBinding.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),n.option(O),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"storageKind",void 0),o.__decorate([n.required(),n.type(String),n.option(A),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"bindingKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"bindingKey",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"region",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.StorageBinding.prototype,"config",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.StorageBinding.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.StorageBinding.prototype,"updatedAt",void 0),e.StorageBinding=o.__decorate([i.table("storage_bindings"),n.model(),o.__metadata("design:paramtypes",[Object])],e.StorageBinding),e.Tenant=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Tenant.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"slug",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"name",void 0),o.__decorate([n.required(),n.type(String),n.option(m),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"isolationTier",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnit,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"orgUnits",void 0),o.__decorate([i.oneToMany(()=>e.TenantMembership,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"memberships",void 0),o.__decorate([i.oneToMany(()=>e.Principal,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"principals",void 0),o.__decorate([i.oneToMany(()=>e.StorageBinding,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"storageBindings",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Tenant.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Tenant.prototype,"updatedAt",void 0),e.Tenant=o.__decorate([i.table("tenants"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Tenant),e.TenantProfile=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.TenantProfile.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_tenant_profiles_tenant"),n.required(),o.__metadata("design:type",Object)],e.TenantProfile.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.TenantProfile.prototype,"profileKey",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.TenantProfile.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.TenantProfile.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.TenantProfile.prototype,"updatedAt",void 0),e.TenantProfile=o.__decorate([i.table("tenant_profiles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.TenantProfile),e.OrgUnitProfile=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitProfile.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_unit_profiles_org_unit"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitProfile.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnitProfile.prototype,"profileKey",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.OrgUnitProfile.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitProfile.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnitProfile.prototype,"updatedAt",void 0),e.OrgUnitProfile=o.__decorate([i.table("org_unit_profiles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitProfile),e.GroupMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.GroupMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_group_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Group,T,!1,void 0,"fk_group_memberships_group"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"group",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_group_memberships_principal"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"principal",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.GroupMembership.prototype,"createdAt",void 0),e.GroupMembership=o.__decorate([i.table("group_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.GroupMembership),e.Group=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Group.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_groups_tenant"),n.required(),o.__metadata("design:type",Object)],e.Group.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,P,!1,void 0,"fk_groups_org_unit"),o.__metadata("design:type",Object)],e.Group.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Group.prototype,"name",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.Group.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.GroupMembership,w,!1),o.__metadata("design:type",Array)],e.Group.prototype,"members",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Group.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Group.prototype,"updatedAt",void 0),e.Group=o.__decorate([i.table("groups"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Group),e.EffectivePermission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_effective_permissions_tenant"),n.required(),o.__metadata("design:type",Object)],e.EffectivePermission.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_effective_permissions_principal"),n.required(),o.__metadata("design:type",Object)],e.EffectivePermission.prototype,"principal",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"permissionKey",void 0),o.__decorate([n.required(),n.type(String),n.option(v),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"scopeKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"scopeId",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"sourceKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"sourceId",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"expiresAt",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"createdAt",void 0),e.EffectivePermission=o.__decorate([i.table("effective_permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.EffectivePermission);class D extends E{constructor(){super(e.TenantProfile)}async createProfile(e,t,r,...a){return this.create({tenant:e,profileKey:t,metadata:r},...a)}async listForTenant(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async deleteForTenant(e,...t){for(const r of await this.listForTenant(e,...t))await this.deleteById(r.id,...t)}}class G extends E{constructor(){super(e.OrgUnitProfile)}async createProfile(e,t,r,...a){return this.create({orgUnit:e,profileKey:t,metadata:r},...a)}async listForOrgUnit(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}}class L extends E{constructor(){super(e.OrgUnitClosure)}async listAncestors(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.descendant,t)).sort((e,t)=>e.depth-t.depth)}async listDescendants(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.ancestor,t)).sort((e,t)=>e.depth-t.depth)}async isAncestorOf(e,t,r,...a){return(await this.listAncestors(e,r,...a)).some(e=>k(e.ancestor,t))}async createSelfLink(e,t,...r){return this.create({tenant:e,ancestor:t,descendant:t,depth:0},...r)}async insertAncestorLinksForNewChild(e,t,r,...a){const i=await this.listAncestors(e,t,...a);for(const t of i)await this.create({tenant:e,ancestor:t.ancestor,descendant:r,depth:t.depth+1},...a)}async deleteLinksForSubtree(e,t,...r){const a=await this.listDescendants(e,t,...r),i=new Set([t,...a.map(e=>q(e.descendant))]),n=new Set([t,...a.map(e=>q(e.ancestor))]),o=(await this.listAll(...r)).filter(t=>K(t.tenant,e)&&(i.has(q(t.descendant))||n.has(q(t.ancestor))));for(const e of o)await this.deleteById(e.id,...r)}}class N extends E{constructor(){super(e.InheritanceBlock)}async blockCategory(e,t,r,a,i,...n){return this.create({tenant:e,orgUnit:t,blockedFromAncestor:a,permissionCategory:r,reason:i},...n)}async unblockCategory(e,...t){await this.deleteById(e,...t)}async listForOrgUnit(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.orgUnit,t))}async categoryBlockedForAncestor(e,t,r,a,...i){return(await this.listForOrgUnit(e,t,...i)).some(e=>e.permissionCategory===a&&(!e.blockedFromAncestor||k(e.blockedFromAncestor,r)))}}class z extends E{constructor(){super(e.Tenant)}async createTenant(t,...r){return this.create({slug:t.slug,name:t.name,isolationTier:t.isolationTier??e.IsolationTier.Pooled},...r)}async getBySlug(e,...t){return this.findOneBy("slug",e,...t)}async renameTenant(e,t,...r){return this.updateOne(e,{name:t},...r)}async changeSlug(e,t,...r){return this.updateOne(e,{slug:t},...r)}async setIsolationTier(e,t,...r){return this.updateOne(e,{isolationTier:t},...r)}async deleteTenantControlled(e,...t){await this.deleteById(e,...t)}}async function $(e,t,...r){for(const a of t)await e.deleteById(a.id,...r)}class V extends E{constructor(){super(e.OrgUnit)}orgUnitPath(e,t){const r=B(t);return e?`${e.replace(/\/+$/,"")}/${r}`:"/"+r}async createProfileIfNeeded(e,t,r,...a){t&&await(new G).createProfile(e,t,r,...a)}async createRoot(e,t,r,a,i,...n){const o=await this.create({tenant:e,name:t,path:this.orgUnitPath(void 0,t),metadata:r},...n);return await this.createProfileIfNeeded(o.id,a,i,...n),await(new L).createSelfLink(e,o.id,...n),o}async createChild(e,...t){const r=e.parentOrgUnitId?await this.getById(e.parentOrgUnitId,...t):void 0,a=await this.create({tenant:e.tenantId,parent:r?.id??e.parentOrgUnitId,name:e.name,path:this.orgUnitPath(r?.path,e.name),metadata:e.metadata},...t);await this.createProfileIfNeeded(a.id,e.profileKey,e.profileMetadata,...t);const i=new L;return await i.createSelfLink(e.tenantId,a.id,...t),e.parentOrgUnitId&&await i.insertAncestorLinksForNewChild(e.tenantId,e.parentOrgUnitId,a.id,...t),a}async listChildren(e,...t){return(await this.listAll(...t)).filter(t=>k(t.parent,e))}async listTenantOrgUnits(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async listDescendantOrgUnits(e,t,r=!1,...a){const i=await(new L).listDescendants(e,t,...a),n=new Set(i.map(e=>q(e.descendant)));return r&&n.add(t),(await this.listTenantOrgUnits(e,...a)).filter(e=>n.has(e.id))}async listAncestorOrgUnits(e,t,r=!1,...a){const i=await(new L).listAncestors(e,t,...a),n=new Set(i.map(e=>q(e.ancestor)));return r&&n.add(t),(await this.listTenantOrgUnits(e,...a)).filter(e=>n.has(e.id))}async renameOrgUnit(e,t,...r){const a=await this.getById(e,...r);return this.updateOne(e,{name:t,path:this.orgUnitPath(a.path.includes("/")?a.path.replace(/\/[^/]+$/,""):void 0,t)},...r)}async moveOrgUnit(e,t,r,...a){const i=await this.getById(r,...a),n=await this.getById(t,...a),o=await this.updateOne(t,{parent:i.id,path:this.orgUnitPath(i.path,n.name)},...a);return await this.rebuildTenantClosure(e,...a),o}async rebuildTenantClosure(e,...t){const r=new L,a=await r.listAll(...t);await $(r,a.filter(t=>K(t.tenant,e)),...t);const i=(await this.listTenantOrgUnits(e,...t)).sort((e,t)=>e.path.split("/").filter(Boolean).length-t.path.split("/").filter(Boolean).length);for(const a of i)await r.createSelfLink(e,a.id,...t),a.parent&&await r.insertAncestorLinksForNewChild(e,q(a.parent),a.id,...t)}async deleteOrgUnitTree(e,t,...r){const a=new L,i=await this.listDescendantOrgUnits(e,t,!0,...r),n=new Set(i.map(e=>e.id)),o=(await this.listTenantOrgUnits(e,...r)).filter(e=>n.has(e.id));await $(this,o,...r),await a.deleteLinksForSubtree(e,t,...r)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object,String,Object,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"createRoot",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"createChild",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"moveOrgUnit",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"rebuildTenantClosure",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"deleteOrgUnitTree",null);class W extends E{constructor(){super(e.User)}async createUser(e,...t){return this.create({email:e.email,phone:e.phone,displayName:e.displayName},...t)}async getByEmail(e,...t){return(await this.listAll(...t)).find(t=>t.email===e)}async updateDisplayName(e,t,...r){return this.updateOne(e,{displayName:t},...r)}async updateEmail(e,t,...r){return this.updateOne(e,{email:t},...r)}async updatePhone(e,t,...r){return this.updateOne(e,{phone:t},...r)}}class Y extends E{constructor(){super(e.Principal)}async createPrincipal(e,t,r,...a){return this.create({tenant:e,kind:t,subjectId:r},...a)}async getForSubject(e,t,r,...a){return(await this.listAll(...a)).find(a=>K(a.tenant,e)&&a.kind===t&&a.subjectId===r)}async getOrCreateForSubject(e,t,r,...a){return await this.getForSubject(e,t,r,...a)??await this.createPrincipal(e,t,r,...a)}async getUserPrincipal(t,r,...a){return this.getOrCreateForSubject(t,e.PrincipalKind.User,r,...a)}async getGroupPrincipal(t,r,...a){return this.getOrCreateForSubject(t,e.PrincipalKind.Group,r,...a)}}class H extends E{constructor(){super(e.TenantMembership)}async addUserToTenant(t,r,a=e.MembershipStatus.Active,...i){return this.create({tenant:t,user:r,status:a},...i)}async setStatus(e,t,...r){return this.updateOne(e,{status:t},...r)}async listUserTenants(e,...t){return(await this.listAll(...t)).filter(t=>k(t.user,e))}async listTenantUsers(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async removeUserFromTenant(e,...t){await this.deleteById(e,...t)}}class Q extends E{constructor(){super(e.OrgUnitMembership)}async addUserToOrgUnit(t,r,a,i=e.MembershipStatus.Active,...n){return this.create({tenant:t,orgUnit:r,user:a,status:i},...n)}async setStatus(e,t,...r){return this.updateOne(e,{status:t},...r)}async listUserOrgUnits(e,...t){return(await this.listAll(...t)).filter(t=>k(t.user,e))}async listOrgUnitUsers(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}async removeUserFromOrgUnit(e,...t){await this.deleteById(e,...t)}}class Z extends E{constructor(){super(e.GroupMembership)}async addPrincipalToGroup(e,t,r,a,...i){return this.create({tenant:e,group:t,principal:r,metadata:a},...i)}async listGroupMembers(e,...t){return(await this.listAll(...t)).filter(t=>k(t.group,e))}async listPrincipalGroups(e,...t){return(await this.listAll(...t)).filter(t=>k(t.principal,e))}async removePrincipalFromGroup(e,...t){await this.deleteById(e,...t)}async resolveGroupPrincipalIdsForPrincipal(e,...t){const r=new Y,a=await this.listPrincipalGroups(e,...t);return await Promise.all(a.map(async e=>{const a=q(e.tenant),i=q(e.group);return(await r.getGroupPrincipal(a,i,...t)).id}))}}class J extends E{constructor(){super(e.Permission)}async createPermission(e,...t){return this.create({key:e.key,category:e.category,description:e.description},...t)}async getByKey(e,...t){return(await this.listAll(...t)).find(t=>t.key===e)}async listByCategory(e,...t){return(await this.listAll(...t)).filter(t=>t.category===e)}async updateDescription(e,t,...r){return this.updateOne(e,{description:t},...r)}}class X extends E{constructor(){super(e.Role)}async createRole(e,...t){return this.create({tenant:e.tenantId,key:e.key,name:e.name,description:e.description,metadata:e.metadata},...t)}async getSystemRoleByKey(e,...t){const r=(await this.listAll(...t)).find(t=>!t.tenant&&t.key===e);if(!r)throw Error(`Role "${e}" not found`);return r}async getTenantRoleByKey(e,t,...r){const a=(await this.listAll(...r)).find(r=>K(r.tenant,e)&&r.key===t);if(!a)throw Error(`Role "${t}" not found for tenant ${e}`);return a}async renameRole(e,t,...r){return this.updateOne(e,{name:t},...r)}async updateRoleMetadata(e,t,...r){return this.updateOne(e,{metadata:t},...r)}async listTenantRoles(e,t=!1,...r){return(await this.listAll(...r)).filter(r=>t&&!r.tenant||K(r.tenant,e))}}class ee extends E{constructor(){super(e.RolePermission)}async addPermissionToRole(e,t,...r){return this.create({role:e,permission:t},...r)}async addPermissionKeyToRole(e,t,...r){const a=await(new J).getByKey(t,...r);return this.addPermissionToRole(e,a.id,...r)}async removePermissionFromRole(e,...t){await this.deleteById(e,...t)}async listRolePermissions(e,...t){return(await this.listAll(...t)).filter(t=>k(t.role,e))}async listPermissionRoles(e,...t){return(await this.listAll(...t)).filter(t=>k(t.permission,e))}async replaceRolePermissions(e,t,...r){const a=await this.listRolePermissions(e,...r);return await(async(e,t,...r)=>{for(const a of t)await e.deleteById(a.id,...r)})(this,a,...r),Promise.all(t.map(t=>this.addPermissionToRole(e,t,...r)))}async createRoleWithPermissions(e,t,...r){const a=await(new X).createRole(e,...r);for(const e of t)await this.addPermissionKeyToRole(a.id,e,...r);return a}}class te extends E{constructor(){super(e.RoleAssignment)}async assignRole(e,...t){return this.create({tenant:e.tenantId,principal:e.principalId,role:e.roleId,scopeKind:e.scopeKind,scopeId:e.scopeId,inheritDown:e.inheritDown??!1,startsAt:e.startsAt,expiresAt:e.expiresAt,conditions:e.conditions},...t)}async revokeAssignment(e,...t){await this.deleteById(e,...t)}async listPrincipalAssignments(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async listRoleAssignments(e,...t){return(await this.listAll(...t)).filter(t=>k(t.role,e))}async listTenantAssignments(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async updateAssignmentWindow(e,t,r,...a){return this.updateOne(e,{startsAt:t,expiresAt:r},...a)}}class re extends E{constructor(){super(e.EffectivePermission)}async listForPrincipal(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async listForScope(e,t,r,...a){return(await this.listAll(...a)).filter(a=>K(a.tenant,e)&&a.scopeKind===t&&a.scopeId===r)}async hasPermission(e,t,r,a,i,n,...o){return(await this.listForPrincipal(e,t,...o)).some(e=>!(e.permissionKey!==r||e.scopeKind!==a||e.scopeId!==i||e.startsAt&&n&&e.startsAt>n||e.expiresAt&&n&&e.expiresAt<n))}async deleteForPrincipal(e,t,...r){for(const a of await this.listForPrincipal(e,t,...r))await this.deleteById(a.id,...r)}async deleteForTenant(e,...t){for(const r of(await this.listAll(...t)).filter(t=>K(t.tenant,e)))await this.deleteById(r.id,...t)}async rebuildForPrincipal(t,r,...a){await this.deleteForPrincipal(t,r,...a);const i=new te,n=new ee,o=new J,s=new Z,d=new Y,c=new L,p=new N,l=[],u=await i.listPrincipalAssignments(t,r,...a),_=await s.listPrincipalGroups(r,...a),y=[...u,...(await Promise.all(_.map(async e=>{const r=await d.getGroupPrincipal(q(e.tenant),q(e.group),...a);return i.listPrincipalAssignments(t,r.id,...a)}))).flat()];for(const i of y){const s=await n.listRolePermissions(q(i.role),...a),d=await Promise.all(s.map(async e=>o.findOneBy("id",q(e.permission),...a)));for(const n of d){if(!n)continue;const o=i.scopeKind,s=i.scopeId,d=[];if(o===e.ScopeKind.Tenant)d.push({scopeKind:o,scopeId:t});else if(o===e.ScopeKind.Resource)d.push({scopeKind:o,scopeId:s});else if(o!==e.ScopeKind.OrgUnit||i.inheritDown){if(o===e.ScopeKind.OrgUnit&&i.inheritDown){const e=await c.listDescendants(t,s,...a);d.push(...e.map(e=>({scopeKind:o,scopeId:q(e.descendant)})))}}else d.push({scopeKind:o,scopeId:s});for(const c of d)o===e.ScopeKind.OrgUnit&&i.inheritDown&&c.scopeId!==s&&await p.categoryBlockedForAncestor(t,c.scopeId,s,n.category,...a)||l.push({id:"",tenantId:t,principalId:r,permissionKey:n.key,scopeKind:c.scopeKind,scopeId:c.scopeId,sourceKind:"role_assignment",sourceId:i.id,startsAt:i.startsAt,expiresAt:i.expiresAt})}}return await Promise.all(l.map(e=>this.create({tenant:e.tenantId,principal:e.principalId,permissionKey:e.permissionKey,scopeKind:e.scopeKind,scopeId:e.scopeId,sourceKind:e.sourceKind,sourceId:e.sourceId,startsAt:e.startsAt,expiresAt:e.expiresAt},...a)))}async rebuildForTenant(e,...t){const r=(await(new Y).listAll(...t)).filter(t=>K(t.tenant,e));for(const a of r)await this.rebuildForPrincipal(e,a.id,...t)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object]),o.__metadata("design:returntype",Promise)],re.prototype,"rebuildForPrincipal",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,Object]),o.__metadata("design:returntype",Promise)],re.prototype,"rebuildForTenant",null);class ae extends E{constructor(){super(e.ProtectedResource)}async registerResource(e,...t){return this.create({tenant:e.tenantId,orgUnit:e.orgUnitId,resourceType:e.resourceType,resourceId:e.resourceId,visibility:e.visibility,owner:e.ownerPrincipalId,sensitivity:e.sensitivity,metadata:e.metadata},...t)}async getByDomainResource(e,t,r,...a){return(await this.listAll(...a)).find(a=>K(a.tenant,e)&&a.resourceType===t&&a.resourceId===r)}async moveResourceToOrgUnit(e,t,...r){return this.updateOne(e,{orgUnit:t},...r)}async setVisibility(e,t,...r){return this.updateOne(e,{visibility:t},...r)}async transferOwnership(e,t,...r){return this.updateOne(e,{owner:t},...r)}async listOrgUnitResources(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}async listTenantResources(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}}class ie extends E{constructor(){super(e.ResourceGrant)}async grantResource(e,...t){return this.create({tenant:e.tenantId,resource:e.resourceId,principal:e.principalId,permissionKey:e.permissionKey,startsAt:e.startsAt,expiresAt:e.expiresAt,conditions:e.conditions,createdBy:e.createdByPrincipalId},...t)}async revokeGrant(e,...t){await this.deleteById(e,...t)}async listResourceGrants(e,...t){return(await this.listAll(...t)).filter(t=>k(t.resource,e))}async listPrincipalGrants(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async hasGrant(e,t,r,a,i,...n){return(await this.listPrincipalGrants(e,t,...n)).some(e=>k(e.resource,r)&&e.permissionKey===a&&(!e.startsAt||!i||e.startsAt<=i)&&(!e.expiresAt||!i||e.expiresAt>=i))}async deleteAllForResource(e,...t){for(const r of await this.listResourceGrants(e,...t))await this.deleteById(r.id,...t)}}class ne{constructor(){this.tenantService=new z,this.tenantProfileService=new D,this.orgUnitService=new V,this.orgUnitProfileService=new G,this.userService=new W,this.membershipService=new H,this.principalService=new Y,this.permissionService=new J,this.roleService=new X,this.rolePermissionService=new ee,this.roleAssignmentService=new te,this.effectivePermissionService=new re}async bootstrapTenantFromTemplate(t,...r){const a=await this.tenantService.createTenant(t.tenant,...r);t.tenant.profileKey&&await this.tenantProfileService.createProfile(a.id,t.tenant.profileKey,t.tenant.profileMetadata,...r);const i=async(e,t)=>{const n=void 0===e?await this.orgUnitService.createRoot(a.id,t.name,t.metadata,t.profileKey,t.metadata,...r):await this.orgUnitService.createChild({tenantId:a.id,parentOrgUnitId:e,name:t.name,metadata:t.metadata,profileKey:t.profileKey,profileMetadata:t.metadata},...r);for(const e of t.children??[])await i(n.id,e);return n},n=await i(void 0,t.rootOrgUnit),o=await this.userService.createUser(t.ownerUser,...r);await this.membershipService.addUserToTenant(a.id,o.id,e.MembershipStatus.Active,...r);const s=await this.principalService.getUserPrincipal(a.id,o.id,...r);for(const e of t.permissions)await this.permissionService.createPermission(e,...r);for(const e of t.roles){const t=await this.roleService.createRole({tenantId:a.id,key:e.key,name:e.name,description:e.description},...r);for(const a of e.permissionKeys)await this.rolePermissionService.addPermissionKeyToRole(t.id,a,...r)}const d=await this.roleService.getTenantRoleByKey(a.id,t.ownerRoleKey,...r);return await this.roleAssignmentService.assignRole({tenantId:a.id,principalId:s.id,roleId:d.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:n.id,inheritDown:!0},...r),await this.effectivePermissionService.rebuildForPrincipal(a.id,s.id,...r),{tenantId:a.id,rootOrgUnitId:n.id,ownerUserId:o.id,ownerPrincipalId:s.id}}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object]),o.__metadata("design:returntype",Promise)],ne.prototype,"bootstrapTenantFromTemplate",null);class oe{constructor(){this.membershipService=new H,this.orgMembershipService=new Q,this.principalService=new Y,this.roleService=new X,this.roleAssignmentService=new te,this.effectivePermissionService=new re}async onboardUserToTenantAndOrgUnit(t,r,a,i,...n){await this.membershipService.addUserToTenant(t,r,e.MembershipStatus.Active,...n),await this.orgMembershipService.addUserToOrgUnit(t,a,r,e.MembershipStatus.Active,...n);const o=await this.principalService.getUserPrincipal(t,r,...n),s=await this.roleService.getTenantRoleByKey(t,i,...n);return await this.roleAssignmentService.assignRole({tenantId:t,principalId:o.id,roleId:s.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:a,inheritDown:!0},...n),await this.effectivePermissionService.rebuildForPrincipal(t,o.id,...n),{principalId:o.id}}async changeUserOrgRole(t,r,a,i,n,...o){const s=await this.roleService.getTenantRoleByKey(t,i,...o),d=await this.roleAssignmentService.listPrincipalAssignments(t,r,...o);for(const t of d.filter(t=>t.scopeKind===e.ScopeKind.OrgUnit&&t.scopeId===a))await this.roleAssignmentService.revokeAssignment(t.id,...o);await this.roleAssignmentService.assignRole({tenantId:t,principalId:r,roleId:s.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:a,inheritDown:n},...o),await this.effectivePermissionService.rebuildForPrincipal(t,r,...o)}async suspendUserInTenant(t,r,a,...i){await this.membershipService.setStatus(t,e.MembershipStatus.Suspended,...i),await this.effectivePermissionService.deleteForPrincipal(r,a,...i)}async reactivateUserInTenant(t,r,a,...i){await this.membershipService.setStatus(t,e.MembershipStatus.Active,...i),await this.effectivePermissionService.rebuildForPrincipal(r,a,...i)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"onboardUserToTenantAndOrgUnit",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,String,Boolean,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"changeUserOrgRole",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"suspendUserInTenant",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"reactivateUserInTenant",null);const se="featureFlag",de="feature-flags:model",ce="feature-flags:auth",pe="feature-flags:block",le="feature-flags:render-if",ue="feature-flags:hide-on";function _e(e){const t=e.trim();if(!t)return t;if(/^[a-z][a-zA-Z0-9]*$/.test(t))return t;const r=t.toLowerCase().replace(/[_\-\s]+/g," ").split(" ").filter(Boolean);if(0===r.length)return t;const[a,...i]=r;return[a,...i.map(e=>e?e.charAt(0).toUpperCase()+e.slice(1):e)].join("").replace(/[^a-zA-Z0-9]/g,"")}function ye(e){if("string"!=typeof e)return e;const t=e.trim();if("true"===t)return!0;if("false"===t)return!1;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch{return e}return e}function ge(e){if(void 0===e)return;if(!0===e)return!0;if(!e||"object"!=typeof e||Array.isArray(e))return ye(e);const t={};return Object.entries(e).forEach(([e,r])=>{const a=(e=>{if(!e)return e;if(/^[a-z][a-zA-Z0-9]*$/.test(e))return e;const t=e.replace(/[\s-]+/g,"_").split("_").filter(Boolean);if(0===t.length)return e;const[r,...a]=t;return[r.toLowerCase(),...a.map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase())].join("")})(e);void 0!==r&&(t[a]=ge(r)??r)}),t}function me(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:Object.entries(e).reduce((e,[t,r])=>{const a=_e(t),i=ge(r);return void 0!==i&&(e[a]=i),e},{})}function he(e){return!0===e||!!e&&"object"==typeof e}function fe(e,t){return he(e?.[_e(t)])}function ve(e,t="any"){return{features:[...new Set(e.map(_e).filter(Boolean))],match:t}}function be(e,t){if(!e||0===e.features.length)return!0;const r=e.features.filter(e=>fe(t,e));return"all"===e.match?r.length===e.features.length:r.length>0}function Se(e,t){return!(!e||0===e.features.length)&&e.features.some(e=>fe(t,e))}function Oe(e,t){return s.Metadata.get(e,t)}function Ae(e){return e.trim().toLowerCase()}function we(e){return e.trim()}const Pe=r.LoggedEnvironment.accumulate({[se]:{}});async function Te(e=Pe){return me(e.featureFlag)}async function Fe(e,t=Pe){return(await Te(t))[_e(e)]}e.FeatureFlag=class extends i.BaseModel{constructor(e){super(e),this.enabled=!0}},o.__decorate([i.pk(),i.uuid(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"key",void 0),o.__decorate([i.column(),o.__metadata("design:type",Boolean)],e.FeatureFlag.prototype,"enabled",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"description",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"scope",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlag.prototype,"metadata",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlag.prototype,"config",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"createdBy",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"updatedBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.FeatureFlag.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.FeatureFlag.prototype,"updatedAt",void 0),e.FeatureFlag=o.__decorate([i.table("feature_flags"),n.model(),o.__metadata("design:paramtypes",[Object])],e.FeatureFlag),e.FeatureFlagAccess=class extends i.BaseModel{constructor(e){super(e),this.enabled=!0}},o.__decorate([i.pk(),i.uuid(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"id",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"featureKey",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"subjectType",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"subjectKey",void 0),o.__decorate([i.column(),o.__metadata("design:type",Boolean)],e.FeatureFlagAccess.prototype,"enabled",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlagAccess.prototype,"metadata",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"createdBy",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"updatedBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.FeatureFlagAccess.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.FeatureFlagAccess.prototype,"updatedAt",void 0),e.FeatureFlagAccess=o.__decorate([i.table("feature_flag_access"),n.model(),o.__metadata("design:paramtypes",[Object])],e.FeatureFlagAccess);class Ue{async readOne(e,t){return(await this.read(t))[_e(e)]}}class Re extends Ue{async read(e={}){return Te(e.source??{[se]:{}})}}function Ie(e,t){return void 0===t?e:s.Metadata.key(e,t.toString())}function je(e,t,r="any"){const a=ve(t,r);return(t,r,i)=>{if(void 0===r)return s.metadata(e,a)(t);const n=Ie(e,r);return i?s.methodMetadata(n,a)(t,r,i):s.propMetadata(n,a)(t,r)}}function Ke(e,t,r){return Oe(e,Ie(t,r))}e.FeatureFlagService=class extends i.ModelService{constructor(){super(e.FeatureFlag),this.reader=new Re,this.cachedRegistry={}}async initialize(...e){const t=e[0]??{};t.repository&&(this._repository=t.repository),this.reader=t.reader?"function"==typeof t.reader?new t.reader:t.reader:new Re;const r={...t.readerConfig??{},source:t.readerConfig?.source??Pe};return this.cachedRegistry=await this.refreshCachedRegistry(r,...e),{config:{...t,reader:this.reader,readerConfig:r},client:this.reader}}cloneRegistry(e){return Object.entries(e).reduce((e,[t,r])=>(e[t]=r&&"object"==typeof r&&!Array.isArray(r)?{...r}:r,e),{})}async refreshCachedRegistry(e={},...t){const r=await this.reader.read({...e,source:e.source??Pe});let a=[];try{a=await this.repo.select().execute(...t)}catch{a=[]}const i=this.cloneRegistry(r);for(const e of a)i[e.key]=!!e.enabled&&(e.config??!0);return i}setCachedFlag(e){this.cachedRegistry[e.key]=!!e.enabled&&(e.config??!0)}getAccessRepository(){return this.accessRepository??i.Repository.forModel(e.FeatureFlagAccess)}assertInitialized(){this.reader}normalizeFeatureAccessInput(e){return{...e,featureKey:_e(e.featureKey),subjectType:Ae(e.subjectType),subjectKey:we(e.subjectKey)}}buildAccessCondition(e){let t=i.Condition.attr("subjectType").eq(Ae(e.subjectType));return t=t.and(i.Condition.attr("subjectKey").eq(we(e.subjectKey))),void 0!==e.enabled&&(t=t.and(i.Condition.attr("enabled").eq(e.enabled))),e.featureKeys&&e.featureKeys.length>0&&(t=t.and(i.Condition.attr("featureKey").in(e.featureKeys.map(_e)))),t}async create(e,...t){e.key=_e(e.key),e.enabled??=!0;const r=await super.create(e,...t);return this.setCachedFlag(r),r}async update(e,...t){e.key=_e(e.key),e.enabled??=!0;const r=await super.update(e,...t);return this.setCachedFlag(r),r}async findOneBy(e,t,...r){const a="key"===e&&"string"==typeof t?_e(t):t;return this.repo.findOneBy(e,a,...r)}async readAll(e,...t){const r=await this.repo.readAll(e,...t);for(const e of r)this.setCachedFlag(e);return r}async listEnabled(...e){return this.repo.select().where(i.Condition.attr("enabled").eq(!0)).execute(...e)}async grantFeatureAccess(t,...r){const a=this.normalizeFeatureAccessInput(t),i=await this.findFeatureAccess(a,...r).catch(()=>{});return i?this.getAccessRepository().update(Object.assign(i,a),...r):this.getAccessRepository().create(new e.FeatureFlagAccess(a),...r)}async revokeFeatureAccess(e,...t){const r=await this.findFeatureAccess(e,...t).catch(()=>{});if(r)return this.getAccessRepository().delete(r.id,...t)}async findFeatureAccess(e,...t){const r=this.buildAccessCondition(e),i=(await this.getAccessRepository().select().where(r).execute(...t))[0];if(!i)throw new a.NotFoundError(`Feature access for ${Ae(e.subjectType)}:${we(e.subjectKey)} not found`);return i}async listFeatureAccess(e,...t){return this.getAccessRepository().select().where(this.buildAccessCondition(e)).execute(...t)}async resolveFeatureFlagsForSubject(e,...t){this.assertInitialized();const r=await this.listFeatureAccess({...e,enabled:!0},...t),a=[...new Set(r.map(e=>e.featureKey))];if(0===a.length)return{};const n=i.Condition.attr("enabled").eq(!0).and(i.Condition.attr("key").in(a.map(_e)));return(await this.repo.select().where(n).execute(...t)).reduce((e,t)=>(e[t.key]=t.config??!0,e),{})}async isEnabledForSubject(e,t,...r){return fe(await this.resolveFeatureFlagsForSubject(t,...r),e)}isEnabled(e){this.assertInitialized();const t=_e(e);return fe(this.cachedRegistry,t)}async resolveFeatureFlags(){return this.assertInitialized(),this.cloneRegistry(this.cachedRegistry)}async syncFromEnvironment(t={},...r){this.assertInitialized();const a=await this.reader.read({...t,source:t.source??Pe}),i=[];for(const[t,n]of Object.entries(a)){const a=n&&"object"==typeof n&&!Array.isArray(n)?n:{enabled:!!n},{enabled:o,...s}=a,d=_e(t),c=await this.findOneBy("key",d,...r).catch(()=>{}),p=c?Object.assign(c,{enabled:he(n),description:s.description??c.description,scope:s.scope??c.scope,metadata:s.metadata??c.metadata,config:{...s,enabled:he(n)}}):new e.FeatureFlag({key:d,enabled:he(n),description:s.description,scope:s.scope,metadata:s.metadata,config:{...s,enabled:he(n)}});i.push(c?await this.update(p,...r):await this.create(p,...r))}return this.cachedRegistry=await this.refreshCachedRegistry({...t,source:t.source??Pe},...r),i}},o.__decorate([i.repository(e.FeatureFlagAccess),o.__metadata("design:type",Object)],e.FeatureFlagService.prototype,"accessRepository",void 0),e.FeatureFlagService=o.__decorate([i.service(e.FeatureFlag),o.__metadata("design:paramtypes",[])],e.FeatureFlagService),Object.defineProperty(e,"AuthorizationError",{enumerable:!0,get:()=>i.AuthorizationError}),Object.defineProperty(e,"transactional",{enumerable:!0,get:()=>i.transactional}),e.AuthorizationModel=x,e.AuthzService=class{constructor(e={}){this.dataSources=e}async canAccess(t,...r){const a=t.at??new Date;if(t.scopeKind&&t.scopeId)return j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,t.scopeKind,t.scopeId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt));if(!t.resourceProtectedId)return!1;const i=await(this.dataSources.loadResource?.(t.tenantId,t.resourceProtectedId));if(!i)return!1;if(i.tenantId!==t.tenantId)return!1;if(i.ownerPrincipalId===t.principalId)return!0;if(j(await(this.dataSources.listResourceGrants?.(t.tenantId,t.resourceProtectedId))).filter(e=>e.principalId===t.principalId&&e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)).length>0)return!0;const n=i.visibility;return n!==e.ResourceVisibility.Private&&n!==e.ResourceVisibility.ResourceAcl&&(n===e.ResourceVisibility.OrgUnit||n===e.ResourceVisibility.OrgSubtree?j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,e.ScopeKind.OrgUnit,i.orgUnitId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)):n===e.ResourceVisibility.Tenant&&j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,e.ScopeKind.Tenant,t.tenantId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)))}async requireAccess(t,...r){if(!await this.canAccess(t,...r))throw new i.AuthorizationError(`Access denied for ${t.permissionKey} on ${t.resourceProtectedId??(a=t.scopeKind??e.ScopeKind.Resource,n=t.scopeId??"",`${a}:${n}`)}`);var a,n}async buildAccessContext(e,t,...r){return M({tenantId:e,principalId:t,permissions:j(await(this.dataSources.listEffectivePermissions?.(e,t))),grants:j(await(this.dataSources.listPrincipalGrants?.(e,t)))})}async buildArangoContext(e,t,r,...a){const i=await this.buildAccessContext(e,t,...a),n=i.allowedOrgUnitIdsByPermission[r]??[],o=i.resourceGrants.filter(e=>e.permissionKey===r).map(e=>e.resourceId);return U({tenantId:e,principalId:t,permissionKey:r,allowedOrgUnitIds:n,allowedResourceIds:o})}async buildQdrantFilter(e,t,r,...a){const i=await this.buildAccessContext(e,t,...a);return R({tenantId:e,principalId:t,allowedOrgUnitIds:i.allowedOrgUnitIdsByPermission[r]??[],allowedResourceIds:i.resourceGrants.filter(e=>e.permissionKey===r).map(e=>e.resourceId)})}},e.BaseModelService=E,e.BootstrapService=ne,e.COMMIT="2a891e0",e.EffectivePermissionService=re,e.EnvironmeFlagReader=Re,e.FEATURE_FLAG_AUTH_KEY=ce,e.FEATURE_FLAG_BLOCK_KEY=pe,e.FEATURE_FLAG_ENV_PREFIX="FEATURE_FLAG",e.FEATURE_FLAG_ENV_ROOT=se,e.FEATURE_FLAG_HIDE_KEY=ue,e.FEATURE_FLAG_MODEL_KEY=de,e.FEATURE_FLAG_RENDER_KEY=le,e.FULL_VERSION="0.7.0-2a891e0",e.FeatureFlagEnvironment=Pe,e.FeatureFlagReader=Ue,e.GroupMembershipService=Z,e.GroupService=class extends E{constructor(){super(e.Group)}async createGroup(e,t,r,a,...i){return this.create({tenant:e,orgUnit:r,name:t,metadata:a},...i)}async renameGroup(e,t,...r){return this.updateOne(e,{name:t},...r)}async moveGroupToOrgUnit(e,t,...r){return this.updateOne(e,{orgUnit:t},...r)}async listTenantGroups(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}},e.InheritanceBlockService=N,e.IsolationTierOptions=m,e.MembershipStatusOptions=h,e.OrgUnitClosureService=L,e.OrgUnitMembershipService=Q,e.OrgUnitProfileService=G,e.OrgUnitService=V,e.PACKAGE_NAME="@decaf-ts/integrations",e.PermissionCategoryOptions=b,e.PermissionService=J,e.PrincipalKindOptions=f,e.PrincipalService=Y,e.ProtectedResourceService=ae,e.REL_CASCADE_DEPENDENT=T,e.REL_CASCADE_INSERT_UPDATE=F,e.REL_NULLIFY=P,e.REL_RESTRICT=w,e.ResourceGrantService=ie,e.ResourceLifecycleService=class{async unregisterResource(e,...t){await(new ie).deleteAllForResource(e,...t),await(new ae).deleteById(e,...t)}async resolveResourceScope(e,...t){const r=await(new ae).getById(e,...t);return{tenantId:q(r.tenant),orgUnitId:q(r.orgUnit),visibility:r.visibility,ownerPrincipalId:r.owner?q(r.owner):void 0}}},e.ResourceVisibilityOptions=S,e.RoleAssignmentService=te,e.RolePermissionService=ee,e.RoleService=X,e.ScopeKindOptions=v,e.StorageBindingKindOptions=A,e.StorageBindingService=class extends E{constructor(){super(e.StorageBinding)}async createBinding(e,...t){return this.create({tenant:e.tenantId,storageKind:e.storageKind,bindingKind:e.bindingKind,bindingKey:e.bindingKey,region:e.region,config:e.config},...t)}async listTenantBindings(e,...t){return(await this.listAll(...t)).filter(t=>q(t.tenant)===e)}async getBinding(e,t,...r){return(await this.listTenantBindings(e,...r)).find(e=>e.storageKind===t)}async setBindingConfig(e,t,...r){return this.updateOne(e,{config:t},...r)}async promoteToDedicated(t,r,a,i,...n){return this.updateOne(t,{bindingKind:e.StorageBindingKind.Dedicated,bindingKey:r,region:a,config:i},...n)}async setShared(t,r,a,i,...n){return this.updateOne(t,{bindingKind:e.StorageBindingKind.Shared,bindingKey:r,region:a,config:i},...n)}},e.StorageKindOptions=O,e.SystemManagementService=oe,e.TenantMembershipService=H,e.TenantProfileService=D,e.TenantService=z,e.UserService=W,e.VERSION="0.7.0",e.asArray=j,e.blockFeatureOperations=(...e)=>je(pe,e),e.buildAccessContext=M,e.buildArangoContext=U,e.buildQdrantFilter=R,e.execWithLogging=async(e,i,n,o=r.LogLevel.info)=>(n.debug("Executing: "+e),new Promise((r,s)=>{const d=t.exec(e,i),c=[],p=[];d.stdout?.on("data",e=>{c.push(e),n[o](e.trim())}),d.stderr?.on("data",e=>{p.push(e),n.debug(e.trim())}),d.on("close",e=>{0===e?(n.silly("Command completed successfully"),r({stdout:c.join("\n"),stderr:p.join("\n")})):(n.critical(`Command failed with code ${e}:\n ${p.join("\n")}`),s(new a.InternalError(`Command failed with code ${e}: ${p.join("\n")}`)))}),d.on("error",e=>{n.critical("Command execution error",e),s(e)})})),e.featureAuth=(...e)=>je(ce,e),e.featureFlags=(...e)=>je(de,e),e.getFeatureGateMetadata=Ke,e.hasFeatureFlagInEnvironment=async(e,t=Pe)=>!!await Fe(e,t),e.hideOnFeature=(...e)=>je(ue,e),e.id=()=>crypto.randomUUID(),e.isFeatureFlagEnabled=he,e.isFeatureFlagEnabledByName=fe,e.isFeatureRuleBlocked=Se,e.isFeatureRuleSatisfied=be,e.isTimeValid=C,e.loadFeatureFlagsFromEnvironment=Te,e.lowerSlug=B,e.normalizeFeatureConfig=ge,e.normalizeFeatureName=_e,e.normalizeFeatureRegistry=me,e.normalizeFeatureRule=ve,e.normalizeFeatureSubjectKey=we,e.normalizeFeatureSubjectType=Ae,e.nowIso=()=>new Date,e.parseRuntimeValue=ye,e.readMetadata=Oe,e.relationId=q,e.relationMatch=k,e.renderIfFeature=(...e)=>je(le,e),e.resolveFeatureFlagFromEnvironment=Fe,e.sameTenant=K,e.shouldExposeForFeatures=(e,t,r,a)=>be(Ke(e,r,a),t),e.shouldHideForFeatures=(e,t,r,a)=>Se(Ke(e,r,a),t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("child_process"),require("@decaf-ts/logging"),require("@decaf-ts/db-decorators"),require("@decaf-ts/core"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","child_process","@decaf-ts/logging","@decaf-ts/db-decorators","@decaf-ts/core","@decaf-ts/decorator-validation","tslib","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).integrations={},e.childProcess,e.decafTsLogging,e.decafTsDbDecorators,e.decafTsCore,e.decafTsDecoratorValidation,e.tslib,e.decafTsDecoration);
1
+ var e,t;e=this,t=function(e,t,r,a,i,n,o,s){"use strict";var d,c,p,l,u,_,y,g;e.IsolationTier=void 0,(d=e.IsolationTier||(e.IsolationTier={})).Pooled="pooled",d.Bridge="bridge",d.Silo="silo",e.MembershipStatus=void 0,(c=e.MembershipStatus||(e.MembershipStatus={})).Invited="invited",c.Active="active",c.Suspended="suspended",c.Removed="removed",e.PrincipalKind=void 0,(p=e.PrincipalKind||(e.PrincipalKind={})).User="user",p.Group="group",p.ServiceAccount="service_account",p.Agent="agent",p.ApiKey="api_key",e.ScopeKind=void 0,(l=e.ScopeKind||(e.ScopeKind={})).Tenant="tenant",l.OrgUnit="org_unit",l.Resource="resource",e.PermissionCategory=void 0,(u=e.PermissionCategory||(e.PermissionCategory={})).Admin="admin",u.ContentRead="content_read",u.ContentWrite="content_write",u.Memory="memory",u.Graph="graph",u.Vector="vector",u.Export="export",u.Billing="billing",u.Audit="audit",u.Security="security",u.Data="data",u.Automation="automation",e.ResourceVisibility=void 0,(_=e.ResourceVisibility||(e.ResourceVisibility={})).Private="private",_.ResourceAcl="resource_acl",_.OrgUnit="org_unit",_.OrgSubtree="org_subtree",_.Tenant="tenant",e.StorageKind=void 0,(y=e.StorageKind||(e.StorageKind={})).Postgres="postgres",y.Arango="arango",y.Qdrant="qdrant",y.ObjectStorage="object_storage",e.StorageBindingKind=void 0,(g=e.StorageBindingKind||(e.StorageBindingKind={})).Shared="shared",g.Dedicated="dedicated";const m=Object.values(e.IsolationTier),h=Object.values(e.MembershipStatus),f=Object.values(e.PrincipalKind),v=Object.values(e.ScopeKind),b=Object.values(e.PermissionCategory),S=Object.values(e.ResourceVisibility),O=Object.values(e.StorageKind),A=Object.values(e.StorageBindingKind),w={update:i.Cascade.NONE,delete:i.Cascade.NONE,nullable:!1},P={update:i.Cascade.NONE,delete:i.Cascade.NONE,nullable:!0},T={update:i.Cascade.CASCADE,delete:i.Cascade.CASCADE,nullable:!1},F={update:i.Cascade.CASCADE,delete:i.Cascade.NONE,nullable:!1};function U(e){return{tenantId:e.tenantId,principalId:e.principalId,permissionKey:e.permissionKey,allowedOrgUnitIds:[...e.allowedOrgUnitIds],allowedResourceIds:[...e.allowedResourceIds]}}function R(e){return{must:[{key:"tenant_id",match:{value:e.tenantId}},{should:[{key:"org_unit_id",match:{any:e.allowedOrgUnitIds}},{key:"protected_resource_id",match:{any:e.allowedResourceIds}},{key:"owner_principal_id",match:{value:e.principalId}}]}]}}function I(e,t){return`${e}:${t}`}function j(e){return e??[]}function K(e,t){return q(e)===t}function k(e,t){return!!t&&q(e)===t}function B(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"item"}function C(e,t,r){const a=e??new Date;return!(t&&t>a||r&&a>r)}function M(t){const r={},a={};for(const i of t.permissions){const t=I(i.scopeKind,i.scopeId);r[t]=r[t]??[],r[t].push(i.permissionKey),i.scopeKind===e.ScopeKind.OrgUnit&&(a[i.permissionKey]=a[i.permissionKey]??[],a[i.permissionKey].push(i.scopeId))}return{tenantId:t.tenantId,principalId:t.principalId,permissionsByScope:r,allowedOrgUnitIdsByPermission:a,resourceGrants:t.grants.map(e=>({resourceId:e.resourceId,permissionKey:e.permissionKey}))}}class E extends i.ModelService{constructor(e){super(e)}newModel(e,t){return Object.assign(new e,t)}async create(e,...t){return this.repo.create(Object.assign({},e),...t)}async createOne(e,...t){return this.create(e,...t)}async getById(e,...t){return this.repo.read(e,...t)}async updateOne(e,t,...r){const a=await this.repo.read(e,...r);return this.repo.update(Object.assign(a,t),...r)}async deleteById(e,...t){await this.repo.delete(e,...t)}async findOneBy(e,t,...r){return this.repo.findOneBy(e,t,...r)}async findManyBy(e,t,...r){return this.repo.select().where({[e]:t}).execute(...r)}async listAll(...e){return this.repo.select().execute(...e)}}function q(e){return"string"==typeof e?e:e.id}class x extends n.Model{constructor(e){super(e)}}e.TenantMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.TenantMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_tenant_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.TenantMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.User,T,!1,void 0,"fk_tenant_memberships_user"),n.required(),o.__metadata("design:type",Object)],e.TenantMembership.prototype,"user",void 0),o.__decorate([n.required(),n.type(String),n.option(h),i.column(),o.__metadata("design:type",String)],e.TenantMembership.prototype,"status",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.TenantMembership.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.TenantMembership.prototype,"updatedAt",void 0),e.TenantMembership=o.__decorate([i.table("tenant_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.TenantMembership),e.User=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.User.prototype,"id",void 0),o.__decorate([i.unique(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"email",void 0),o.__decorate([i.unique(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"phone",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.User.prototype,"displayName",void 0),o.__decorate([i.oneToMany(()=>e.TenantMembership,w,!1),o.__metadata("design:type",Array)],e.User.prototype,"tenantMemberships",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitMembership,w,!1),o.__metadata("design:type",Array)],e.User.prototype,"orgUnitMemberships",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.User.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.User.prototype,"updatedAt",void 0),e.User=o.__decorate([i.table("users"),n.model(),o.__metadata("design:paramtypes",[Object])],e.User),e.OrgUnitMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_org_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_memberships_org_unit"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"orgUnit",void 0),o.__decorate([i.manyToOne(()=>e.User,w,!1,void 0,"fk_org_memberships_user"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitMembership.prototype,"user",void 0),o.__decorate([n.required(),n.type(String),n.option(h),i.column(),o.__metadata("design:type",String)],e.OrgUnitMembership.prototype,"status",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitMembership.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnitMembership.prototype,"updatedAt",void 0),e.OrgUnitMembership=o.__decorate([i.table("org_unit_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitMembership),e.OrgUnitClosure=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitClosure.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_org_closure_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_closure_ancestor"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"ancestor",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_closure_descendant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitClosure.prototype,"descendant",void 0),o.__decorate([n.required(),n.type(Number),i.column(),o.__metadata("design:type",Number)],e.OrgUnitClosure.prototype,"depth",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitClosure.prototype,"createdAt",void 0),e.OrgUnitClosure=o.__decorate([i.table("org_unit_closure"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitClosure),e.Permission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Permission.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"key",void 0),o.__decorate([n.required(),n.type(String),n.option(b),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"category",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.Permission.prototype,"description",void 0),o.__decorate([i.oneToMany(()=>e.RolePermission,w,!1),o.__metadata("design:type",Array)],e.Permission.prototype,"rolePermissions",void 0),e.Permission=o.__decorate([i.table("permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Permission),e.RolePermission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.RolePermission.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Role,T,!1,void 0,"fk_role_permissions_role"),n.required(),o.__metadata("design:type",Object)],e.RolePermission.prototype,"role",void 0),o.__decorate([i.manyToOne(()=>e.Permission,T,!1,void 0,"fk_role_permissions_permission"),n.required(),o.__metadata("design:type",Object)],e.RolePermission.prototype,"permission",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.RolePermission.prototype,"createdAt",void 0),e.RolePermission=o.__decorate([i.table("role_permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.RolePermission),e.Role=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Role.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,P,!1,void 0,"fk_roles_tenant"),o.__metadata("design:type",Object)],e.Role.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"key",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"name",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.Role.prototype,"description",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.Role.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.RolePermission,w,!1),o.__metadata("design:type",Array)],e.Role.prototype,"rolePermissions",void 0),o.__decorate([i.oneToMany(()=>e.RoleAssignment,w,!1),o.__metadata("design:type",Array)],e.Role.prototype,"assignments",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Role.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Role.prototype,"updatedAt",void 0),e.Role=o.__decorate([i.table("roles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Role),e.RoleAssignment=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_role_assignments_tenant"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_role_assignments_principal"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"principal",void 0),o.__decorate([i.manyToOne(()=>e.Role,w,!1,void 0,"fk_role_assignments_role"),n.required(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"role",void 0),o.__decorate([n.required(),n.type(String),n.option(v),i.column(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"scopeKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.RoleAssignment.prototype,"scopeId",void 0),o.__decorate([n.required(),n.type(Boolean),i.column(),o.__metadata("design:type",Boolean)],e.RoleAssignment.prototype,"inheritDown",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"expiresAt",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.RoleAssignment.prototype,"conditions",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.RoleAssignment.prototype,"updatedAt",void 0),e.RoleAssignment=o.__decorate([i.table("role_assignments"),n.model(),o.__metadata("design:paramtypes",[Object])],e.RoleAssignment),e.ResourceGrant=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.ResourceGrant.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_resource_grants_tenant"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.ProtectedResource,T,!1,void 0,"fk_resource_grants_resource"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"resource",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_resource_grants_principal"),n.required(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"principal",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ResourceGrant.prototype,"permissionKey",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"expiresAt",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"conditions",void 0),o.__decorate([i.manyToOne(()=>e.Principal,w,!1,void 0,"fk_resource_grants_created_by"),o.__metadata("design:type",Object)],e.ResourceGrant.prototype,"createdBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.ResourceGrant.prototype,"updatedAt",void 0),e.ResourceGrant=o.__decorate([i.table("resource_grants"),n.model(),o.__metadata("design:paramtypes",[Object])],e.ResourceGrant),e.Principal=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Principal.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_principals_tenant"),n.required(),o.__metadata("design:type",Object)],e.Principal.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),n.option(f),i.column(),o.__metadata("design:type",String)],e.Principal.prototype,"kind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Principal.prototype,"subjectId",void 0),o.__decorate([i.oneToMany(()=>e.RoleAssignment,w,!1),o.__metadata("design:type",Array)],e.Principal.prototype,"roleAssignments",void 0),o.__decorate([i.oneToMany(()=>e.ResourceGrant,w,!1),o.__metadata("design:type",Array)],e.Principal.prototype,"resourceGrants",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Principal.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Principal.prototype,"updatedAt",void 0),e.Principal=o.__decorate([i.table("principals"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Principal),e.ProtectedResource=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_protected_resources_tenant"),n.required(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,w,!1,void 0,"fk_protected_resources_org_unit"),n.required(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"resourceType",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"resourceId",void 0),o.__decorate([n.required(),n.type(String),n.option(S),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"visibility",void 0),o.__decorate([i.manyToOne(()=>e.Principal,P,!1,void 0,"fk_protected_resources_owner"),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"owner",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.ProtectedResource.prototype,"sensitivity",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.ProtectedResource.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.ResourceGrant,w,!1),o.__metadata("design:type",Array)],e.ProtectedResource.prototype,"grants",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.ProtectedResource.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.ProtectedResource.prototype,"updatedAt",void 0),e.ProtectedResource=o.__decorate([i.table("protected_resources"),n.model(),o.__metadata("design:paramtypes",[Object])],e.ProtectedResource),e.InheritanceBlock=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_inheritance_blocks_tenant"),n.required(),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_inheritance_blocks_org_unit"),n.required(),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"orgUnit",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,P,!1,void 0,"fk_inheritance_blocks_blocked_ancestor"),o.__metadata("design:type",Object)],e.InheritanceBlock.prototype,"blockedFromAncestor",void 0),o.__decorate([n.required(),n.type(String),n.option(b),i.column(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"permissionCategory",void 0),o.__decorate([n.type(String),i.column(),o.__metadata("design:type",String)],e.InheritanceBlock.prototype,"reason",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.InheritanceBlock.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.InheritanceBlock.prototype,"updatedAt",void 0),e.InheritanceBlock=o.__decorate([i.table("inheritance_blocks"),n.model(),o.__metadata("design:paramtypes",[Object])],e.InheritanceBlock),e.OrgUnit=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_org_units_tenant"),n.required(),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,w,!1,void 0,"fk_org_units_parent"),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"parent",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnit,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"children",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"name",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnit.prototype,"path",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.OrgUnit.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitMembership,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"memberships",void 0),o.__decorate([i.oneToMany(()=>e.ProtectedResource,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"resources",void 0),o.__decorate([i.oneToMany(()=>e.InheritanceBlock,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"inheritanceBlocks",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitClosure,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"ancestorLinks",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnitClosure,w,!1),o.__metadata("design:type",Array)],e.OrgUnit.prototype,"descendantLinks",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnit.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnit.prototype,"updatedAt",void 0),e.OrgUnit=o.__decorate([i.table("org_units"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnit),e.StorageBinding=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_storage_bindings_tenant"),n.required(),o.__metadata("design:type",Object)],e.StorageBinding.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),n.option(O),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"storageKind",void 0),o.__decorate([n.required(),n.type(String),n.option(A),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"bindingKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"bindingKey",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.StorageBinding.prototype,"region",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.StorageBinding.prototype,"config",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.StorageBinding.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.StorageBinding.prototype,"updatedAt",void 0),e.StorageBinding=o.__decorate([i.table("storage_bindings"),n.model(),o.__metadata("design:paramtypes",[Object])],e.StorageBinding),e.Tenant=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Tenant.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"slug",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"name",void 0),o.__decorate([n.required(),n.type(String),n.option(m),i.column(),o.__metadata("design:type",String)],e.Tenant.prototype,"isolationTier",void 0),o.__decorate([i.oneToMany(()=>e.OrgUnit,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"orgUnits",void 0),o.__decorate([i.oneToMany(()=>e.TenantMembership,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"memberships",void 0),o.__decorate([i.oneToMany(()=>e.Principal,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"principals",void 0),o.__decorate([i.oneToMany(()=>e.StorageBinding,w,!1),o.__metadata("design:type",Array)],e.Tenant.prototype,"storageBindings",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Tenant.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Tenant.prototype,"updatedAt",void 0),e.Tenant=o.__decorate([i.table("tenants"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Tenant),e.TenantProfile=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.TenantProfile.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_tenant_profiles_tenant"),n.required(),o.__metadata("design:type",Object)],e.TenantProfile.prototype,"tenant",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.TenantProfile.prototype,"profileKey",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.TenantProfile.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.TenantProfile.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.TenantProfile.prototype,"updatedAt",void 0),e.TenantProfile=o.__decorate([i.table("tenant_profiles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.TenantProfile),e.OrgUnitProfile=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.OrgUnitProfile.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,T,!1,void 0,"fk_org_unit_profiles_org_unit"),n.required(),o.__metadata("design:type",Object)],e.OrgUnitProfile.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.OrgUnitProfile.prototype,"profileKey",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.OrgUnitProfile.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.OrgUnitProfile.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.OrgUnitProfile.prototype,"updatedAt",void 0),e.OrgUnitProfile=o.__decorate([i.table("org_unit_profiles"),n.model(),o.__metadata("design:paramtypes",[Object])],e.OrgUnitProfile),e.GroupMembership=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.GroupMembership.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_group_memberships_tenant"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Group,T,!1,void 0,"fk_group_memberships_group"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"group",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_group_memberships_principal"),n.required(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"principal",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.GroupMembership.prototype,"metadata",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.GroupMembership.prototype,"createdAt",void 0),e.GroupMembership=o.__decorate([i.table("group_memberships"),n.model(),o.__metadata("design:paramtypes",[Object])],e.GroupMembership),e.Group=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.Group.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,w,!1,void 0,"fk_groups_tenant"),n.required(),o.__metadata("design:type",Object)],e.Group.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.OrgUnit,P,!1,void 0,"fk_groups_org_unit"),o.__metadata("design:type",Object)],e.Group.prototype,"orgUnit",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.Group.prototype,"name",void 0),o.__decorate([n.type(Object),i.column(),o.__metadata("design:type",Object)],e.Group.prototype,"metadata",void 0),o.__decorate([i.oneToMany(()=>e.GroupMembership,w,!1),o.__metadata("design:type",Array)],e.Group.prototype,"members",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.Group.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.Group.prototype,"updatedAt",void 0),e.Group=o.__decorate([i.table("groups"),n.model(),o.__metadata("design:paramtypes",[Object])],e.Group),e.EffectivePermission=class extends x{constructor(e){super(e)}},o.__decorate([i.pk({type:String}),i.uuid(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"id",void 0),o.__decorate([i.manyToOne(()=>e.Tenant,T,!1,void 0,"fk_effective_permissions_tenant"),n.required(),o.__metadata("design:type",Object)],e.EffectivePermission.prototype,"tenant",void 0),o.__decorate([i.manyToOne(()=>e.Principal,T,!1,void 0,"fk_effective_permissions_principal"),n.required(),o.__metadata("design:type",Object)],e.EffectivePermission.prototype,"principal",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"permissionKey",void 0),o.__decorate([n.required(),n.type(String),n.option(v),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"scopeKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"scopeId",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"sourceKind",void 0),o.__decorate([n.required(),n.type(String),i.column(),o.__metadata("design:type",String)],e.EffectivePermission.prototype,"sourceId",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"startsAt",void 0),o.__decorate([i.column(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"expiresAt",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.EffectivePermission.prototype,"createdAt",void 0),e.EffectivePermission=o.__decorate([i.table("effective_permissions"),n.model(),o.__metadata("design:paramtypes",[Object])],e.EffectivePermission);class D extends E{constructor(){super(e.TenantProfile)}async createProfile(e,t,r,...a){return this.create({tenant:e,profileKey:t,metadata:r},...a)}async listForTenant(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async deleteForTenant(e,...t){for(const r of await this.listForTenant(e,...t))await this.deleteById(r.id,...t)}}class G extends E{constructor(){super(e.OrgUnitProfile)}async createProfile(e,t,r,...a){return this.create({orgUnit:e,profileKey:t,metadata:r},...a)}async listForOrgUnit(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}}class L extends E{constructor(){super(e.OrgUnitClosure)}async listAncestors(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.descendant,t)).sort((e,t)=>e.depth-t.depth)}async listDescendants(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.ancestor,t)).sort((e,t)=>e.depth-t.depth)}async isAncestorOf(e,t,r,...a){return(await this.listAncestors(e,r,...a)).some(e=>k(e.ancestor,t))}async createSelfLink(e,t,...r){return this.create({tenant:e,ancestor:t,descendant:t,depth:0},...r)}async insertAncestorLinksForNewChild(e,t,r,...a){const i=await this.listAncestors(e,t,...a);for(const t of i)await this.create({tenant:e,ancestor:t.ancestor,descendant:r,depth:t.depth+1},...a)}async deleteLinksForSubtree(e,t,...r){const a=await this.listDescendants(e,t,...r),i=new Set([t,...a.map(e=>q(e.descendant))]),n=new Set([t,...a.map(e=>q(e.ancestor))]),o=(await this.listAll(...r)).filter(t=>K(t.tenant,e)&&(i.has(q(t.descendant))||n.has(q(t.ancestor))));for(const e of o)await this.deleteById(e.id,...r)}}class N extends E{constructor(){super(e.InheritanceBlock)}async blockCategory(e,t,r,a,i,...n){return this.create({tenant:e,orgUnit:t,blockedFromAncestor:a,permissionCategory:r,reason:i},...n)}async unblockCategory(e,...t){await this.deleteById(e,...t)}async listForOrgUnit(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.orgUnit,t))}async categoryBlockedForAncestor(e,t,r,a,...i){return(await this.listForOrgUnit(e,t,...i)).some(e=>e.permissionCategory===a&&(!e.blockedFromAncestor||k(e.blockedFromAncestor,r)))}}class z extends E{constructor(){super(e.Tenant)}async createTenant(t,...r){return this.create({slug:t.slug,name:t.name,isolationTier:t.isolationTier??e.IsolationTier.Pooled},...r)}async getBySlug(e,...t){return this.findOneBy("slug",e,...t)}async renameTenant(e,t,...r){return this.updateOne(e,{name:t},...r)}async changeSlug(e,t,...r){return this.updateOne(e,{slug:t},...r)}async setIsolationTier(e,t,...r){return this.updateOne(e,{isolationTier:t},...r)}async deleteTenantControlled(e,...t){await this.deleteById(e,...t)}}async function $(e,t,...r){for(const a of t)await e.deleteById(a.id,...r)}class V extends E{constructor(){super(e.OrgUnit)}orgUnitPath(e,t){const r=B(t);return e?`${e.replace(/\/+$/,"")}/${r}`:"/"+r}async createProfileIfNeeded(e,t,r,...a){t&&await(new G).createProfile(e,t,r,...a)}async createRoot(e,t,r,a,i,...n){const o=await this.create({tenant:e,name:t,path:this.orgUnitPath(void 0,t),metadata:r},...n);return await this.createProfileIfNeeded(o.id,a,i,...n),await(new L).createSelfLink(e,o.id,...n),o}async createChild(e,...t){const r=e.parentOrgUnitId?await this.getById(e.parentOrgUnitId,...t):void 0,a=await this.create({tenant:e.tenantId,parent:r?.id??e.parentOrgUnitId,name:e.name,path:this.orgUnitPath(r?.path,e.name),metadata:e.metadata},...t);await this.createProfileIfNeeded(a.id,e.profileKey,e.profileMetadata,...t);const i=new L;return await i.createSelfLink(e.tenantId,a.id,...t),e.parentOrgUnitId&&await i.insertAncestorLinksForNewChild(e.tenantId,e.parentOrgUnitId,a.id,...t),a}async listChildren(e,...t){return(await this.listAll(...t)).filter(t=>k(t.parent,e))}async listTenantOrgUnits(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async listDescendantOrgUnits(e,t,r=!1,...a){const i=await(new L).listDescendants(e,t,...a),n=new Set(i.map(e=>q(e.descendant)));return r&&n.add(t),(await this.listTenantOrgUnits(e,...a)).filter(e=>n.has(e.id))}async listAncestorOrgUnits(e,t,r=!1,...a){const i=await(new L).listAncestors(e,t,...a),n=new Set(i.map(e=>q(e.ancestor)));return r&&n.add(t),(await this.listTenantOrgUnits(e,...a)).filter(e=>n.has(e.id))}async renameOrgUnit(e,t,...r){const a=await this.getById(e,...r);return this.updateOne(e,{name:t,path:this.orgUnitPath(a.path.includes("/")?a.path.replace(/\/[^/]+$/,""):void 0,t)},...r)}async moveOrgUnit(e,t,r,...a){const i=await this.getById(r,...a),n=await this.getById(t,...a),o=await this.updateOne(t,{parent:i.id,path:this.orgUnitPath(i.path,n.name)},...a);return await this.rebuildTenantClosure(e,...a),o}async rebuildTenantClosure(e,...t){const r=new L,a=await r.listAll(...t);await $(r,a.filter(t=>K(t.tenant,e)),...t);const i=(await this.listTenantOrgUnits(e,...t)).sort((e,t)=>e.path.split("/").filter(Boolean).length-t.path.split("/").filter(Boolean).length);for(const a of i)await r.createSelfLink(e,a.id,...t),a.parent&&await r.insertAncestorLinksForNewChild(e,q(a.parent),a.id,...t)}async deleteOrgUnitTree(e,t,...r){const a=new L,i=await this.listDescendantOrgUnits(e,t,!0,...r),n=new Set(i.map(e=>e.id)),o=(await this.listTenantOrgUnits(e,...r)).filter(e=>n.has(e.id));await $(this,o,...r),await a.deleteLinksForSubtree(e,t,...r)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object,String,Object,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"createRoot",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"createChild",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"moveOrgUnit",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"rebuildTenantClosure",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object]),o.__metadata("design:returntype",Promise)],V.prototype,"deleteOrgUnitTree",null);class W extends E{constructor(){super(e.User)}async createUser(e,...t){return this.create({email:e.email,phone:e.phone,displayName:e.displayName},...t)}async getByEmail(e,...t){return(await this.listAll(...t)).find(t=>t.email===e)}async updateDisplayName(e,t,...r){return this.updateOne(e,{displayName:t},...r)}async updateEmail(e,t,...r){return this.updateOne(e,{email:t},...r)}async updatePhone(e,t,...r){return this.updateOne(e,{phone:t},...r)}}class Y extends E{constructor(){super(e.Principal)}async createPrincipal(e,t,r,...a){return this.create({tenant:e,kind:t,subjectId:r},...a)}async getForSubject(e,t,r,...a){return(await this.listAll(...a)).find(a=>K(a.tenant,e)&&a.kind===t&&a.subjectId===r)}async getOrCreateForSubject(e,t,r,...a){return await this.getForSubject(e,t,r,...a)??await this.createPrincipal(e,t,r,...a)}async getUserPrincipal(t,r,...a){return this.getOrCreateForSubject(t,e.PrincipalKind.User,r,...a)}async getGroupPrincipal(t,r,...a){return this.getOrCreateForSubject(t,e.PrincipalKind.Group,r,...a)}}class H extends E{constructor(){super(e.TenantMembership)}async addUserToTenant(t,r,a=e.MembershipStatus.Active,...i){return this.create({tenant:t,user:r,status:a},...i)}async setStatus(e,t,...r){return this.updateOne(e,{status:t},...r)}async listUserTenants(e,...t){return(await this.listAll(...t)).filter(t=>k(t.user,e))}async listTenantUsers(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async removeUserFromTenant(e,...t){await this.deleteById(e,...t)}}class Q extends E{constructor(){super(e.OrgUnitMembership)}async addUserToOrgUnit(t,r,a,i=e.MembershipStatus.Active,...n){return this.create({tenant:t,orgUnit:r,user:a,status:i},...n)}async setStatus(e,t,...r){return this.updateOne(e,{status:t},...r)}async listUserOrgUnits(e,...t){return(await this.listAll(...t)).filter(t=>k(t.user,e))}async listOrgUnitUsers(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}async removeUserFromOrgUnit(e,...t){await this.deleteById(e,...t)}}class Z extends E{constructor(){super(e.GroupMembership)}async addPrincipalToGroup(e,t,r,a,...i){return this.create({tenant:e,group:t,principal:r,metadata:a},...i)}async listGroupMembers(e,...t){return(await this.listAll(...t)).filter(t=>k(t.group,e))}async listPrincipalGroups(e,...t){return(await this.listAll(...t)).filter(t=>k(t.principal,e))}async removePrincipalFromGroup(e,...t){await this.deleteById(e,...t)}async resolveGroupPrincipalIdsForPrincipal(e,...t){const r=new Y,a=await this.listPrincipalGroups(e,...t);return await Promise.all(a.map(async e=>{const a=q(e.tenant),i=q(e.group);return(await r.getGroupPrincipal(a,i,...t)).id}))}}class J extends E{constructor(){super(e.Permission)}async createPermission(e,...t){return this.create({key:e.key,category:e.category,description:e.description},...t)}async getByKey(e,...t){return(await this.listAll(...t)).find(t=>t.key===e)}async listByCategory(e,...t){return(await this.listAll(...t)).filter(t=>t.category===e)}async updateDescription(e,t,...r){return this.updateOne(e,{description:t},...r)}}class X extends E{constructor(){super(e.Role)}async createRole(e,...t){return this.create({tenant:e.tenantId,key:e.key,name:e.name,description:e.description,metadata:e.metadata},...t)}async getSystemRoleByKey(e,...t){const r=(await this.listAll(...t)).find(t=>!t.tenant&&t.key===e);if(!r)throw Error(`Role "${e}" not found`);return r}async getTenantRoleByKey(e,t,...r){const a=(await this.listAll(...r)).find(r=>K(r.tenant,e)&&r.key===t);if(!a)throw Error(`Role "${t}" not found for tenant ${e}`);return a}async renameRole(e,t,...r){return this.updateOne(e,{name:t},...r)}async updateRoleMetadata(e,t,...r){return this.updateOne(e,{metadata:t},...r)}async listTenantRoles(e,t=!1,...r){return(await this.listAll(...r)).filter(r=>t&&!r.tenant||K(r.tenant,e))}}class ee extends E{constructor(){super(e.RolePermission)}async addPermissionToRole(e,t,...r){return this.create({role:e,permission:t},...r)}async addPermissionKeyToRole(e,t,...r){const a=await(new J).getByKey(t,...r);return this.addPermissionToRole(e,a.id,...r)}async removePermissionFromRole(e,...t){await this.deleteById(e,...t)}async listRolePermissions(e,...t){return(await this.listAll(...t)).filter(t=>k(t.role,e))}async listPermissionRoles(e,...t){return(await this.listAll(...t)).filter(t=>k(t.permission,e))}async replaceRolePermissions(e,t,...r){const a=await this.listRolePermissions(e,...r);return await(async(e,t,...r)=>{for(const a of t)await e.deleteById(a.id,...r)})(this,a,...r),Promise.all(t.map(t=>this.addPermissionToRole(e,t,...r)))}async createRoleWithPermissions(e,t,...r){const a=await(new X).createRole(e,...r);for(const e of t)await this.addPermissionKeyToRole(a.id,e,...r);return a}}class te extends E{constructor(){super(e.RoleAssignment)}async assignRole(e,...t){return this.create({tenant:e.tenantId,principal:e.principalId,role:e.roleId,scopeKind:e.scopeKind,scopeId:e.scopeId,inheritDown:e.inheritDown??!1,startsAt:e.startsAt,expiresAt:e.expiresAt,conditions:e.conditions},...t)}async revokeAssignment(e,...t){await this.deleteById(e,...t)}async listPrincipalAssignments(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async listRoleAssignments(e,...t){return(await this.listAll(...t)).filter(t=>k(t.role,e))}async listTenantAssignments(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}async updateAssignmentWindow(e,t,r,...a){return this.updateOne(e,{startsAt:t,expiresAt:r},...a)}}class re extends E{constructor(){super(e.EffectivePermission)}async listForPrincipal(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async listForScope(e,t,r,...a){return(await this.listAll(...a)).filter(a=>K(a.tenant,e)&&a.scopeKind===t&&a.scopeId===r)}async hasPermission(e,t,r,a,i,n,...o){return(await this.listForPrincipal(e,t,...o)).some(e=>!(e.permissionKey!==r||e.scopeKind!==a||e.scopeId!==i||e.startsAt&&n&&e.startsAt>n||e.expiresAt&&n&&e.expiresAt<n))}async deleteForPrincipal(e,t,...r){for(const a of await this.listForPrincipal(e,t,...r))await this.deleteById(a.id,...r)}async deleteForTenant(e,...t){for(const r of(await this.listAll(...t)).filter(t=>K(t.tenant,e)))await this.deleteById(r.id,...t)}async rebuildForPrincipal(t,r,...a){await this.deleteForPrincipal(t,r,...a);const i=new te,n=new ee,o=new J,s=new Z,d=new Y,c=new L,p=new N,l=[],u=await i.listPrincipalAssignments(t,r,...a),_=await s.listPrincipalGroups(r,...a),y=[...u,...(await Promise.all(_.map(async e=>{const r=await d.getGroupPrincipal(q(e.tenant),q(e.group),...a);return i.listPrincipalAssignments(t,r.id,...a)}))).flat()];for(const i of y){const s=await n.listRolePermissions(q(i.role),...a),d=await Promise.all(s.map(async e=>o.findOneBy("id",q(e.permission),...a)));for(const n of d){if(!n)continue;const o=i.scopeKind,s=i.scopeId,d=[];if(o===e.ScopeKind.Tenant)d.push({scopeKind:o,scopeId:t});else if(o===e.ScopeKind.Resource)d.push({scopeKind:o,scopeId:s});else if(o!==e.ScopeKind.OrgUnit||i.inheritDown){if(o===e.ScopeKind.OrgUnit&&i.inheritDown){const e=await c.listDescendants(t,s,...a);d.push(...e.map(e=>({scopeKind:o,scopeId:q(e.descendant)})))}}else d.push({scopeKind:o,scopeId:s});for(const c of d)o===e.ScopeKind.OrgUnit&&i.inheritDown&&c.scopeId!==s&&await p.categoryBlockedForAncestor(t,c.scopeId,s,n.category,...a)||l.push({id:"",tenantId:t,principalId:r,permissionKey:n.key,scopeKind:c.scopeKind,scopeId:c.scopeId,sourceKind:"role_assignment",sourceId:i.id,startsAt:i.startsAt,expiresAt:i.expiresAt})}}return await Promise.all(l.map(e=>this.create({tenant:e.tenantId,principal:e.principalId,permissionKey:e.permissionKey,scopeKind:e.scopeKind,scopeId:e.scopeId,sourceKind:e.sourceKind,sourceId:e.sourceId,startsAt:e.startsAt,expiresAt:e.expiresAt},...a)))}async rebuildForTenant(e,...t){const r=(await(new Y).listAll(...t)).filter(t=>K(t.tenant,e));for(const a of r)await this.rebuildForPrincipal(e,a.id,...t)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,Object]),o.__metadata("design:returntype",Promise)],re.prototype,"rebuildForPrincipal",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,Object]),o.__metadata("design:returntype",Promise)],re.prototype,"rebuildForTenant",null);class ae extends E{constructor(){super(e.ProtectedResource)}async registerResource(e,...t){return this.create({tenant:e.tenantId,orgUnit:e.orgUnitId,resourceType:e.resourceType,resourceId:e.resourceId,visibility:e.visibility,owner:e.ownerPrincipalId,sensitivity:e.sensitivity,metadata:e.metadata},...t)}async getByDomainResource(e,t,r,...a){return(await this.listAll(...a)).find(a=>K(a.tenant,e)&&a.resourceType===t&&a.resourceId===r)}async moveResourceToOrgUnit(e,t,...r){return this.updateOne(e,{orgUnit:t},...r)}async setVisibility(e,t,...r){return this.updateOne(e,{visibility:t},...r)}async transferOwnership(e,t,...r){return this.updateOne(e,{owner:t},...r)}async listOrgUnitResources(e,...t){return(await this.listAll(...t)).filter(t=>k(t.orgUnit,e))}async listTenantResources(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}}class ie extends E{constructor(){super(e.ResourceGrant)}async grantResource(e,...t){return this.create({tenant:e.tenantId,resource:e.resourceId,principal:e.principalId,permissionKey:e.permissionKey,startsAt:e.startsAt,expiresAt:e.expiresAt,conditions:e.conditions,createdBy:e.createdByPrincipalId},...t)}async revokeGrant(e,...t){await this.deleteById(e,...t)}async listResourceGrants(e,...t){return(await this.listAll(...t)).filter(t=>k(t.resource,e))}async listPrincipalGrants(e,t,...r){return(await this.listAll(...r)).filter(r=>K(r.tenant,e)&&k(r.principal,t))}async hasGrant(e,t,r,a,i,...n){return(await this.listPrincipalGrants(e,t,...n)).some(e=>k(e.resource,r)&&e.permissionKey===a&&(!e.startsAt||!i||e.startsAt<=i)&&(!e.expiresAt||!i||e.expiresAt>=i))}async deleteAllForResource(e,...t){for(const r of await this.listResourceGrants(e,...t))await this.deleteById(r.id,...t)}}class ne{constructor(){this.tenantService=new z,this.tenantProfileService=new D,this.orgUnitService=new V,this.orgUnitProfileService=new G,this.userService=new W,this.membershipService=new H,this.principalService=new Y,this.permissionService=new J,this.roleService=new X,this.rolePermissionService=new ee,this.roleAssignmentService=new te,this.effectivePermissionService=new re}async bootstrapTenantFromTemplate(t,...r){const a=await this.tenantService.createTenant(t.tenant,...r);t.tenant.profileKey&&await this.tenantProfileService.createProfile(a.id,t.tenant.profileKey,t.tenant.profileMetadata,...r);const i=async(e,t)=>{const n=void 0===e?await this.orgUnitService.createRoot(a.id,t.name,t.metadata,t.profileKey,t.metadata,...r):await this.orgUnitService.createChild({tenantId:a.id,parentOrgUnitId:e,name:t.name,metadata:t.metadata,profileKey:t.profileKey,profileMetadata:t.metadata},...r);for(const e of t.children??[])await i(n.id,e);return n},n=await i(void 0,t.rootOrgUnit),o=await this.userService.createUser(t.ownerUser,...r);await this.membershipService.addUserToTenant(a.id,o.id,e.MembershipStatus.Active,...r);const s=await this.principalService.getUserPrincipal(a.id,o.id,...r);for(const e of t.permissions)await this.permissionService.createPermission(e,...r);for(const e of t.roles){const t=await this.roleService.createRole({tenantId:a.id,key:e.key,name:e.name,description:e.description},...r);for(const a of e.permissionKeys)await this.rolePermissionService.addPermissionKeyToRole(t.id,a,...r)}const d=await this.roleService.getTenantRoleByKey(a.id,t.ownerRoleKey,...r);return await this.roleAssignmentService.assignRole({tenantId:a.id,principalId:s.id,roleId:d.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:n.id,inheritDown:!0},...r),await this.effectivePermissionService.rebuildForPrincipal(a.id,s.id,...r),{tenantId:a.id,rootOrgUnitId:n.id,ownerUserId:o.id,ownerPrincipalId:s.id}}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object]),o.__metadata("design:returntype",Promise)],ne.prototype,"bootstrapTenantFromTemplate",null);class oe{constructor(){this.membershipService=new H,this.orgMembershipService=new Q,this.principalService=new Y,this.roleService=new X,this.roleAssignmentService=new te,this.effectivePermissionService=new re}async onboardUserToTenantAndOrgUnit(t,r,a,i,...n){await this.membershipService.addUserToTenant(t,r,e.MembershipStatus.Active,...n),await this.orgMembershipService.addUserToOrgUnit(t,a,r,e.MembershipStatus.Active,...n);const o=await this.principalService.getUserPrincipal(t,r,...n),s=await this.roleService.getTenantRoleByKey(t,i,...n);return await this.roleAssignmentService.assignRole({tenantId:t,principalId:o.id,roleId:s.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:a,inheritDown:!0},...n),await this.effectivePermissionService.rebuildForPrincipal(t,o.id,...n),{principalId:o.id}}async changeUserOrgRole(t,r,a,i,n,...o){const s=await this.roleService.getTenantRoleByKey(t,i,...o),d=await this.roleAssignmentService.listPrincipalAssignments(t,r,...o);for(const t of d.filter(t=>t.scopeKind===e.ScopeKind.OrgUnit&&t.scopeId===a))await this.roleAssignmentService.revokeAssignment(t.id,...o);await this.roleAssignmentService.assignRole({tenantId:t,principalId:r,roleId:s.id,scopeKind:e.ScopeKind.OrgUnit,scopeId:a,inheritDown:n},...o),await this.effectivePermissionService.rebuildForPrincipal(t,r,...o)}async suspendUserInTenant(t,r,a,...i){await this.membershipService.setStatus(t,e.MembershipStatus.Suspended,...i),await this.effectivePermissionService.deleteForPrincipal(r,a,...i)}async reactivateUserInTenant(t,r,a,...i){await this.membershipService.setStatus(t,e.MembershipStatus.Active,...i),await this.effectivePermissionService.rebuildForPrincipal(r,a,...i)}}o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"onboardUserToTenantAndOrgUnit",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,String,Boolean,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"changeUserOrgRole",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"suspendUserInTenant",null),o.__decorate([i.transactional(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[String,String,String,Object]),o.__metadata("design:returntype",Promise)],oe.prototype,"reactivateUserInTenant",null);const se="featureFlag",de="feature-flags:model",ce="feature-flags:auth",pe="feature-flags:block",le="feature-flags:render-if",ue="feature-flags:hide-on";function _e(e){const t=e.trim();if(!t)return t;if(/^[a-z][a-zA-Z0-9]*$/.test(t))return t;const r=t.toLowerCase().replace(/[_\-\s]+/g," ").split(" ").filter(Boolean);if(0===r.length)return t;const[a,...i]=r;return[a,...i.map(e=>e?e.charAt(0).toUpperCase()+e.slice(1):e)].join("").replace(/[^a-zA-Z0-9]/g,"")}function ye(e){if("string"!=typeof e)return e;const t=e.trim();if("true"===t)return!0;if("false"===t)return!1;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch{return e}return e}function ge(e){if(void 0===e)return;if(!0===e)return!0;if(!e||"object"!=typeof e||Array.isArray(e))return ye(e);const t={};return Object.entries(e).forEach(([e,r])=>{const a=(e=>{if(!e)return e;if(/^[a-z][a-zA-Z0-9]*$/.test(e))return e;const t=e.replace(/[\s-]+/g,"_").split("_").filter(Boolean);if(0===t.length)return e;const[r,...a]=t;return[r.toLowerCase(),...a.map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase())].join("")})(e);void 0!==r&&(t[a]=ge(r)??r)}),t}function me(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:Object.entries(e).reduce((e,[t,r])=>{const a=_e(t),i=ge(r);return void 0!==i&&(e[a]=i),e},{})}function he(e){return!0===e||!!e&&"object"==typeof e}function fe(e,t){return he(e?.[_e(t)])}function ve(e,t="any"){return{features:[...new Set(e.map(_e).filter(Boolean))],match:t}}function be(e,t){if(!e||0===e.features.length)return!0;const r=e.features.filter(e=>fe(t,e));return"all"===e.match?r.length===e.features.length:r.length>0}function Se(e,t){return!(!e||0===e.features.length)&&e.features.some(e=>fe(t,e))}function Oe(e,t){return s.Metadata.get(e,t)}function Ae(e){return e.trim().toLowerCase()}function we(e){return e.trim()}const Pe=r.LoggedEnvironment.accumulate({[se]:{}});async function Te(e=Pe){return me(e.featureFlag)}async function Fe(e,t=Pe){return(await Te(t))[_e(e)]}e.FeatureFlag=class extends i.BaseModel{constructor(e){super(e),this.enabled=!0}},o.__decorate([i.pk(),i.uuid(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"id",void 0),o.__decorate([i.unique(),n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"key",void 0),o.__decorate([i.column(),o.__metadata("design:type",Boolean)],e.FeatureFlag.prototype,"enabled",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"description",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"scope",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlag.prototype,"metadata",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlag.prototype,"config",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"createdBy",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlag.prototype,"updatedBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.FeatureFlag.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.FeatureFlag.prototype,"updatedAt",void 0),e.FeatureFlag=o.__decorate([i.table("feature_flags"),n.model(),o.__metadata("design:paramtypes",[Object])],e.FeatureFlag),e.FeatureFlagAccess=class extends i.BaseModel{constructor(e){super(e),this.enabled=!0}},o.__decorate([i.pk(),i.uuid(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"id",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"featureKey",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"subjectType",void 0),o.__decorate([n.required(),i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"subjectKey",void 0),o.__decorate([i.column(),o.__metadata("design:type",Boolean)],e.FeatureFlagAccess.prototype,"enabled",void 0),o.__decorate([i.column(),o.__metadata("design:type",Object)],e.FeatureFlagAccess.prototype,"metadata",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"createdBy",void 0),o.__decorate([i.column(),o.__metadata("design:type",String)],e.FeatureFlagAccess.prototype,"updatedBy",void 0),o.__decorate([i.createdAt(),o.__metadata("design:type",Date)],e.FeatureFlagAccess.prototype,"createdAt",void 0),o.__decorate([i.updatedAt(),o.__metadata("design:type",Date)],e.FeatureFlagAccess.prototype,"updatedAt",void 0),e.FeatureFlagAccess=o.__decorate([i.table("feature_flag_access"),n.model(),o.__metadata("design:paramtypes",[Object])],e.FeatureFlagAccess);class Ue{async readOne(e,t){return(await this.read(t))[_e(e)]}}class Re extends Ue{async read(e={}){return Te(e.source??{[se]:{}})}}function Ie(e,t){return void 0===t?e:s.Metadata.key(e,t.toString())}function je(e,t,r="any"){const a=ve(t,r);return(t,r,i)=>{if(void 0===r)return s.metadata(e,a)(t);const n=Ie(e,r);return i?s.methodMetadata(n,a)(t,r,i):s.propMetadata(n,a)(t,r)}}function Ke(e,t,r){return Oe(e,Ie(t,r))}e.FeatureFlagService=class extends i.ModelService{constructor(){super(e.FeatureFlag),this.reader=new Re,this.cachedRegistry={}}async initialize(...e){const t=e[0]??{};t.repository&&(this._repository=t.repository),this.reader=t.reader?"function"==typeof t.reader?new t.reader:t.reader:new Re;const r={...t.readerConfig??{},source:t.readerConfig?.source??Pe};return this.cachedRegistry=await this.refreshCachedRegistry(r,...e),{config:{...t,reader:this.reader,readerConfig:r},client:this.reader}}cloneRegistry(e){return Object.entries(e).reduce((e,[t,r])=>(e[t]=r&&"object"==typeof r&&!Array.isArray(r)?{...r}:r,e),{})}async refreshCachedRegistry(e={},...t){const r=await this.reader.read({...e,source:e.source??Pe});let a=[];try{a=await this.repo.select().execute(...t)}catch{a=[]}const i=this.cloneRegistry(r);for(const e of a)i[e.key]=!!e.enabled&&(e.config??!0);return i}setCachedFlag(e){this.cachedRegistry[e.key]=!!e.enabled&&(e.config??!0)}getAccessRepository(){return this.accessRepository??i.Repository.forModel(e.FeatureFlagAccess)}assertInitialized(){this.reader}normalizeFeatureAccessInput(e){return{...e,featureKey:_e(e.featureKey),subjectType:Ae(e.subjectType),subjectKey:we(e.subjectKey)}}buildAccessCondition(e){let t=i.Condition.attr("subjectType").eq(Ae(e.subjectType));return t=t.and(i.Condition.attr("subjectKey").eq(we(e.subjectKey))),void 0!==e.enabled&&(t=t.and(i.Condition.attr("enabled").eq(e.enabled))),e.featureKeys&&e.featureKeys.length>0&&(t=t.and(i.Condition.attr("featureKey").in(e.featureKeys.map(_e)))),t}async create(e,...t){e.key=_e(e.key),e.enabled??=!0;const r=await super.create(e,...t);return this.setCachedFlag(r),r}async update(e,...t){e.key=_e(e.key),e.enabled??=!0;const r=await super.update(e,...t);return this.setCachedFlag(r),r}async findOneBy(e,t,...r){const a="key"===e&&"string"==typeof t?_e(t):t;return this.repo.findOneBy(e,a,...r)}async readAll(e,...t){const r=await this.repo.readAll(e,...t);for(const e of r)this.setCachedFlag(e);return r}async listEnabled(...e){return this.repo.select().where(i.Condition.attr("enabled").eq(!0)).execute(...e)}async grantFeatureAccess(t,...r){const a=this.normalizeFeatureAccessInput(t),i=await this.findFeatureAccess(a,...r).catch(()=>{});return i?this.getAccessRepository().update(Object.assign(i,a),...r):this.getAccessRepository().create(new e.FeatureFlagAccess(a),...r)}async revokeFeatureAccess(e,...t){const r=await this.findFeatureAccess(e,...t).catch(()=>{});if(r)return this.getAccessRepository().delete(r.id,...t)}async findFeatureAccess(e,...t){const r=this.buildAccessCondition(e),i=(await this.getAccessRepository().select().where(r).execute(...t))[0];if(!i)throw new a.NotFoundError(`Feature access for ${Ae(e.subjectType)}:${we(e.subjectKey)} not found`);return i}async listFeatureAccess(e,...t){return this.getAccessRepository().select().where(this.buildAccessCondition(e)).execute(...t)}async resolveFeatureFlagsForSubject(e,...t){this.assertInitialized();const r=await this.listFeatureAccess({...e,enabled:!0},...t),a=[...new Set(r.map(e=>e.featureKey))];if(0===a.length)return{};const n=i.Condition.attr("enabled").eq(!0).and(i.Condition.attr("key").in(a.map(_e)));return(await this.repo.select().where(n).execute(...t)).reduce((e,t)=>(e[t.key]=t.config??!0,e),{})}async isEnabledForSubject(e,t,...r){return fe(await this.resolveFeatureFlagsForSubject(t,...r),e)}isEnabled(e){this.assertInitialized();const t=_e(e);return fe(this.cachedRegistry,t)}async resolveFeatureFlags(){return this.assertInitialized(),this.cloneRegistry(this.cachedRegistry)}async syncFromEnvironment(t={},...r){this.assertInitialized();const a=await this.reader.read({...t,source:t.source??Pe}),i=[];for(const[t,n]of Object.entries(a)){const a=n&&"object"==typeof n&&!Array.isArray(n)?n:{enabled:!!n},{enabled:o,...s}=a,d=_e(t),c=await this.findOneBy("key",d,...r).catch(()=>{}),p=c?Object.assign(c,{enabled:he(n),description:s.description??c.description,scope:s.scope??c.scope,metadata:s.metadata??c.metadata,config:{...s,enabled:he(n)}}):new e.FeatureFlag({key:d,enabled:he(n),description:s.description,scope:s.scope,metadata:s.metadata,config:{...s,enabled:he(n)}});i.push(c?await this.update(p,...r):await this.create(p,...r))}return this.cachedRegistry=await this.refreshCachedRegistry({...t,source:t.source??Pe},...r),i}},o.__decorate([i.repository(e.FeatureFlagAccess),o.__metadata("design:type",Object)],e.FeatureFlagService.prototype,"accessRepository",void 0),e.FeatureFlagService=o.__decorate([i.service(e.FeatureFlag),o.__metadata("design:paramtypes",[])],e.FeatureFlagService),Object.defineProperty(e,"AuthorizationError",{enumerable:!0,get:()=>i.AuthorizationError}),Object.defineProperty(e,"transactional",{enumerable:!0,get:()=>i.transactional}),e.AuthorizationModel=x,e.AuthzService=class{constructor(e={}){this.dataSources=e}async canAccess(t,...r){const a=t.at??new Date;if(t.scopeKind&&t.scopeId)return j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,t.scopeKind,t.scopeId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt));if(!t.resourceProtectedId)return!1;const i=await(this.dataSources.loadResource?.(t.tenantId,t.resourceProtectedId));if(!i)return!1;if(i.tenantId!==t.tenantId)return!1;if(i.ownerPrincipalId===t.principalId)return!0;if(j(await(this.dataSources.listResourceGrants?.(t.tenantId,t.resourceProtectedId))).filter(e=>e.principalId===t.principalId&&e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)).length>0)return!0;const n=i.visibility;return n!==e.ResourceVisibility.Private&&n!==e.ResourceVisibility.ResourceAcl&&(n===e.ResourceVisibility.OrgUnit||n===e.ResourceVisibility.OrgSubtree?j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,e.ScopeKind.OrgUnit,i.orgUnitId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)):n===e.ResourceVisibility.Tenant&&j(await(this.dataSources.listEffectivePermissionsForScope?.(t.tenantId,e.ScopeKind.Tenant,t.tenantId))).some(e=>e.permissionKey===t.permissionKey&&C(a,e.startsAt,e.expiresAt)))}async requireAccess(t,...r){if(!await this.canAccess(t,...r))throw new i.AuthorizationError(`Access denied for ${t.permissionKey} on ${t.resourceProtectedId??(a=t.scopeKind??e.ScopeKind.Resource,n=t.scopeId??"",`${a}:${n}`)}`);var a,n}async buildAccessContext(e,t,...r){return M({tenantId:e,principalId:t,permissions:j(await(this.dataSources.listEffectivePermissions?.(e,t))),grants:j(await(this.dataSources.listPrincipalGrants?.(e,t)))})}async buildArangoContext(e,t,r,...a){const i=await this.buildAccessContext(e,t,...a),n=i.allowedOrgUnitIdsByPermission[r]??[],o=i.resourceGrants.filter(e=>e.permissionKey===r).map(e=>e.resourceId);return U({tenantId:e,principalId:t,permissionKey:r,allowedOrgUnitIds:n,allowedResourceIds:o})}async buildQdrantFilter(e,t,r,...a){const i=await this.buildAccessContext(e,t,...a);return R({tenantId:e,principalId:t,allowedOrgUnitIds:i.allowedOrgUnitIdsByPermission[r]??[],allowedResourceIds:i.resourceGrants.filter(e=>e.permissionKey===r).map(e=>e.resourceId)})}},e.BaseModelService=E,e.BootstrapService=ne,e.COMMIT="1d7b1fb",e.EffectivePermissionService=re,e.EnvironmeFlagReader=Re,e.FEATURE_FLAG_AUTH_KEY=ce,e.FEATURE_FLAG_BLOCK_KEY=pe,e.FEATURE_FLAG_ENV_PREFIX="FEATURE_FLAG",e.FEATURE_FLAG_ENV_ROOT=se,e.FEATURE_FLAG_HIDE_KEY=ue,e.FEATURE_FLAG_MODEL_KEY=de,e.FEATURE_FLAG_RENDER_KEY=le,e.FULL_VERSION="0.9.0-1d7b1fb",e.FeatureFlagEnvironment=Pe,e.FeatureFlagReader=Ue,e.GroupMembershipService=Z,e.GroupService=class extends E{constructor(){super(e.Group)}async createGroup(e,t,r,a,...i){return this.create({tenant:e,orgUnit:r,name:t,metadata:a},...i)}async renameGroup(e,t,...r){return this.updateOne(e,{name:t},...r)}async moveGroupToOrgUnit(e,t,...r){return this.updateOne(e,{orgUnit:t},...r)}async listTenantGroups(e,...t){return(await this.listAll(...t)).filter(t=>K(t.tenant,e))}},e.InheritanceBlockService=N,e.IsolationTierOptions=m,e.MembershipStatusOptions=h,e.OrgUnitClosureService=L,e.OrgUnitMembershipService=Q,e.OrgUnitProfileService=G,e.OrgUnitService=V,e.PACKAGE_NAME="@decaf-ts/integrations",e.PermissionCategoryOptions=b,e.PermissionService=J,e.PrincipalKindOptions=f,e.PrincipalService=Y,e.ProtectedResourceService=ae,e.REL_CASCADE_DEPENDENT=T,e.REL_CASCADE_INSERT_UPDATE=F,e.REL_NULLIFY=P,e.REL_RESTRICT=w,e.ResourceGrantService=ie,e.ResourceLifecycleService=class{async unregisterResource(e,...t){await(new ie).deleteAllForResource(e,...t),await(new ae).deleteById(e,...t)}async resolveResourceScope(e,...t){const r=await(new ae).getById(e,...t);return{tenantId:q(r.tenant),orgUnitId:q(r.orgUnit),visibility:r.visibility,ownerPrincipalId:r.owner?q(r.owner):void 0}}},e.ResourceVisibilityOptions=S,e.RoleAssignmentService=te,e.RolePermissionService=ee,e.RoleService=X,e.ScopeKindOptions=v,e.StorageBindingKindOptions=A,e.StorageBindingService=class extends E{constructor(){super(e.StorageBinding)}async createBinding(e,...t){return this.create({tenant:e.tenantId,storageKind:e.storageKind,bindingKind:e.bindingKind,bindingKey:e.bindingKey,region:e.region,config:e.config},...t)}async listTenantBindings(e,...t){return(await this.listAll(...t)).filter(t=>q(t.tenant)===e)}async getBinding(e,t,...r){return(await this.listTenantBindings(e,...r)).find(e=>e.storageKind===t)}async setBindingConfig(e,t,...r){return this.updateOne(e,{config:t},...r)}async promoteToDedicated(t,r,a,i,...n){return this.updateOne(t,{bindingKind:e.StorageBindingKind.Dedicated,bindingKey:r,region:a,config:i},...n)}async setShared(t,r,a,i,...n){return this.updateOne(t,{bindingKind:e.StorageBindingKind.Shared,bindingKey:r,region:a,config:i},...n)}},e.StorageKindOptions=O,e.SystemManagementService=oe,e.TenantMembershipService=H,e.TenantProfileService=D,e.TenantService=z,e.UserService=W,e.VERSION="0.9.0",e.asArray=j,e.blockFeatureOperations=(...e)=>je(pe,e),e.buildAccessContext=M,e.buildArangoContext=U,e.buildQdrantFilter=R,e.execWithLogging=async(e,i,n,o=r.LogLevel.info)=>(n.debug("Executing: "+e),new Promise((r,s)=>{const d=t.exec(e,i),c=[],p=[];d.stdout?.on("data",e=>{c.push(e),n[o](e.trim())}),d.stderr?.on("data",e=>{p.push(e),n.debug(e.trim())}),d.on("close",e=>{0===e?(n.silly("Command completed successfully"),r({stdout:c.join("\n"),stderr:p.join("\n")})):(n.critical(`Command failed with code ${e}:\n ${p.join("\n")}`),s(new a.InternalError(`Command failed with code ${e}: ${p.join("\n")}`)))}),d.on("error",e=>{n.critical("Command execution error",e),s(e)})})),e.featureAuth=(...e)=>je(ce,e),e.featureFlags=(...e)=>je(de,e),e.getFeatureGateMetadata=Ke,e.hasFeatureFlagInEnvironment=async(e,t=Pe)=>!!await Fe(e,t),e.hideOnFeature=(...e)=>je(ue,e),e.id=()=>crypto.randomUUID(),e.isFeatureFlagEnabled=he,e.isFeatureFlagEnabledByName=fe,e.isFeatureRuleBlocked=Se,e.isFeatureRuleSatisfied=be,e.isTimeValid=C,e.loadFeatureFlagsFromEnvironment=Te,e.lowerSlug=B,e.normalizeFeatureConfig=ge,e.normalizeFeatureName=_e,e.normalizeFeatureRegistry=me,e.normalizeFeatureRule=ve,e.normalizeFeatureSubjectKey=we,e.normalizeFeatureSubjectType=Ae,e.nowIso=()=>new Date,e.parseRuntimeValue=ye,e.readMetadata=Oe,e.relationId=q,e.relationMatch=k,e.renderIfFeature=(...e)=>je(le,e),e.resolveFeatureFlagFromEnvironment=Fe,e.sameTenant=K,e.shouldExposeForFeatures=(e,t,r,a)=>be(Ke(e,r,a),t),e.shouldHideForFeatures=(e,t,r,a)=>Se(Ke(e,r,a),t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("child_process"),require("@decaf-ts/logging"),require("@decaf-ts/db-decorators"),require("@decaf-ts/core"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","child_process","@decaf-ts/logging","@decaf-ts/db-decorators","@decaf-ts/core","@decaf-ts/decorator-validation","tslib","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).integrations={},e.childProcess,e.decafTsLogging,e.decafTsDbDecorators,e.decafTsCore,e.decafTsDecoratorValidation,e.tslib,e.decafTsDecoration);
2
2
  //# sourceMappingURL=integrations.cjs.map
@@ -1,7 +1,7 @@
1
1
  services:
2
2
  # MinIO - S3-compatible object storage (covers s3, minio, and r2 blob providers)
3
3
  minio:
4
- image: minio/minio:RELEASE.2024-08-29T01-40-52Z
4
+ image: minio/minio:latest
5
5
  container_name: minio-blob-integration
6
6
  restart: unless-stopped
7
7
  command: server /data --console-address ":9101"
package/jest.config.cjs CHANGED
@@ -18,7 +18,7 @@ const config = {
18
18
  },
19
19
  ],
20
20
  },
21
- testRegex: "/tests/.*\\.(test|spec)\\.(ts|tsx)$",
21
+ testRegex: "/tests/.*\\.(test|e2e)\\.ts$",
22
22
  testPathIgnorePatterns: [
23
23
  "/node_modules/",
24
24
  "/tests/e2e/plugins/.*\\.e2e\\.test\\.ts$",
@@ -32,16 +32,6 @@ const config = {
32
32
  moduleNameMapper: {
33
33
  "^\\.\\.\\/\\.\\.\\/lib\\/keycloak(.*)$":
34
34
  "<rootDir>/../integrations/src/keycloak\\1",
35
- "^@decaf-ts/for-nest$": "<rootDir>/../for-nest/lib/esm/index.js",
36
- "^@decaf-ts/for-http/hooks$": "<rootDir>/../for-http/lib/cjs/server/hooks/index.cjs",
37
- "^@decaf-ts/for-http/server$": "<rootDir>/../for-http/lib/cjs/server/index.cjs",
38
- "^@decaf-ts/for-http$": "<rootDir>/../for-http/lib/cjs/index.cjs",
39
- "^@nestjs/core(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/core$1",
40
- "^@nestjs/common(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/common$1",
41
- "^@nestjs/swagger(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/swagger$1",
42
- "^@nestjs/mapped-types(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/mapped-types$1",
43
- "^@nestjs/platform-express(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/platform-express$1",
44
- "^@nestjs/testing(/.*)?$": "<rootDir>/../for-nest/node_modules/@nestjs/testing$1",
45
35
  },
46
36
  extensionsToTreatAsEsm: [".ts"],
47
37
  preset: "ts-jest/presets/default-esm",
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AzureBlobEnvironment = void 0;
4
+ /**
5
+ * @module integrations/blob/azure/environment
6
+ * @summary Azure Blob store environment.
7
+ * @description Extends the common blob environment with the `blobs.azure` shape
8
+ * matching {@link AzureBlobStoreServiceConfig}, so {@link AzureBlobStoreService}
9
+ * can fall back to it when no config is passed to `initialize`.
10
+ */
11
+ const BlobEnvironment_js_1 = require("./../core/BlobEnvironment.cjs");
12
+ exports.AzureBlobEnvironment = BlobEnvironment_js_1.BlobEnvironment.accumulate({
13
+ blobs: {
14
+ azure: {
15
+ sourceId: "",
16
+ container: "",
17
+ accountName: "",
18
+ connectionString: "",
19
+ endpoint: "",
20
+ prefix: "",
21
+ },
22
+ },
23
+ });
24
+ //# sourceMappingURL=AzureBlobEnvironment.js.map
25
+ //# sourceMappingURL=AzureBlobEnvironment.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/azure/AzureBlobEnvironment.cjs","sourceRoot":"","sources":["blob/azure/AzureBlobEnvironment.js"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,qEAA+D;AAClD,QAAA,oBAAoB,GAAG,oCAAe,CAAC,UAAU,CAAC;IAC3D,KAAK,EAAE;QACH,KAAK,EAAE;YACH,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACb;KACJ;CACJ,CAAC,CAAC;AACH,gDAAgD"}
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AzureBlobStoreService = 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
+ };
4
14
  /**
5
15
  * @module integrations/blob/azure/service
6
16
  * @summary Azure Blob storage service.
@@ -12,19 +22,69 @@ const core_1 = require("@decaf-ts/core");
12
22
  const db_decorators_1 = require("@decaf-ts/db-decorators");
13
23
  const BlobStoreService_js_1 = require("./../core/BlobStoreService.cjs");
14
24
  const BlobValue_js_1 = require("./../core/BlobValue.cjs");
15
- class AzureBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
25
+ const AzureBlobEnvironment_js_1 = require("./AzureBlobEnvironment.cjs");
26
+ const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
27
+ /**
28
+ * @description Azure Blob storage service registered as `blob-azure`
29
+ * @summary Stores blobs in an Azure Blob Storage container via
30
+ * `@azure/storage-blob`, authenticating either with a connection string or
31
+ * `DefaultAzureCredential`, and signing URLs with SAS tokens.
32
+ * @class AzureBlobStoreService
33
+ * @memberOf module:integrations/blob/azure/service
34
+ */
35
+ let AzureBlobStoreService = class AzureBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
36
+ /**
37
+ * @description Builds the Azure blob config from the environment
38
+ * @summary Reads the `blobs.azure` environment slice; considered
39
+ * unconfigured when no `container` is set, which keeps the auto-boot
40
+ * fallback (see `getConfigFromArgs`) resolving to `undefined`.
41
+ * @return {AzureBlobStoreServiceConfig | undefined} The environment-derived config, or `undefined` when unconfigured
42
+ */
43
+ configFromEnvironment() {
44
+ const env = AzureBlobEnvironment_js_1.AzureBlobEnvironment.blobs.azure;
45
+ const container = (0, environmentValue_js_1.envString)(env?.container);
46
+ if (!container)
47
+ return undefined;
48
+ return {
49
+ provider: "azure-blob",
50
+ sourceId: (0, environmentValue_js_1.envString)(env.sourceId),
51
+ container,
52
+ accountName: (0, environmentValue_js_1.envString)(env.accountName),
53
+ connectionString: (0, environmentValue_js_1.envString)(env.connectionString),
54
+ endpoint: (0, environmentValue_js_1.envString)(env.endpoint),
55
+ prefix: (0, environmentValue_js_1.envString)(env.prefix),
56
+ };
57
+ }
58
+ /**
59
+ * @description Initializes the Azure Blob container client
60
+ * @summary Resolves the config via `getConfigFromArgs` (explicit config,
61
+ * then the `blobs.azure` environment slice). When no config resolves during
62
+ * a context-bearing auto-boot of an unconfigured provider, returns
63
+ * `skipInitialization()` so `Service.boot` does not throw; an explicit
64
+ * `initialize()` with no resolvable config still throws a
65
+ * `ValidationError`. Requires a `container`, builds the
66
+ * `BlobServiceClient` from the connection string when present or from the
67
+ * endpoint (defaulting to `https://<accountName>.blob.core.windows.net`)
68
+ * with `DefaultAzureCredential` otherwise, and stores the container client.
69
+ * @param {...ContextualArgs<any>} args - An optional `AzureBlobStoreServiceConfig`, optionally followed by a decaf `Context`
70
+ * @return {Promise<{config: AzureBlobStoreServiceConfig, client: ContainerClient}>} The resolved config and the container client
71
+ * @throws {InternalError} When a resolved config has no `container`
72
+ */
16
73
  async initialize(...args) {
17
74
  const { log } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
18
75
  const config = this.getConfigFromArgs(...args);
76
+ if (!config) {
77
+ return this.skipInitialization();
78
+ }
19
79
  if (!config.container) {
20
80
  throw new db_decorators_1.InternalError("AzureBlobStoreService requires a container");
21
81
  }
22
82
  if (config.connectionString) {
23
- this.blobServiceClient =
24
- storage_blob_1.BlobServiceClient.fromConnectionString(config.connectionString);
83
+ this.blobServiceClient = storage_blob_1.BlobServiceClient.fromConnectionString(config.connectionString);
25
84
  }
26
85
  else {
27
- const endpoint = config.endpoint || `https://${config.accountName}.blob.core.windows.net`;
86
+ const endpoint = config.endpoint ||
87
+ `https://${config.accountName}.blob.core.windows.net`;
28
88
  this.blobServiceClient = new storage_blob_1.BlobServiceClient(endpoint, new identity_1.DefaultAzureCredential());
29
89
  }
30
90
  const client = this.blobServiceClient.getContainerClient(config.container);
@@ -84,7 +144,9 @@ class AzureBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
84
144
  const blobClient = this.client.getBlobClient(blobName);
85
145
  const downloadResponse = await blobClient.download(options.range?.start, options.range
86
146
  ? (options.range.end ?? undefined) !== undefined
87
- ? (options.range.end ?? undefined) - (options.range?.start ?? 0) + 1
147
+ ? (options.range.end ?? undefined) -
148
+ (options.range?.start ?? 0) +
149
+ 1
88
150
  : undefined
89
151
  : undefined);
90
152
  const metadata = {
@@ -267,27 +329,40 @@ class AzureBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
267
329
  const lower = message.toLowerCase();
268
330
  const statusCode = err?.statusCode || err?.$metadata?.httpStatusCode;
269
331
  const code = err?.code;
270
- if (lower.includes("blobnotfound") || statusCode === 404 || lower.includes("not found") || code === "BlobNotFound") {
332
+ if (lower.includes("blobnotfound") ||
333
+ statusCode === 404 ||
334
+ lower.includes("not found") ||
335
+ code === "BlobNotFound") {
271
336
  return new db_decorators_1.NotFoundError(err);
272
337
  }
273
- if (statusCode === 409 || lower.includes("conflict") || lower.includes("already exists")) {
338
+ if (statusCode === 409 ||
339
+ lower.includes("conflict") ||
340
+ lower.includes("already exists")) {
274
341
  return new db_decorators_1.ConflictError(err);
275
342
  }
276
343
  if (statusCode === 401 || lower.includes("unauthorized")) {
277
344
  return new core_1.AuthorizationError(err);
278
345
  }
279
- if (statusCode === 403 || lower.includes("permission") || lower.includes("forbidden")) {
346
+ if (statusCode === 403 ||
347
+ lower.includes("permission") ||
348
+ lower.includes("forbidden")) {
280
349
  return new core_1.ForbiddenError(err);
281
350
  }
282
351
  if (statusCode === 429 || lower.includes("rate limit")) {
283
352
  return new db_decorators_1.ConflictError(err);
284
353
  }
285
- if (statusCode === 503 || lower.includes("timeout") || lower.includes("unavailable") || lower.includes("connection")) {
354
+ if (statusCode === 503 ||
355
+ lower.includes("timeout") ||
356
+ lower.includes("unavailable") ||
357
+ lower.includes("connection")) {
286
358
  return new core_1.ConnectionError(err);
287
359
  }
288
360
  return new db_decorators_1.InternalError(err);
289
361
  }
290
- }
362
+ };
291
363
  exports.AzureBlobStoreService = AzureBlobStoreService;
364
+ exports.AzureBlobStoreService = AzureBlobStoreService = __decorate([
365
+ (0, core_1.service)("blob-azure")
366
+ ], AzureBlobStoreService);
292
367
  //# sourceMappingURL=AzureBlobStoreService.js.map
293
368
  //# sourceMappingURL=AzureBlobStoreService.cjs.map