@decaf-ts/integrations 0.3.10 → 0.3.12

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 (937) hide show
  1. package/dist/integrations.cjs +1649 -2
  2. package/dist/integrations.js +1885 -2
  3. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  4. package/lib/cjs/blob/azure/index.cjs +2 -2
  5. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  6. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  11. package/lib/cjs/blob/core/index.cjs +2 -2
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  13. package/lib/cjs/blob/gcp/index.cjs +2 -2
  14. package/lib/cjs/blob/index.cjs +2 -2
  15. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  17. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  18. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  19. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  20. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  21. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  22. package/lib/cjs/blob/local/index.cjs +2 -2
  23. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/memory/index.cjs +2 -2
  25. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  26. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  28. package/lib/cjs/blob/s3/index.cjs +2 -2
  29. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  30. package/lib/cjs/docker/index.cjs +2 -2
  31. package/lib/cjs/graph/engine/constants.cjs +2 -2
  32. package/lib/cjs/graph/engine/decorators.cjs +2 -2
  33. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
  34. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
  35. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
  36. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
  37. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
  38. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
  39. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
  40. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
  41. package/lib/cjs/graph/engine/errors/index.cjs +2 -2
  42. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
  43. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
  44. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
  45. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
  46. package/lib/cjs/graph/engine/events/index.cjs +2 -2
  47. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +99 -0
  48. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
  49. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
  50. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +22 -3
  51. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
  52. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
  53. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
  54. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +481 -0
  55. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +19 -0
  56. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +23 -6
  57. package/lib/cjs/graph/engine/execution/index.cjs +5 -2
  58. package/lib/cjs/graph/engine/index.cjs +5 -2
  59. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
  60. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -2
  61. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
  62. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
  63. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
  64. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
  65. package/lib/cjs/graph/engine/loops/index.cjs +2 -2
  66. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
  67. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
  68. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
  69. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
  70. package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
  71. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
  72. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
  73. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
  74. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
  75. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
  76. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
  77. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
  78. package/lib/cjs/graph/engine/planning/index.cjs +2 -2
  79. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
  80. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
  81. package/lib/cjs/graph/engine/registry/index.cjs +2 -2
  82. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  83. package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
  84. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
  85. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
  86. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
  87. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
  88. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  89. package/lib/cjs/graph/engine/store/index.cjs +2 -2
  90. package/lib/cjs/graph/engine/types.cjs +2 -2
  91. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
  92. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
  93. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
  94. package/lib/cjs/graph/engine/validation/index.cjs +2 -2
  95. package/lib/cjs/graph/index.cjs +2 -2
  96. package/lib/cjs/graph/shared/constants.cjs +2 -2
  97. package/lib/cjs/graph/shared/index.cjs +2 -2
  98. package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
  99. package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
  100. package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
  101. package/lib/cjs/graph/shared/nodes/flow-control.cjs +100 -17
  102. package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
  103. package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
  104. package/lib/cjs/graph/shared/types.cjs +2 -2
  105. package/lib/cjs/index.cjs +5 -5
  106. package/lib/cjs/keycloak/index.cjs +2 -2
  107. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  108. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  109. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  110. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  111. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  112. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  113. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  114. package/lib/cjs/keycloak/services/index.cjs +2 -2
  115. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  116. package/lib/cjs/keycloak/types.cjs +2 -2
  117. package/lib/cjs/kibana/helpers.cjs +2 -2
  118. package/lib/cjs/kibana/index.cjs +2 -2
  119. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  120. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  121. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  122. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  123. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  124. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  125. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  126. package/lib/cjs/kibana/services/index.cjs +2 -2
  127. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  128. package/lib/cjs/kibana/types.cjs +2 -2
  129. package/lib/cjs/namespaces/index.cjs +2 -2
  130. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  131. package/lib/cjs/namespaces/models/effective-permission.model.cjs +6 -6
  132. package/lib/cjs/namespaces/models/group-membership.model.cjs +8 -8
  133. package/lib/cjs/namespaces/models/group.model.cjs +8 -8
  134. package/lib/cjs/namespaces/models/index.cjs +22 -22
  135. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +7 -7
  136. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +7 -7
  137. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +8 -8
  138. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +4 -4
  139. package/lib/cjs/namespaces/models/org-unit.model.cjs +13 -13
  140. package/lib/cjs/namespaces/models/permission.model.cjs +4 -4
  141. package/lib/cjs/namespaces/models/principal.model.cjs +8 -8
  142. package/lib/cjs/namespaces/models/protected-resource.model.cjs +10 -10
  143. package/lib/cjs/namespaces/models/resource-grant.model.cjs +9 -9
  144. package/lib/cjs/namespaces/models/role-assignment.model.cjs +8 -8
  145. package/lib/cjs/namespaces/models/role-permission.model.cjs +6 -6
  146. package/lib/cjs/namespaces/models/role.model.cjs +8 -8
  147. package/lib/cjs/namespaces/models/storage-binding.model.cjs +4 -4
  148. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +6 -6
  149. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +4 -4
  150. package/lib/cjs/namespaces/models/tenant.model.cjs +10 -10
  151. package/lib/cjs/namespaces/models/user.model.cjs +6 -6
  152. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  153. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  154. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +23 -23
  155. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  156. package/lib/cjs/namespaces/services/bootstrap.service.cjs +26 -26
  157. package/lib/cjs/namespaces/services/effective-permission.service.cjs +19 -19
  158. package/lib/cjs/namespaces/services/group-membership.service.cjs +6 -6
  159. package/lib/cjs/namespaces/services/group.service.cjs +4 -4
  160. package/lib/cjs/namespaces/services/index.cjs +26 -26
  161. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +4 -4
  162. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +4 -4
  163. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +4 -4
  164. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +4 -4
  165. package/lib/cjs/namespaces/services/org-unit.service.cjs +13 -13
  166. package/lib/cjs/namespaces/services/permission.service.cjs +4 -4
  167. package/lib/cjs/namespaces/services/principal.service.cjs +4 -4
  168. package/lib/cjs/namespaces/services/protected-resource.service.cjs +4 -4
  169. package/lib/cjs/namespaces/services/resource-grant.service.cjs +4 -4
  170. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +7 -7
  171. package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -4
  172. package/lib/cjs/namespaces/services/role-permission.service.cjs +8 -8
  173. package/lib/cjs/namespaces/services/role.service.cjs +4 -4
  174. package/lib/cjs/namespaces/services/storage-binding.service.cjs +4 -4
  175. package/lib/cjs/namespaces/services/system-management.service.cjs +14 -14
  176. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +4 -4
  177. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +4 -4
  178. package/lib/cjs/namespaces/services/tenant.service.cjs +4 -4
  179. package/lib/cjs/namespaces/services/user.service.cjs +4 -4
  180. package/lib/cjs/namespaces/types.cjs +2 -2
  181. package/lib/cjs/namespaces/utils.cjs +2 -2
  182. package/lib/cjs/nest/authService.cjs +2 -2
  183. package/lib/cjs/nest/graph/GraphExecutionController.cjs +41 -52
  184. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +47 -42
  185. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -20
  186. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +21 -48
  187. package/lib/cjs/nest/graph/GraphResultService.cjs +54 -0
  188. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +44 -0
  189. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +62 -0
  190. package/lib/cjs/nest/graph/index.cjs +5 -8
  191. package/lib/cjs/nest/graph/main.cjs +3 -3
  192. package/lib/cjs/nest/index.cjs +2 -2
  193. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  194. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  195. package/lib/cjs/nest/logging.cjs +2 -2
  196. package/lib/cjs/nest/types.cjs +2 -2
  197. package/lib/cjs/nest/utils.cjs +2 -2
  198. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  199. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  200. package/lib/cjs/secrets/aws/index.cjs +2 -2
  201. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  202. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  203. package/lib/cjs/secrets/azure/index.cjs +2 -2
  204. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  205. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  206. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  207. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  208. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  209. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  210. package/lib/cjs/secrets/core/index.cjs +2 -2
  211. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  212. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  213. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  214. package/lib/cjs/secrets/index.cjs +2 -2
  215. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  216. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  217. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  218. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  219. package/lib/cjs/secrets/model/index.cjs +2 -2
  220. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  221. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  222. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  223. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  224. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  225. package/lib/cjs/secrets/vault/index.cjs +2 -2
  226. package/lib/cjs/shared/runtime.cjs +2 -2
  227. package/lib/cjs/utils.cjs +2 -2
  228. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  229. package/lib/esm/blob/azure/index.js +1 -1
  230. package/lib/esm/blob/core/BlobErrors.js +1 -1
  231. package/lib/esm/blob/core/BlobKey.js +1 -1
  232. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  233. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  234. package/lib/esm/blob/core/BlobTypes.js +1 -1
  235. package/lib/esm/blob/core/BlobValue.js +1 -1
  236. package/lib/esm/blob/core/index.js +1 -1
  237. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  238. package/lib/esm/blob/gcp/index.js +1 -1
  239. package/lib/esm/blob/index.js +1 -1
  240. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  241. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  242. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  243. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  244. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  245. package/lib/esm/blob/ipfs/index.js +1 -1
  246. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  247. package/lib/esm/blob/local/index.js +1 -1
  248. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  249. package/lib/esm/blob/memory/index.js +1 -1
  250. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  251. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  252. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  253. package/lib/esm/blob/s3/index.js +1 -1
  254. package/lib/esm/docker/DockerComposeService.js +1 -1
  255. package/lib/esm/docker/index.js +1 -1
  256. package/lib/esm/graph/engine/constants.js +1 -1
  257. package/lib/esm/graph/engine/decorators.js +1 -1
  258. package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
  259. package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
  260. package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
  261. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
  262. package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
  263. package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
  264. package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
  265. package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
  266. package/lib/esm/graph/engine/errors/index.js +1 -1
  267. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
  268. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
  269. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
  270. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
  271. package/lib/esm/graph/engine/events/index.js +1 -1
  272. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +94 -0
  273. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
  274. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
  275. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +21 -2
  276. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
  277. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
  278. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
  279. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +440 -0
  280. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +14 -0
  281. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +22 -5
  282. package/lib/esm/graph/engine/execution/index.js +4 -1
  283. package/lib/esm/graph/engine/index.js +4 -1
  284. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
  285. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -1
  286. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
  287. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
  288. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
  289. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
  290. package/lib/esm/graph/engine/loops/index.js +1 -1
  291. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
  292. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
  293. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
  294. package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
  295. package/lib/esm/graph/engine/pinning/index.js +1 -1
  296. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
  297. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
  298. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
  299. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
  300. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
  301. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
  302. package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
  303. package/lib/esm/graph/engine/planning/index.js +1 -1
  304. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
  305. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
  306. package/lib/esm/graph/engine/registry/index.js +1 -1
  307. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  308. package/lib/esm/graph/engine/snapshots/index.js +1 -1
  309. package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
  310. package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
  311. package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
  312. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
  313. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
  314. package/lib/esm/graph/engine/store/index.js +1 -1
  315. package/lib/esm/graph/engine/types.js +1 -1
  316. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
  317. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
  318. package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
  319. package/lib/esm/graph/engine/validation/index.js +1 -1
  320. package/lib/esm/graph/index.js +1 -1
  321. package/lib/esm/graph/shared/constants.js +1 -1
  322. package/lib/esm/graph/shared/index.js +1 -1
  323. package/lib/esm/graph/shared/nodes/agent.js +1 -1
  324. package/lib/esm/graph/shared/nodes/base.js +1 -1
  325. package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
  326. package/lib/esm/graph/shared/nodes/flow-control.js +99 -16
  327. package/lib/esm/graph/shared/nodes/index.js +1 -1
  328. package/lib/esm/graph/shared/nodes/triggers.js +1 -1
  329. package/lib/esm/graph/shared/types.js +1 -1
  330. package/lib/esm/index.js +4 -4
  331. package/lib/esm/keycloak/index.js +1 -1
  332. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  333. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  334. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  335. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  336. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  337. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  338. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  339. package/lib/esm/keycloak/services/index.js +1 -1
  340. package/lib/esm/keycloak/services/runtime.js +1 -1
  341. package/lib/esm/keycloak/types.js +1 -1
  342. package/lib/esm/kibana/helpers.js +1 -1
  343. package/lib/esm/kibana/index.js +1 -1
  344. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  345. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  346. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  347. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  348. package/lib/esm/kibana/services/KibanaService.js +1 -1
  349. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  350. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  351. package/lib/esm/kibana/services/index.js +1 -1
  352. package/lib/esm/kibana/services/runtime.js +1 -1
  353. package/lib/esm/kibana/types.js +1 -1
  354. package/lib/esm/namespaces/index.js +1 -1
  355. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  356. package/lib/esm/namespaces/models/effective-permission.model.js +3 -3
  357. package/lib/esm/namespaces/models/group-membership.model.js +4 -4
  358. package/lib/esm/namespaces/models/group.model.js +4 -4
  359. package/lib/esm/namespaces/models/index.js +21 -21
  360. package/lib/esm/namespaces/models/inheritance-block.model.js +3 -3
  361. package/lib/esm/namespaces/models/org-unit-closure.model.js +3 -3
  362. package/lib/esm/namespaces/models/org-unit-membership.model.js +4 -4
  363. package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -2
  364. package/lib/esm/namespaces/models/org-unit.model.js +6 -6
  365. package/lib/esm/namespaces/models/permission.model.js +2 -2
  366. package/lib/esm/namespaces/models/principal.model.js +4 -4
  367. package/lib/esm/namespaces/models/protected-resource.model.js +5 -5
  368. package/lib/esm/namespaces/models/resource-grant.model.js +4 -4
  369. package/lib/esm/namespaces/models/role-assignment.model.js +4 -4
  370. package/lib/esm/namespaces/models/role-permission.model.js +3 -3
  371. package/lib/esm/namespaces/models/role.model.js +4 -4
  372. package/lib/esm/namespaces/models/storage-binding.model.js +2 -2
  373. package/lib/esm/namespaces/models/tenant-membership.model.js +3 -3
  374. package/lib/esm/namespaces/models/tenant-profile.model.js +2 -2
  375. package/lib/esm/namespaces/models/tenant.model.js +5 -5
  376. package/lib/esm/namespaces/models/user.model.js +3 -3
  377. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  378. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  379. package/lib/esm/namespaces/org-based-authorization-system.services.js +2 -2
  380. package/lib/esm/namespaces/services/authz.service.js +1 -1
  381. package/lib/esm/namespaces/services/bootstrap.service.js +13 -13
  382. package/lib/esm/namespaces/services/effective-permission.service.js +9 -9
  383. package/lib/esm/namespaces/services/group-membership.service.js +3 -3
  384. package/lib/esm/namespaces/services/group.service.js +2 -2
  385. package/lib/esm/namespaces/services/index.js +25 -25
  386. package/lib/esm/namespaces/services/inheritance-block.service.js +2 -2
  387. package/lib/esm/namespaces/services/org-unit-closure.service.js +2 -2
  388. package/lib/esm/namespaces/services/org-unit-membership.service.js +2 -2
  389. package/lib/esm/namespaces/services/org-unit-profile.service.js +2 -2
  390. package/lib/esm/namespaces/services/org-unit.service.js +4 -4
  391. package/lib/esm/namespaces/services/permission.service.js +2 -2
  392. package/lib/esm/namespaces/services/principal.service.js +2 -2
  393. package/lib/esm/namespaces/services/protected-resource.service.js +2 -2
  394. package/lib/esm/namespaces/services/resource-grant.service.js +2 -2
  395. package/lib/esm/namespaces/services/resource-lifecycle.service.js +3 -3
  396. package/lib/esm/namespaces/services/role-assignment.service.js +2 -2
  397. package/lib/esm/namespaces/services/role-permission.service.js +4 -4
  398. package/lib/esm/namespaces/services/role.service.js +2 -2
  399. package/lib/esm/namespaces/services/storage-binding.service.js +2 -2
  400. package/lib/esm/namespaces/services/system-management.service.js +7 -7
  401. package/lib/esm/namespaces/services/tenant-membership.service.js +2 -2
  402. package/lib/esm/namespaces/services/tenant-profile.service.js +2 -2
  403. package/lib/esm/namespaces/services/tenant.service.js +2 -2
  404. package/lib/esm/namespaces/services/user.service.js +2 -2
  405. package/lib/esm/namespaces/types.js +1 -1
  406. package/lib/esm/namespaces/utils.js +1 -1
  407. package/lib/esm/nest/authService.js +1 -1
  408. package/lib/esm/nest/graph/GraphExecutionController.js +40 -51
  409. package/lib/esm/nest/graph/GraphExecutionModule.js +12 -40
  410. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -19
  411. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +21 -48
  412. package/lib/esm/nest/graph/GraphResultService.js +45 -0
  413. package/lib/esm/nest/graph/GraphWorkflowModel.js +35 -0
  414. package/lib/esm/nest/graph/GraphWorkflowService.js +53 -0
  415. package/lib/esm/nest/graph/index.js +4 -7
  416. package/lib/esm/nest/graph/main.js +2 -2
  417. package/lib/esm/nest/index.js +1 -1
  418. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  419. package/lib/esm/nest/keycloakModule.js +1 -1
  420. package/lib/esm/nest/logging.js +1 -1
  421. package/lib/esm/nest/types.js +1 -1
  422. package/lib/esm/nest/utils.js +1 -1
  423. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  424. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  425. package/lib/esm/secrets/aws/index.js +1 -1
  426. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  427. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  428. package/lib/esm/secrets/azure/index.js +1 -1
  429. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  430. package/lib/esm/secrets/core/SecretName.js +1 -1
  431. package/lib/esm/secrets/core/SecretReference.js +1 -1
  432. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  433. package/lib/esm/secrets/core/SecretService.js +1 -1
  434. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  435. package/lib/esm/secrets/core/index.js +1 -1
  436. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  437. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  438. package/lib/esm/secrets/gcp/index.js +1 -1
  439. package/lib/esm/secrets/index.js +1 -1
  440. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  441. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  442. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  443. package/lib/esm/secrets/model/Secret.js +1 -1
  444. package/lib/esm/secrets/model/index.js +1 -1
  445. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  446. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  447. package/lib/esm/secrets/onepassword/index.js +1 -1
  448. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  449. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  450. package/lib/esm/secrets/vault/index.js +1 -1
  451. package/lib/esm/shared/runtime.js +1 -1
  452. package/lib/esm/utils.js +1 -1
  453. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +65 -0
  454. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +65 -0
  455. package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.cts +23 -0
  456. package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.mts +23 -0
  457. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +6 -0
  458. package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +6 -0
  459. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.cts +63 -0
  460. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.mts +63 -0
  461. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +19 -0
  462. package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +19 -0
  463. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +3 -2
  464. package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +3 -2
  465. package/lib/types/graph/engine/execution/index.d.cts +3 -0
  466. package/lib/types/graph/engine/execution/index.d.mts +3 -0
  467. package/lib/types/graph/engine/index.d.cts +3 -0
  468. package/lib/types/graph/engine/index.d.mts +3 -0
  469. package/lib/types/graph/shared/nodes/flow-control.d.cts +36 -9
  470. package/lib/types/graph/shared/nodes/flow-control.d.mts +36 -9
  471. package/lib/types/graph/shared/types.d.cts +6 -0
  472. package/lib/types/graph/shared/types.d.mts +6 -0
  473. package/lib/types/index.d.cts +2 -2
  474. package/lib/types/index.d.mts +2 -2
  475. package/lib/types/nest/graph/GraphExecutionController.d.cts +11 -42
  476. package/lib/types/nest/graph/GraphExecutionController.d.mts +11 -42
  477. package/lib/types/nest/graph/GraphExecutionModule.d.cts +9 -29
  478. package/lib/types/nest/graph/GraphExecutionModule.d.mts +9 -29
  479. package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +0 -34
  480. package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +0 -34
  481. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +16 -9
  482. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +16 -9
  483. package/lib/types/nest/graph/GraphResultService.d.cts +8 -0
  484. package/lib/types/nest/graph/GraphResultService.d.mts +8 -0
  485. package/lib/types/nest/graph/GraphWorkflowModel.d.cts +7 -0
  486. package/lib/types/nest/graph/GraphWorkflowModel.d.mts +7 -0
  487. package/lib/types/nest/graph/GraphWorkflowService.d.cts +7 -0
  488. package/lib/types/nest/graph/GraphWorkflowService.d.mts +7 -0
  489. package/lib/types/nest/graph/index.d.cts +3 -6
  490. package/lib/types/nest/graph/index.d.mts +3 -6
  491. package/package.json +5 -1
  492. package/dist/integrations.cjs.map +0 -1
  493. package/dist/integrations.js.map +0 -1
  494. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  495. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  496. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  497. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  498. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  499. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  500. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  501. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  502. package/lib/cjs/blob/core/index.cjs.map +0 -1
  503. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  504. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  505. package/lib/cjs/blob/index.cjs.map +0 -1
  506. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
  507. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
  508. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
  509. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
  510. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
  511. package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
  512. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  513. package/lib/cjs/blob/local/index.cjs.map +0 -1
  514. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  515. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  516. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  517. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  518. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  519. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  520. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  521. package/lib/cjs/docker/index.cjs.map +0 -1
  522. package/lib/cjs/graph/engine/constants.cjs.map +0 -1
  523. package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
  524. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
  525. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
  526. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
  527. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
  528. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
  529. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
  530. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
  531. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
  532. package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
  533. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
  534. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
  535. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
  536. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
  537. package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
  538. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
  539. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
  540. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
  541. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
  542. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
  543. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
  544. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
  545. package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
  546. package/lib/cjs/graph/engine/index.cjs.map +0 -1
  547. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
  548. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
  549. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
  550. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
  551. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
  552. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
  553. package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
  554. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
  555. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
  556. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
  557. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
  558. package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
  559. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
  560. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
  561. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
  562. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
  563. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
  564. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
  565. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
  566. package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
  567. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
  568. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
  569. package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
  570. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
  571. package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
  572. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
  573. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
  574. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
  575. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
  576. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
  577. package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
  578. package/lib/cjs/graph/engine/types.cjs.map +0 -1
  579. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
  580. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
  581. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
  582. package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
  583. package/lib/cjs/graph/index.cjs.map +0 -1
  584. package/lib/cjs/graph/shared/constants.cjs.map +0 -1
  585. package/lib/cjs/graph/shared/index.cjs.map +0 -1
  586. package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
  587. package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
  588. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
  589. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
  590. package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
  591. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
  592. package/lib/cjs/graph/shared/types.cjs.map +0 -1
  593. package/lib/cjs/index.cjs.map +0 -1
  594. package/lib/cjs/keycloak/index.cjs.map +0 -1
  595. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  596. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  597. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  598. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  599. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  600. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  601. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  602. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  603. package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
  604. package/lib/cjs/keycloak/types.cjs.map +0 -1
  605. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  606. package/lib/cjs/kibana/index.cjs.map +0 -1
  607. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  608. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  609. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  610. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  611. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  612. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  613. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  614. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  615. package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
  616. package/lib/cjs/kibana/types.cjs.map +0 -1
  617. package/lib/cjs/namespaces/index.cjs.map +0 -1
  618. package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
  619. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
  620. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
  621. package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
  622. package/lib/cjs/namespaces/models/index.cjs.map +0 -1
  623. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
  624. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
  625. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
  626. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
  627. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
  628. package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
  629. package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
  630. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
  631. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
  632. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
  633. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
  634. package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
  635. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
  636. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
  637. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
  638. package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
  639. package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
  640. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
  641. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
  642. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
  643. package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
  644. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
  645. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
  646. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
  647. package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
  648. package/lib/cjs/namespaces/services/index.cjs.map +0 -1
  649. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
  650. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
  651. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
  652. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
  653. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
  654. package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
  655. package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
  656. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
  657. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
  658. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
  659. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
  660. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
  661. package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
  662. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
  663. package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
  664. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
  665. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
  666. package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
  667. package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
  668. package/lib/cjs/namespaces/types.cjs.map +0 -1
  669. package/lib/cjs/namespaces/utils.cjs.map +0 -1
  670. package/lib/cjs/nest/authService.cjs.map +0 -1
  671. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
  672. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
  673. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
  674. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +0 -66
  675. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +0 -1
  676. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
  677. package/lib/cjs/nest/graph/index.cjs.map +0 -1
  678. package/lib/cjs/nest/graph/main.cjs.map +0 -1
  679. package/lib/cjs/nest/index.cjs.map +0 -1
  680. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  681. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  682. package/lib/cjs/nest/logging.cjs.map +0 -1
  683. package/lib/cjs/nest/types.cjs.map +0 -1
  684. package/lib/cjs/nest/utils.cjs.map +0 -1
  685. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  686. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  687. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  688. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  689. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  690. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  691. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  692. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  693. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  694. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  695. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  696. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  697. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  698. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  699. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  700. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  701. package/lib/cjs/secrets/index.cjs.map +0 -1
  702. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  703. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  704. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  705. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  706. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  707. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  708. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  709. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  710. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  711. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  712. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  713. package/lib/cjs/shared/runtime.cjs.map +0 -1
  714. package/lib/cjs/utils.cjs.map +0 -1
  715. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  716. package/lib/esm/blob/azure/index.js.map +0 -1
  717. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  718. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  719. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  720. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  721. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  722. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  723. package/lib/esm/blob/core/index.js.map +0 -1
  724. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  725. package/lib/esm/blob/gcp/index.js.map +0 -1
  726. package/lib/esm/blob/index.js.map +0 -1
  727. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
  728. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
  729. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
  730. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
  731. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
  732. package/lib/esm/blob/ipfs/index.js.map +0 -1
  733. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  734. package/lib/esm/blob/local/index.js.map +0 -1
  735. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  736. package/lib/esm/blob/memory/index.js.map +0 -1
  737. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  738. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  739. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  740. package/lib/esm/blob/s3/index.js.map +0 -1
  741. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  742. package/lib/esm/docker/index.js.map +0 -1
  743. package/lib/esm/graph/engine/constants.js.map +0 -1
  744. package/lib/esm/graph/engine/decorators.js.map +0 -1
  745. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
  746. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
  747. package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
  748. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
  749. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
  750. package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
  751. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
  752. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
  753. package/lib/esm/graph/engine/errors/index.js.map +0 -1
  754. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
  755. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
  756. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
  757. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
  758. package/lib/esm/graph/engine/events/index.js.map +0 -1
  759. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
  760. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
  761. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
  762. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
  763. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
  764. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
  765. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
  766. package/lib/esm/graph/engine/execution/index.js.map +0 -1
  767. package/lib/esm/graph/engine/index.js.map +0 -1
  768. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
  769. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
  770. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
  771. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
  772. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
  773. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
  774. package/lib/esm/graph/engine/loops/index.js.map +0 -1
  775. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
  776. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
  777. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
  778. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
  779. package/lib/esm/graph/engine/pinning/index.js.map +0 -1
  780. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
  781. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
  782. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
  783. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
  784. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
  785. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
  786. package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
  787. package/lib/esm/graph/engine/planning/index.js.map +0 -1
  788. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
  789. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
  790. package/lib/esm/graph/engine/registry/index.js.map +0 -1
  791. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
  792. package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
  793. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
  794. package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
  795. package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
  796. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
  797. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
  798. package/lib/esm/graph/engine/store/index.js.map +0 -1
  799. package/lib/esm/graph/engine/types.js.map +0 -1
  800. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
  801. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
  802. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
  803. package/lib/esm/graph/engine/validation/index.js.map +0 -1
  804. package/lib/esm/graph/index.js.map +0 -1
  805. package/lib/esm/graph/shared/constants.js.map +0 -1
  806. package/lib/esm/graph/shared/index.js.map +0 -1
  807. package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
  808. package/lib/esm/graph/shared/nodes/base.js.map +0 -1
  809. package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
  810. package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
  811. package/lib/esm/graph/shared/nodes/index.js.map +0 -1
  812. package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
  813. package/lib/esm/graph/shared/types.js.map +0 -1
  814. package/lib/esm/index.js.map +0 -1
  815. package/lib/esm/keycloak/index.js.map +0 -1
  816. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  817. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  818. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  819. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  820. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  821. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  822. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  823. package/lib/esm/keycloak/services/index.js.map +0 -1
  824. package/lib/esm/keycloak/services/runtime.js.map +0 -1
  825. package/lib/esm/keycloak/types.js.map +0 -1
  826. package/lib/esm/kibana/helpers.js.map +0 -1
  827. package/lib/esm/kibana/index.js.map +0 -1
  828. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  829. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  830. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  831. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  832. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  833. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  834. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  835. package/lib/esm/kibana/services/index.js.map +0 -1
  836. package/lib/esm/kibana/services/runtime.js.map +0 -1
  837. package/lib/esm/kibana/types.js.map +0 -1
  838. package/lib/esm/namespaces/index.js.map +0 -1
  839. package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
  840. package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
  841. package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
  842. package/lib/esm/namespaces/models/group.model.js.map +0 -1
  843. package/lib/esm/namespaces/models/index.js.map +0 -1
  844. package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
  845. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
  846. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
  847. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
  848. package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
  849. package/lib/esm/namespaces/models/permission.model.js.map +0 -1
  850. package/lib/esm/namespaces/models/principal.model.js.map +0 -1
  851. package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
  852. package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
  853. package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
  854. package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
  855. package/lib/esm/namespaces/models/role.model.js.map +0 -1
  856. package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
  857. package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
  858. package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
  859. package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
  860. package/lib/esm/namespaces/models/user.model.js.map +0 -1
  861. package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
  862. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
  863. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
  864. package/lib/esm/namespaces/services/authz.service.js.map +0 -1
  865. package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
  866. package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
  867. package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
  868. package/lib/esm/namespaces/services/group.service.js.map +0 -1
  869. package/lib/esm/namespaces/services/index.js.map +0 -1
  870. package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
  871. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
  872. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
  873. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
  874. package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
  875. package/lib/esm/namespaces/services/permission.service.js.map +0 -1
  876. package/lib/esm/namespaces/services/principal.service.js.map +0 -1
  877. package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
  878. package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
  879. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
  880. package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
  881. package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
  882. package/lib/esm/namespaces/services/role.service.js.map +0 -1
  883. package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
  884. package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
  885. package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
  886. package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
  887. package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
  888. package/lib/esm/namespaces/services/user.service.js.map +0 -1
  889. package/lib/esm/namespaces/types.js.map +0 -1
  890. package/lib/esm/namespaces/utils.js.map +0 -1
  891. package/lib/esm/nest/authService.js.map +0 -1
  892. package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
  893. package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
  894. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
  895. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +0 -60
  896. package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +0 -1
  897. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
  898. package/lib/esm/nest/graph/index.js.map +0 -1
  899. package/lib/esm/nest/graph/main.js.map +0 -1
  900. package/lib/esm/nest/index.js.map +0 -1
  901. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  902. package/lib/esm/nest/keycloakModule.js.map +0 -1
  903. package/lib/esm/nest/logging.js.map +0 -1
  904. package/lib/esm/nest/types.js.map +0 -1
  905. package/lib/esm/nest/utils.js.map +0 -1
  906. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  907. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  908. package/lib/esm/secrets/aws/index.js.map +0 -1
  909. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  910. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  911. package/lib/esm/secrets/azure/index.js.map +0 -1
  912. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  913. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  914. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  915. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  916. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  917. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  918. package/lib/esm/secrets/core/index.js.map +0 -1
  919. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  920. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  921. package/lib/esm/secrets/gcp/index.js.map +0 -1
  922. package/lib/esm/secrets/index.js.map +0 -1
  923. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  924. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  925. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  926. package/lib/esm/secrets/model/Secret.js.map +0 -1
  927. package/lib/esm/secrets/model/index.js.map +0 -1
  928. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  929. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  930. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  931. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  932. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  933. package/lib/esm/secrets/vault/index.js.map +0 -1
  934. package/lib/esm/shared/runtime.js.map +0 -1
  935. package/lib/esm/utils.js.map +0 -1
  936. package/lib/types/nest/graph/GraphExecutionResultRepository.d.cts +0 -38
  937. package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +0 -38
