@decaf-ts/integrations 0.10.8 → 0.11.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 (958) hide show
  1. package/README.md +77 -5
  2. package/dist/integrations.cjs +1 -1
  3. package/dist/integrations.cjs.map +1 -1
  4. package/dist/integrations.js +1 -1
  5. package/dist/integrations.js.map +1 -1
  6. package/docker/dragonfly-compose.yml +19 -0
  7. package/lib/cjs/blob/core/BlobStoreFactory.cjs +0 -4
  8. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -1
  9. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +214 -0
  10. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +1 -0
  11. package/lib/cjs/feature-flags/index.cjs +1 -0
  12. package/lib/cjs/feature-flags/index.cjs.map +1 -1
  13. package/lib/cjs/index.cjs +3 -3
  14. package/lib/cjs/loader/ObjectLoader.cjs +95 -11
  15. package/lib/cjs/loader/ObjectLoader.cjs.map +1 -1
  16. package/lib/cjs/loader/assets.cjs +160 -0
  17. package/lib/cjs/loader/assets.cjs.map +1 -0
  18. package/lib/cjs/loader/config.cjs +241 -0
  19. package/lib/cjs/loader/config.cjs.map +1 -0
  20. package/lib/cjs/loader/families.cjs +27 -12
  21. package/lib/cjs/loader/families.cjs.map +1 -1
  22. package/lib/cjs/loader/index.cjs +3 -0
  23. package/lib/cjs/loader/index.cjs.map +1 -1
  24. package/lib/cjs/loader/nest.cjs +331 -0
  25. package/lib/cjs/loader/nest.cjs.map +1 -0
  26. package/lib/cjs/redis/RedisContextLock.cjs +185 -0
  27. package/lib/cjs/redis/RedisContextLock.cjs.map +1 -0
  28. package/lib/cjs/redis/RedisDispatch.cjs +132 -0
  29. package/lib/cjs/redis/RedisDispatch.cjs.map +1 -0
  30. package/lib/cjs/redis/RedisPaginator.cjs +95 -0
  31. package/lib/cjs/redis/RedisPaginator.cjs.map +1 -0
  32. package/lib/cjs/redis/RedisStatement.cjs +433 -0
  33. package/lib/cjs/redis/RedisStatement.cjs.map +1 -0
  34. package/lib/cjs/redis/adapter.cjs +709 -0
  35. package/lib/cjs/redis/adapter.cjs.map +1 -0
  36. package/lib/cjs/redis/constants.cjs +31 -0
  37. package/lib/cjs/redis/constants.cjs.map +1 -0
  38. package/lib/cjs/redis/handlers.cjs +27 -0
  39. package/lib/cjs/redis/handlers.cjs.map +1 -0
  40. package/lib/cjs/redis/index.cjs +36 -0
  41. package/lib/cjs/redis/index.cjs.map +1 -0
  42. package/lib/cjs/redis/serialization.cjs +63 -0
  43. package/lib/cjs/redis/serialization.cjs.map +1 -0
  44. package/lib/cjs/redis/types.cjs.map +1 -0
  45. package/lib/esm/blob/core/BlobStoreFactory.js +0 -4
  46. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -1
  47. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +203 -0
  48. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +1 -0
  49. package/lib/esm/feature-flags/index.js +1 -0
  50. package/lib/esm/feature-flags/index.js.map +1 -1
  51. package/lib/esm/index.js +3 -3
  52. package/lib/esm/loader/ObjectLoader.js +94 -11
  53. package/lib/esm/loader/ObjectLoader.js.map +1 -1
  54. package/lib/esm/loader/assets.js +155 -0
  55. package/lib/esm/loader/assets.js.map +1 -0
  56. package/lib/esm/loader/config.js +202 -0
  57. package/lib/esm/loader/config.js.map +1 -0
  58. package/lib/esm/loader/families.js +25 -10
  59. package/lib/esm/loader/families.js.map +1 -1
  60. package/lib/esm/loader/index.js +3 -0
  61. package/lib/esm/loader/index.js.map +1 -1
  62. package/lib/esm/loader/nest.js +292 -0
  63. package/lib/esm/loader/nest.js.map +1 -0
  64. package/lib/esm/redis/RedisContextLock.js +180 -0
  65. package/lib/esm/redis/RedisContextLock.js.map +1 -0
  66. package/lib/esm/redis/RedisDispatch.js +127 -0
  67. package/lib/esm/redis/RedisDispatch.js.map +1 -0
  68. package/lib/esm/redis/RedisPaginator.js +90 -0
  69. package/lib/esm/redis/RedisPaginator.js.map +1 -0
  70. package/lib/esm/redis/RedisStatement.js +428 -0
  71. package/lib/esm/redis/RedisStatement.js.map +1 -0
  72. package/lib/esm/redis/adapter.js +704 -0
  73. package/lib/esm/redis/adapter.js.map +1 -0
  74. package/lib/esm/redis/constants.js +27 -0
  75. package/lib/esm/redis/constants.js.map +1 -0
  76. package/lib/esm/redis/handlers.js +23 -0
  77. package/lib/esm/redis/handlers.js.map +1 -0
  78. package/lib/esm/redis/index.js +19 -0
  79. package/lib/esm/redis/index.js.map +1 -0
  80. package/lib/esm/redis/serialization.js +57 -0
  81. package/lib/esm/redis/serialization.js.map +1 -0
  82. package/lib/esm/{graph/engine → redis}/types.js.map +1 -1
  83. package/lib/types/blob/core/BlobTypes.d.cts +1 -14
  84. package/lib/types/blob/core/BlobTypes.d.mts +1 -14
  85. package/lib/types/feature-flags/EngineCapabilityFeatureFlag.service.d.cts +116 -0
  86. package/lib/types/feature-flags/EngineCapabilityFeatureFlag.service.d.mts +116 -0
  87. package/lib/types/feature-flags/index.d.cts +1 -0
  88. package/lib/types/feature-flags/index.d.mts +1 -0
  89. package/lib/types/index.d.cts +2 -2
  90. package/lib/types/index.d.mts +2 -2
  91. package/lib/types/loader/ObjectLoader.d.cts +46 -2
  92. package/lib/types/loader/ObjectLoader.d.mts +46 -2
  93. package/lib/types/loader/assets.d.cts +43 -0
  94. package/lib/types/loader/assets.d.mts +43 -0
  95. package/lib/types/loader/config.d.cts +84 -0
  96. package/lib/types/loader/config.d.mts +84 -0
  97. package/lib/types/loader/families.d.cts +19 -7
  98. package/lib/types/loader/families.d.mts +19 -7
  99. package/lib/types/loader/index.d.cts +3 -0
  100. package/lib/types/loader/index.d.mts +3 -0
  101. package/lib/types/loader/nest.d.cts +102 -0
  102. package/lib/types/loader/nest.d.mts +102 -0
  103. package/lib/types/loader/types.d.cts +27 -1
  104. package/lib/types/loader/types.d.mts +27 -1
  105. package/lib/types/redis/RedisContextLock.d.cts +106 -0
  106. package/lib/types/redis/RedisContextLock.d.mts +106 -0
  107. package/lib/types/redis/RedisDispatch.d.cts +56 -0
  108. package/lib/types/redis/RedisDispatch.d.mts +56 -0
  109. package/lib/types/redis/RedisPaginator.d.cts +58 -0
  110. package/lib/types/redis/RedisPaginator.d.mts +58 -0
  111. package/lib/types/redis/RedisStatement.d.cts +175 -0
  112. package/lib/types/redis/RedisStatement.d.mts +175 -0
  113. package/lib/types/redis/adapter.d.cts +288 -0
  114. package/lib/types/redis/adapter.d.mts +288 -0
  115. package/lib/types/redis/constants.d.cts +26 -0
  116. package/lib/types/redis/constants.d.mts +26 -0
  117. package/lib/types/redis/handlers.d.cts +20 -0
  118. package/lib/types/redis/handlers.d.mts +20 -0
  119. package/lib/types/redis/index.d.cts +17 -0
  120. package/lib/types/redis/index.d.mts +17 -0
  121. package/lib/types/redis/serialization.d.cts +35 -0
  122. package/lib/types/redis/serialization.d.mts +35 -0
  123. package/lib/types/redis/types.d.cts +72 -0
  124. package/lib/types/redis/types.d.mts +72 -0
  125. package/package.json +17 -33
  126. package/lib/cjs/blob/ipfs/IpfsBlobEnvironment.cjs +0 -30
  127. package/lib/cjs/blob/ipfs/IpfsBlobEnvironment.cjs.map +0 -1
  128. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +0 -248
  129. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
  130. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +0 -27
  131. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
  132. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +0 -35
  133. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
  134. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +0 -45
  135. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
  136. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +0 -35
  137. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
  138. package/lib/cjs/blob/ipfs/index.cjs +0 -29
  139. package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
  140. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs +0 -39
  141. package/lib/cjs/graph/engine/catalog/GraphBuiltInRegistrations.cjs.map +0 -1
  142. package/lib/cjs/graph/engine/catalog/GraphCatalogueErrors.cjs +0 -29
  143. package/lib/cjs/graph/engine/catalog/GraphCatalogueErrors.cjs.map +0 -1
  144. package/lib/cjs/graph/engine/catalog/GraphNodeCatalogue.cjs +0 -270
  145. package/lib/cjs/graph/engine/catalog/GraphNodeCatalogue.cjs.map +0 -1
  146. package/lib/cjs/graph/engine/catalog/GraphNodeManifestResolver.cjs +0 -169
  147. package/lib/cjs/graph/engine/catalog/GraphNodeManifestResolver.cjs.map +0 -1
  148. package/lib/cjs/graph/engine/catalog/GraphNodeMethodRegistry.cjs +0 -64
  149. package/lib/cjs/graph/engine/catalog/GraphNodeMethodRegistry.cjs.map +0 -1
  150. package/lib/cjs/graph/engine/catalog/GraphNodeRegistration.cjs +0 -17
  151. package/lib/cjs/graph/engine/catalog/GraphNodeRegistration.cjs.map +0 -1
  152. package/lib/cjs/graph/engine/catalog/index.cjs +0 -24
  153. package/lib/cjs/graph/engine/catalog/index.cjs.map +0 -1
  154. package/lib/cjs/graph/engine/constants.cjs +0 -58
  155. package/lib/cjs/graph/engine/constants.cjs.map +0 -1
  156. package/lib/cjs/graph/engine/decorators.cjs +0 -4
  157. package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
  158. package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +0 -37
  159. package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +0 -1
  160. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +0 -20
  161. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
  162. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +0 -28
  163. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
  164. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +0 -20
  165. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
  166. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +0 -20
  167. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
  168. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +0 -20
  169. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
  170. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +0 -20
  171. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
  172. package/lib/cjs/graph/engine/errors/GraphRunCancelledError.cjs +0 -18
  173. package/lib/cjs/graph/engine/errors/GraphRunCancelledError.cjs.map +0 -1
  174. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +0 -20
  175. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
  176. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +0 -20
  177. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
  178. package/lib/cjs/graph/engine/errors/index.cjs +0 -33
  179. package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
  180. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +0 -40
  181. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
  182. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +0 -37
  183. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
  184. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +0 -4
  185. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
  186. package/lib/cjs/graph/engine/events/index.cjs +0 -26
  187. package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
  188. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +0 -4
  189. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
  190. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +0 -116
  191. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
  192. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +0 -854
  193. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
  194. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +0 -48
  195. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
  196. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +0 -30
  197. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
  198. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +0 -4
  199. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
  200. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +0 -481
  201. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +0 -1
  202. package/lib/cjs/graph/engine/execution/index.cjs +0 -30
  203. package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
  204. package/lib/cjs/graph/engine/index.cjs +0 -79
  205. package/lib/cjs/graph/engine/index.cjs.map +0 -1
  206. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +0 -87
  207. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
  208. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +0 -85
  209. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
  210. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +0 -16
  211. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
  212. package/lib/cjs/graph/engine/loops/index.cjs +0 -26
  213. package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
  214. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +0 -28
  215. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
  216. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +0 -20
  217. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
  218. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +0 -34
  219. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
  220. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +0 -220
  221. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
  222. package/lib/cjs/graph/engine/pinning/index.cjs +0 -27
  223. package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
  224. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +0 -4
  225. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
  226. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +0 -4
  227. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
  228. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +0 -4
  229. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
  230. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +0 -4
  231. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
  232. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +0 -188
  233. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
  234. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +0 -57
  235. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
  236. package/lib/cjs/graph/engine/planning/index.cjs +0 -29
  237. package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
  238. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +0 -57
  239. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
  240. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +0 -27
  241. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
  242. package/lib/cjs/graph/engine/registry/index.cjs +0 -25
  243. package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
  244. package/lib/cjs/graph/engine/runs/GraphRunEventPublisher.cjs +0 -69
  245. package/lib/cjs/graph/engine/runs/GraphRunEventPublisher.cjs.map +0 -1
  246. package/lib/cjs/graph/engine/runs/GraphRunExecutor.cjs +0 -291
  247. package/lib/cjs/graph/engine/runs/GraphRunExecutor.cjs.map +0 -1
  248. package/lib/cjs/graph/engine/runs/GraphRunFingerprint.cjs +0 -29
  249. package/lib/cjs/graph/engine/runs/GraphRunFingerprint.cjs.map +0 -1
  250. package/lib/cjs/graph/engine/runs/GraphRunService.cjs +0 -259
  251. package/lib/cjs/graph/engine/runs/GraphRunService.cjs.map +0 -1
  252. package/lib/cjs/graph/engine/runs/InMemoryGraphRunEventStore.cjs +0 -69
  253. package/lib/cjs/graph/engine/runs/InMemoryGraphRunEventStore.cjs.map +0 -1
  254. package/lib/cjs/graph/engine/runs/InMemoryGraphRunStore.cjs +0 -26
  255. package/lib/cjs/graph/engine/runs/InMemoryGraphRunStore.cjs.map +0 -1
  256. package/lib/cjs/graph/engine/runs/index.cjs +0 -26
  257. package/lib/cjs/graph/engine/runs/index.cjs.map +0 -1
  258. package/lib/cjs/graph/engine/runs/ownership.cjs +0 -34
  259. package/lib/cjs/graph/engine/runs/ownership.cjs.map +0 -1
  260. package/lib/cjs/graph/engine/runs/types.cjs.map +0 -1
  261. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +0 -53
  262. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
  263. package/lib/cjs/graph/engine/snapshots/index.cjs +0 -24
  264. package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
  265. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +0 -4
  266. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
  267. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +0 -4
  268. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
  269. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +0 -76
  270. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
  271. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +0 -4
  272. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
  273. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +0 -69
  274. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
  275. package/lib/cjs/graph/engine/store/index.cjs +0 -28
  276. package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
  277. package/lib/cjs/graph/engine/types.cjs +0 -4
  278. package/lib/cjs/graph/engine/types.cjs.map +0 -1
  279. package/lib/cjs/graph/engine/validation/GraphConnectionPolicyValidator.cjs +0 -142
  280. package/lib/cjs/graph/engine/validation/GraphConnectionPolicyValidator.cjs.map +0 -1
  281. package/lib/cjs/graph/engine/validation/GraphCredentialReferenceValidator.cjs +0 -160
  282. package/lib/cjs/graph/engine/validation/GraphCredentialReferenceValidator.cjs.map +0 -1
  283. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +0 -29
  284. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
  285. package/lib/cjs/graph/engine/validation/GraphEdgeInstanceValidator.cjs +0 -166
  286. package/lib/cjs/graph/engine/validation/GraphEdgeInstanceValidator.cjs.map +0 -1
  287. package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs +0 -36
  288. package/lib/cjs/graph/engine/validation/GraphLooseNodeValidation.cjs.map +0 -1
  289. package/lib/cjs/graph/engine/validation/GraphNodeInstanceValidator.cjs +0 -86
  290. package/lib/cjs/graph/engine/validation/GraphNodeInstanceValidator.cjs.map +0 -1
  291. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs +0 -456
  292. package/lib/cjs/graph/engine/validation/GraphParameterValidator.cjs.map +0 -1
  293. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +0 -58
  294. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
  295. package/lib/cjs/graph/engine/validation/GraphResolvedWorkflow.cjs +0 -4
  296. package/lib/cjs/graph/engine/validation/GraphResolvedWorkflow.cjs.map +0 -1
  297. package/lib/cjs/graph/engine/validation/GraphValidationErrors.cjs +0 -50
  298. package/lib/cjs/graph/engine/validation/GraphValidationErrors.cjs.map +0 -1
  299. package/lib/cjs/graph/engine/validation/GraphValidationIssue.cjs +0 -4
  300. package/lib/cjs/graph/engine/validation/GraphValidationIssue.cjs.map +0 -1
  301. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +0 -52
  302. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
  303. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs +0 -509
  304. package/lib/cjs/graph/engine/validation/GraphWorkflowDocumentValidator.cjs.map +0 -1
  305. package/lib/cjs/graph/engine/validation/index.cjs +0 -38
  306. package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
  307. package/lib/cjs/graph/index.cjs +0 -30
  308. package/lib/cjs/graph/index.cjs.map +0 -1
  309. package/lib/cjs/graph/log/GraphRunLogger.cjs +0 -145
  310. package/lib/cjs/graph/log/GraphRunLogger.cjs.map +0 -1
  311. package/lib/cjs/graph/log/LogParameters.cjs +0 -73
  312. package/lib/cjs/graph/log/LogParameters.cjs.map +0 -1
  313. package/lib/cjs/graph/nodes/agents/agent.cjs +0 -118
  314. package/lib/cjs/graph/nodes/agents/agent.cjs.map +0 -1
  315. package/lib/cjs/graph/nodes/base.cjs +0 -61
  316. package/lib/cjs/graph/nodes/base.cjs.map +0 -1
  317. package/lib/cjs/graph/nodes/boundary/input-value.cjs +0 -59
  318. package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +0 -1
  319. package/lib/cjs/graph/nodes/flow-control/break.cjs +0 -71
  320. package/lib/cjs/graph/nodes/flow-control/break.cjs.map +0 -1
  321. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +0 -72
  322. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +0 -1
  323. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +0 -80
  324. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +0 -1
  325. package/lib/cjs/graph/nodes/flow-control/if.cjs +0 -82
  326. package/lib/cjs/graph/nodes/flow-control/if.cjs.map +0 -1
  327. package/lib/cjs/graph/nodes/flow-control/parallel.cjs +0 -69
  328. package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +0 -1
  329. package/lib/cjs/graph/nodes/flow-control/switch.cjs +0 -190
  330. package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +0 -1
  331. package/lib/cjs/graph/nodes/index.cjs +0 -162
  332. package/lib/cjs/graph/nodes/index.cjs.map +0 -1
  333. package/lib/cjs/graph/nodes/loops/foreach.cjs +0 -189
  334. package/lib/cjs/graph/nodes/loops/foreach.cjs.map +0 -1
  335. package/lib/cjs/graph/nodes/loops/loop-metadata.cjs +0 -48
  336. package/lib/cjs/graph/nodes/loops/loop-metadata.cjs.map +0 -1
  337. package/lib/cjs/graph/nodes/loops/until.cjs +0 -136
  338. package/lib/cjs/graph/nodes/loops/until.cjs.map +0 -1
  339. package/lib/cjs/graph/nodes/loops/while.cjs +0 -133
  340. package/lib/cjs/graph/nodes/loops/while.cjs.map +0 -1
  341. package/lib/cjs/graph/nodes/manifests.cjs +0 -342
  342. package/lib/cjs/graph/nodes/manifests.cjs.map +0 -1
  343. package/lib/cjs/graph/nodes/triggers/chat.cjs +0 -82
  344. package/lib/cjs/graph/nodes/triggers/chat.cjs.map +0 -1
  345. package/lib/cjs/graph/nodes/triggers/event.cjs +0 -63
  346. package/lib/cjs/graph/nodes/triggers/event.cjs.map +0 -1
  347. package/lib/cjs/graph/nodes/triggers/form.cjs +0 -64
  348. package/lib/cjs/graph/nodes/triggers/form.cjs.map +0 -1
  349. package/lib/cjs/graph/nodes/triggers/manual.cjs +0 -65
  350. package/lib/cjs/graph/nodes/triggers/manual.cjs.map +0 -1
  351. package/lib/cjs/graph/nodes/triggers/schedule.cjs +0 -65
  352. package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +0 -1
  353. package/lib/cjs/graph/nodes/triggers/webhook.cjs +0 -67
  354. package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +0 -1
  355. package/lib/cjs/graph/nodes/utility/code.cjs +0 -139
  356. package/lib/cjs/graph/nodes/utility/code.cjs.map +0 -1
  357. package/lib/cjs/graph/nodes/utility/delay.cjs +0 -66
  358. package/lib/cjs/graph/nodes/utility/delay.cjs.map +0 -1
  359. package/lib/cjs/graph/nodes/utility/log.cjs +0 -70
  360. package/lib/cjs/graph/nodes/utility/log.cjs.map +0 -1
  361. package/lib/cjs/graph/nodes/utility/map.cjs +0 -69
  362. package/lib/cjs/graph/nodes/utility/map.cjs.map +0 -1
  363. package/lib/cjs/graph/nodes/utility/merge.cjs +0 -67
  364. package/lib/cjs/graph/nodes/utility/merge.cjs.map +0 -1
  365. package/lib/cjs/graph/nodes/utility/return.cjs +0 -69
  366. package/lib/cjs/graph/nodes/utility/return.cjs.map +0 -1
  367. package/lib/cjs/graph/nodes/utility/utility-log.cjs +0 -77
  368. package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +0 -1
  369. package/lib/cjs/nest/graph/GraphExecutionController.cjs +0 -266
  370. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
  371. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +0 -178
  372. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
  373. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +0 -75
  374. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
  375. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +0 -106
  376. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
  377. package/lib/cjs/nest/graph/GraphNodeCatalogueController.cjs +0 -270
  378. package/lib/cjs/nest/graph/GraphNodeCatalogueController.cjs.map +0 -1
  379. package/lib/cjs/nest/graph/GraphResultService.cjs +0 -69
  380. package/lib/cjs/nest/graph/GraphResultService.cjs.map +0 -1
  381. package/lib/cjs/nest/graph/GraphRunController.cjs +0 -279
  382. package/lib/cjs/nest/graph/GraphRunController.cjs.map +0 -1
  383. package/lib/cjs/nest/graph/GraphRunModel.cjs +0 -83
  384. package/lib/cjs/nest/graph/GraphRunModel.cjs.map +0 -1
  385. package/lib/cjs/nest/graph/GraphRunModelService.cjs +0 -121
  386. package/lib/cjs/nest/graph/GraphRunModelService.cjs.map +0 -1
  387. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs +0 -171
  388. package/lib/cjs/nest/graph/GraphWorkflowBoundaryValidation.cjs.map +0 -1
  389. package/lib/cjs/nest/graph/GraphWorkflowController.cjs +0 -162
  390. package/lib/cjs/nest/graph/GraphWorkflowController.cjs.map +0 -1
  391. package/lib/cjs/nest/graph/GraphWorkflowDocumentLimits.cjs +0 -12
  392. package/lib/cjs/nest/graph/GraphWorkflowDocumentLimits.cjs.map +0 -1
  393. package/lib/cjs/nest/graph/GraphWorkflowErrors.cjs +0 -23
  394. package/lib/cjs/nest/graph/GraphWorkflowErrors.cjs.map +0 -1
  395. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +0 -66
  396. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +0 -1
  397. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +0 -253
  398. package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +0 -1
  399. package/lib/cjs/nest/graph/index.cjs +0 -33
  400. package/lib/cjs/nest/graph/index.cjs.map +0 -1
  401. package/lib/cjs/nest/graph/main.cjs +0 -47
  402. package/lib/cjs/nest/graph/main.cjs.map +0 -1
  403. package/lib/esm/blob/ipfs/IpfsBlobEnvironment.js +0 -26
  404. package/lib/esm/blob/ipfs/IpfsBlobEnvironment.js.map +0 -1
  405. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +0 -240
  406. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
  407. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +0 -23
  408. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
  409. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +0 -30
  410. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
  411. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +0 -40
  412. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
  413. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +0 -30
  414. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
  415. package/lib/esm/blob/ipfs/index.js +0 -12
  416. package/lib/esm/blob/ipfs/index.js.map +0 -1
  417. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js +0 -34
  418. package/lib/esm/graph/engine/catalog/GraphBuiltInRegistrations.js.map +0 -1
  419. package/lib/esm/graph/engine/catalog/GraphCatalogueErrors.js +0 -22
  420. package/lib/esm/graph/engine/catalog/GraphCatalogueErrors.js.map +0 -1
  421. package/lib/esm/graph/engine/catalog/GraphNodeCatalogue.js +0 -265
  422. package/lib/esm/graph/engine/catalog/GraphNodeCatalogue.js.map +0 -1
  423. package/lib/esm/graph/engine/catalog/GraphNodeManifestResolver.js +0 -162
  424. package/lib/esm/graph/engine/catalog/GraphNodeManifestResolver.js.map +0 -1
  425. package/lib/esm/graph/engine/catalog/GraphNodeMethodRegistry.js +0 -59
  426. package/lib/esm/graph/engine/catalog/GraphNodeMethodRegistry.js.map +0 -1
  427. package/lib/esm/graph/engine/catalog/GraphNodeRegistration.js +0 -12
  428. package/lib/esm/graph/engine/catalog/GraphNodeRegistration.js.map +0 -1
  429. package/lib/esm/graph/engine/catalog/index.js +0 -7
  430. package/lib/esm/graph/engine/catalog/index.js.map +0 -1
  431. package/lib/esm/graph/engine/constants.js +0 -62
  432. package/lib/esm/graph/engine/constants.js.map +0 -1
  433. package/lib/esm/graph/engine/decorators.js +0 -2
  434. package/lib/esm/graph/engine/decorators.js.map +0 -1
  435. package/lib/esm/graph/engine/errors/GraphBreakSignal.js +0 -32
  436. package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +0 -1
  437. package/lib/esm/graph/engine/errors/GraphCycleError.js +0 -15
  438. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
  439. package/lib/esm/graph/engine/errors/GraphExecutionError.js +0 -23
  440. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
  441. package/lib/esm/graph/engine/errors/GraphInputError.js +0 -15
  442. package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
  443. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +0 -15
  444. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
  445. package/lib/esm/graph/engine/errors/GraphPinningError.js +0 -15
  446. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
  447. package/lib/esm/graph/engine/errors/GraphPortError.js +0 -15
  448. package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
  449. package/lib/esm/graph/engine/errors/GraphRunCancelledError.js +0 -13
  450. package/lib/esm/graph/engine/errors/GraphRunCancelledError.js.map +0 -1
  451. package/lib/esm/graph/engine/errors/GraphStoreError.js +0 -15
  452. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
  453. package/lib/esm/graph/engine/errors/GraphTopologyError.js +0 -15
  454. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
  455. package/lib/esm/graph/engine/errors/index.js +0 -16
  456. package/lib/esm/graph/engine/errors/index.js.map +0 -1
  457. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +0 -35
  458. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
  459. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +0 -32
  460. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
  461. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +0 -2
  462. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
  463. package/lib/esm/graph/engine/events/index.js +0 -9
  464. package/lib/esm/graph/engine/events/index.js.map +0 -1
  465. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +0 -18
  466. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
  467. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +0 -111
  468. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
  469. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +0 -849
  470. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
  471. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +0 -43
  472. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
  473. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +0 -26
  474. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
  475. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +0 -2
  476. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
  477. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +0 -440
  478. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +0 -1
  479. package/lib/esm/graph/engine/execution/index.js +0 -13
  480. package/lib/esm/graph/engine/execution/index.js.map +0 -1
  481. package/lib/esm/graph/engine/index.js +0 -62
  482. package/lib/esm/graph/engine/index.js.map +0 -1
  483. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +0 -82
  484. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
  485. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +0 -80
  486. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
  487. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +0 -11
  488. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
  489. package/lib/esm/graph/engine/loops/index.js +0 -9
  490. package/lib/esm/graph/engine/loops/index.js.map +0 -1
  491. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +0 -23
  492. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
  493. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +0 -15
  494. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
  495. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +0 -29
  496. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
  497. package/lib/esm/graph/engine/pinning/GraphPinningService.js +0 -215
  498. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
  499. package/lib/esm/graph/engine/pinning/index.js +0 -10
  500. package/lib/esm/graph/engine/pinning/index.js.map +0 -1
  501. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +0 -2
  502. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
  503. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +0 -9
  504. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
  505. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +0 -2
  506. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
  507. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +0 -2
  508. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
  509. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +0 -183
  510. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
  511. package/lib/esm/graph/engine/planning/GraphTopology.js +0 -52
  512. package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
  513. package/lib/esm/graph/engine/planning/index.js +0 -12
  514. package/lib/esm/graph/engine/planning/index.js.map +0 -1
  515. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +0 -52
  516. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
  517. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +0 -22
  518. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
  519. package/lib/esm/graph/engine/registry/index.js +0 -8
  520. package/lib/esm/graph/engine/registry/index.js.map +0 -1
  521. package/lib/esm/graph/engine/runs/GraphRunEventPublisher.js +0 -64
  522. package/lib/esm/graph/engine/runs/GraphRunEventPublisher.js.map +0 -1
  523. package/lib/esm/graph/engine/runs/GraphRunExecutor.js +0 -286
  524. package/lib/esm/graph/engine/runs/GraphRunExecutor.js.map +0 -1
  525. package/lib/esm/graph/engine/runs/GraphRunFingerprint.js +0 -25
  526. package/lib/esm/graph/engine/runs/GraphRunFingerprint.js.map +0 -1
  527. package/lib/esm/graph/engine/runs/GraphRunService.js +0 -254
  528. package/lib/esm/graph/engine/runs/GraphRunService.js.map +0 -1
  529. package/lib/esm/graph/engine/runs/InMemoryGraphRunEventStore.js +0 -64
  530. package/lib/esm/graph/engine/runs/InMemoryGraphRunEventStore.js.map +0 -1
  531. package/lib/esm/graph/engine/runs/InMemoryGraphRunStore.js +0 -21
  532. package/lib/esm/graph/engine/runs/InMemoryGraphRunStore.js.map +0 -1
  533. package/lib/esm/graph/engine/runs/index.js +0 -9
  534. package/lib/esm/graph/engine/runs/index.js.map +0 -1
  535. package/lib/esm/graph/engine/runs/ownership.js +0 -30
  536. package/lib/esm/graph/engine/runs/ownership.js.map +0 -1
  537. package/lib/esm/graph/engine/runs/types.js.map +0 -1
  538. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +0 -48
  539. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
  540. package/lib/esm/graph/engine/snapshots/index.js +0 -7
  541. package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
  542. package/lib/esm/graph/engine/store/GraphCachedValue.js +0 -2
  543. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
  544. package/lib/esm/graph/engine/store/GraphValueKey.js +0 -7
  545. package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
  546. package/lib/esm/graph/engine/store/GraphValueStore.js +0 -71
  547. package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
  548. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +0 -2
  549. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
  550. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +0 -64
  551. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
  552. package/lib/esm/graph/engine/store/index.js +0 -11
  553. package/lib/esm/graph/engine/store/index.js.map +0 -1
  554. package/lib/esm/graph/engine/types.js +0 -2
  555. package/lib/esm/graph/engine/validation/GraphConnectionPolicyValidator.js +0 -137
  556. package/lib/esm/graph/engine/validation/GraphConnectionPolicyValidator.js.map +0 -1
  557. package/lib/esm/graph/engine/validation/GraphCredentialReferenceValidator.js +0 -155
  558. package/lib/esm/graph/engine/validation/GraphCredentialReferenceValidator.js.map +0 -1
  559. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +0 -24
  560. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
  561. package/lib/esm/graph/engine/validation/GraphEdgeInstanceValidator.js +0 -161
  562. package/lib/esm/graph/engine/validation/GraphEdgeInstanceValidator.js.map +0 -1
  563. package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js +0 -32
  564. package/lib/esm/graph/engine/validation/GraphLooseNodeValidation.js.map +0 -1
  565. package/lib/esm/graph/engine/validation/GraphNodeInstanceValidator.js +0 -81
  566. package/lib/esm/graph/engine/validation/GraphNodeInstanceValidator.js.map +0 -1
  567. package/lib/esm/graph/engine/validation/GraphParameterValidator.js +0 -449
  568. package/lib/esm/graph/engine/validation/GraphParameterValidator.js.map +0 -1
  569. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +0 -53
  570. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
  571. package/lib/esm/graph/engine/validation/GraphResolvedWorkflow.js +0 -2
  572. package/lib/esm/graph/engine/validation/GraphResolvedWorkflow.js.map +0 -1
  573. package/lib/esm/graph/engine/validation/GraphValidationErrors.js +0 -43
  574. package/lib/esm/graph/engine/validation/GraphValidationErrors.js.map +0 -1
  575. package/lib/esm/graph/engine/validation/GraphValidationIssue.js +0 -2
  576. package/lib/esm/graph/engine/validation/GraphValidationIssue.js.map +0 -1
  577. package/lib/esm/graph/engine/validation/GraphValueValidator.js +0 -47
  578. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
  579. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js +0 -503
  580. package/lib/esm/graph/engine/validation/GraphWorkflowDocumentValidator.js.map +0 -1
  581. package/lib/esm/graph/engine/validation/index.js +0 -21
  582. package/lib/esm/graph/engine/validation/index.js.map +0 -1
  583. package/lib/esm/graph/index.js +0 -13
  584. package/lib/esm/graph/index.js.map +0 -1
  585. package/lib/esm/graph/log/GraphRunLogger.js +0 -140
  586. package/lib/esm/graph/log/GraphRunLogger.js.map +0 -1
  587. package/lib/esm/graph/log/LogParameters.js +0 -69
  588. package/lib/esm/graph/log/LogParameters.js.map +0 -1
  589. package/lib/esm/graph/nodes/agents/agent.js +0 -109
  590. package/lib/esm/graph/nodes/agents/agent.js.map +0 -1
  591. package/lib/esm/graph/nodes/base.js +0 -56
  592. package/lib/esm/graph/nodes/base.js.map +0 -1
  593. package/lib/esm/graph/nodes/boundary/input-value.js +0 -50
  594. package/lib/esm/graph/nodes/boundary/input-value.js.map +0 -1
  595. package/lib/esm/graph/nodes/flow-control/break.js +0 -62
  596. package/lib/esm/graph/nodes/flow-control/break.js.map +0 -1
  597. package/lib/esm/graph/nodes/flow-control/error-boundary.js +0 -63
  598. package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +0 -1
  599. package/lib/esm/graph/nodes/flow-control/human-approval.js +0 -71
  600. package/lib/esm/graph/nodes/flow-control/human-approval.js.map +0 -1
  601. package/lib/esm/graph/nodes/flow-control/if.js +0 -73
  602. package/lib/esm/graph/nodes/flow-control/if.js.map +0 -1
  603. package/lib/esm/graph/nodes/flow-control/parallel.js +0 -60
  604. package/lib/esm/graph/nodes/flow-control/parallel.js.map +0 -1
  605. package/lib/esm/graph/nodes/flow-control/switch.js +0 -181
  606. package/lib/esm/graph/nodes/flow-control/switch.js.map +0 -1
  607. package/lib/esm/graph/nodes/index.js +0 -144
  608. package/lib/esm/graph/nodes/index.js.map +0 -1
  609. package/lib/esm/graph/nodes/loops/foreach.js +0 -180
  610. package/lib/esm/graph/nodes/loops/foreach.js.map +0 -1
  611. package/lib/esm/graph/nodes/loops/loop-metadata.js +0 -44
  612. package/lib/esm/graph/nodes/loops/loop-metadata.js.map +0 -1
  613. package/lib/esm/graph/nodes/loops/until.js +0 -127
  614. package/lib/esm/graph/nodes/loops/until.js.map +0 -1
  615. package/lib/esm/graph/nodes/loops/while.js +0 -124
  616. package/lib/esm/graph/nodes/loops/while.js.map +0 -1
  617. package/lib/esm/graph/nodes/manifests.js +0 -338
  618. package/lib/esm/graph/nodes/manifests.js.map +0 -1
  619. package/lib/esm/graph/nodes/triggers/chat.js +0 -73
  620. package/lib/esm/graph/nodes/triggers/chat.js.map +0 -1
  621. package/lib/esm/graph/nodes/triggers/event.js +0 -54
  622. package/lib/esm/graph/nodes/triggers/event.js.map +0 -1
  623. package/lib/esm/graph/nodes/triggers/form.js +0 -55
  624. package/lib/esm/graph/nodes/triggers/form.js.map +0 -1
  625. package/lib/esm/graph/nodes/triggers/manual.js +0 -56
  626. package/lib/esm/graph/nodes/triggers/manual.js.map +0 -1
  627. package/lib/esm/graph/nodes/triggers/schedule.js +0 -56
  628. package/lib/esm/graph/nodes/triggers/schedule.js.map +0 -1
  629. package/lib/esm/graph/nodes/triggers/webhook.js +0 -58
  630. package/lib/esm/graph/nodes/triggers/webhook.js.map +0 -1
  631. package/lib/esm/graph/nodes/utility/code.js +0 -130
  632. package/lib/esm/graph/nodes/utility/code.js.map +0 -1
  633. package/lib/esm/graph/nodes/utility/delay.js +0 -57
  634. package/lib/esm/graph/nodes/utility/delay.js.map +0 -1
  635. package/lib/esm/graph/nodes/utility/log.js +0 -61
  636. package/lib/esm/graph/nodes/utility/log.js.map +0 -1
  637. package/lib/esm/graph/nodes/utility/map.js +0 -60
  638. package/lib/esm/graph/nodes/utility/map.js.map +0 -1
  639. package/lib/esm/graph/nodes/utility/merge.js +0 -58
  640. package/lib/esm/graph/nodes/utility/merge.js.map +0 -1
  641. package/lib/esm/graph/nodes/utility/return.js +0 -60
  642. package/lib/esm/graph/nodes/utility/return.js.map +0 -1
  643. package/lib/esm/graph/nodes/utility/utility-log.js +0 -68
  644. package/lib/esm/graph/nodes/utility/utility-log.js.map +0 -1
  645. package/lib/esm/nest/graph/GraphExecutionController.js +0 -257
  646. package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
  647. package/lib/esm/nest/graph/GraphExecutionModule.js +0 -137
  648. package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
  649. package/lib/esm/nest/graph/GraphExecutionResultModel.js +0 -66
  650. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
  651. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +0 -99
  652. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
  653. package/lib/esm/nest/graph/GraphNodeCatalogueController.js +0 -261
  654. package/lib/esm/nest/graph/GraphNodeCatalogueController.js.map +0 -1
  655. package/lib/esm/nest/graph/GraphResultService.js +0 -60
  656. package/lib/esm/nest/graph/GraphResultService.js.map +0 -1
  657. package/lib/esm/nest/graph/GraphRunController.js +0 -270
  658. package/lib/esm/nest/graph/GraphRunController.js.map +0 -1
  659. package/lib/esm/nest/graph/GraphRunModel.js +0 -74
  660. package/lib/esm/nest/graph/GraphRunModel.js.map +0 -1
  661. package/lib/esm/nest/graph/GraphRunModelService.js +0 -112
  662. package/lib/esm/nest/graph/GraphRunModelService.js.map +0 -1
  663. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js +0 -166
  664. package/lib/esm/nest/graph/GraphWorkflowBoundaryValidation.js.map +0 -1
  665. package/lib/esm/nest/graph/GraphWorkflowController.js +0 -153
  666. package/lib/esm/nest/graph/GraphWorkflowController.js.map +0 -1
  667. package/lib/esm/nest/graph/GraphWorkflowDocumentLimits.js +0 -8
  668. package/lib/esm/nest/graph/GraphWorkflowDocumentLimits.js.map +0 -1
  669. package/lib/esm/nest/graph/GraphWorkflowErrors.js +0 -18
  670. package/lib/esm/nest/graph/GraphWorkflowErrors.js.map +0 -1
  671. package/lib/esm/nest/graph/GraphWorkflowModel.js +0 -57
  672. package/lib/esm/nest/graph/GraphWorkflowModel.js.map +0 -1
  673. package/lib/esm/nest/graph/GraphWorkflowService.js +0 -243
  674. package/lib/esm/nest/graph/GraphWorkflowService.js.map +0 -1
  675. package/lib/esm/nest/graph/index.js +0 -16
  676. package/lib/esm/nest/graph/index.js.map +0 -1
  677. package/lib/esm/nest/graph/main.js +0 -44
  678. package/lib/esm/nest/graph/main.js.map +0 -1
  679. package/lib/types/blob/ipfs/IpfsBlobEnvironment.d.cts +0 -24
  680. package/lib/types/blob/ipfs/IpfsBlobEnvironment.d.mts +0 -24
  681. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +0 -61
  682. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +0 -61
  683. package/lib/types/blob/ipfs/IpfsKeyIndex.d.cts +0 -9
  684. package/lib/types/blob/ipfs/IpfsKeyIndex.d.mts +0 -9
  685. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.cts +0 -11
  686. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.mts +0 -11
  687. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.cts +0 -15
  688. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.mts +0 -15
  689. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.cts +0 -11
  690. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.mts +0 -11
  691. package/lib/types/blob/ipfs/index.d.cts +0 -11
  692. package/lib/types/blob/ipfs/index.d.mts +0 -11
  693. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.cts +0 -14
  694. package/lib/types/graph/engine/catalog/GraphBuiltInRegistrations.d.mts +0 -14
  695. package/lib/types/graph/engine/catalog/GraphCatalogueErrors.d.cts +0 -13
  696. package/lib/types/graph/engine/catalog/GraphCatalogueErrors.d.mts +0 -13
  697. package/lib/types/graph/engine/catalog/GraphNodeCatalogue.d.cts +0 -71
  698. package/lib/types/graph/engine/catalog/GraphNodeCatalogue.d.mts +0 -71
  699. package/lib/types/graph/engine/catalog/GraphNodeManifestResolver.d.cts +0 -42
  700. package/lib/types/graph/engine/catalog/GraphNodeManifestResolver.d.mts +0 -42
  701. package/lib/types/graph/engine/catalog/GraphNodeMethodRegistry.d.cts +0 -22
  702. package/lib/types/graph/engine/catalog/GraphNodeMethodRegistry.d.mts +0 -22
  703. package/lib/types/graph/engine/catalog/GraphNodeRegistration.d.cts +0 -68
  704. package/lib/types/graph/engine/catalog/GraphNodeRegistration.d.mts +0 -68
  705. package/lib/types/graph/engine/catalog/index.d.cts +0 -6
  706. package/lib/types/graph/engine/catalog/index.d.mts +0 -6
  707. package/lib/types/graph/engine/constants.d.cts +0 -59
  708. package/lib/types/graph/engine/constants.d.mts +0 -59
  709. package/lib/types/graph/engine/decorators.d.cts +0 -6
  710. package/lib/types/graph/engine/decorators.d.mts +0 -6
  711. package/lib/types/graph/engine/errors/GraphBreakSignal.d.cts +0 -28
  712. package/lib/types/graph/engine/errors/GraphBreakSignal.d.mts +0 -28
  713. package/lib/types/graph/engine/errors/GraphCycleError.d.cts +0 -12
  714. package/lib/types/graph/engine/errors/GraphCycleError.d.mts +0 -12
  715. package/lib/types/graph/engine/errors/GraphExecutionError.d.cts +0 -19
  716. package/lib/types/graph/engine/errors/GraphExecutionError.d.mts +0 -19
  717. package/lib/types/graph/engine/errors/GraphInputError.d.cts +0 -12
  718. package/lib/types/graph/engine/errors/GraphInputError.d.mts +0 -12
  719. package/lib/types/graph/engine/errors/GraphLoopLimitError.d.cts +0 -12
  720. package/lib/types/graph/engine/errors/GraphLoopLimitError.d.mts +0 -12
  721. package/lib/types/graph/engine/errors/GraphPinningError.d.cts +0 -12
  722. package/lib/types/graph/engine/errors/GraphPinningError.d.mts +0 -12
  723. package/lib/types/graph/engine/errors/GraphPortError.d.cts +0 -12
  724. package/lib/types/graph/engine/errors/GraphPortError.d.mts +0 -12
  725. package/lib/types/graph/engine/errors/GraphRunCancelledError.d.cts +0 -9
  726. package/lib/types/graph/engine/errors/GraphRunCancelledError.d.mts +0 -9
  727. package/lib/types/graph/engine/errors/GraphStoreError.d.cts +0 -12
  728. package/lib/types/graph/engine/errors/GraphStoreError.d.mts +0 -12
  729. package/lib/types/graph/engine/errors/GraphTopologyError.d.cts +0 -12
  730. package/lib/types/graph/engine/errors/GraphTopologyError.d.mts +0 -12
  731. package/lib/types/graph/engine/errors/index.d.cts +0 -15
  732. package/lib/types/graph/engine/errors/index.d.mts +0 -15
  733. package/lib/types/graph/engine/events/GraphExecutionEventEmitter.d.cts +0 -26
  734. package/lib/types/graph/engine/events/GraphExecutionEventEmitter.d.mts +0 -26
  735. package/lib/types/graph/engine/events/GraphExecutionEventFactory.d.cts +0 -25
  736. package/lib/types/graph/engine/events/GraphExecutionEventFactory.d.mts +0 -25
  737. package/lib/types/graph/engine/events/GraphExecutionObserver.d.cts +0 -17
  738. package/lib/types/graph/engine/events/GraphExecutionObserver.d.mts +0 -17
  739. package/lib/types/graph/engine/events/index.d.cts +0 -8
  740. package/lib/types/graph/engine/events/index.d.mts +0 -8
  741. package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.cts +0 -76
  742. package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.mts +0 -76
  743. package/lib/types/graph/engine/execution/GraphExecutionContext.d.cts +0 -79
  744. package/lib/types/graph/engine/execution/GraphExecutionContext.d.mts +0 -79
  745. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +0 -278
  746. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +0 -278
  747. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.cts +0 -42
  748. package/lib/types/graph/engine/execution/GraphExecutionFrame.d.mts +0 -42
  749. package/lib/types/graph/engine/execution/GraphExecutionResult.d.cts +0 -13
  750. package/lib/types/graph/engine/execution/GraphExecutionResult.d.mts +0 -13
  751. package/lib/types/graph/engine/execution/GraphNodeExecutor.d.cts +0 -31
  752. package/lib/types/graph/engine/execution/GraphNodeExecutor.d.mts +0 -31
  753. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.cts +0 -63
  754. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.mts +0 -63
  755. package/lib/types/graph/engine/execution/index.d.cts +0 -12
  756. package/lib/types/graph/engine/execution/index.d.mts +0 -12
  757. package/lib/types/graph/engine/index.d.cts +0 -56
  758. package/lib/types/graph/engine/index.d.mts +0 -56
  759. package/lib/types/graph/engine/loops/ConditionExpressionEvaluator.d.cts +0 -36
  760. package/lib/types/graph/engine/loops/ConditionExpressionEvaluator.d.mts +0 -36
  761. package/lib/types/graph/engine/loops/GraphConditionEvaluator.d.cts +0 -40
  762. package/lib/types/graph/engine/loops/GraphConditionEvaluator.d.mts +0 -40
  763. package/lib/types/graph/engine/loops/GraphLoopExecutionContext.d.cts +0 -15
  764. package/lib/types/graph/engine/loops/GraphLoopExecutionContext.d.mts +0 -15
  765. package/lib/types/graph/engine/loops/index.d.cts +0 -8
  766. package/lib/types/graph/engine/loops/index.d.mts +0 -8
  767. package/lib/types/graph/engine/pinning/GraphPinningDependencyResolver.d.cts +0 -21
  768. package/lib/types/graph/engine/pinning/GraphPinningDependencyResolver.d.mts +0 -21
  769. package/lib/types/graph/engine/pinning/GraphPinningMetadata.d.cts +0 -14
  770. package/lib/types/graph/engine/pinning/GraphPinningMetadata.d.mts +0 -14
  771. package/lib/types/graph/engine/pinning/GraphPinningPolicy.d.cts +0 -20
  772. package/lib/types/graph/engine/pinning/GraphPinningPolicy.d.mts +0 -20
  773. package/lib/types/graph/engine/pinning/GraphPinningService.d.cts +0 -70
  774. package/lib/types/graph/engine/pinning/GraphPinningService.d.mts +0 -70
  775. package/lib/types/graph/engine/pinning/index.d.cts +0 -9
  776. package/lib/types/graph/engine/pinning/index.d.mts +0 -9
  777. package/lib/types/graph/engine/planning/GraphExecutionPlan.d.cts +0 -25
  778. package/lib/types/graph/engine/planning/GraphExecutionPlan.d.mts +0 -25
  779. package/lib/types/graph/engine/planning/GraphExecutionPlanEdge.d.cts +0 -26
  780. package/lib/types/graph/engine/planning/GraphExecutionPlanEdge.d.mts +0 -26
  781. package/lib/types/graph/engine/planning/GraphExecutionPlanLayer.d.cts +0 -13
  782. package/lib/types/graph/engine/planning/GraphExecutionPlanLayer.d.mts +0 -13
  783. package/lib/types/graph/engine/planning/GraphExecutionPlanNode.d.cts +0 -28
  784. package/lib/types/graph/engine/planning/GraphExecutionPlanNode.d.mts +0 -28
  785. package/lib/types/graph/engine/planning/GraphExecutionPlanner.d.cts +0 -48
  786. package/lib/types/graph/engine/planning/GraphExecutionPlanner.d.mts +0 -48
  787. package/lib/types/graph/engine/planning/GraphTopology.d.cts +0 -23
  788. package/lib/types/graph/engine/planning/GraphTopology.d.mts +0 -23
  789. package/lib/types/graph/engine/planning/index.d.cts +0 -11
  790. package/lib/types/graph/engine/planning/index.d.mts +0 -11
  791. package/lib/types/graph/engine/registry/GraphNodeExecutorRegistry.d.cts +0 -39
  792. package/lib/types/graph/engine/registry/GraphNodeExecutorRegistry.d.mts +0 -39
  793. package/lib/types/graph/engine/registry/GraphNodeExecutorResolver.d.cts +0 -21
  794. package/lib/types/graph/engine/registry/GraphNodeExecutorResolver.d.mts +0 -21
  795. package/lib/types/graph/engine/registry/index.d.cts +0 -7
  796. package/lib/types/graph/engine/registry/index.d.mts +0 -7
  797. package/lib/types/graph/engine/runs/GraphRunEventPublisher.d.cts +0 -26
  798. package/lib/types/graph/engine/runs/GraphRunEventPublisher.d.mts +0 -26
  799. package/lib/types/graph/engine/runs/GraphRunExecutor.d.cts +0 -75
  800. package/lib/types/graph/engine/runs/GraphRunExecutor.d.mts +0 -75
  801. package/lib/types/graph/engine/runs/GraphRunFingerprint.d.cts +0 -8
  802. package/lib/types/graph/engine/runs/GraphRunFingerprint.d.mts +0 -8
  803. package/lib/types/graph/engine/runs/GraphRunService.d.cts +0 -93
  804. package/lib/types/graph/engine/runs/GraphRunService.d.mts +0 -93
  805. package/lib/types/graph/engine/runs/InMemoryGraphRunEventStore.d.cts +0 -28
  806. package/lib/types/graph/engine/runs/InMemoryGraphRunEventStore.d.mts +0 -28
  807. package/lib/types/graph/engine/runs/InMemoryGraphRunStore.d.cts +0 -12
  808. package/lib/types/graph/engine/runs/InMemoryGraphRunStore.d.mts +0 -12
  809. package/lib/types/graph/engine/runs/index.d.cts +0 -8
  810. package/lib/types/graph/engine/runs/index.d.mts +0 -8
  811. package/lib/types/graph/engine/runs/ownership.d.cts +0 -25
  812. package/lib/types/graph/engine/runs/ownership.d.mts +0 -25
  813. package/lib/types/graph/engine/runs/types.d.cts +0 -83
  814. package/lib/types/graph/engine/runs/types.d.mts +0 -83
  815. package/lib/types/graph/engine/snapshots/GraphExecutionSnapshotMapper.d.cts +0 -10
  816. package/lib/types/graph/engine/snapshots/GraphExecutionSnapshotMapper.d.mts +0 -10
  817. package/lib/types/graph/engine/snapshots/index.d.cts +0 -6
  818. package/lib/types/graph/engine/snapshots/index.d.mts +0 -6
  819. package/lib/types/graph/engine/store/GraphCachedValue.d.cts +0 -20
  820. package/lib/types/graph/engine/store/GraphCachedValue.d.mts +0 -20
  821. package/lib/types/graph/engine/store/GraphValueKey.d.cts +0 -18
  822. package/lib/types/graph/engine/store/GraphValueKey.d.mts +0 -18
  823. package/lib/types/graph/engine/store/GraphValueStore.d.cts +0 -41
  824. package/lib/types/graph/engine/store/GraphValueStore.d.mts +0 -41
  825. package/lib/types/graph/engine/store/GraphValueStoreAdapter.d.cts +0 -32
  826. package/lib/types/graph/engine/store/GraphValueStoreAdapter.d.mts +0 -32
  827. package/lib/types/graph/engine/store/InMemoryGraphValueStoreAdapter.d.cts +0 -33
  828. package/lib/types/graph/engine/store/InMemoryGraphValueStoreAdapter.d.mts +0 -33
  829. package/lib/types/graph/engine/store/index.d.cts +0 -10
  830. package/lib/types/graph/engine/store/index.d.mts +0 -10
  831. package/lib/types/graph/engine/types.d.cts +0 -208
  832. package/lib/types/graph/engine/types.d.mts +0 -208
  833. package/lib/types/graph/engine/validation/GraphConnectionPolicyValidator.d.cts +0 -32
  834. package/lib/types/graph/engine/validation/GraphConnectionPolicyValidator.d.mts +0 -32
  835. package/lib/types/graph/engine/validation/GraphCredentialReferenceValidator.d.cts +0 -62
  836. package/lib/types/graph/engine/validation/GraphCredentialReferenceValidator.d.mts +0 -62
  837. package/lib/types/graph/engine/validation/GraphDefinitionValidator.d.cts +0 -23
  838. package/lib/types/graph/engine/validation/GraphDefinitionValidator.d.mts +0 -23
  839. package/lib/types/graph/engine/validation/GraphEdgeInstanceValidator.d.cts +0 -32
  840. package/lib/types/graph/engine/validation/GraphEdgeInstanceValidator.d.mts +0 -32
  841. package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.cts +0 -21
  842. package/lib/types/graph/engine/validation/GraphLooseNodeValidation.d.mts +0 -21
  843. package/lib/types/graph/engine/validation/GraphNodeInstanceValidator.d.cts +0 -37
  844. package/lib/types/graph/engine/validation/GraphNodeInstanceValidator.d.mts +0 -37
  845. package/lib/types/graph/engine/validation/GraphParameterValidator.d.cts +0 -116
  846. package/lib/types/graph/engine/validation/GraphParameterValidator.d.mts +0 -116
  847. package/lib/types/graph/engine/validation/GraphPortSchemaResolver.d.cts +0 -39
  848. package/lib/types/graph/engine/validation/GraphPortSchemaResolver.d.mts +0 -39
  849. package/lib/types/graph/engine/validation/GraphResolvedWorkflow.d.cts +0 -66
  850. package/lib/types/graph/engine/validation/GraphResolvedWorkflow.d.mts +0 -66
  851. package/lib/types/graph/engine/validation/GraphValidationErrors.d.cts +0 -34
  852. package/lib/types/graph/engine/validation/GraphValidationErrors.d.mts +0 -34
  853. package/lib/types/graph/engine/validation/GraphValidationIssue.d.cts +0 -39
  854. package/lib/types/graph/engine/validation/GraphValidationIssue.d.mts +0 -39
  855. package/lib/types/graph/engine/validation/GraphValueValidator.d.cts +0 -27
  856. package/lib/types/graph/engine/validation/GraphValueValidator.d.mts +0 -27
  857. package/lib/types/graph/engine/validation/GraphWorkflowDocumentValidator.d.cts +0 -162
  858. package/lib/types/graph/engine/validation/GraphWorkflowDocumentValidator.d.mts +0 -162
  859. package/lib/types/graph/engine/validation/index.d.cts +0 -20
  860. package/lib/types/graph/engine/validation/index.d.mts +0 -20
  861. package/lib/types/graph/index.d.cts +0 -12
  862. package/lib/types/graph/index.d.mts +0 -12
  863. package/lib/types/graph/log/GraphRunLogger.d.cts +0 -76
  864. package/lib/types/graph/log/GraphRunLogger.d.mts +0 -76
  865. package/lib/types/graph/log/LogParameters.d.cts +0 -7
  866. package/lib/types/graph/log/LogParameters.d.mts +0 -7
  867. package/lib/types/graph/nodes/agents/agent.d.cts +0 -31
  868. package/lib/types/graph/nodes/agents/agent.d.mts +0 -31
  869. package/lib/types/graph/nodes/base.d.cts +0 -58
  870. package/lib/types/graph/nodes/base.d.mts +0 -58
  871. package/lib/types/graph/nodes/boundary/input-value.d.cts +0 -6
  872. package/lib/types/graph/nodes/boundary/input-value.d.mts +0 -6
  873. package/lib/types/graph/nodes/flow-control/break.d.cts +0 -8
  874. package/lib/types/graph/nodes/flow-control/break.d.mts +0 -8
  875. package/lib/types/graph/nodes/flow-control/error-boundary.d.cts +0 -8
  876. package/lib/types/graph/nodes/flow-control/error-boundary.d.mts +0 -8
  877. package/lib/types/graph/nodes/flow-control/human-approval.d.cts +0 -8
  878. package/lib/types/graph/nodes/flow-control/human-approval.d.mts +0 -8
  879. package/lib/types/graph/nodes/flow-control/if.d.cts +0 -8
  880. package/lib/types/graph/nodes/flow-control/if.d.mts +0 -8
  881. package/lib/types/graph/nodes/flow-control/parallel.d.cts +0 -7
  882. package/lib/types/graph/nodes/flow-control/parallel.d.mts +0 -7
  883. package/lib/types/graph/nodes/flow-control/switch.d.cts +0 -23
  884. package/lib/types/graph/nodes/flow-control/switch.d.mts +0 -23
  885. package/lib/types/graph/nodes/index.d.cts +0 -93
  886. package/lib/types/graph/nodes/index.d.mts +0 -93
  887. package/lib/types/graph/nodes/loops/foreach.d.cts +0 -11
  888. package/lib/types/graph/nodes/loops/foreach.d.mts +0 -11
  889. package/lib/types/graph/nodes/loops/loop-metadata.d.cts +0 -20
  890. package/lib/types/graph/nodes/loops/loop-metadata.d.mts +0 -20
  891. package/lib/types/graph/nodes/loops/until.d.cts +0 -8
  892. package/lib/types/graph/nodes/loops/until.d.mts +0 -8
  893. package/lib/types/graph/nodes/loops/while.d.cts +0 -8
  894. package/lib/types/graph/nodes/loops/while.d.mts +0 -8
  895. package/lib/types/graph/nodes/manifests.d.cts +0 -62
  896. package/lib/types/graph/nodes/manifests.d.mts +0 -62
  897. package/lib/types/graph/nodes/triggers/chat.d.cts +0 -8
  898. package/lib/types/graph/nodes/triggers/chat.d.mts +0 -8
  899. package/lib/types/graph/nodes/triggers/event.d.cts +0 -6
  900. package/lib/types/graph/nodes/triggers/event.d.mts +0 -6
  901. package/lib/types/graph/nodes/triggers/form.d.cts +0 -6
  902. package/lib/types/graph/nodes/triggers/form.d.mts +0 -6
  903. package/lib/types/graph/nodes/triggers/manual.d.cts +0 -6
  904. package/lib/types/graph/nodes/triggers/manual.d.mts +0 -6
  905. package/lib/types/graph/nodes/triggers/schedule.d.cts +0 -6
  906. package/lib/types/graph/nodes/triggers/schedule.d.mts +0 -6
  907. package/lib/types/graph/nodes/triggers/webhook.d.cts +0 -6
  908. package/lib/types/graph/nodes/triggers/webhook.d.mts +0 -6
  909. package/lib/types/graph/nodes/utility/code.d.cts +0 -36
  910. package/lib/types/graph/nodes/utility/code.d.mts +0 -36
  911. package/lib/types/graph/nodes/utility/delay.d.cts +0 -7
  912. package/lib/types/graph/nodes/utility/delay.d.mts +0 -7
  913. package/lib/types/graph/nodes/utility/log.d.cts +0 -8
  914. package/lib/types/graph/nodes/utility/log.d.mts +0 -8
  915. package/lib/types/graph/nodes/utility/map.d.cts +0 -7
  916. package/lib/types/graph/nodes/utility/map.d.mts +0 -7
  917. package/lib/types/graph/nodes/utility/merge.d.cts +0 -7
  918. package/lib/types/graph/nodes/utility/merge.d.mts +0 -7
  919. package/lib/types/graph/nodes/utility/return.d.cts +0 -7
  920. package/lib/types/graph/nodes/utility/return.d.mts +0 -7
  921. package/lib/types/graph/nodes/utility/utility-log.d.cts +0 -10
  922. package/lib/types/graph/nodes/utility/utility-log.d.mts +0 -10
  923. package/lib/types/nest/graph/GraphExecutionController.d.cts +0 -110
  924. package/lib/types/nest/graph/GraphExecutionController.d.mts +0 -110
  925. package/lib/types/nest/graph/GraphExecutionModule.d.cts +0 -83
  926. package/lib/types/nest/graph/GraphExecutionModule.d.mts +0 -83
  927. package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +0 -24
  928. package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +0 -24
  929. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +0 -68
  930. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +0 -68
  931. package/lib/types/nest/graph/GraphNodeCatalogueController.d.cts +0 -70
  932. package/lib/types/nest/graph/GraphNodeCatalogueController.d.mts +0 -70
  933. package/lib/types/nest/graph/GraphResultService.d.cts +0 -20
  934. package/lib/types/nest/graph/GraphResultService.d.mts +0 -20
  935. package/lib/types/nest/graph/GraphRunController.d.cts +0 -87
  936. package/lib/types/nest/graph/GraphRunController.d.mts +0 -87
  937. package/lib/types/nest/graph/GraphRunModel.d.cts +0 -22
  938. package/lib/types/nest/graph/GraphRunModel.d.mts +0 -22
  939. package/lib/types/nest/graph/GraphRunModelService.d.cts +0 -21
  940. package/lib/types/nest/graph/GraphRunModelService.d.mts +0 -21
  941. package/lib/types/nest/graph/GraphWorkflowBoundaryValidation.d.cts +0 -28
  942. package/lib/types/nest/graph/GraphWorkflowBoundaryValidation.d.mts +0 -28
  943. package/lib/types/nest/graph/GraphWorkflowController.d.cts +0 -62
  944. package/lib/types/nest/graph/GraphWorkflowController.d.mts +0 -62
  945. package/lib/types/nest/graph/GraphWorkflowDocumentLimits.d.cts +0 -33
  946. package/lib/types/nest/graph/GraphWorkflowDocumentLimits.d.mts +0 -33
  947. package/lib/types/nest/graph/GraphWorkflowErrors.d.cts +0 -13
  948. package/lib/types/nest/graph/GraphWorkflowErrors.d.mts +0 -13
  949. package/lib/types/nest/graph/GraphWorkflowModel.d.cts +0 -24
  950. package/lib/types/nest/graph/GraphWorkflowModel.d.mts +0 -24
  951. package/lib/types/nest/graph/GraphWorkflowService.d.cts +0 -54
  952. package/lib/types/nest/graph/GraphWorkflowService.d.mts +0 -54
  953. package/lib/types/nest/graph/index.d.cts +0 -15
  954. package/lib/types/nest/graph/index.d.mts +0 -15
  955. package/lib/types/nest/graph/main.d.cts +0 -1
  956. package/lib/types/nest/graph/main.d.mts +0 -1
  957. /package/lib/cjs/{graph/engine/runs → redis}/types.cjs +0 -0
  958. /package/lib/esm/{graph/engine/runs → redis}/types.js +0 -0