@@ -263,4 +263,4 @@ export class ModelSecretService extends ClientBasedService {
263
263
  return new SecretError("SECRET_PROVIDER_CONFLICT", `Provider error: ${message}`, err);
264
264
  }
265
265
  }
266
- //# sourceMappingURL=ModelSecretService.js.map
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWtCLDJCQUFnQjtBQWV0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMkJBQWdCO0FBQ2xFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEdBRXpCLDJCQUFnQjtBQUNqQixPQUFPLEVBQUUsTUFBTSxFQUFFLG9CQUFpQjtBQUNsQyxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUM7QUFFckMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUd2QztJQUhEOztRQUlXLGFBQVEsR0FBbUIsT0FBTyxDQUFDO0lBZ1g5QyxDQUFDO0lBN1dDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUF5QjtRQUkzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQ25ELE1BQU0sVUFBVSxHQUNiLElBQUksQ0FBQyxDQUFDLENBQXlDO1lBQ2hELElBQUksVUFBVSxDQUFjLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFP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WUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sSUFBSSxXQUFXLENBQ3BCLGtCQUFrQixFQUNsQixxQkFBcUIsT0FBTyxFQUFFLEVBQzlCLEdBQUcsQ0FDSixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2QyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNqQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUM1QixDQUFDO1lBQ0QsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsdUJBQXVCLEVBQ3ZCLDBCQUEwQixPQUFPLEVBQUUsRUFDbkMsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsSUFDRSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUNuQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUNoQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLHNCQUFzQixPQUFPLEVBQUUsRUFDL0IsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLG1CQUFtQixPQUFPLEVBQUUsRUFDNUIsR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWNyZXRFcnJvciwgU2VjcmV0UHJvdmlkZXIgfSBmcm9tIFwiLi4vY29yZVwiO1xuaW1wb3J0IHtcbiAgU2VjcmV0TmFtZSxcbiAgU2VjcmV0UGF5bG9hZCxcbiAgU2VjcmV0UmVmZXJlbmNlLFxuICBTZWNyZXRNZXRhZGF0YSxcbn0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7XG4gIFN0b3JlU2VjcmV0T3B0aW9ucyxcbiAgUmV0cmlldmVTZWNyZXRPcHRpb25zLFxuICBEZWxldGVTZWNyZXRPcHRpb25zLFxuICBFeGlzdHNTZWNyZXRPcHRpb25zLFxuICBMaXN0U2VjcmV0c09wdGlvbnMsXG4gIFNlY3JldE1ldGFkYXRhT3B0aW9ucyxcbn0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSwgbm9ybWFsaXplU2VjcmV0TmFtZSB9IGZyb20gXCIuLi9jb3JlXCI7XG5pbXBvcnQge1xuICBzZXJpYWxpemVTZWNyZXRQYXlsb2FkLFxuICBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIHR5cGUgU2VyaWFsaXplZFNlY3JldFBheWxvYWQsXG59IGZyb20gXCIuLi9jb3JlXCI7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiLi9TZWNyZXRcIjtcbmltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VydmljZSxcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgUmVwb3NpdG9yeSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbFNlY3JldFNlcnZpY2VDb25maWcgfSBmcm9tIFwiLi9Nb2RlbFNlY3JldFNlcnZpY2VDb25maWdcIjtcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ3J5cHRvU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY3J5cHRvL2ludGVncmF0aW9uL3NlcnZpY2VzL2NyeXB0b1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5jb25zdCBERUZBVUxUX0tFWV9JRCA9IFwiZGVmYXVsdC1rZXlcIjtcblxuZXhwb3J0IGNsYXNzIE1vZGVsU2VjcmV0U2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgUmVwb3NpdG9yeTxTZWNyZXQsIGFueT4sXG4gIE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZ1xuPiB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBTZWNyZXRQcm92aWRlciA9IFwibW9kZWxcIjtcbiAgcHJpdmF0ZSBjcnlwdG9TZXJ2aWNlITogQ3J5cHRvU2VydmljZTtcblxuICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT4pOiBQcm9taXNlPHtcbiAgICBjb25maWc6IE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZztcbiAgICBjbGllbnQ6IFJlcG9zaXRvcnk8U2VjcmV0LCBhbnk+O1xuICB9PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXJnc1swXSBhcyBNb2RlbFNlY3JldFNlcnZpY2VDb25maWc7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9XG4gICAgICAoYXJnc1sxXSBhcyBSZXBvc2l0b3J5PFNlY3JldCwgYW55PiB8IHVuZGVmaW5lZCkgfHxcbiAgICAgIG5ldyBSZXBvc2l0b3J5PFNlY3JldCwgYW55Pih1bmRlZmluZWQsIFNlY3JldCk7XG4gICAgdGhpcy5jcnlwdG9TZXJ2aWNlID0gbmV3IENyeXB0b1NlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuaW5pdGlhbGl6ZShjb25maWcpO1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50OiByZXBvc2l0b3J5IH07XG4gIH1cblxuICBhc3luYyBzdG9yZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWU6IFNlY3JldE5hbWUsXG4gICAgdmFsdWU6IFQsXG4gICAgb3B0aW9uczogU3RvcmVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRSZWZlcmVuY2U+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic3RvcmVcIiwgdHJ1ZSkpLmZvcih0aGlzLnN0b3JlKTtcbiAgICBsb2cudmVyYm9zZShgU3RvcmluZyBzZWNyZXQgJHtuYW1lfWApO1xuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHZhbHVlKTtcbiAgICBjb25zdCBkZXJpdmVkS2V5ID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmRlcml2ZUtleUZyb21TZWNyZXQoXG4gICAgICB0aGlzLmNvbmZpZy5rZXlTZWNyZXQgYXMgc3RyaW5nXG4gICAgKTtcbiAgICBjb25zdCB7IGVuY3J5cHRlZERhdGEsIG1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZW5jcnlwdFBheWxvYWQoXG4gICAgICBzZXJpYWxpemVkLnZhbHVlLFxuICAgICAgdGhpcy5jb25maWcua2V5SWQgfHwgREVGQVVMVF9LRVlfSUQsXG4gICAgICB0aGlzLmNyeXB0b1NlcnZpY2UuZXh0cmFjdEtleUZyb21EZXJpdmVkS2V5KGRlcml2ZWRLZXkpLmtleVxuICAgICk7XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlY3JldCA9IG5ldyBTZWNyZXQoe1xuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIGVuY3J5cHRlZFBheWxvYWQ6IGVuY3J5cHRlZERhdGEsXG4gICAgICBlbmNyeXB0aW9uOiB7XG4gICAgICAgIGtleUlkOiBtZXRhZGF0YS5rZXlJZCxcbiAgICAgICAgaXY6IG1ldGFkYXRhLml2LFxuICAgICAgfSxcbiAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLmNvbnRlbnRUeXBlLFxuICAgICAgdGFnczogb3B0aW9ucy50YWdzLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5jcmVhdGUoc2VjcmV0KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcz8uKFwiYWxyZWFkeVwiKSB8fFxuICAgICAgICBlcnJvcj8ubmFtZSA9PT0gXCJDb25mbGljdEVycm9yXCJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZXRyaWV2ZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICBvcHRpb25zOiBSZXRyaWV2ZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV0cmlldmVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMucmV0cmlldmVcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYFJldHJpZXZpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG4gICAgbGV0IHZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgICAgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgICAgdmVyc2lvbiA9IG5hbWVPclJlZi52ZXJzaW9uO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgbGV0IGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKTtcblxuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJlbmFibGVkXCIpLmVxKHRydWUpKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmNsaWVudC5zZWxlY3QoKS53aGVyZShjb25kaXRpb24pLmV4ZWN1dGUoKTtcbiAgICBjb25zdCBleGlzdGluZyA9IHJlc3VsdHNbMF07XG5cbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgU2VjcmV0IFwiJHtub3JtYWxpemVkTmFtZX1cIiBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXJpdmVkS2V5ID0gYXdhaXQgdGhpcy5jcnlwdG9TZXJ2aWNlLmRlcml2ZUtleUZyb21TZWNyZXQoXG4gICAgICB0aGlzLmNvbmZpZy5rZXlTZWNyZXQgYXMgc3RyaW5nXG4gICAgKTtcbiAgICBsZXQgZGVjcnlwdGVkVmFsdWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgZGVjcnlwdGVkVmFsdWUgPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZGVjcnlwdFBheWxvYWQoXG4gICAgICAgIGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQsXG4gICAgICAgIHRoaXMuY3J5cHRvU2VydmljZS5leHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleSkua2V5XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBkZWNyeXB0IHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZDogU2VyaWFsaXplZFNlY3JldFBheWxvYWQgPSB7XG4gICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB2YWx1ZTogZGVjcnlwdGVkVmFsdWUsXG4gICAgfTtcblxuICAgIHJldHVybiBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQocGF5bG9hZCkgYXMgVDtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogRGVsZXRlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZSk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgbGV0IGZpbHRlciA9IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uO1xuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICBmaWx0ZXIgPSBmaWx0ZXIuYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5jbGllbnQuc2VsZWN0KCkud2hlcmUoZmlsdGVyKS5leGVjdXRlKCk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuXG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmZvcmNlKSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUobm9ybWFsaXplZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5lbmFibGVkID0gZmFsc2U7XG4gICAgICBleGlzdGluZy51cGRhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQudXBkYXRlKGV4aXN0aW5nKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGlzdHMoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IEV4aXN0c1NlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZXhpc3RzXCIsIHRydWUpKS5mb3IodGhpcy5leGlzdHMpO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGlmIHNlY3JldCAke25hbWVTdHJ9IGV4aXN0c2ApO1xuXG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG5cbiAgICBsZXQgZmlsdGVyID0gQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcImVuYWJsZWRcIikuZXEodHJ1ZSkpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICBvcHRpb25zLnZlcnNpb24gPz9cbiAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcIm9iamVjdFwiID8gbmFtZU9yUmVmLnZlcnNpb24gOiB1bmRlZmluZWQpO1xuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICBmaWx0ZXIgPSBmaWx0ZXIuYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb3VudCA9IGF3YWl0IHRoaXMuY2xpZW50LmNvdW50KCkud2hlcmUoZmlsdGVyKS5leGVjdXRlKCk7XG5cbiAgICByZXR1cm4gY291bnQgPiAwO1xuICB9XG5cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0U2VjcmV0c09wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldE1ldGFkYXRhW10+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKHRoaXMubGlzdCk7XG4gICAgbG9nLnZlcmJvc2UoXCJMaXN0aW5nIHNlY3JldHNcIik7XG5cbiAgICBsZXQgY29uZGl0aW9uOiBDb25kaXRpb248U2VjcmV0PiB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKG9wdGlvbnMuZW5hYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwiZW5hYmxlZFwiKS5lcShvcHRpb25zLmVuYWJsZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldHM6IFNlY3JldFtdID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGNvbmRpdGlvbiB8fCBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5kaWYobnVsbCkpXG4gICAgICAuZXhlY3V0ZSgpO1xuXG4gICAgcmV0dXJuIHNlY3JldHMubWFwKChzZWNyZXQ6IFNlY3JldCkgPT4gKHtcbiAgICAgIHByb3ZpZGVyOiBzZWNyZXQucHJvdmlkZXIgYXMgU2VjcmV0UHJvdmlkZXIsXG4gICAgICBuYW1lOiBzZWNyZXQubmFtZSxcbiAgICAgIHZlcnNpb246IHNlY3JldC52ZXJzaW9uLFxuICAgICAgY3JlYXRlZEF0OiBzZWNyZXQuY3JlYXRlZEF0LFxuICAgICAgdXBkYXRlZEF0OiBzZWNyZXQudXBkYXRlZEF0LFxuICAgICAgZW5hYmxlZDogc2VjcmV0LmVuYWJsZWQsXG4gICAgICBjb250ZW50VHlwZTogc2VjcmV0LmNvbnRlbnRUeXBlLFxuICAgICAgdGFnczogc2VjcmV0LnRhZ3MsXG4gICAgfSkpO1xuICB9XG5cbiAgYXN5bmMgbWV0YWRhdGEoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IFNlY3JldE1ldGFkYXRhT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibWV0YWRhdGFcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMubWV0YWRhdGFcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYEdldHRpbmcgbWV0YWRhdGEgZm9yIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgIG9wdGlvbnMudmVyc2lvbiA/P1xuICAgICAgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwib2JqZWN0XCIgPyBuYW1lT3JSZWYudmVyc2lvbiA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHM6IFNlY3JldFtdID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGZpbHRlcilcbiAgICAgIC5leGVjdXRlKCk7XG4gICAgY29uc3Qgc2VjcmV0ID0gcmVzdWx0c1swXTtcblxuICAgIGlmICghc2VjcmV0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGE6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgcHJvdmlkZXI6IHNlY3JldC5wcm92aWRlciBhcyBTZWNyZXRQcm92aWRlcixcbiAgICAgIG5hbWU6IHNlY3JldC5uYW1lLFxuICAgICAgdmVyc2lvbjogc2VjcmV0LnZlcnNpb24sXG4gICAgICBjcmVhdGVkQXQ6IHNlY3JldC5jcmVhdGVkQXQsXG4gICAgICB1cGRhdGVkQXQ6IHNlY3JldC51cGRhdGVkQXQsXG4gICAgICBlbmFibGVkOiBzZWNyZXQuZW5hYmxlZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBzZWNyZXQuY29udGVudFR5cGUsXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVUYWdzKSB7XG4gICAgICBtZXRhLnRhZ3MgPSBzZWNyZXQudGFncztcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiB1bmtub3duKTogU2VjcmV0RXJyb3Ige1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCBlcnIubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfTk9UX0ZPVU5EXCIsXG4gICAgICAgIGBTZWNyZXQgbm90IGZvdW5kOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9BTFJFQURZX0VYSVNUU1wiLFxuICAgICAgICBgU2VjcmV0IGFscmVhZHkgZXhpc3RzOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImRlY3J5cHRpb25cIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImRlY3J5cHRcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX0RFQ1JZUFRJT05fRkFJTEVEXCIsXG4gICAgICAgIGBEZWNyeXB0aW9uIGZhaWxlZDogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgXCJTRUNSRVRfUFJPVklERVJfQ09ORkxJQ1RcIixcbiAgICAgIGBQcm92aWRlciBlcnJvcjogJHttZXNzYWdlfWAsXG4gICAgICBlcnJcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=ModelSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvY29uZmlnXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNjaGVtYSBmb3IgdGhlIGVuY3J5cHRlZC1hdC1yZXN0IG1vZGVsIHNlY3JldCBzZXJ2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZyB7XG4gIHByb3ZpZGVyOiBcIm1vZGVsXCI7XG4gIGtleVNlY3JldDogc3RyaW5nO1xuICBrZXlJZD86IHN0cmluZztcbn1cbiJdfQ==
@@ -36,4 +36,4 @@ __decorate([
36
36
  required(),
37
37
  __metadata("design:type", Object)
38
38
  ], Secret.prototype, "encryption", void 0);
39
- //# sourceMappingURL=Secret.js.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvU2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUTFELE1BQU0sT0FBTyxNQUFPLFNBQVEsU0FBUztJQW9CbkMsWUFBWSxJQUFzQjtRQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFOZCxZQUFPLEdBQVksSUFBSSxDQUFDO0lBT3hCLENBQUM7Q0FDRjtBQXJCQztJQURDLFFBQVEsRUFBRTs7b0NBQ0c7QUFHZDtJQURDLFFBQVEsRUFBRTs7d0NBQ087QUFHbEI7SUFEQyxRQUFRLEVBQUU7O2dEQUNlO0FBRzFCO0lBREMsUUFBUSxFQUFFOzswQ0FDMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvc2VjcmV0XG4gKiBAc3VtbWFyeSBFbmNyeXB0ZWQgc2VjcmV0IG1vZGVsIHR5cGVzLlxuICogQGRlc2NyaXB0aW9uIE1vZGVsIHBheWxvYWQgYW5kIG1ldGFkYXRhIHR5cGVzIHVzZWQgYnkgdGhlIGVuY3J5cHRlZC1hdC1yZXN0IHNlY3JldCBzZXJ2aWNlLlxuICovXG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldEVuY3J5cHRpb25NZXRhZGF0YSB7XG4gIGtleUlkOiBzdHJpbmc7XG4gIGl2OiBzdHJpbmc7XG4gIGFhZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3JldCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIEByZXF1aXJlZCgpXG4gIG5hbWUhOiBzdHJpbmc7XG5cbiAgQHJlcXVpcmVkKClcbiAgcHJvdmlkZXIhOiBzdHJpbmc7XG5cbiAgQHJlcXVpcmVkKClcbiAgZW5jcnlwdGVkUGF5bG9hZCE6IHN0cmluZztcblxuICBAcmVxdWlyZWQoKVxuICBlbmNyeXB0aW9uITogU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhO1xuXG4gIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGV4dGVybmFsSWQ/OiBzdHJpbmc7XG4gIHVyaT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxTZWNyZXQ+KSB7XG4gICAgc3VwZXIoZGF0YSk7XG4gIH1cbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  export * from "./Secret.js";
7
7
  export * from "./ModelSecretServiceConfig.js";