package/README.md CHANGED
@@ -5,13 +5,12 @@
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`
11
8
  - `@decaf-ts/integrations/keycloak`
12
9
  - `@decaf-ts/integrations/kibana`
13
10
  - `@decaf-ts/integrations/nest`
14
11
  - `@decaf-ts/integrations/namespaces`
12
+ - `@decaf-ts/integrations/feature-flags`
13
+ - `@decaf-ts/integrations/redis`
15
14
  - `@decaf-ts/integrations/loader`
16
15
  - `@decaf-ts/integrations/plugins`
17
16
  - `@decaf-ts/integrations/plugins/kibana`
@@ -19,14 +18,87 @@
19
18
 
20
19
  ## Included Modules
21
20
 
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.
23
21
  - Keycloak provisioning helpers for realms, users, roles, identity providers, and client-scoped role wiring.
24
22
  - 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.
25
23
  - 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.
26
24
  - Org-based authorization scaffolds for tenants, org units, principals, roles, permissions, grants, effective permissions, storage bindings, and authorization payload filters.
27
- - Dynamic object-loading helpers for models, adapters, repositories, services, controllers, environment objects, Angular components, and graph nodes.
25
+ - Feature-flag models, readers, services, decorators, and environment helpers, including the engine-capability-derived `EngineCapabilityFeatureFlagService` (see [Feature flags](#feature-flags)).
26
+ - Dynamic object-loading helpers for models, adapters, repositories, services, controllers, environment objects, and Angular components.
27
+ - Redis (and Redis-compatible, e.g. DragonflyDB) persistence adapter: `RedisAdapter`, query statement/paginator, pub/sub event dispatch, and a `RedisContextLock` backing `@transactional()`.
28
28
  - BI dashboard embed plugins (Kibana + Superset) with a shared DOM-free `DashboardEmbedPlugin` contract. The Kibana plugin is generated source + installer; the Superset plugin is a patch-and-build strategy that modifies Superset's internal embedded frontend and SDK source. Both expose the exact same API and are org-agnostic (no space switching).
29
29
 
30
+ ## Redis adapter
31
+
32
+ The `./redis` export adds a Redis (and any Redis-compatible server, such as DragonflyDB) persistence adapter. Each model table is stored as a single Redis hash (`<prefix>:<table>`, default prefix `decaf:redis`) whose fields are record ids and whose values are serialized records. Because Redis hashes are not queryable, queries load the matching table and apply filtering, sorting, aggregation and pagination in JavaScript, mirroring the core RAM adapter.
33
+
34
+ ```ts
35
+ import { RedisAdapter } from "@decaf-ts/integrations/redis";
36
+
37
+ const adapter = new RedisAdapter({ url: "redis://localhost:6379", user: "johndoe" });
38
+ await adapter.initialize();
39
+
40
+ const repo = new (adapter.repository<User>())(User, adapter);
41
+ await repo.create(new User({ name: "John" }));
42
+ ```
43
+
44
+ `RedisConfig` accepts a full `url` connection string (it takes precedence) or the discrete `host`, `port`, `username`, `password`, and `database` fields, plus `prefix` (key namespace, defaults to `decaf:redis`) and `user` (identity stamped on created/updated records).
45
+
46
+ ### Local test setup
47
+
48
+ `npm run prepare-it-tests` boots the DragonflyDB container from `docker/dragonfly-compose.yml` on `localhost:6379` (or run `docker compose -f docker/dragonfly-compose.yml up -d --wait` directly), then run the integration tests with `npm run test:integration`.
49
+
50
+ ### Behaviour and limitations
51
+
52
+ - Queries are evaluated in JavaScript over loaded tables (RAM-adapter semantics); sorting and aggregation are not pushed down to the server.
53
+ - `@transactional()` is backed by `RedisContextLock`, which buffers writes on a dedicated connection and commits them atomically with `WATCH`/`MULTI`/`EXEC` optimistic locking.
54
+ - `createdBy`/`updatedBy` stamps require a user identity: pass `user` in the adapter config (or an explicit `UUID` flag), otherwise user identification throws `UnsupportedError`.
55
+ - Observer events are broadcast on the `decaf:redis:events` pub/sub channel so every process sharing the database refreshes its observers.
56
+
57
+ ## Feature flags
58
+
59
+ The `./feature-flags` export (also re-exported from the package root) provides feature-flag models, readers, a repository/environment-backed `FeatureFlagService`, access-control decorators, and the capability-derived `EngineCapabilityFeatureFlagService`.
60
+
61
+ `EngineCapabilityFeatureFlagService` is a `FeatureFlagService` subclass whose flag values are derived exclusively from a served graph-engine capability manifest — the same shape the as-graph server serves at `GET /graph/engines` (per engine: `engineId` plus `capabilities: [{ feature, verdict }]`, and `defaultEngineId`). Flags are never read from the environment and never from the persistence repository: `syncFromEnvironment()` fails closed with an `InternalError` instead of reading the environment.
62
+
63
+ Resolution is fail-closed:
64
+
65
+ - An engine key (`engine<Pascal(engineId)>`) is enabled when the engine appears in the manifest.
66
+ - A feature key (`engine<Pascal(engineId)><Pascal(feature)>`) is enabled **only** when the manifest declares that feature `SUPPORTED`. `NOT_SUPPORTED` and `EXTENSION_POINT` verdicts, and features absent from the manifest, resolve to disabled.
67
+ - Build keys with the `engineCapabilityFlagKey(engineId, feature?)` helper rather than assembling them by hand, or derive a whole registry from a manifest with `engineCapabilityFlagRegistry(manifest)`.
68
+
69
+ ```ts
70
+ import { EngineCapabilityFeatureFlagService } from "@decaf-ts/integrations/feature-flags";
71
+
72
+ const flags = new EngineCapabilityFeatureFlagService();
73
+ await flags.initialize({
74
+ manifest: {
75
+ engines: [
76
+ {
77
+ engineId: "local",
78
+ capabilities: [
79
+ { feature: "codeMode", verdict: "SUPPORTED" },
80
+ { feature: "workflowList", verdict: "SUPPORTED" },
81
+ { feature: "workflowLookup", verdict: "SUPPORTED" },
82
+ ],
83
+ },
84
+ {
85
+ engineId: "dagster",
86
+ capabilities: [{ feature: "suspendResume", verdict: "NOT_SUPPORTED" }],
87
+ },
88
+ ],
89
+ defaultEngineId: "local",
90
+ },
91
+ });
92
+
93
+ flags.isEngineEnabled("local"); // true
94
+ flags.isEngineFeatureEnabled("local", "codeMode"); // true
95
+ flags.isEngineFeatureEnabled("dagster", "suspendResume"); // false (fail closed)
96
+ flags.isEngineFeatureEnabled("mastra", "pinning"); // false (undeclared engine)
97
+ flags.isEnabled("engineLocalWorkflowList"); // true
98
+ ```
99
+
100
+ The manifest input is a structural subset of the as-graph manifest, so no import of the as-graph package is required and the dependency direction is preserved. All read paths (`isEnabled`, `resolveFeatureFlags`, `isEnabledForSubject`, `resolveFeatureFlagsForSubject`) resolve against the derived registry only, and `listEnabled()` returns the enabled flags as `FeatureFlag` models without touching a repository.
101
+
30
102
  ## Notes
31
103
 
32
104
  - Each subpath can be imported independently.
@@ -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="9f5df0a",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.10.7-9f5df0a",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.10.7",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},F={update:i.Cascade.NONE,delete:i.Cascade.NONE,nullable:!0},P={update:i.Cascade.CASCADE,delete:i.Cascade.CASCADE,nullable:!1},T={update:i.Cascade.CASCADE,delete:i.Cascade.NONE,nullable:!1};function R(e){return{tenantId:e.tenantId,principalId:e.principalId,permissionKey:e.permissionKey,allowedOrgUnitIds:[...e.allowedOrgUnitIds],allowedResourceIds:[...e.allowedResourceIds]}}function U(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 x(e)===t}function k(e,t){return!!t&&x(e)===t}function B(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"item"}function E(e,t,r){const a=e??new Date;return!(t&&t>a||r&&a>r)}function C(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 M 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 x(e){return"string"==typeof e?e:e.id}class q extends n.Model{constructor(e){super(e)}}e.TenantMembership=class extends q{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,P,!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,P,!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 q{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 q{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,P,!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,P,!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 q{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,P,!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,P,!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,P,!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 q{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 q{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,P,!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,P,!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 q{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,F,!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 q{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,P,!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,P,!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 q{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,P,!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,P,!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,P,!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 q{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 q{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,F,!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 q{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,P,!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,P,!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,F,!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 q{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 q{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,P,!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 q{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 q{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,P,!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 q{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,P,!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 q{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,P,!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,P,!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,P,!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 q{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,F,!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 q{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,P,!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,P,!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 M{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 M{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 M{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=>x(e.descendant))]),n=new Set([t,...a.map(e=>x(e.ancestor))]),o=(await this.listAll(...r)).filter(t=>K(t.tenant,e)&&(i.has(x(t.descendant))||n.has(x(t.ancestor))));for(const e of o)await this.deleteById(e.id,...r)}}class N extends M{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 M{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 M{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=>x(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=>x(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,x(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 M{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 M{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 M{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 M{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 M{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=x(e.tenant),i=x(e.group);return(await r.getGroupPrincipal(a,i,...t)).id}))}}class J extends M{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 M{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 M{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 M{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 M{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(x(e.tenant),x(e.group),...a);return i.listPrincipalAssignments(t,r.id,...a)}))).flat()];for(const i of y){const s=await n.listRolePermissions(x(i.role),...a),d=await Promise.all(s.map(async e=>o.findOneBy("id",x(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:x(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 M{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 M{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 Fe=r.LoggedEnvironment.accumulate({[se]:{}});async function Pe(e=Fe){return me(e.featureFlag)}async function Te(e,t=Fe){return(await Pe(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 Re{async readOne(e,t){return(await this.read(t))[_e(e)]}}class Ue extends Re{async read(e={}){return Pe(e.source??{[se]:{}})}}var Ie;function je(e){const t=_e(e);return t?t.charAt(0).toUpperCase()+t.slice(1):t}function Ke(e,t){const r=je(e);return void 0===t?"engine"+r:`engine${r}${je(t)}`}function ke(e){const t={};for(const r of e.engines??[]){t[Ke(r.engineId)]=!0;for(const e of r.capabilities??[])t[Ke(r.engineId,e.feature)]="SUPPORTED"===e.verdict}return t}e.FeatureFlagService=class extends i.ModelService{constructor(){super(e.FeatureFlag),this.reader=new Ue,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 Ue;const r={...t.readerConfig??{},source:t.readerConfig?.source??Fe};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??Fe});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??Fe}),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??Fe},...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);class Be extends Re{constructor(e){super(),this.registry=e}async read(e){return{...this.registry}}}function Ee(e,t){return void 0===t?e:s.Metadata.key(e,t.toString())}function Ce(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=Ee(e,r);return i?s.methodMetadata(n,a)(t,r,i):s.propMetadata(n,a)(t,r)}}function Me(e,t,r){return Oe(e,Ee(t,r))}e.EngineCapabilityFeatureFlagService=Ie=class extends e.FeatureFlagService{constructor(){const e=super();if(!(this instanceof Ie))return Object.assign(Object.create(Ie.prototype),e,{capabilityRegistry:{}});this.capabilityRegistry={}}async initialize(...e){const t=e[0]??{};t.repository&&(this._repository=t.repository),this.capabilityRegistry=ke(t.manifest??{engines:[]});const r=new Be(this.capabilityRegistry);return{config:{...t,reader:r,readerConfig:{...t.readerConfig??{},source:{}}},client:r}}isEngineEnabled(e){return fe(this.capabilityRegistry,Ke(e))}isEngineFeatureEnabled(e,t){return fe(this.capabilityRegistry,Ke(e,t))}isEnabled(e){return fe(this.capabilityRegistry,e)}async resolveFeatureFlags(){return{...this.capabilityRegistry}}async resolveFeatureFlagsForSubject(e,...t){return{...this.capabilityRegistry}}async isEnabledForSubject(e,t,...r){return fe(this.capabilityRegistry,e)}async listEnabled(...t){return Object.entries(this.capabilityRegistry).filter(([,e])=>he(e)).map(([t])=>new e.FeatureFlag({key:t,enabled:!0,config:{enabled:!0}}))}async syncFromEnvironment(...e){throw new a.InternalError("Engine capability feature flags are derived from the served engine manifest and are never synced from the environment")}},e.EngineCapabilityFeatureFlagService=Ie=o.__decorate([i.service(),o.__metadata("design:paramtypes",[])],e.EngineCapabilityFeatureFlagService),Object.defineProperty(e,"AuthorizationError",{enumerable:!0,get:()=>i.AuthorizationError}),Object.defineProperty(e,"transactional",{enumerable:!0,get:()=>i.transactional}),e.AuthorizationModel=q,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&&E(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&&E(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&&E(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&&E(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 C({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 R({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 U({tenantId:e,principalId:t,allowedOrgUnitIds:i.allowedOrgUnitIdsByPermission[r]??[],allowedResourceIds:i.resourceGrants.filter(e=>e.permissionKey===r).map(e=>e.resourceId)})}},e.BaseModelService=M,e.BootstrapService=ne,e.COMMIT="6c774f8",e.EffectivePermissionService=re,e.EnvironmeFlagReader=Ue,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.10.8-6c774f8",e.FeatureFlagEnvironment=Fe,e.FeatureFlagReader=Re,e.GroupMembershipService=Z,e.GroupService=class extends M{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=P,e.REL_CASCADE_INSERT_UPDATE=T,e.REL_NULLIFY=F,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:x(r.tenant),orgUnitId:x(r.orgUnit),visibility:r.visibility,ownerPrincipalId:r.owner?x(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 M{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=>x(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.10.8",e.asArray=j,e.blockFeatureOperations=(...e)=>Ce(pe,e),e.buildAccessContext=C,e.buildArangoContext=R,e.buildQdrantFilter=U,e.engineCapabilityFlagKey=Ke,e.engineCapabilityFlagRegistry=ke,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)=>Ce(ce,e),e.featureFlags=(...e)=>Ce(de,e),e.getFeatureGateMetadata=Me,e.hasFeatureFlagInEnvironment=async(e,t=Fe)=>!!await Te(e,t),e.hideOnFeature=(...e)=>Ce(ue,e),e.id=()=>crypto.randomUUID(),e.isFeatureFlagEnabled=he,e.isFeatureFlagEnabledByName=fe,e.isFeatureRuleBlocked=Se,e.isFeatureRuleSatisfied=be,e.isTimeValid=E,e.loadFeatureFlagsFromEnvironment=Pe,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=x,e.relationMatch=k,e.renderIfFeature=(...e)=>Ce(le,e),e.resolveFeatureFlagFromEnvironment=Te,e.sameTenant=K,e.shouldExposeForFeatures=(e,t,r,a)=>be(Me(e,r,a),t),e.shouldHideForFeatures=(e,t,r,a)=>Se(Me(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