8
8
  export * from "./ModelSecretService.js";
9
- //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsNEJBQXlCO0FBQ3pCLDhDQUEyQztBQUMzQyx3Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWxcbiAqIEBzdW1tYXJ5IE1vZGVsLWJhY2tlZCBzZWNyZXQgc2VydmljZSBleHBvcnRzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIGVuY3J5cHRlZC1hdC1yZXN0IHNlY3JldCBtb2RlbCwgY29uZmlnLCBhbmQgc2VydmljZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vU2VjcmV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Nb2RlbFNlY3JldFNlcnZpY2VDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL01vZGVsU2VjcmV0U2VydmljZVwiO1xuIl19
@@ -394,4 +394,4 @@ export class OnePasswordSecretService extends ClientBasedService {
394
394
  }
395
395
  }
396
396
  }
397
- //# sourceMappingURL=OnePasswordSecretService.js.map
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvb25lcGFzc3dvcmQvT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWtCLDJCQUEyQjtBQU9qRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEdBRXpCLDJCQUEyQjtBQUM1QixPQUFPLEVBQ0wsa0JBQWtCLEdBR25CLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsa0JBRzdDO0lBSEQ7O1FBSVcsYUFBUSxHQUFtQixXQUFXLENBQUM7SUFvaUJsRCxDQUFDO0lBbGlCQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBeUI7UUFFNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBbUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUNULElBQWdCLEVBQ2hCLEtBQVEsRUFDUixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFL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QUFlLENBQzNCLEtBQWEsRUFDYixPQUFlO1FBRWYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsT0FBTyxRQUFRLENBQUMsQ0FBQztZQUN0RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWNyZXRFcnJvciwgU2VjcmV0UHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVNlY3JldE5hbWUsIG5vcm1hbGl6ZVNlY3JldE5hbWUgfSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBzZXJpYWxpemVTZWNyZXRQYXlsb2FkLFxuICBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIHR5cGUgU2VyaWFsaXplZFNlY3JldFBheWxvYWQsXG59IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VydmljZSxcbiAgdHlwZSBDb250ZXh0dWFsQXJncyxcbiAgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4vT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCBjbGFzcyBPbmVQYXNzd29yZFNlY3JldFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIHVua25vd24sXG4gIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZ1xuPiB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBTZWNyZXRQcm92aWRlciA9IFwiMXBhc3N3b3JkXCI7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZzsgY2xpZW50OiB1bmtub3duIH0+IHtcbiAgICBjb25zdCBjb25maWcgPSBhcmdzWzBdIGFzIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZztcbiAgICBpZiAoIWNvbmZpZy5jb25uZWN0SG9zdCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiMVBhc3N3b3JkIHNlcnZpY2UgcmVxdWlyZXMgY29ubmVjdEhvc3QgY29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudDoge30gfTtcbiAgfVxuXG4gIGFzeW5jIHN0b3JlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZTogU2VjcmV0TmFtZSxcbiAgICB2YWx1ZTogVCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKHRoaXMuc3RvcmUpO1xuICAgIGxvZy52ZXJib3NlKGBTdG9yaW5nIHNlY3JldCAke25hbWV9YCk7XG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZVNlY3JldFBheWxvYWQodmFsdWUpO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCIxUGFzc3dvcmQgcHJvdmlkZXIgcmVxdWlyZXMgYSB2YXVsdCBJRCBpbiBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbSA9IHtcbiAgICAgIHRpdGxlOiBub3JtYWxpemVkTmFtZSxcbiAgICAgIGNhdGVnb3J5OiBcImxvZ2luXCIsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBcInNlY3JldFwiLFxuICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemVkLnZhbHVlLFxuICAgICAgICAgIHB1cnBvc2U6IFwicGFzc3dvcmRcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBub3RlczogYENyZWF0ZWQgYnkgREVDQUYgU2VjcmV0IFNlcnZpY2UgYXQgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0UmVxdWVzdChcbiAgICAgICAgYC92MS92YXVsdHMvJHt2YXVsdElkfS9pdGVtc2AsXG4gICAgICAgIGl0ZW1cbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVzcG9uc2UuaWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNlY3JldEVycm9yKFxuICAgICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUXCIsXG4gICAgICAgICAgXCJGYWlsZWQgdG8gc3RvcmUgc2VjcmV0OiBObyBpdGVtIElEIHJldHVybmVkXCJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgICB2ZXJzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgaWQ6IHJlc3BvbnNlLmlkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZXRyaWV2ZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV0cmlldmVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMucmV0cmlldmVcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYFJldHJpZXZpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCIxUGFzc3dvcmQgcHJvdmlkZXIgcmVxdWlyZXMgYSB2YXVsdCBJRCBpbiBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUgJiZcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLmluY2x1ZGVzKFwiJHtuYW1lfVwiKVxuICAgICkge1xuICAgICAgaXRlbUlkID0gdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUucmVwbGFjZShcIiR7bmFtZX1cIiwgbm9ybWFsaXplZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0SXRlbXNCeVRpdGxlKG5vcm1hbGl6ZWROYW1lLCB2YXVsdElkKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgICAgYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgbm90IGZvdW5kIGluIHZhdWx0YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaXRlbUlkID0gaXRlbXNbMF0uaWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCB0aGlzLmdldFJlcXVlc3QoXG4gICAgICAgIGAvdjEvdmF1bHRzLyR7dmF1bHRJZH0vaXRlbXMvJHtpdGVtSWR9YFxuICAgICAgKTtcblxuICAgICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICAgIGlmIChpdGVtLmZpZWxkcyAmJiBBcnJheS5pc0FycmF5KGl0ZW0uZmllbGRzKSkge1xuICAgICAgICBjb25zdCBzZWNyZXRGaWVsZCA9IGl0ZW0uZmllbGRzLmZpbmQoXG4gICAgICAgICAgKGY6IGFueSkgPT4gZi5wdXJwb3NlID09PSBcInBhc3N3b3JkXCIgfHwgZi5sYWJlbCA9PT0gXCJzZWNyZXRcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoc2VjcmV0RmllbGQgJiYgc2VjcmV0RmllbGQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHZhbHVlID0gc2VjcmV0RmllbGQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCF2YWx1ZSAmJiBpdGVtLmRldGFpbHMgJiYgaXRlbS5kZXRhaWxzLmZpZWxkcykge1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBBcnJheS5pc0FycmF5KGl0ZW0uZGV0YWlscy5maWVsZHMpXG4gICAgICAgICAgPyBpdGVtLmRldGFpbHMuZmllbGRzXG4gICAgICAgICAgOiBbXTtcbiAgICAgICAgY29uc3Qgc2VjcmV0RmllbGQgPSBmaWVsZHMuZmluZChcbiAgICAgICAgICAoZjogYW55KSA9PiBmLnB1cnBvc2UgPT09IFwicGFzc3dvcmRcIiB8fCBmLmxhYmVsID09PSBcInNlY3JldFwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzZWNyZXRGaWVsZCAmJiBzZWNyZXRGaWVsZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFsdWUgPSBzZWNyZXRGaWVsZC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgICBcIlNFQ1JFVF9OT1RfRk9VTkRcIixcbiAgICAgICAgICBgTm8gc2VjcmV0IHZhbHVlIGZvdW5kIGZvciBpdGVtIFwiJHtpdGVtSWR9XCJgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBheWxvYWQ6IFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkID0ge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZChwYXlsb2FkKSBhcyBUO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBEZWxldGluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuXG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgY29uc3QgdmF1bHRJZCA9IHRoaXMuY29uZmlnLnZhdWx0SWQ7XG5cbiAgICBpZiAoIXZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIjFQYXNzd29yZCBwcm92aWRlciByZXF1aXJlcyBhIHZhdWx0IElEIGluIGNvbmZpZ3VyYXRpb25cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgaXRlbUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZSAmJlxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUuaW5jbHVkZXMoXCIke25hbWV9XCIpXG4gICAgKSB7XG4gICAgICBpdGVtSWQgPSB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZS5yZXBsYWNlKFwiJHtuYW1lfVwiLCBub3JtYWxpemVkTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5nZXRJdGVtc0J5VGl0bGUobm9ybWFsaXplZE5hbWUsIHZhdWx0SWQpO1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpdGVtSWQgPSBpdGVtc1swXS5pZDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVSZXF1ZXN0KGAvdjEvdmF1bHRzLyR7dmF1bHRJZH0vaXRlbXMvJHtpdGVtSWR9YCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhpc3RzKFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZXhpc3RzXCIsIHRydWUpKS5mb3IodGhpcy5leGlzdHMpO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGlmIHNlY3JldCAke25hbWVTdHJ9IGV4aXN0c2ApO1xuXG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgY29uc3QgdmF1bHRJZCA9IHRoaXMuY29uZmlnLnZhdWx0SWQ7XG5cbiAgICBpZiAoIXZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIjFQYXNzd29yZCBwcm92aWRlciByZXF1aXJlcyBhIHZhdWx0IElEIGluIGNvbmZpZ3VyYXRpb25cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgaXRlbUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZSAmJlxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUuaW5jbHVkZXMoXCIke25hbWV9XCIpXG4gICAgKSB7XG4gICAgICBpdGVtSWQgPSB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZS5yZXBsYWNlKFwiJHtuYW1lfVwiLCBub3JtYWxpemVkTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5nZXRJdGVtc0J5VGl0bGUobm9ybWFsaXplZE5hbWUsIHZhdWx0SWQpO1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpdGVtSWQgPSBpdGVtc1swXS5pZDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5nZXRSZXF1ZXN0KGAvdjEvdmF1bHRzLyR7dmF1bHRJZH0vaXRlbXMvJHtpdGVtSWR9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyID0gZXJyb3IgYXMgRXJyb3I7XG4gICAgICBpZiAoXG4gICAgICAgIGVyci5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHxcbiAgICAgICAgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+KTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YVtdPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImxpc3RcIiwgdHJ1ZSkpLmZvcih0aGlzLmxpc3QpO1xuICAgIGxvZy52ZXJib3NlKFwiTGlzdGluZyBzZWNyZXRzXCIpO1xuICAgIGNvbnN0IHJlc3VsdDogU2VjcmV0TWV0YWRhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0UmVxdWVzdChgL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9L2l0ZW1zYCk7XG5cbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBBcnJheS5pc0FycmF5KGl0ZW1zKSA/IGl0ZW1zIDogW2l0ZW1zXSkge1xuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpdGVtLnRpdGxlKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICBuYW1lOiBpdGVtLnRpdGxlLFxuICAgICAgICAgICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiBpdGVtLmNyZWF0ZWRBdCA/IG5ldyBEYXRlKGl0ZW0uY3JlYXRlZEF0KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogaXRlbS51cGRhdGVkQXQgPyBuZXcgRGF0ZShpdGVtLnVwZGF0ZWRBdCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogaXRlbS5pZCxcbiAgICAgICAgICAgIHRhZ3M6IGl0ZW0uY2F0ZWdvcnkgPyB7IGNhdGVnb3J5OiBpdGVtLmNhdGVnb3J5IH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJtZXRhZGF0YVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5tZXRhZGF0YVxuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgR2V0dGluZyBtZXRhZGF0YSBmb3Igc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCIxUGFzc3dvcmQgcHJvdmlkZXIgcmVxdWlyZXMgYSB2YXVsdCBJRCBpbiBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUgJiZcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLmluY2x1ZGVzKFwiJHtuYW1lfVwiKVxuICAgICkge1xuICAgICAgaXRlbUlkID0gdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUucmVwbGFjZShcIiR7bmFtZX1cIiwgbm9ybWFsaXplZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0SXRlbXNCeVRpdGxlKG5vcm1hbGl6ZWROYW1lLCB2YXVsdElkKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGl0ZW1JZCA9IGl0ZW1zWzBdLmlkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBpdGVtID0gYXdhaXQgdGhpcy5nZXRSZXF1ZXN0KFxuICAgICAgICBgL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9L2l0ZW1zLyR7aXRlbUlkfWBcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IG1ldGE6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgICAgbmFtZTogaXRlbS50aXRsZSB8fCBub3JtYWxpemVkTmFtZSxcbiAgICAgICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBjcmVhdGVkQXQ6IGl0ZW0uY3JlYXRlZEF0ID8gbmV3IERhdGUoaXRlbS5jcmVhdGVkQXQpIDogdW5kZWZpbmVkLFxuICAgICAgICB1cGRhdGVkQXQ6IGl0ZW0udXBkYXRlZEF0ID8gbmV3IERhdGUoaXRlbS51cGRhdGVkQXQpIDogdW5kZWZpbmVkLFxuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICBleHRlcm5hbElkOiBpdGVtLmlkLFxuICAgICAgICB0YWdzOiBpdGVtLmNhdGVnb3J5ID8geyBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB9IDogdW5kZWZpbmVkLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIG1ldGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgICAgaWYgKFxuICAgICAgICBlcnIubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICAgIGVyci5tZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiB1bmtub3duKTogU2VjcmV0RXJyb3Ige1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCBlcnIubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfTk9UX0ZPVU5EXCIsXG4gICAgICAgIGBTZWNyZXQgbm90IGZvdW5kOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9BTFJFQURZX0VYSVNUU1wiLFxuICAgICAgICBgU2VjcmV0IGFscmVhZHkgZXhpc3RzOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9QUk9WSURFUl9BVVRIX0ZBSUxFRFwiLFxuICAgICAgICBgQXV0aGVudGljYXRpb24gZmFpbGVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJwZXJtaXNzaW9uXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfUFJPVklERVJfUEVSTUlTU0lPTl9ERU5JRURcIixcbiAgICAgICAgYFBlcm1pc3Npb24gZGVuaWVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJyYXRlIGxpbWl0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQyOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfUFJPVklERVJfUkFURV9MSU1JVEVEXCIsXG4gICAgICAgIGBSYXRlIGxpbWl0ZWQ6ICR7bWVzc2FnZX1gLFxuICAgICAgICBlcnJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwicHJvdmlkZXJcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXZhaWxhYmxlXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25uZWN0aW9uXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ0aW1lb3V0XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9QUk9WSURFUl9VTkFWQUlMQUJMRVwiLFxuICAgICAgICBgUHJvdmlkZXIgdW5hdmFpbGFibGU6ICR7bWVzc2FnZX1gLFxuICAgICAgICBlcnJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUXCIsXG4gICAgICBgUHJvdmlkZXIgZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgZXJyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVxdWVzdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmNvbm5lY3RIb3N0fSR7cGF0aH1gO1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICB9O1xuICAgIGlmICh0aGlzLmNvbmZpZy5jb25uZWN0VG9rZW4pIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3RoaXMuY29uZmlnLmNvbm5lY3RUb2tlbn1gO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZXJyb3JCb2R5ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGAxUGFzc3dvcmQgQVBJIGVycm9yICgke3Jlc3BvbnNlLnN0YXR1c30pOiAke2Vycm9yQm9keSB8fCByZXNwb25zZS5zdGF0dXNUZXh0fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcG9zdFJlcXVlc3QocGF0aDogc3RyaW5nLCBib2R5OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmNvbm5lY3RIb3N0fSR7cGF0aH1gO1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICB9O1xuICAgIGlmICh0aGlzLmNvbmZpZy5jb25uZWN0VG9rZW4pIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3RoaXMuY29uZmlnLmNvbm5lY3RUb2tlbn1gO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZXJyb3JCb2R5ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGAxUGFzc3dvcmQgQVBJIGVycm9yICgke3Jlc3BvbnNlLnN0YXR1c30pOiAke2Vycm9yQm9keSB8fCByZXNwb25zZS5zdGF0dXNUZXh0fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVsZXRlUmVxdWVzdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5jb25uZWN0SG9zdH0ke3BhdGh9YDtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcbiAgICBpZiAodGhpcy5jb25maWcuY29ubmVjdFRva2VuKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHt0aGlzLmNvbmZpZy5jb25uZWN0VG9rZW59YDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiBcIkRFTEVURVwiLFxuICAgICAgaGVhZGVycyxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGVycm9yQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgMVBhc3N3b3JkIEFQSSBlcnJvciAoJHtyZXNwb25zZS5zdGF0dXN9KTogJHtlcnJvckJvZHkgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dH1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0SXRlbXNCeVRpdGxlKFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgdmF1bHRJZDogc3RyaW5nXG4gICk6IFByb21pc2U8YW55W10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWxsSXRlbXMgPSBhd2FpdCB0aGlzLmdldFJlcXVlc3QoYC92MS92YXVsdHMvJHt2YXVsdElkfS9pdGVtc2ApO1xuICAgICAgY29uc3QgaXRlbXMgPSBBcnJheS5pc0FycmF5KGFsbEl0ZW1zKSA/IGFsbEl0ZW1zIDogW2FsbEl0ZW1zXTtcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udGl0bGUgPT09IHRpdGxlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=OnePasswordSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvb25lcGFzc3dvcmQvT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvb25lcGFzc3dvcmQvY29uZmlnXG4gKiBAc3VtbWFyeSAxUGFzc3dvcmQgc2VjcmV0IHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNjaGVtYSBmb3IgdGhlIDFQYXNzd29yZCBDb25uZWN0IGludGVncmF0aW9uLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCIxcGFzc3dvcmRcIjtcbiAgY29ubmVjdEhvc3Q6IHN0cmluZztcbiAgY29ubmVjdFRva2VuPzogc3RyaW5nO1xuICB2YXVsdElkPzogc3RyaW5nO1xuICBpdGVtSWRUZW1wbGF0ZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -5,4 +5,4 @@
5
5
  */
6
6
  export * from "./OnePasswordSecretService.js";
7
7
  export * from "./OnePasswordSecretServiceConfig.js";
8
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9vbmVwYXNzd29yZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsOENBQTJDO0FBQzNDLG9EQUFpRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9vbmVwYXNzd29yZFxuICogQHN1bW1hcnkgMVBhc3N3b3JkIHNlY3JldCBzZXJ2aWNlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgMVBhc3N3b3JkIHNlY3JldCBzZXJ2aWNlIGFuZCBpdHMgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9PbmVQYXNzd29yZFNlY3JldFNlcnZpY2VDb25maWdcIjtcbiJdfQ==
@@ -309,4 +309,4 @@ export class VaultSecretService extends ClientBasedService {
309
309
  return new InternalError(message);
310
310
  }
311
311
  }
312
- //# sourceMappingURL=VaultSecretService.js.map
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvdmF1bHQvVmF1bHRTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkI7QUFDN0UsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsR0FFekIsMkJBQTJCO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxPQUFPLGVBQWU7SUFNMUIsWUFBWSxNQUtYO1FBQ0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTyxDQUNuQixNQUFjLEVBQ2QsSUFBWSxFQUNaLElBQVU7UUFFVixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQTJCO1lBQ3RDLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSztZQUMzQixjQUFjLEVBQUUsa0JBQWtCO1NBQ25DLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTTtZQUNOLE9BQU87WUFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzlDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLFFBQVE7aUJBQzlCLElBQUksRUFBRTtpQkFDTixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQTBCLENBQUM7WUFDM0QsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixHQUFHLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUN4QixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsT0FBTyxTQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sU0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBaUIsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQU0sS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLElBQVksRUFBRSxJQUFTO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBTyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxFQUFFO1lBQ2pFLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBTyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBWTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQy9CLE1BQU0sRUFDTixHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsSUFBSSxFQUFFLENBQ3JDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFNLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBR3ZDO0lBSEQ7O1FBSVcsYUFBUSxHQUFtQixpQkFBaUIsQ0FBQztJQThUeEQsQ0FBQztJQTVUQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ25FLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztTQUM1QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUNULElBQWdCLEVBQ2hCLEtBQVEsRUFDUixVQUE4QixFQUFFLEVBQ2hDLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFO2dCQUN0QyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7Z0JBQ3ZCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtnQkFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7YUFDbkIsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxjQUFjO2dCQUNwQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87YUFDekIsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQ0UsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDbEQsQ0FBQztnQkFDRCxNQUFNLElBQUksYUFBYSxDQUFDLFdBQVcsY0FBYyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLFNBQXVDLEVBQ3ZDLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzdELElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNFLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFZLENBQUM7UUFFakIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksYUFBYSxDQUFDLFdBQVcsY0FBYyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBNEI7Z0JBQ3ZDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNO2dCQUMxQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQzNCLENBQUM7WUFFRixPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBTSxDQUFDO1FBQ2hELENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQ0UsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNoRCxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDcEQsQ0FBQztnQkFDRCxNQUFNLElBQUksYUFBYSxDQUFDLFdBQVcsY0FBYyxhQUFhLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUF1QyxFQUN2QyxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRSxNQUFNLE9BQU8sR0FBRyxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMzRSxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksSUFBWSxDQUFDO1FBRWpCLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFjLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQXVDLEVBQ3ZDLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNFLEdBQUcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLE9BQU8sU0FBUyxDQUFDLENBQUM7UUFFcEQsSUFBSSxJQUFZLENBQUM7UUFFakIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsSUFDRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUNwRCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFjLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1IsVUFBOEIsRUFBRSxFQUNoQyxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUixDQUFDO2dCQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRTdDLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ3ZCLElBQUksRUFBRSxHQUFHO3dCQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWTs0QkFDMUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7NEJBQzdCLENBQUMsQ0FBQyxTQUFTO3dCQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWTs0QkFDMUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7NEJBQzdCLENBQUMsQ0FBQyxTQUFTO3dCQUNiLE9BQU8sRUFBRSxJQUFJO3dCQUNiLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLFNBQVM7cUJBQ3hDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFjLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQ1osU0FBdUMsRUFDdkMsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDN0QsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0UsR0FBRyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQVksQ0FBQztRQUVqQixJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFeEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBbUI7Z0JBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3RFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3RFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLFNBQVM7YUFDeEMsQ0FBQztZQUVGLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQ0UsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNoRCxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDcEQsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQWM7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxlQUFlLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTNDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFDRSxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQ3ZDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ2pDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQzVCLENBQUM7WUFDRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQ0UsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDakMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDcEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDbkMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDaEMsQ0FBQztZQUNELE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmV0UHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZVNlY3JldE9wdGlvbnMsIExpc3RTZWNyZXRzT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSwgbm9ybWFsaXplU2VjcmV0TmFtZSB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlLCB0eXBlIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4vVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgY2xhc3MgVmF1bHRLdlYyQ2xpZW50IHtcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgdG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSBtb3VudFBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgbW91bnRQYXRoOiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICB9KSB7XG4gICAgdGhpcy5iYXNlVXJsID0gY29uZmlnLmJhc2VVcmwucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcbiAgICB0aGlzLnRva2VuID0gY29uZmlnLnRva2VuO1xuICAgIHRoaXMubW91bnRQYXRoID0gY29uZmlnLm1vdW50UGF0aC5yZXBsYWNlKC9eXFwvKy8sIFwiXCIpLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gICAgdGhpcy5uYW1lc3BhY2UgPSBjb25maWcubmFtZXNwYWNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0PFQgPSBhbnk+KFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBib2R5PzogYW55XG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vdjEvJHtwYXRofWA7XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiWC1WYXVsdC1Ub2tlblwiOiB0aGlzLnRva2VuLFxuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm5hbWVzcGFjZSkge1xuICAgICAgaGVhZGVyc1tcIlgtVmF1bHQtTmFtZXNwYWNlXCJdID0gdGhpcy5uYW1lc3BhY2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5OiBib2R5ID8gSlNPTi5zdHJpbmdpZnkoYm9keSkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSAoYXdhaXQgcmVzcG9uc2VcbiAgICAgICAgLmpzb24oKVxuICAgICAgICAuY2F0Y2goKCkgPT4gKHsgZXJyb3JzOiBbXSB9KSkpIGFzIHsgZXJyb3JzPzogc3RyaW5nW10gfTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvckRhdGEuZXJyb3JzPy5qb2luKFwiLCBcIikgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dDtcbiAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIGVyci5uYW1lID0gYFZhdWx0RXJyb3JgO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBUO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIFQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodGV4dCkgYXMgeyBkYXRhPzogVCB9O1xuICAgIHJldHVybiBkYXRhLmRhdGEgYXMgVDtcbiAgfVxuXG4gIGFzeW5jIHJlYWQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PGFueT4oXCJHRVRcIiwgYCR7dGhpcy5tb3VudFBhdGh9L2RhdGEvJHtwYXRofWApO1xuICB9XG5cbiAgYXN5bmMgd3JpdGUocGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3Q8dm9pZD4oXCJQT1NUXCIsIGAke3RoaXMubW91bnRQYXRofS9kYXRhLyR7cGF0aH1gLCB7XG4gICAgICBkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdDx2b2lkPihcIkRFTEVURVwiLCBgJHt0aGlzLm1vdW50UGF0aH0vZGF0YS8ke3BhdGh9YCk7XG4gIH1cblxuICBhc3luYyBsaXN0KHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJlcXVlc3Q8eyBrZXlzOiBzdHJpbmdbXSB9PihcbiAgICAgIFwiTElTVFwiLFxuICAgICAgYCR7dGhpcy5tb3VudFBhdGh9L21ldGFkYXRhLyR7cGF0aH1gXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0LmtleXMgfHwgW107XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8YW55PihcIkdFVFwiLCBgJHt0aGlzLm1vdW50UGF0aH0vbWV0YWRhdGEvJHtwYXRofWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYXVsdFNlY3JldFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIFZhdWx0S3ZWMkNsaWVudCxcbiAgVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCJoYXNoaWNvcnAtdmF1bHRcIjtcblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZzsgY2xpZW50OiBWYXVsdEt2VjJDbGllbnQgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5pbml0aWFsaXplXG4gICAgKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZztcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgVmF1bHRLdlYyQ2xpZW50KHtcbiAgICAgIGJhc2VVcmw6IGNvbmZpZy5hZGRyZXNzLFxuICAgICAgdG9rZW46IGNvbmZpZy50b2tlbixcbiAgICAgIG1vdW50UGF0aDogY29uZmlnLnBhdGgsXG4gICAgICBuYW1lc3BhY2U6IGNvbmZpZy5uYW1lc3BhY2UsXG4gICAgfSk7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgc3RvcmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lOiBTZWNyZXROYW1lLFxuICAgIHZhbHVlOiBULFxuICAgIG9wdGlvbnM6IFN0b3JlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0UmVmZXJlbmNlPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN0b3JlXCIsIHRydWUpKS5mb3IodGhpcy5zdG9yZSk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bmFtZX1gKTtcbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQud3JpdGUobm9ybWFsaXplZE5hbWUsIHtcbiAgICAgICAgdmFsdWU6IHNlcmlhbGl6ZWQudmFsdWUsXG4gICAgICAgIGVuY29kaW5nOiBzZXJpYWxpemVkLmVuY29kaW5nLFxuICAgICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgICAgdGFnczogb3B0aW9ucy50YWdzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSxcbiAgICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yPy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYWxyZWFkeVwiKSB8fFxuICAgICAgICBlcnJvcj8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoXCJhbHJlYWR5XCIpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmV0cmlldmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldHJpZXZlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJldHJpZXZlXG4gICAgKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBSZXRyaWV2aW5nIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlYWQobm9ybWFsaXplZE5hbWUpO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlPy5kYXRhPy52YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgU2VjcmV0IFwiJHtub3JtYWxpemVkTmFtZX1cIiBoYXMgbm8gdmFsdWVgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGF5bG9hZDogU2VyaWFsaXplZFNlY3JldFBheWxvYWQgPSB7XG4gICAgICAgIGVuY29kaW5nOiByZXNwb25zZS5kYXRhLmVuY29kaW5nID8/IFwidXRmOFwiLFxuICAgICAgICB2YWx1ZTogcmVzcG9uc2UuZGF0YS52YWx1ZSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQocGF5bG9hZCkgYXMgVDtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yPy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICAgIGVycm9yPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBTZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZSk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShub3JtYWxpemVkTmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGlzdHMoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJleGlzdHNcIiwgdHJ1ZSkpLmZvcih0aGlzLmV4aXN0cyk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgaWYgc2VjcmV0ICR7bmFtZVN0cn0gZXhpc3RzYCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5yZWFkKG5vcm1hbGl6ZWROYW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyb3I/Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHxcbiAgICAgICAgZXJyb3I/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKFwibm90IGZvdW5kXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IExpc3RTZWNyZXRzT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3Rpbmcgc2VjcmV0c1wiKTtcbiAgICBjb25zdCByZXN1bHQ6IFNlY3JldE1ldGFkYXRhW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBrZXlzID0gYXdhaXQgdGhpcy5jbGllbnQubGlzdChcIlwiKTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAmJiByZXN1bHQubGVuZ3RoID49IG9wdGlvbnMubGltaXQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCB0aGlzLmNsaWVudC5tZXRhZGF0YShrZXkpO1xuXG4gICAgICAgIGlmIChtZXRhKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IG1ldGEuY3JlYXRlZF90aW1lXG4gICAgICAgICAgICAgID8gbmV3IERhdGUobWV0YS5jcmVhdGVkX3RpbWUpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiBtZXRhLnVwZGF0ZWRfdGltZVxuICAgICAgICAgICAgICA/IG5ldyBEYXRlKG1ldGEudXBkYXRlZF90aW1lKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB0YWdzOiBtZXRhLmN1c3RvbV9tZXRhZGF0YSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJtZXRhZGF0YVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5tZXRhZGF0YVxuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgR2V0dGluZyBtZXRhZGF0YSBmb3Igc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCB0aGlzLmNsaWVudC5tZXRhZGF0YShub3JtYWxpemVkTmFtZSk7XG5cbiAgICAgIGlmICghbWV0YSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQ6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICAgIGNyZWF0ZWRBdDogbWV0YS5jcmVhdGVkX3RpbWUgPyBuZXcgRGF0ZShtZXRhLmNyZWF0ZWRfdGltZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHVwZGF0ZWRBdDogbWV0YS51cGRhdGVkX3RpbWUgPyBuZXcgRGF0ZShtZXRhLnVwZGF0ZWRfdGltZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhZ3M6IG1ldGEuY3VzdG9tX21ldGFkYXRhID8/IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKFxuICAgICAgICBlcnJvcj8ubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fFxuICAgICAgICBlcnJvcj8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoXCJub3QgZm91bmRcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogdW5rbm93bik6IEVycm9yIHtcbiAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvcjtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyLm1lc3NhZ2UgfHwgZXJyLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkaXNhYmxlZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJwZXJtaXNzaW9uXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJyYXRlIGxpbWl0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQyOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwicHJvdmlkZXJcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXZhaWxhYmxlXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25uZWN0aW9uXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ0aW1lb3V0XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=VaultSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvdmF1bHQvVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvdmF1bHQvY29uZmlnXG4gKiBAc3VtbWFyeSBWYXVsdCBzZWNyZXQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc2NoZW1hIGZvciB0aGUgSGFzaGlDb3JwIFZhdWx0IEtWIHYyIGludGVncmF0aW9uLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCJoYXNoaWNvcnAtdmF1bHRcIjtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB0b2tlbjogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -5,4 +5,4 @@
5
5
  */
6
6
  export * from "./VaultSecretService.js";
7
7
  export * from "./VaultSecretServiceConfig.js";
8
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy92YXVsdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsd0NBQXFDO0FBQ3JDLDhDQUEyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy92YXVsdFxuICogQHN1bW1hcnkgSGFzaGlDb3JwIFZhdWx0IHNlY3JldCBzZXJ2aWNlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgVmF1bHQgS1YgdjIgc2VydmljZSBhbmQgaXRzIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL1ZhdWx0U2VjcmV0U2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG4iXX0=
@@ -18,4 +18,4 @@ export function responseBodyAsText(value) {
18
18
  return String(value ?? "");
19
19
  }
20
20
  }
21
- //# sourceMappingURL=runtime.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsYUFBYSxDQUFJLEtBQWM7SUFDN0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQUUsT0FBTyxLQUFzQixDQUFDO0lBQzdELElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUNoQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYztJQUMvQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VKc29uQm9keTxUPih2YWx1ZTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSByZXR1cm4gdmFsdWUgYXMgVCB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSkgYXMgVDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzcG9uc2VCb2R5QXNUZXh0KHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHZhbHVlO1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSA/PyBcIlwiKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSA/PyBcIlwiKTtcbiAgfVxufVxuIl19
package/lib/esm/utils.js CHANGED
@@ -36,4 +36,4 @@ export async function execWithLogging(command, options, log, level = LogLevel.in
36
36
  });
37
37
  });
38
38
  }
39
- //# sourceMappingURL=utils.js.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsT0FBZSxFQUNmLE9BQXdCLEVBQ3hCLEdBQVcsRUFDWCxRQUFrQixRQUFRLENBQUMsSUFBSTtJQUUvQixHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVuQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFckMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDakMsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxRQUFRLENBQ1YsNEJBQTRCLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzNELENBQUM7Z0JBQ0YsTUFBTSxDQUNKLElBQUksYUFBYSxDQUNmLDRCQUE0QixJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN6RCxDQUNGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFO1lBQy9CLEdBQUcsQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3V0aWxzXG4gKiBAc3VtbWFyeSBTaGFyZWQgaW50ZWdyYXRpb24gdXRpbGl0aWVzLlxuICogQGRlc2NyaXB0aW9uIFV0aWxpdHkgaGVscGVycyB1c2VkIGFjcm9zcyB0aGUgaW50ZWdyYXRpb25zIHBhY2thZ2UuXG4gKi9cbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgTG9nZ2VyLCBMb2dMZXZlbCB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY1dpdGhMb2dnaW5nKFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgY3dkOiBzdHJpbmcgfSxcbiAgbG9nOiBMb2dnZXIsXG4gIGxldmVsOiBMb2dMZXZlbCA9IExvZ0xldmVsLmluZm9cbik6IFByb21pc2U8eyBzdGRvdXQ6IHN0cmluZzsgc3RkZXJyOiBzdHJpbmcgfT4ge1xuICBsb2cuZGVidWcoYEV4ZWN1dGluZzogJHtjb21tYW5kfWApO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgY2hpbGQgPSBleGVjKGNvbW1hbmQsIG9wdGlvbnMpO1xuXG4gICAgY29uc3Qgc3Rkb3V0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nW10gPSBbXTtcblxuICAgIGNoaWxkLnN0ZG91dD8ub24oXCJkYXRhXCIsIChkYXRhOiBzdHJpbmcpID0+IHtcbiAgICAgIHN0ZG91dC5wdXNoKGRhdGEpO1xuICAgICAgbG9nW2xldmVsXShkYXRhLnRyaW0oKSk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnI/Lm9uKFwiZGF0YVwiLCAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICBzdGRlcnIucHVzaChkYXRhKTtcbiAgICAgIGxvZy5kZWJ1ZyhkYXRhLnRyaW0oKSk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbihcImNsb3NlXCIsIChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIGxvZy5zaWxseShgQ29tbWFuZCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5YCk7XG4gICAgICAgIHJlc29sdmUoeyBzdGRvdXQ6IHN0ZG91dC5qb2luKFwiXFxuXCIpLCBzdGRlcnI6IHN0ZGVyci5qb2luKFwiXFxuXCIpIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmNyaXRpY2FsKFxuICAgICAgICAgIGBDb21tYW5kIGZhaWxlZCB3aXRoIGNvZGUgJHtjb2RlfTpcXG4gJHtzdGRlcnIuam9pbihcIlxcblwiKX1gXG4gICAgICAgICk7XG4gICAgICAgIHJlamVjdChcbiAgICAgICAgICBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBDb21tYW5kIGZhaWxlZCB3aXRoIGNvZGUgJHtjb2RlfTogJHtzdGRlcnIuam9pbihcIlxcblwiKX1gXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY2hpbGQub24oXCJlcnJvclwiLCAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgbG9nLmNyaXRpY2FsKGBDb21tYW5kIGV4ZWN1dGlvbiBlcnJvcmAsIGVycik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module integrations/graph/execution/CodeGraphNodeExecutor
3
+ * @summary Executor for the Code flow-control node (DECAF-32 §22.4, DECAF-34 §7.5).
4
+ * @description Executes user-authored JS/TS in a restricted sandbox via the
5
+ * pluggable {@link CodeSandboxEvaluator}. The sandbox enforces the Code Node
6
+ * restrictions: no imports, no requires, pure functions only (no system API
7
+ * access). The executor reads the code from the node's `code` input port
8
+ * (spliced from {@link CodeInputSchema}), the timeout from the node's graph
9
+ * metadata, resolves the sandbox context from the node's input values and
10
+ * execution context, invokes the evaluator, and returns the result on the
11
+ * `result` output port.
12
+ */
13
+ import type { GraphNodeExecutor } from "./GraphNodeExecutor.d.cts";
14
+ import type { GraphExecutionContext } from "./GraphExecutionContext.d.cts";
15
+ import type { CodeSandboxEvaluator } from "./CodeSandboxEvaluator.d.cts";
16
+ import type { GraphExecutionValues } from "../types.d.cts";
17
+ /**
18
+ * Executor for `core.flow.code` nodes.
19
+ *
20
+ * The Code Node runs user-authored JS/TS in a restricted sandbox. The engine
21
+ * does not implement the sandbox directly (§22.4); instead it delegates to the
22
+ * pluggable {@link CodeSandboxEvaluator} registered on the engine config. When
23
+ * no evaluator is registered, the executor throws
24
+ * `GRAPH_CODE_SANDBOX_NOT_CONFIGURED`.
25
+ *
26
+ * The code is read from the `code` input port (spliced from
27
+ * {@link CodeInputSchema}). The language is hardcoded to `"javascript"` for
28
+ * now (the `language` field on `CodeInputSchema` has no `@input` so it is not
29
+ * a port and not wired). The timeout is read from `graph.metadata.timeoutMs`.
30
+ *
31
+ * The sandbox context exposes:
32
+ * - `$input` — the full input values object (all resolved port values).
33
+ * - `$vars` — workflow variables (sourced from `context.metadata.vars`).
34
+ * - `$item` / `$index` — current loop item and index.
35
+ * - `$node` — outputs of upstream nodes.
36
+ * - `$output` — the current draft output.
37
+ *
38
+ * The evaluator's return value is forwarded verbatim on the `result` output
39
+ * port.
40
+ */
41
+ export declare class CodeGraphNodeExecutor implements GraphNodeExecutor {
42
+ private readonly engine?;
43
+ /**
44
+ * @param engine - The graph execution engine (or any object exposing the
45
+ * optional `codeSandboxEvaluator`). This mirrors the pattern used by
46
+ * {@link SwitchGraphNodeExecutor} for code conditions.
47
+ */
48
+ constructor(engine?: {
49
+ codeSandboxEvaluator?: CodeSandboxEvaluator;
50
+ } | undefined);
51
+ execute(input: GraphExecutionValues, context: GraphExecutionContext): Promise<GraphExecutionValues>;
52
+ /**
53
+ * Builds the {@link CodeSandboxContext} from the executor input and the
54
+ * graph execution context.
55
+ *
56
+ * The `$input` value is the full input values object so the code can access
57
+ * every resolved port value (including `code` itself via `$input.code`).
58
+ *
59
+ * The `$vars`, `$item`, `$index`, `$node`, and `$output` values are sourced
60
+ * from `context.metadata` — the engine (or a wrapping loop executor) may
61
+ * populate these when the Code node runs inside a loop body or a workflow
62
+ * with variables.
63
+ */
64
+ private buildSandboxContext;
65
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module integrations/graph/execution/CodeGraphNodeExecutor
3
+ * @summary Executor for the Code flow-control node (DECAF-32 §22.4, DECAF-34 §7.5).
4
+ * @description Executes user-authored JS/TS in a restricted sandbox via the
5
+ * pluggable {@link CodeSandboxEvaluator}. The sandbox enforces the Code Node
6
+ * restrictions: no imports, no requires, pure functions only (no system API
7
+ * access). The executor reads the code from the node's `code` input port
8
+ * (spliced from {@link CodeInputSchema}), the timeout from the node's graph
9
+ * metadata, resolves the sandbox context from the node's input values and
10
+ * execution context, invokes the evaluator, and returns the result on the
11
+ * `result` output port.
12
+ */
13
+ import type { GraphNodeExecutor } from "./GraphNodeExecutor.d.mts";
14
+ import type { GraphExecutionContext } from "./GraphExecutionContext.d.mts";
15
+ import type { CodeSandboxEvaluator } from "./CodeSandboxEvaluator.d.mts";
16
+ import type { GraphExecutionValues } from "../types.d.mts";
17
+ /**
18
+ * Executor for `core.flow.code` nodes.
19
+ *
20
+ * The Code Node runs user-authored JS/TS in a restricted sandbox. The engine
21
+ * does not implement the sandbox directly (§22.4); instead it delegates to the
22
+ * pluggable {@link CodeSandboxEvaluator} registered on the engine config. When
23
+ * no evaluator is registered, the executor throws
24
+ * `GRAPH_CODE_SANDBOX_NOT_CONFIGURED`.
25
+ *
26
+ * The code is read from the `code` input port (spliced from
27
+ * {@link CodeInputSchema}). The language is hardcoded to `"javascript"` for
28
+ * now (the `language` field on `CodeInputSchema` has no `@input` so it is not
29
+ * a port and not wired). The timeout is read from `graph.metadata.timeoutMs`.
30
+ *
31
+ * The sandbox context exposes:
32
+ * - `$input` — the full input values object (all resolved port values).
33
+ * - `$vars` — workflow variables (sourced from `context.metadata.vars`).
34
+ * - `$item` / `$index` — current loop item and index.
35
+ * - `$node` — outputs of upstream nodes.
36
+ * - `$output` — the current draft output.
37
+ *
38
+ * The evaluator's return value is forwarded verbatim on the `result` output
39
+ * port.
40
+ */
41
+ export declare class CodeGraphNodeExecutor implements GraphNodeExecutor {
42
+ private readonly engine?;
43
+ /**
44
+ * @param engine - The graph execution engine (or any object exposing the
45
+ * optional `codeSandboxEvaluator`). This mirrors the pattern used by
46
+ * {@link SwitchGraphNodeExecutor} for code conditions.
47
+ */
48
+ constructor(engine?: {
49
+ codeSandboxEvaluator?: CodeSandboxEvaluator;
50
+ } | undefined);
51
+ execute(input: GraphExecutionValues, context: GraphExecutionContext): Promise<GraphExecutionValues>;
52
+ /**
53
+ * Builds the {@link CodeSandboxContext} from the executor input and the
54
+ * graph execution context.
55
+ *
56
+ * The `$input` value is the full input values object so the code can access
57
+ * every resolved port value (including `code` itself via `$input.code`).
58
+ *
59
+ * The `$vars`, `$item`, `$index`, `$node`, and `$output` values are sourced
60
+ * from `context.metadata` — the engine (or a wrapping loop executor) may
61
+ * populate these when the Code node runs inside a loop body or a workflow
62
+ * with variables.
63
+ */
64
+ private buildSandboxContext;
65
+ }
@@ -32,6 +32,29 @@ export interface CodeSandboxContext {
32
32
  index?: number;
33
33
  /** Outputs of upstream nodes, accessible as `$node["Name"].output`. */
34
34
  nodes?: Record<string, Record<string, unknown>>;
35
+ /**
36
+ * Optional logger that receives `console.log/warn/debug/error` calls from
37
+ * inside the sandbox. When provided, a `console` object is injected into
38
+ * the isolate whose methods forward to this logger.
39
+ */
40
+ logger?: SandboxLogger;
41
+ }
42
+ /**
43
+ * Minimal logger interface the sandbox can call without importing the full
44
+ * Decaf logging package (keeps the interface frontend-safe). Mirrors the
45
+ * methods on `@decaf-ts/logging`'s `Logger`.
46
+ */
47
+ export interface SandboxLogger {
48
+ benchmark(msg: string, meta?: unknown): void;
49
+ fatal(msg: string, meta?: unknown): void;
50
+ critical(msg: string, meta?: unknown): void;
51
+ silly(msg: string, meta?: unknown): void;
52
+ verbose(msg: string, meta?: unknown): void;
53
+ info(msg: string, meta?: unknown): void;
54
+ debug(msg: string, meta?: unknown): void;
55
+ error(msg: string, meta?: unknown): void;
56
+ warn(msg: string, meta?: unknown): void;
57
+ trace(msg: string, meta?: unknown): void;
35
58
  }
36
59
  /**
37
60
  * Pluggable evaluator for code-based conditions and Code Node transforms.
@@ -32,6 +32,29 @@ export interface CodeSandboxContext {
32
32
  index?: number;
33
33
  /** Outputs of upstream nodes, accessible as `$node["Name"].output`. */
34
34
  nodes?: Record<string, Record<string, unknown>>;
35
+ /**
36
+ * Optional logger that receives `console.log/warn/debug/error` calls from
37
+ * inside the sandbox. When provided, a `console` object is injected into
38
+ * the isolate whose methods forward to this logger.
39
+ */
40
+ logger?: SandboxLogger;
41
+ }
42
+ /**
43
+ * Minimal logger interface the sandbox can call without importing the full
44
+ * Decaf logging package (keeps the interface frontend-safe). Mirrors the
45
+ * methods on `@decaf-ts/logging`'s `Logger`.
46
+ */
47
+ export interface SandboxLogger {
48
+ benchmark(msg: string, meta?: unknown): void;
49
+ fatal(msg: string, meta?: unknown): void;
50
+ critical(msg: string, meta?: unknown): void;
51
+ silly(msg: string, meta?: unknown): void;
52
+ verbose(msg: string, meta?: unknown): void;
53
+ info(msg: string, meta?: unknown): void;
54
+ debug(msg: string, meta?: unknown): void;
55
+ error(msg: string, meta?: unknown): void;
56
+ warn(msg: string, meta?: unknown): void;
57
+ trace(msg: string, meta?: unknown): void;
35
58
  }
36
59
  /**
37
60
  * Pluggable evaluator for code-based conditions and Code Node transforms.
@@ -93,6 +93,12 @@ export declare class GraphExecutionEngine implements Observable<[GraphExecutionO
93
93
  private executeNode;
94
94
  /**
95
95
  * Resolves a node's input values from incoming edges.
96
+ *
97
+ * When multiple edges target the same port, their values are spread into the
98
+ * top-level inputs keyed by each edge's `sourcePort`. This allows multiple
99
+ * workflow input badges to connect to a single port (e.g. the Code node's
100
+ * `data` port) and have all values accessible directly as
101
+ * `$input.{sourcePort}` (e.g. `$input.count`, `$input.text`).
96
102
  */
97
103
  private resolveNodeInputs;
98
104
  /**
@@ -93,6 +93,12 @@ export declare class GraphExecutionEngine implements Observable<[GraphExecutionO
93
93
  private executeNode;
94
94
  /**
95
95
  * Resolves a node's input values from incoming edges.
96
+ *
97
+ * When multiple edges target the same port, their values are spread into the
98
+ * top-level inputs keyed by each edge's `sourcePort`. This allows multiple
99
+ * workflow input badges to connect to a single port (e.g. the Code node's
100
+ * `data` port) and have all values accessible directly as
101
+ * `$input.{sourcePort}` (e.g. `$input.count`, `$input.text`).
96
102
  */
97
103
  private resolveNodeInputs;
98
104
  /**
@@ -0,0 +1,63 @@
1
+ import type { CodeSandboxEvaluator, CodeSandboxContext } from "./CodeSandboxEvaluator.d.cts";
2
+ /**
3
+ * `isolated-vm`-backed {@link CodeSandboxEvaluator} (ALFRED-5 §7.18).
4
+ *
5
+ * This evaluator provides a truly isolated V8 sandbox — the code runs in a
6
+ * separate isolate with its own heap, separate from the host process. The
7
+ * sandbox context exposes only the data variables (`$input`, `$vars`, `$item`,
8
+ * `$index`, `$node`, `$output`); no host globals are available.
9
+ *
10
+ * Execution pipeline:
11
+ * 1. **Transpile** — TypeScript code is transpiled to JavaScript via
12
+ * `typescript.transpileModule` (ALFRED-5 §7.4).
13
+ * 2. **Validate** — the JavaScript code is parsed with `acorn` and walked with
14
+ * `acorn-walk` to reject imports, exports, blocked identifiers, `eval()`,
15
+ * and `new Function()` (ALFRED-5 §7.11).
16
+ * 3. **Isolate** — a new `isolated-vm` `Isolate` is created with a memory
17
+ * limit. A context is created and the data variables are copied into the
18
+ * isolate's heap via `ExternalCopy`.
19
+ * 4. **Compile & run** — the wrapped code is compiled and executed with a
20
+ * timeout. The result is copied back to the host heap.
21
+ * 5. **Dispose** — the isolate is always disposed in a `finally` block.
22
+ *
23
+ * The user code is wrapped in a strict-mode async function:
24
+ *
25
+ * ```js
26
+ * "use strict";
27
+ * async function __userFunction($input, $vars, $item, $index, $node, $output) {
28
+ * <user code>
29
+ * }
30
+ * __userFunction($input, $vars, $item, $index, $node, $output);
31
+ * ```
32
+ *
33
+ * When the code has no `return` statement it is treated as a single expression
34
+ * and wrapped in `return (...)`.
35
+ */
36
+ export declare class IsolatedVmCodeSandboxEvaluator implements CodeSandboxEvaluator {
37
+ private readonly defaultTimeoutMs;
38
+ private readonly defaultMemoryMb;
39
+ /**
40
+ * @param defaultTimeoutMs - Default execution timeout in milliseconds.
41
+ * @param defaultMemoryMb - Default isolate memory limit in MB.
42
+ */
43
+ constructor(defaultTimeoutMs?: number, defaultMemoryMb?: number);
44
+ evaluate(ctx: CodeSandboxContext): Promise<unknown>;
45
+ /**
46
+ * Injects a `console` object into the isolate whose methods forward to the
47
+ * Context logger (bound to `runId`).
48
+ *
49
+ * Every standard `console.*` method is supported:
50
+ * `log`, `info`, `warn`, `error`, `debug`, `trace`, `dir`, `dirxml`,
51
+ * `table`, `group`, `groupCollapsed`, `groupEnd`, `time`, `timeEnd`,
52
+ * `timeLog`, `assert`, `count`, `countReset`, `clear`.
53
+ *
54
+ * Arguments are serialised inside the isolate (via `JSON.stringify` with a
55
+ * safe fallback) before being passed across the isolate boundary, because
56
+ * `isolated-vm` cannot copy arbitrary host objects.
57
+ *
58
+ * @param jail - The isolate's global object.
59
+ * @param logger - The Context logger that receives the forwarded calls.
60
+ * @param context - The isolate context (for running the init script).
61
+ */
62
+ private injectConsole;
63
+ }