@decaf-ts/integrations 0.14.0 → 0.14.3

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 (1166) hide show
  1. package/README.md +11 -1
  2. package/dist/integrations.cjs +3317 -2
  3. package/dist/integrations.js +3665 -2
  4. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/index.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  11. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  13. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  14. package/lib/cjs/blob/core/index.cjs +2 -2
  15. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
  16. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  17. package/lib/cjs/blob/gcp/index.cjs +2 -2
  18. package/lib/cjs/blob/index.cjs +2 -2
  19. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
  20. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  21. package/lib/cjs/blob/local/index.cjs +2 -2
  22. package/lib/cjs/blob/memory/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs +2 -2
  26. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
  28. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  29. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
  30. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  31. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
  32. package/lib/cjs/blob/s3/index.cjs +2 -2
  33. package/lib/cjs/calendar/CalendarService.cjs +2 -2
  34. package/lib/cjs/calendar/environment.cjs +2 -2
  35. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
  36. package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
  37. package/lib/cjs/calendar/index.cjs +2 -2
  38. package/lib/cjs/calendar/types.cjs +2 -2
  39. package/lib/cjs/calendar/validators/cron.cjs +2 -2
  40. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
  41. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
  42. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
  43. package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
  44. package/lib/cjs/comms/discord/index.cjs +2 -2
  45. package/lib/cjs/comms/email/EmailService.cjs +2 -2
  46. package/lib/cjs/comms/email/index.cjs +2 -2
  47. package/lib/cjs/comms/email/mime.cjs +2 -2
  48. package/lib/cjs/comms/email/smtp.cjs +2 -2
  49. package/lib/cjs/comms/environment.cjs +2 -2
  50. package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
  51. package/lib/cjs/comms/gmail/index.cjs +2 -2
  52. package/lib/cjs/comms/index.cjs +2 -2
  53. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
  54. package/lib/cjs/comms/outlook/index.cjs +2 -2
  55. package/lib/cjs/comms/slack/SlackService.cjs +2 -2
  56. package/lib/cjs/comms/slack/index.cjs +2 -2
  57. package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
  58. package/lib/cjs/comms/teams/index.cjs +2 -2
  59. package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
  60. package/lib/cjs/comms/telegram/index.cjs +2 -2
  61. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
  62. package/lib/cjs/comms/whatsapp/index.cjs +2 -2
  63. package/lib/cjs/devops/environment.cjs +2 -2
  64. package/lib/cjs/devops/github/GithubService.cjs +2 -2
  65. package/lib/cjs/devops/github/index.cjs +2 -2
  66. package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
  67. package/lib/cjs/devops/gitlab/index.cjs +2 -2
  68. package/lib/cjs/devops/index.cjs +2 -2
  69. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  70. package/lib/cjs/docker/index.cjs +2 -2
  71. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
  72. package/lib/cjs/feature-flags/constants.cjs +2 -2
  73. package/lib/cjs/feature-flags/decorators.cjs +2 -2
  74. package/lib/cjs/feature-flags/environment.cjs +2 -2
  75. package/lib/cjs/feature-flags/index.cjs +2 -2
  76. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
  77. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
  78. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
  79. package/lib/cjs/feature-flags/readers/index.cjs +2 -2
  80. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
  81. package/lib/cjs/feature-flags/types.cjs +2 -2
  82. package/lib/cjs/feature-flags/utils.cjs +2 -2
  83. package/lib/cjs/index.cjs +5 -5
  84. package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
  85. package/lib/cjs/io/airtable/index.cjs +2 -2
  86. package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
  87. package/lib/cjs/io/confluence/index.cjs +2 -2
  88. package/lib/cjs/io/environment.cjs +2 -2
  89. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
  90. package/lib/cjs/io/google-docs/index.cjs +2 -2
  91. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
  92. package/lib/cjs/io/google-sheets/index.cjs +2 -2
  93. package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
  94. package/lib/cjs/io/graphql/index.cjs +2 -2
  95. package/lib/cjs/io/index.cjs +2 -2
  96. package/lib/cjs/io/jira/JiraService.cjs +2 -2
  97. package/lib/cjs/io/jira/index.cjs +2 -2
  98. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
  99. package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
  100. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
  101. package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
  102. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
  103. package/lib/cjs/io/spreadsheet/index.cjs +2 -2
  104. package/lib/cjs/keycloak/broker.cjs +2 -2
  105. package/lib/cjs/keycloak/index.cjs +2 -2
  106. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  107. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  108. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  109. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  110. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  111. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  112. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  113. package/lib/cjs/keycloak/services/index.cjs +2 -2
  114. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  115. package/lib/cjs/keycloak/types.cjs +2 -2
  116. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
  117. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
  118. package/lib/cjs/kibana/builders/index.cjs +2 -2
  119. package/lib/cjs/kibana/helpers.cjs +2 -2
  120. package/lib/cjs/kibana/index.cjs +2 -2
  121. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  122. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  123. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  124. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  125. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  126. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  127. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  128. package/lib/cjs/kibana/services/index.cjs +2 -2
  129. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  130. package/lib/cjs/kibana/types.cjs +2 -2
  131. package/lib/cjs/loader/ObjectLoader.cjs +2 -2
  132. package/lib/cjs/loader/assets.cjs +2 -2
  133. package/lib/cjs/loader/config.cjs +2 -2
  134. package/lib/cjs/loader/families.cjs +2 -2
  135. package/lib/cjs/loader/index.cjs +2 -2
  136. package/lib/cjs/loader/nest.cjs +2 -2
  137. package/lib/cjs/loader/types.cjs +2 -2
  138. package/lib/cjs/namespaces/index.cjs +2 -2
  139. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  140. package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
  141. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  142. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  143. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  144. package/lib/cjs/namespaces/models/index.cjs +2 -2
  145. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  146. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  147. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  148. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  149. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  150. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  151. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  152. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  153. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  154. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  155. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  156. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  157. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  158. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  159. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  160. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  161. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  162. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  163. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  164. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  165. package/lib/cjs/namespaces/rls/index.cjs +2 -2
  166. package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
  167. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
  168. package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
  169. package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
  170. package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
  171. package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
  172. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  173. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  174. package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
  175. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  176. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  177. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  178. package/lib/cjs/namespaces/services/index.cjs +2 -2
  179. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  180. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  181. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  182. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  183. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  184. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  185. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  186. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  187. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  188. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  189. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  190. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  191. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  192. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  193. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  194. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  195. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  196. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  197. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  198. package/lib/cjs/namespaces/types.cjs +2 -2
  199. package/lib/cjs/namespaces/utils.cjs +2 -2
  200. package/lib/cjs/nest/decorators.cjs +2 -2
  201. package/lib/cjs/nest/index.cjs +2 -2
  202. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  203. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  204. package/lib/cjs/nest/logging.cjs +2 -2
  205. package/lib/cjs/nest/types.cjs +2 -2
  206. package/lib/cjs/nest/utils.cjs +2 -2
  207. package/lib/cjs/plugins/contract.cjs +2 -2
  208. package/lib/cjs/plugins/index.cjs +2 -2
  209. package/lib/cjs/plugins/kibana/host.cjs +2 -2
  210. package/lib/cjs/plugins/kibana/index.cjs +2 -2
  211. package/lib/cjs/plugins/kibana/installer.cjs +2 -2
  212. package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
  213. package/lib/cjs/plugins/kibana/templates.cjs +2 -2
  214. package/lib/cjs/plugins/kibana/types.cjs +2 -2
  215. package/lib/cjs/plugins/superset/host.cjs +2 -2
  216. package/lib/cjs/plugins/superset/index.cjs +2 -2
  217. package/lib/cjs/plugins/superset/installer.cjs +2 -2
  218. package/lib/cjs/plugins/superset/manifest.cjs +2 -2
  219. package/lib/cjs/plugins/superset/templates.cjs +2 -2
  220. package/lib/cjs/plugins/superset/types.cjs +2 -2
  221. package/lib/cjs/redis/RedisContextLock.cjs +2 -2
  222. package/lib/cjs/redis/RedisDispatch.cjs +2 -2
  223. package/lib/cjs/redis/RedisPaginator.cjs +2 -2
  224. package/lib/cjs/redis/RedisStatement.cjs +2 -2
  225. package/lib/cjs/redis/adapter.cjs +2 -2
  226. package/lib/cjs/redis/constants.cjs +2 -2
  227. package/lib/cjs/redis/handlers.cjs +2 -2
  228. package/lib/cjs/redis/index.cjs +2 -2
  229. package/lib/cjs/redis/serialization.cjs +2 -2
  230. package/lib/cjs/redis/types.cjs +2 -2
  231. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
  232. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
  233. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  234. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  235. package/lib/cjs/secrets/aws/index.cjs +2 -2
  236. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  237. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  238. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
  239. package/lib/cjs/secrets/azure/index.cjs +2 -2
  240. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
  241. package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
  242. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  243. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  244. package/lib/cjs/secrets/core/SecretReference.cjs +3 -2
  245. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  246. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  247. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  248. package/lib/cjs/secrets/core/index.cjs +2 -2
  249. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
  250. package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
  251. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
  252. package/lib/cjs/secrets/fs/index.cjs +2 -2
  253. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
  254. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  255. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  256. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  257. package/lib/cjs/secrets/index.cjs +2 -2
  258. package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
  259. package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
  260. package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
  261. package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
  262. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  263. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
  264. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  265. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  266. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  267. package/lib/cjs/secrets/model/index.cjs +2 -2
  268. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
  269. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  270. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  271. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  272. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
  273. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  274. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  275. package/lib/cjs/secrets/vault/index.cjs +2 -2
  276. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
  277. package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
  278. package/lib/cjs/sftp/aws/index.cjs +24 -0
  279. package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
  280. package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
  281. package/lib/cjs/sftp/core/index.cjs +2 -2
  282. package/lib/cjs/sftp/index.cjs +2 -2
  283. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
  284. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
  285. package/lib/cjs/sftp/ssh2/index.cjs +24 -0
  286. package/lib/cjs/shared/environmentValue.cjs +2 -2
  287. package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
  288. package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
  289. package/lib/cjs/shared/http/index.cjs +2 -2
  290. package/lib/cjs/shared/runtime.cjs +2 -2
  291. package/lib/cjs/user-requests/index.cjs +2 -2
  292. package/lib/cjs/utils.cjs +2 -2
  293. package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
  294. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  295. package/lib/esm/blob/azure/index.js +1 -1
  296. package/lib/esm/blob/core/BlobEnvironment.js +1 -1
  297. package/lib/esm/blob/core/BlobErrors.js +1 -1
  298. package/lib/esm/blob/core/BlobKey.js +1 -1
  299. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  300. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  301. package/lib/esm/blob/core/BlobTypes.js +1 -1
  302. package/lib/esm/blob/core/BlobValue.js +1 -1
  303. package/lib/esm/blob/core/index.js +1 -1
  304. package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
  305. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  306. package/lib/esm/blob/gcp/index.js +1 -1
  307. package/lib/esm/blob/index.js +1 -1
  308. package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
  309. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  310. package/lib/esm/blob/local/index.js +1 -1
  311. package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
  312. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  313. package/lib/esm/blob/memory/index.js +1 -1
  314. package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
  315. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  316. package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
  317. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  318. package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
  319. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  320. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
  321. package/lib/esm/blob/s3/index.js +1 -1
  322. package/lib/esm/calendar/CalendarService.js +1 -1
  323. package/lib/esm/calendar/environment.js +1 -1
  324. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
  325. package/lib/esm/calendar/google-calendar/index.js +1 -1
  326. package/lib/esm/calendar/index.js +1 -1
  327. package/lib/esm/calendar/types.js +1 -1
  328. package/lib/esm/calendar/validators/cron.js +1 -1
  329. package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
  330. package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
  331. package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
  332. package/lib/esm/comms/discord/DiscordService.js +1 -1
  333. package/lib/esm/comms/discord/index.js +1 -1
  334. package/lib/esm/comms/email/EmailService.js +1 -1
  335. package/lib/esm/comms/email/index.js +1 -1
  336. package/lib/esm/comms/email/mime.js +1 -1
  337. package/lib/esm/comms/email/smtp.js +1 -1
  338. package/lib/esm/comms/environment.js +1 -1
  339. package/lib/esm/comms/gmail/GmailService.js +1 -1
  340. package/lib/esm/comms/gmail/index.js +1 -1
  341. package/lib/esm/comms/index.js +1 -1
  342. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
  343. package/lib/esm/comms/outlook/index.js +1 -1
  344. package/lib/esm/comms/slack/SlackService.js +1 -1
  345. package/lib/esm/comms/slack/index.js +1 -1
  346. package/lib/esm/comms/teams/TeamsService.js +1 -1
  347. package/lib/esm/comms/teams/index.js +1 -1
  348. package/lib/esm/comms/telegram/TelegramService.js +1 -1
  349. package/lib/esm/comms/telegram/index.js +1 -1
  350. package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
  351. package/lib/esm/comms/whatsapp/index.js +1 -1
  352. package/lib/esm/devops/environment.js +1 -1
  353. package/lib/esm/devops/github/GithubService.js +1 -1
  354. package/lib/esm/devops/github/index.js +1 -1
  355. package/lib/esm/devops/gitlab/GitlabService.js +1 -1
  356. package/lib/esm/devops/gitlab/index.js +1 -1
  357. package/lib/esm/devops/index.js +1 -1
  358. package/lib/esm/docker/DockerComposeService.js +1 -1
  359. package/lib/esm/docker/index.js +1 -1
  360. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
  361. package/lib/esm/feature-flags/constants.js +1 -1
  362. package/lib/esm/feature-flags/decorators.js +1 -1
  363. package/lib/esm/feature-flags/environment.js +1 -1
  364. package/lib/esm/feature-flags/index.js +1 -1
  365. package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
  366. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
  367. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
  368. package/lib/esm/feature-flags/readers/index.js +1 -1
  369. package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
  370. package/lib/esm/feature-flags/types.js +1 -1
  371. package/lib/esm/feature-flags/utils.js +1 -1
  372. package/lib/esm/index.js +4 -4
  373. package/lib/esm/io/airtable/AirtableService.js +1 -1
  374. package/lib/esm/io/airtable/index.js +1 -1
  375. package/lib/esm/io/confluence/ConfluenceService.js +1 -1
  376. package/lib/esm/io/confluence/index.js +1 -1
  377. package/lib/esm/io/environment.js +1 -1
  378. package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
  379. package/lib/esm/io/google-docs/index.js +1 -1
  380. package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
  381. package/lib/esm/io/google-sheets/index.js +1 -1
  382. package/lib/esm/io/graphql/GraphqlService.js +1 -1
  383. package/lib/esm/io/graphql/index.js +1 -1
  384. package/lib/esm/io/index.js +1 -1
  385. package/lib/esm/io/jira/JiraService.js +1 -1
  386. package/lib/esm/io/jira/index.js +1 -1
  387. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
  388. package/lib/esm/io/microsoft-excel/index.js +1 -1
  389. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
  390. package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
  391. package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
  392. package/lib/esm/io/spreadsheet/index.js +1 -1
  393. package/lib/esm/keycloak/broker.js +1 -1
  394. package/lib/esm/keycloak/index.js +1 -1
  395. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  396. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  397. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  398. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  399. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  400. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  401. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  402. package/lib/esm/keycloak/services/index.js +1 -1
  403. package/lib/esm/keycloak/services/runtime.js +1 -1
  404. package/lib/esm/keycloak/types.js +1 -1
  405. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
  406. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
  407. package/lib/esm/kibana/builders/index.js +1 -1
  408. package/lib/esm/kibana/helpers.js +1 -1
  409. package/lib/esm/kibana/index.js +1 -1
  410. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  411. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  412. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  413. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  414. package/lib/esm/kibana/services/KibanaService.js +1 -1
  415. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  416. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  417. package/lib/esm/kibana/services/index.js +1 -1
  418. package/lib/esm/kibana/services/runtime.js +1 -1
  419. package/lib/esm/kibana/types.js +1 -1
  420. package/lib/esm/loader/ObjectLoader.js +1 -1
  421. package/lib/esm/loader/assets.js +1 -1
  422. package/lib/esm/loader/config.js +1 -1
  423. package/lib/esm/loader/families.js +1 -1
  424. package/lib/esm/loader/index.js +1 -1
  425. package/lib/esm/loader/nest.js +1 -1
  426. package/lib/esm/loader/types.js +1 -1
  427. package/lib/esm/namespaces/index.js +1 -1
  428. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  429. package/lib/esm/namespaces/models/credential.model.js +1 -1
  430. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  431. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  432. package/lib/esm/namespaces/models/group.model.js +1 -1
  433. package/lib/esm/namespaces/models/index.js +1 -1
  434. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  435. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  436. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  437. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  438. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  439. package/lib/esm/namespaces/models/permission.model.js +1 -1
  440. package/lib/esm/namespaces/models/principal.model.js +1 -1
  441. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  442. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  443. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  444. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  445. package/lib/esm/namespaces/models/role.model.js +1 -1
  446. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  447. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  448. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  449. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  450. package/lib/esm/namespaces/models/user.model.js +1 -1
  451. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  452. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  453. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  454. package/lib/esm/namespaces/rls/index.js +1 -1
  455. package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
  456. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
  457. package/lib/esm/namespaces/rls/rls.constants.js +1 -1
  458. package/lib/esm/namespaces/rls/rls.template.js +1 -1
  459. package/lib/esm/namespaces/rls/rls.types.js +1 -1
  460. package/lib/esm/namespaces/rls/session-binding.js +1 -1
  461. package/lib/esm/namespaces/services/authz.service.js +1 -1
  462. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  463. package/lib/esm/namespaces/services/credential.service.js +1 -1
  464. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  465. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  466. package/lib/esm/namespaces/services/group.service.js +1 -1
  467. package/lib/esm/namespaces/services/index.js +1 -1
  468. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  469. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  470. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  471. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  472. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  473. package/lib/esm/namespaces/services/permission.service.js +1 -1
  474. package/lib/esm/namespaces/services/principal.service.js +1 -1
  475. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  476. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  477. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  478. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  479. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  480. package/lib/esm/namespaces/services/role.service.js +1 -1
  481. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  482. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  483. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  484. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  485. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  486. package/lib/esm/namespaces/services/user.service.js +1 -1
  487. package/lib/esm/namespaces/types.js +1 -1
  488. package/lib/esm/namespaces/utils.js +1 -1
  489. package/lib/esm/nest/decorators.js +1 -1
  490. package/lib/esm/nest/index.js +1 -1
  491. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  492. package/lib/esm/nest/keycloakModule.js +1 -1
  493. package/lib/esm/nest/logging.js +1 -1
  494. package/lib/esm/nest/types.js +1 -1
  495. package/lib/esm/nest/utils.js +1 -1
  496. package/lib/esm/plugins/contract.js +1 -1
  497. package/lib/esm/plugins/index.js +1 -1
  498. package/lib/esm/plugins/kibana/host.js +1 -1
  499. package/lib/esm/plugins/kibana/index.js +1 -1
  500. package/lib/esm/plugins/kibana/installer.js +1 -1
  501. package/lib/esm/plugins/kibana/manifest.js +1 -1
  502. package/lib/esm/plugins/kibana/templates.js +1 -1
  503. package/lib/esm/plugins/kibana/types.js +1 -1
  504. package/lib/esm/plugins/superset/host.js +1 -1
  505. package/lib/esm/plugins/superset/index.js +1 -1
  506. package/lib/esm/plugins/superset/installer.js +1 -1
  507. package/lib/esm/plugins/superset/manifest.js +1 -1
  508. package/lib/esm/plugins/superset/templates.js +1 -1
  509. package/lib/esm/plugins/superset/types.js +1 -1
  510. package/lib/esm/redis/RedisContextLock.js +1 -1
  511. package/lib/esm/redis/RedisDispatch.js +1 -1
  512. package/lib/esm/redis/RedisPaginator.js +1 -1
  513. package/lib/esm/redis/RedisStatement.js +1 -1
  514. package/lib/esm/redis/adapter.js +1 -1
  515. package/lib/esm/redis/constants.js +1 -1
  516. package/lib/esm/redis/handlers.js +1 -1
  517. package/lib/esm/redis/index.js +1 -1
  518. package/lib/esm/redis/serialization.js +1 -1
  519. package/lib/esm/redis/types.js +1 -1
  520. package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
  521. package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
  522. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  523. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  524. package/lib/esm/secrets/aws/index.js +1 -1
  525. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  526. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  527. package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
  528. package/lib/esm/secrets/azure/index.js +1 -1
  529. package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
  530. package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
  531. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  532. package/lib/esm/secrets/core/SecretName.js +1 -1
  533. package/lib/esm/secrets/core/SecretReference.js +2 -1
  534. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  535. package/lib/esm/secrets/core/SecretService.js +1 -1
  536. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  537. package/lib/esm/secrets/core/index.js +1 -1
  538. package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
  539. package/lib/esm/secrets/fs/FsSecretService.js +1 -1
  540. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
  541. package/lib/esm/secrets/fs/index.js +1 -1
  542. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
  543. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  544. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  545. package/lib/esm/secrets/gcp/index.js +1 -1
  546. package/lib/esm/secrets/index.js +1 -1
  547. package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +30 -0
  548. package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
  549. package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
  550. package/lib/esm/secrets/kubernetes/index.js +10 -0
  551. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  552. package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
  553. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  554. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  555. package/lib/esm/secrets/model/Secret.js +1 -1
  556. package/lib/esm/secrets/model/index.js +1 -1
  557. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
  558. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  559. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  560. package/lib/esm/secrets/onepassword/index.js +1 -1
  561. package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
  562. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  563. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  564. package/lib/esm/secrets/vault/index.js +1 -1
  565. package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
  566. package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
  567. package/lib/esm/sftp/aws/index.js +7 -0
  568. package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
  569. package/lib/esm/sftp/core/SftpSource.js +1 -1
  570. package/lib/esm/sftp/core/index.js +1 -1
  571. package/lib/esm/sftp/index.js +1 -1
  572. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
  573. package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
  574. package/lib/esm/sftp/ssh2/index.js +7 -0
  575. package/lib/esm/shared/environmentValue.js +1 -1
  576. package/lib/esm/shared/http/HttpApiService.js +1 -1
  577. package/lib/esm/shared/http/hermeticBoot.js +1 -1
  578. package/lib/esm/shared/http/index.js +1 -1
  579. package/lib/esm/shared/runtime.js +1 -1
  580. package/lib/esm/user-requests/index.js +1 -1
  581. package/lib/esm/utils.js +1 -1
  582. package/lib/types/index.d.cts +2 -2
  583. package/lib/types/index.d.mts +2 -2
  584. package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
  585. package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
  586. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
  587. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
  588. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
  589. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
  590. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
  591. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
  592. package/lib/types/secrets/kubernetes/index.d.cts +9 -0
  593. package/lib/types/secrets/kubernetes/index.d.mts +9 -0
  594. package/lib/types/sftp/aws/index.d.cts +6 -0
  595. package/lib/types/sftp/aws/index.d.mts +6 -0
  596. package/lib/types/sftp/ssh2/index.d.cts +6 -0
  597. package/lib/types/sftp/ssh2/index.d.mts +6 -0
  598. package/package.json +180 -55
  599. package/dist/integrations.cjs.map +0 -1
  600. package/dist/integrations.js.map +0 -1
  601. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +0 -1
  602. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  603. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  604. package/lib/cjs/blob/core/BlobEnvironment.cjs.map +0 -1
  605. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  606. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  607. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  608. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  609. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  610. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  611. package/lib/cjs/blob/core/index.cjs.map +0 -1
  612. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +0 -1
  613. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  614. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  615. package/lib/cjs/blob/index.cjs.map +0 -1
  616. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +0 -1
  617. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  618. package/lib/cjs/blob/local/index.cjs.map +0 -1
  619. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +0 -1
  620. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  621. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  622. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +0 -1
  623. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  624. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
  625. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  626. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
  627. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  628. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
  629. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  630. package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
  631. package/lib/cjs/calendar/environment.cjs.map +0 -1
  632. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
  633. package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
  634. package/lib/cjs/calendar/index.cjs.map +0 -1
  635. package/lib/cjs/calendar/types.cjs.map +0 -1
  636. package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
  637. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
  638. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
  639. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
  640. package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
  641. package/lib/cjs/comms/discord/index.cjs.map +0 -1
  642. package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
  643. package/lib/cjs/comms/email/index.cjs.map +0 -1
  644. package/lib/cjs/comms/email/mime.cjs.map +0 -1
  645. package/lib/cjs/comms/email/smtp.cjs.map +0 -1
  646. package/lib/cjs/comms/environment.cjs.map +0 -1
  647. package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
  648. package/lib/cjs/comms/gmail/index.cjs.map +0 -1
  649. package/lib/cjs/comms/index.cjs.map +0 -1
  650. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
  651. package/lib/cjs/comms/outlook/index.cjs.map +0 -1
  652. package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
  653. package/lib/cjs/comms/slack/index.cjs.map +0 -1
  654. package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
  655. package/lib/cjs/comms/teams/index.cjs.map +0 -1
  656. package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
  657. package/lib/cjs/comms/telegram/index.cjs.map +0 -1
  658. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
  659. package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
  660. package/lib/cjs/devops/environment.cjs.map +0 -1
  661. package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
  662. package/lib/cjs/devops/github/index.cjs.map +0 -1
  663. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
  664. package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
  665. package/lib/cjs/devops/index.cjs.map +0 -1
  666. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  667. package/lib/cjs/docker/index.cjs.map +0 -1
  668. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
  669. package/lib/cjs/feature-flags/constants.cjs.map +0 -1
  670. package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
  671. package/lib/cjs/feature-flags/environment.cjs.map +0 -1
  672. package/lib/cjs/feature-flags/index.cjs.map +0 -1
  673. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
  674. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
  675. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
  676. package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
  677. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
  678. package/lib/cjs/feature-flags/types.cjs.map +0 -1
  679. package/lib/cjs/feature-flags/utils.cjs.map +0 -1
  680. package/lib/cjs/index.cjs.map +0 -1
  681. package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
  682. package/lib/cjs/io/airtable/index.cjs.map +0 -1
  683. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
  684. package/lib/cjs/io/confluence/index.cjs.map +0 -1
  685. package/lib/cjs/io/environment.cjs.map +0 -1
  686. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
  687. package/lib/cjs/io/google-docs/index.cjs.map +0 -1
  688. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
  689. package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
  690. package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
  691. package/lib/cjs/io/graphql/index.cjs.map +0 -1
  692. package/lib/cjs/io/index.cjs.map +0 -1
  693. package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
  694. package/lib/cjs/io/jira/index.cjs.map +0 -1
  695. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
  696. package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
  697. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
  698. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
  699. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
  700. package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
  701. package/lib/cjs/keycloak/broker.cjs.map +0 -1
  702. package/lib/cjs/keycloak/index.cjs.map +0 -1
  703. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  704. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  705. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  706. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  707. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  708. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  709. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  710. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  711. package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
  712. package/lib/cjs/keycloak/types.cjs.map +0 -1
  713. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
  714. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
  715. package/lib/cjs/kibana/builders/index.cjs.map +0 -1
  716. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  717. package/lib/cjs/kibana/index.cjs.map +0 -1
  718. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  719. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  720. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  721. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  722. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  723. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  724. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  725. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  726. package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
  727. package/lib/cjs/kibana/types.cjs.map +0 -1
  728. package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
  729. package/lib/cjs/loader/assets.cjs.map +0 -1
  730. package/lib/cjs/loader/config.cjs.map +0 -1
  731. package/lib/cjs/loader/families.cjs.map +0 -1
  732. package/lib/cjs/loader/index.cjs.map +0 -1
  733. package/lib/cjs/loader/nest.cjs.map +0 -1
  734. package/lib/cjs/loader/types.cjs.map +0 -1
  735. package/lib/cjs/namespaces/index.cjs.map +0 -1
  736. package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
  737. package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
  738. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
  739. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
  740. package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
  741. package/lib/cjs/namespaces/models/index.cjs.map +0 -1
  742. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
  743. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
  744. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
  745. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
  746. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
  747. package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
  748. package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
  749. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
  750. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
  751. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
  752. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
  753. package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
  754. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
  755. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
  756. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
  757. package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
  758. package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
  759. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
  760. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
  761. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
  762. package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
  763. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
  764. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
  765. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
  766. package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
  767. package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
  768. package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
  769. package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
  770. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
  771. package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
  772. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
  773. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
  774. package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
  775. package/lib/cjs/namespaces/services/index.cjs.map +0 -1
  776. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
  777. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
  778. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
  779. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
  780. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
  781. package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
  782. package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
  783. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
  784. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
  785. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
  786. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
  787. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
  788. package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
  789. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
  790. package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
  791. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
  792. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
  793. package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
  794. package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
  795. package/lib/cjs/namespaces/types.cjs.map +0 -1
  796. package/lib/cjs/namespaces/utils.cjs.map +0 -1
  797. package/lib/cjs/nest/decorators.cjs.map +0 -1
  798. package/lib/cjs/nest/index.cjs.map +0 -1
  799. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  800. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  801. package/lib/cjs/nest/logging.cjs.map +0 -1
  802. package/lib/cjs/nest/types.cjs.map +0 -1
  803. package/lib/cjs/nest/utils.cjs.map +0 -1
  804. package/lib/cjs/plugins/contract.cjs.map +0 -1
  805. package/lib/cjs/plugins/index.cjs.map +0 -1
  806. package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
  807. package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
  808. package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
  809. package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
  810. package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
  811. package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
  812. package/lib/cjs/plugins/superset/host.cjs.map +0 -1
  813. package/lib/cjs/plugins/superset/index.cjs.map +0 -1
  814. package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
  815. package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
  816. package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
  817. package/lib/cjs/plugins/superset/types.cjs.map +0 -1
  818. package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
  819. package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
  820. package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
  821. package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
  822. package/lib/cjs/redis/adapter.cjs.map +0 -1
  823. package/lib/cjs/redis/constants.cjs.map +0 -1
  824. package/lib/cjs/redis/handlers.cjs.map +0 -1
  825. package/lib/cjs/redis/index.cjs.map +0 -1
  826. package/lib/cjs/redis/serialization.cjs.map +0 -1
  827. package/lib/cjs/redis/types.cjs.map +0 -1
  828. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
  829. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +0 -1
  830. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  831. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  832. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  833. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  834. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  835. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +0 -1
  836. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  837. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
  838. package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +0 -1
  839. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  840. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  841. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  842. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  843. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  844. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  845. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  846. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +0 -1
  847. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
  848. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
  849. package/lib/cjs/secrets/fs/index.cjs.map +0 -1
  850. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +0 -1
  851. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  852. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  853. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  854. package/lib/cjs/secrets/index.cjs.map +0 -1
  855. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  856. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +0 -1
  857. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  858. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  859. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  860. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  861. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +0 -1
  862. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  863. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  864. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  865. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +0 -1
  866. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  867. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  868. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  869. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
  870. package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
  871. package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
  872. package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
  873. package/lib/cjs/sftp/core/index.cjs.map +0 -1
  874. package/lib/cjs/sftp/index.cjs.map +0 -1
  875. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
  876. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
  877. package/lib/cjs/shared/environmentValue.cjs.map +0 -1
  878. package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
  879. package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
  880. package/lib/cjs/shared/http/index.cjs.map +0 -1
  881. package/lib/cjs/shared/runtime.cjs.map +0 -1
  882. package/lib/cjs/user-requests/index.cjs.map +0 -1
  883. package/lib/cjs/utils.cjs.map +0 -1
  884. package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +0 -1
  885. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  886. package/lib/esm/blob/azure/index.js.map +0 -1
  887. package/lib/esm/blob/core/BlobEnvironment.js.map +0 -1
  888. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  889. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  890. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  891. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  892. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  893. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  894. package/lib/esm/blob/core/index.js.map +0 -1
  895. package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +0 -1
  896. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  897. package/lib/esm/blob/gcp/index.js.map +0 -1
  898. package/lib/esm/blob/index.js.map +0 -1
  899. package/lib/esm/blob/local/LocalBlobEnvironment.js.map +0 -1
  900. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  901. package/lib/esm/blob/local/index.js.map +0 -1
  902. package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +0 -1
  903. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  904. package/lib/esm/blob/memory/index.js.map +0 -1
  905. package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +0 -1
  906. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  907. package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
  908. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  909. package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
  910. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  911. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
  912. package/lib/esm/blob/s3/index.js.map +0 -1
  913. package/lib/esm/calendar/CalendarService.js.map +0 -1
  914. package/lib/esm/calendar/environment.js.map +0 -1
  915. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
  916. package/lib/esm/calendar/google-calendar/index.js.map +0 -1
  917. package/lib/esm/calendar/index.js.map +0 -1
  918. package/lib/esm/calendar/types.js.map +0 -1
  919. package/lib/esm/calendar/validators/cron.js.map +0 -1
  920. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
  921. package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
  922. package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
  923. package/lib/esm/comms/discord/DiscordService.js.map +0 -1
  924. package/lib/esm/comms/discord/index.js.map +0 -1
  925. package/lib/esm/comms/email/EmailService.js.map +0 -1
  926. package/lib/esm/comms/email/index.js.map +0 -1
  927. package/lib/esm/comms/email/mime.js.map +0 -1
  928. package/lib/esm/comms/email/smtp.js.map +0 -1
  929. package/lib/esm/comms/environment.js.map +0 -1
  930. package/lib/esm/comms/gmail/GmailService.js.map +0 -1
  931. package/lib/esm/comms/gmail/index.js.map +0 -1
  932. package/lib/esm/comms/index.js.map +0 -1
  933. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
  934. package/lib/esm/comms/outlook/index.js.map +0 -1
  935. package/lib/esm/comms/slack/SlackService.js.map +0 -1
  936. package/lib/esm/comms/slack/index.js.map +0 -1
  937. package/lib/esm/comms/teams/TeamsService.js.map +0 -1
  938. package/lib/esm/comms/teams/index.js.map +0 -1
  939. package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
  940. package/lib/esm/comms/telegram/index.js.map +0 -1
  941. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
  942. package/lib/esm/comms/whatsapp/index.js.map +0 -1
  943. package/lib/esm/devops/environment.js.map +0 -1
  944. package/lib/esm/devops/github/GithubService.js.map +0 -1
  945. package/lib/esm/devops/github/index.js.map +0 -1
  946. package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
  947. package/lib/esm/devops/gitlab/index.js.map +0 -1
  948. package/lib/esm/devops/index.js.map +0 -1
  949. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  950. package/lib/esm/docker/index.js.map +0 -1
  951. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
  952. package/lib/esm/feature-flags/constants.js.map +0 -1
  953. package/lib/esm/feature-flags/decorators.js.map +0 -1
  954. package/lib/esm/feature-flags/environment.js.map +0 -1
  955. package/lib/esm/feature-flags/index.js.map +0 -1
  956. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
  957. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
  958. package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
  959. package/lib/esm/feature-flags/readers/index.js.map +0 -1
  960. package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
  961. package/lib/esm/feature-flags/types.js.map +0 -1
  962. package/lib/esm/feature-flags/utils.js.map +0 -1
  963. package/lib/esm/index.js.map +0 -1
  964. package/lib/esm/io/airtable/AirtableService.js.map +0 -1
  965. package/lib/esm/io/airtable/index.js.map +0 -1
  966. package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
  967. package/lib/esm/io/confluence/index.js.map +0 -1
  968. package/lib/esm/io/environment.js.map +0 -1
  969. package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
  970. package/lib/esm/io/google-docs/index.js.map +0 -1
  971. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
  972. package/lib/esm/io/google-sheets/index.js.map +0 -1
  973. package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
  974. package/lib/esm/io/graphql/index.js.map +0 -1
  975. package/lib/esm/io/index.js.map +0 -1
  976. package/lib/esm/io/jira/JiraService.js.map +0 -1
  977. package/lib/esm/io/jira/index.js.map +0 -1
  978. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
  979. package/lib/esm/io/microsoft-excel/index.js.map +0 -1
  980. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
  981. package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
  982. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
  983. package/lib/esm/io/spreadsheet/index.js.map +0 -1
  984. package/lib/esm/keycloak/broker.js.map +0 -1
  985. package/lib/esm/keycloak/index.js.map +0 -1
  986. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  987. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  988. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  989. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  990. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  991. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  992. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  993. package/lib/esm/keycloak/services/index.js.map +0 -1
  994. package/lib/esm/keycloak/services/runtime.js.map +0 -1
  995. package/lib/esm/keycloak/types.js.map +0 -1
  996. package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
  997. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
  998. package/lib/esm/kibana/builders/index.js.map +0 -1
  999. package/lib/esm/kibana/helpers.js.map +0 -1
  1000. package/lib/esm/kibana/index.js.map +0 -1
  1001. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  1002. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  1003. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  1004. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  1005. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  1006. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  1007. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  1008. package/lib/esm/kibana/services/index.js.map +0 -1
  1009. package/lib/esm/kibana/services/runtime.js.map +0 -1
  1010. package/lib/esm/kibana/types.js.map +0 -1
  1011. package/lib/esm/loader/ObjectLoader.js.map +0 -1
  1012. package/lib/esm/loader/assets.js.map +0 -1
  1013. package/lib/esm/loader/config.js.map +0 -1
  1014. package/lib/esm/loader/families.js.map +0 -1
  1015. package/lib/esm/loader/index.js.map +0 -1
  1016. package/lib/esm/loader/nest.js.map +0 -1
  1017. package/lib/esm/loader/types.js.map +0 -1
  1018. package/lib/esm/namespaces/index.js.map +0 -1
  1019. package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
  1020. package/lib/esm/namespaces/models/credential.model.js.map +0 -1
  1021. package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
  1022. package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
  1023. package/lib/esm/namespaces/models/group.model.js.map +0 -1
  1024. package/lib/esm/namespaces/models/index.js.map +0 -1
  1025. package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
  1026. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
  1027. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
  1028. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
  1029. package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
  1030. package/lib/esm/namespaces/models/permission.model.js.map +0 -1
  1031. package/lib/esm/namespaces/models/principal.model.js.map +0 -1
  1032. package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
  1033. package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
  1034. package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
  1035. package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
  1036. package/lib/esm/namespaces/models/role.model.js.map +0 -1
  1037. package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
  1038. package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
  1039. package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
  1040. package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
  1041. package/lib/esm/namespaces/models/user.model.js.map +0 -1
  1042. package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
  1043. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
  1044. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
  1045. package/lib/esm/namespaces/rls/index.js.map +0 -1
  1046. package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
  1047. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
  1048. package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
  1049. package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
  1050. package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
  1051. package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
  1052. package/lib/esm/namespaces/services/authz.service.js.map +0 -1
  1053. package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
  1054. package/lib/esm/namespaces/services/credential.service.js.map +0 -1
  1055. package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
  1056. package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
  1057. package/lib/esm/namespaces/services/group.service.js.map +0 -1
  1058. package/lib/esm/namespaces/services/index.js.map +0 -1
  1059. package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
  1060. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
  1061. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
  1062. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
  1063. package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
  1064. package/lib/esm/namespaces/services/permission.service.js.map +0 -1
  1065. package/lib/esm/namespaces/services/principal.service.js.map +0 -1
  1066. package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
  1067. package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
  1068. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
  1069. package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
  1070. package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
  1071. package/lib/esm/namespaces/services/role.service.js.map +0 -1
  1072. package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
  1073. package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
  1074. package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
  1075. package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
  1076. package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
  1077. package/lib/esm/namespaces/services/user.service.js.map +0 -1
  1078. package/lib/esm/namespaces/types.js.map +0 -1
  1079. package/lib/esm/namespaces/utils.js.map +0 -1
  1080. package/lib/esm/nest/decorators.js.map +0 -1
  1081. package/lib/esm/nest/index.js.map +0 -1
  1082. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  1083. package/lib/esm/nest/keycloakModule.js.map +0 -1
  1084. package/lib/esm/nest/logging.js.map +0 -1
  1085. package/lib/esm/nest/types.js.map +0 -1
  1086. package/lib/esm/nest/utils.js.map +0 -1
  1087. package/lib/esm/plugins/contract.js.map +0 -1
  1088. package/lib/esm/plugins/index.js.map +0 -1
  1089. package/lib/esm/plugins/kibana/host.js.map +0 -1
  1090. package/lib/esm/plugins/kibana/index.js.map +0 -1
  1091. package/lib/esm/plugins/kibana/installer.js.map +0 -1
  1092. package/lib/esm/plugins/kibana/manifest.js.map +0 -1
  1093. package/lib/esm/plugins/kibana/templates.js.map +0 -1
  1094. package/lib/esm/plugins/kibana/types.js.map +0 -1
  1095. package/lib/esm/plugins/superset/host.js.map +0 -1
  1096. package/lib/esm/plugins/superset/index.js.map +0 -1
  1097. package/lib/esm/plugins/superset/installer.js.map +0 -1
  1098. package/lib/esm/plugins/superset/manifest.js.map +0 -1
  1099. package/lib/esm/plugins/superset/templates.js.map +0 -1
  1100. package/lib/esm/plugins/superset/types.js.map +0 -1
  1101. package/lib/esm/redis/RedisContextLock.js.map +0 -1
  1102. package/lib/esm/redis/RedisDispatch.js.map +0 -1
  1103. package/lib/esm/redis/RedisPaginator.js.map +0 -1
  1104. package/lib/esm/redis/RedisStatement.js.map +0 -1
  1105. package/lib/esm/redis/adapter.js.map +0 -1
  1106. package/lib/esm/redis/constants.js.map +0 -1
  1107. package/lib/esm/redis/handlers.js.map +0 -1
  1108. package/lib/esm/redis/index.js.map +0 -1
  1109. package/lib/esm/redis/serialization.js.map +0 -1
  1110. package/lib/esm/redis/types.js.map +0 -1
  1111. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
  1112. package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +0 -1
  1113. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  1114. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  1115. package/lib/esm/secrets/aws/index.js.map +0 -1
  1116. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  1117. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  1118. package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +0 -1
  1119. package/lib/esm/secrets/azure/index.js.map +0 -1
  1120. package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
  1121. package/lib/esm/secrets/core/SecretEnvironment.js.map +0 -1
  1122. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  1123. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  1124. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  1125. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  1126. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  1127. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  1128. package/lib/esm/secrets/core/index.js.map +0 -1
  1129. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +0 -1
  1130. package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
  1131. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
  1132. package/lib/esm/secrets/fs/index.js.map +0 -1
  1133. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +0 -1
  1134. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  1135. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  1136. package/lib/esm/secrets/gcp/index.js.map +0 -1
  1137. package/lib/esm/secrets/index.js.map +0 -1
  1138. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  1139. package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +0 -1
  1140. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  1141. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  1142. package/lib/esm/secrets/model/Secret.js.map +0 -1
  1143. package/lib/esm/secrets/model/index.js.map +0 -1
  1144. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +0 -1
  1145. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  1146. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  1147. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  1148. package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +0 -1
  1149. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  1150. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  1151. package/lib/esm/secrets/vault/index.js.map +0 -1
  1152. package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +0 -1
  1153. package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
  1154. package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
  1155. package/lib/esm/sftp/core/SftpSource.js.map +0 -1
  1156. package/lib/esm/sftp/core/index.js.map +0 -1
  1157. package/lib/esm/sftp/index.js.map +0 -1
  1158. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
  1159. package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
  1160. package/lib/esm/shared/environmentValue.js.map +0 -1
  1161. package/lib/esm/shared/http/HttpApiService.js.map +0 -1
  1162. package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
  1163. package/lib/esm/shared/http/index.js.map +0 -1
  1164. package/lib/esm/shared/runtime.js.map +0 -1
  1165. package/lib/esm/user-requests/index.js.map +0 -1
  1166. package/lib/esm/utils.js.map +0 -1
@@ -0,0 +1,474 @@
1
+ import { ApiException, CoreV1Api, KubeConfig, } from "@kubernetes/client-node";
2
+ import { AuthorizationError } from "@decaf-ts/core";
3
+ import { ClientBasedSecretService, SecretError, } from "./../core/index.js";
4
+ import { validateSecretName, normalizeSecretName } from "./../core/index.js";
5
+ import { serializeSecretPayload, deserializeSecretPayload, } from "./../core/index.js";
6
+ import { KubernetesSecretEnvironment } from "./KubernetesSecretEnvironment.js";
7
+ import { envBoolean, envString } from "./../../shared/environmentValue.js";
8
+ import { BadRequestError, BaseError, ConflictError, InternalError, NotFoundError, } from "@decaf-ts/db-decorators";
9
+ const PAYLOAD_DATA_KEY = "payload";
10
+ const MANAGED_LABEL = "decaf-ts.io/managed";
11
+ const ANNOTATION_PREFIX = "decaf-ts.io/";
12
+ const ENCODING_ANNOTATION = `${ANNOTATION_PREFIX}encoding`;
13
+ const CONTENT_TYPE_ANNOTATION = `${ANNOTATION_PREFIX}content-type`;
14
+ const TAGS_ANNOTATION = `${ANNOTATION_PREFIX}tags`;
15
+ const VERSION_ANNOTATION = `${ANNOTATION_PREFIX}version`;
16
+ const UPDATED_AT_ANNOTATION = `${ANNOTATION_PREFIX}updated-at`;
17
+ const TENANT_ANNOTATION = `${ANNOTATION_PREFIX}tenant-id`;
18
+ const ORG_UNIT_ANNOTATION = `${ANNOTATION_PREFIX}org-unit-id`;
19
+ const OWNER_ANNOTATION = `${ANNOTATION_PREFIX}owner-principal-id`;
20
+ const DNS_SUBDOMAIN_PATTERN = /^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$/;
21
+ const DNS_LABEL_PATTERN = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;
22
+ function assertKubernetesName(name) {
23
+ if (name.length > 253 || !DNS_SUBDOMAIN_PATTERN.test(name)) {
24
+ throw new SecretError("SECRET_INVALID_NAME", `Invalid Kubernetes secret name: "${name}". Names must be lowercase DNS-1123 subdomains (letters, digits, '-', and '.').`);
25
+ }
26
+ }
27
+ function assertKubernetesNamespace(namespace) {
28
+ if (namespace.length > 63 || !DNS_LABEL_PATTERN.test(namespace)) {
29
+ throw new SecretError("SECRET_INVALID_NAME", `Invalid Kubernetes namespace: "${namespace}". Namespaces must be lowercase DNS-1123 labels.`);
30
+ }
31
+ }
32
+ function toDate(value) {
33
+ if (!value)
34
+ return undefined;
35
+ const date = value instanceof Date ? value : new Date(value);
36
+ return Number.isNaN(date.getTime()) ? undefined : date;
37
+ }
38
+ function parseTags(raw) {
39
+ if (!raw)
40
+ return undefined;
41
+ try {
42
+ const parsed = JSON.parse(raw);
43
+ return parsed && typeof parsed === "object"
44
+ ? parsed
45
+ : undefined;
46
+ }
47
+ catch {
48
+ return undefined;
49
+ }
50
+ }
51
+ /**
52
+ * @class KubernetesSecretService
53
+ * @summary Native Kubernetes Secrets backend.
54
+ * @description Implements the {@link SecretService} contract on top of
55
+ * namespaced Kubernetes `Secret` objects. Each DECAF secret is stored as an
56
+ * `Opaque` Secret whose `payload` data key holds the serialized
57
+ * {@link SerializedSecretPayload} envelope, while encoding, content type, tags,
58
+ * logical version, and ownership hints live in `decaf-ts.io/*` annotations.
59
+ *
60
+ * Authentication uses the standard Kubernetes client resolution order:
61
+ * explicit `server` credentials, an explicit `kubeconfig` path, `KUBECONFIG`,
62
+ * `~/.kube/config`, and finally the in-cluster service account.
63
+ */
64
+ export class KubernetesSecretService extends ClientBasedSecretService {
65
+ constructor() {
66
+ super(...arguments);
67
+ this.provider = "kubernetes";
68
+ }
69
+ configFromEnvironment() {
70
+ const env = KubernetesSecretEnvironment.secrets.kubernetes;
71
+ const namespace = envString(env?.namespace);
72
+ const kubeconfig = envString(env?.kubeconfig);
73
+ const context = envString(env?.context);
74
+ const server = envString(env?.server);
75
+ if (!namespace && !kubeconfig && !context && !server)
76
+ return undefined;
77
+ return {
78
+ provider: "kubernetes",
79
+ namespace,
80
+ kubeconfig,
81
+ context,
82
+ server,
83
+ token: envString(env.token),
84
+ tokenFile: envString(env.tokenFile),
85
+ caFile: envString(env.caFile),
86
+ caData: envString(env.caData),
87
+ certFile: envString(env.certFile),
88
+ keyFile: envString(env.keyFile),
89
+ certData: envString(env.certData),
90
+ keyData: envString(env.keyData),
91
+ skipTLSVerify: envBoolean(env.skipTLSVerify),
92
+ serviceAccount: envBoolean(env.serviceAccount),
93
+ };
94
+ }
95
+ async initialize(...args) {
96
+ const { log } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
97
+ const config = this.getConfigFromArgs(...args);
98
+ const kubeConfig = this.buildKubeConfig(config);
99
+ const namespace = this.resolveNamespace(config, kubeConfig);
100
+ const resolved = { ...config, namespace };
101
+ const client = kubeConfig.makeApiClient(CoreV1Api);
102
+ this._config = resolved;
103
+ this._client = client;
104
+ log.verbose(`Initialized Kubernetes secret service for namespace "${namespace}"`);
105
+ return { config: resolved, client };
106
+ }
107
+ async store(name, value, options = {}, ...args) {
108
+ const { log } = (await this.logCtx(args, "store", true)).for(this.store);
109
+ const normalizedName = this.normalizeName(name);
110
+ const namespace = this.resolveNamespaceOption(options.namespace);
111
+ log.verbose(`Storing secret ${normalizedName} in namespace ${namespace}`);
112
+ const serialized = serializeSecretPayload(value);
113
+ const body = this.buildSecret(normalizedName, namespace, serialized, options);
114
+ try {
115
+ await this.client.createNamespacedSecret({ namespace, body });
116
+ }
117
+ catch (error) {
118
+ if (this.statusOf(error) === 409) {
119
+ try {
120
+ const existing = await this.client.readNamespacedSecret({
121
+ name: normalizedName,
122
+ namespace,
123
+ });
124
+ body.metadata = {
125
+ ...(body.metadata || {}),
126
+ resourceVersion: existing.metadata?.resourceVersion,
127
+ };
128
+ await this.client.replaceNamespacedSecret({
129
+ name: normalizedName,
130
+ namespace,
131
+ body,
132
+ });
133
+ }
134
+ catch (replaceError) {
135
+ throw this.parseError(replaceError);
136
+ }
137
+ }
138
+ else {
139
+ throw this.parseError(error);
140
+ }
141
+ }
142
+ return {
143
+ provider: this.provider,
144
+ name: normalizedName,
145
+ namespace,
146
+ version: options.version,
147
+ uri: `kubernetes://${namespace}/${normalizedName}`,
148
+ };
149
+ }
150
+ async retrieve(nameOrRef, options = {}, ...args) {
151
+ const { log } = (await this.logCtx(args, "retrieve", true)).for(this.retrieve);
152
+ const { name, namespace, version } = this.resolveReference(nameOrRef, options);
153
+ log.verbose(`Retrieving secret ${name} from namespace ${namespace}`);
154
+ const secret = await this.readSecret(name, namespace);
155
+ this.assertVersion(secret, version);
156
+ const raw = secret.data?.[PAYLOAD_DATA_KEY];
157
+ if (!raw) {
158
+ throw new NotFoundError(`No secret value found for "${name}" in namespace "${namespace}"`);
159
+ }
160
+ let payload;
161
+ try {
162
+ payload = JSON.parse(Buffer.from(raw, "base64").toString("utf8"));
163
+ }
164
+ catch (error) {
165
+ throw new SecretError("SECRET_DESERIALIZATION_FAILED", `Failed to parse secret payload for "${name}": ${error.message}`, error);
166
+ }
167
+ return deserializeSecretPayload(payload);
168
+ }
169
+ async delete(nameOrRef, options = {}, ...args) {
170
+ const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
171
+ const { name, namespace, version } = this.resolveReference(nameOrRef, options);
172
+ log.verbose(`Deleting secret ${name} from namespace ${namespace}`);
173
+ if (version) {
174
+ const secret = await this.readSecret(name, namespace);
175
+ this.assertVersion(secret, version);
176
+ }
177
+ try {
178
+ await this.client.deleteNamespacedSecret({ name, namespace });
179
+ }
180
+ catch (error) {
181
+ throw this.parseError(error);
182
+ }
183
+ }
184
+ async exists(nameOrRef, options = {}, ...args) {
185
+ const { log } = (await this.logCtx(args, "exists", true)).for(this.exists);
186
+ const { name, namespace, version } = this.resolveReference(nameOrRef, options);
187
+ log.verbose(`Checking if secret ${name} exists in namespace ${namespace}`);
188
+ try {
189
+ const secret = await this.readSecret(name, namespace);
190
+ this.assertVersion(secret, version);
191
+ return true;
192
+ }
193
+ catch (error) {
194
+ if (error instanceof NotFoundError)
195
+ return false;
196
+ throw error;
197
+ }
198
+ }
199
+ async list(options = {}, ...args) {
200
+ const { log } = (await this.logCtx(args, "list", true)).for(this.list);
201
+ const namespace = this.resolveNamespaceOption(options.namespace);
202
+ log.verbose(`Listing secrets in namespace ${namespace}`);
203
+ const result = [];
204
+ let continueToken;
205
+ try {
206
+ do {
207
+ const response = await this.client.listNamespacedSecret({
208
+ namespace,
209
+ labelSelector: `${MANAGED_LABEL}=true`,
210
+ limit: 100,
211
+ _continue: continueToken,
212
+ });
213
+ for (const secret of response.items || []) {
214
+ result.push(this.toMetadata(secret, namespace));
215
+ }
216
+ continueToken = response.metadata?._continue;
217
+ } while (continueToken);
218
+ }
219
+ catch (error) {
220
+ throw this.parseError(error);
221
+ }
222
+ const filtered = result.filter((meta) => {
223
+ if (options.enabled === false)
224
+ return false;
225
+ if (!options.tags)
226
+ return true;
227
+ return Object.entries(options.tags).every(([key, value]) => meta.tags?.[key] === value);
228
+ });
229
+ const offset = options.offset ?? 0;
230
+ const end = typeof options.limit === "number" ? offset + options.limit : undefined;
231
+ return filtered.slice(offset, end);
232
+ }
233
+ async metadata(nameOrRef, options = {}, ...args) {
234
+ const { log } = (await this.logCtx(args, "metadata", true)).for(this.metadata);
235
+ const { name, namespace, version } = this.resolveReference(nameOrRef, options);
236
+ log.verbose(`Getting metadata for secret ${name} in namespace ${namespace}`);
237
+ try {
238
+ const secret = await this.readSecret(name, namespace);
239
+ this.assertVersion(secret, version);
240
+ return this.toMetadata(secret, namespace);
241
+ }
242
+ catch (error) {
243
+ if (error instanceof NotFoundError)
244
+ return undefined;
245
+ throw error;
246
+ }
247
+ }
248
+ async rotate(nameOrRef, value, options = {}, ...args) {
249
+ const { name, namespace } = this.resolveReference(nameOrRef, options);
250
+ return this.store(name, value, { version: options.newVersion, namespace }, ...args);
251
+ }
252
+ buildKubeConfig(config) {
253
+ const kubeConfig = new KubeConfig();
254
+ try {
255
+ if (config.serviceAccount) {
256
+ kubeConfig.loadFromCluster();
257
+ }
258
+ else if (config.server) {
259
+ const clusterName = "decaf-cluster";
260
+ const userName = "decaf-user";
261
+ const contextName = "decaf-context";
262
+ kubeConfig.loadFromOptions({
263
+ clusters: [
264
+ {
265
+ name: clusterName,
266
+ server: config.server,
267
+ caData: config.caData,
268
+ caFile: config.caFile,
269
+ skipTLSVerify: config.skipTLSVerify,
270
+ },
271
+ ],
272
+ users: [
273
+ {
274
+ name: userName,
275
+ token: config.token,
276
+ tokenFile: config.tokenFile,
277
+ certData: config.certData,
278
+ certFile: config.certFile,
279
+ keyData: config.keyData,
280
+ keyFile: config.keyFile,
281
+ },
282
+ ],
283
+ contexts: [
284
+ {
285
+ name: contextName,
286
+ cluster: clusterName,
287
+ user: userName,
288
+ namespace: config.namespace,
289
+ },
290
+ ],
291
+ currentContext: contextName,
292
+ });
293
+ }
294
+ else if (config.kubeconfig) {
295
+ kubeConfig.loadFromFile(config.kubeconfig);
296
+ }
297
+ else {
298
+ kubeConfig.loadFromDefault();
299
+ }
300
+ if (config.context) {
301
+ kubeConfig.setCurrentContext(config.context);
302
+ }
303
+ }
304
+ catch (error) {
305
+ throw this.parseError(error);
306
+ }
307
+ return kubeConfig;
308
+ }
309
+ resolveNamespace(config, kubeConfig) {
310
+ const namespace = config.namespace ||
311
+ kubeConfig.getContextObject(kubeConfig.getCurrentContext())?.namespace ||
312
+ "default";
313
+ assertKubernetesNamespace(namespace);
314
+ return namespace;
315
+ }
316
+ resolveNamespaceOption(namespace) {
317
+ const resolved = namespace || this.config.namespace || "default";
318
+ assertKubernetesNamespace(resolved);
319
+ return resolved;
320
+ }
321
+ resolveReference(nameOrRef, options) {
322
+ const name = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
323
+ const namespace = options.namespace ||
324
+ (typeof nameOrRef === "string" ? undefined : nameOrRef.namespace) ||
325
+ this.config.namespace ||
326
+ "default";
327
+ assertKubernetesNamespace(namespace);
328
+ const version = options.version ||
329
+ (typeof nameOrRef === "string" ? undefined : nameOrRef.version);
330
+ return { name: this.normalizeName(name), namespace, version };
331
+ }
332
+ normalizeName(name) {
333
+ try {
334
+ validateSecretName(name);
335
+ }
336
+ catch (error) {
337
+ throw this.parseError(error);
338
+ }
339
+ const normalizedName = normalizeSecretName(name);
340
+ assertKubernetesName(normalizedName);
341
+ return normalizedName;
342
+ }
343
+ buildSecret(name, namespace, serialized, options) {
344
+ const annotations = {
345
+ [ENCODING_ANNOTATION]: serialized.encoding,
346
+ [UPDATED_AT_ANNOTATION]: new Date().toISOString(),
347
+ };
348
+ if (options.contentType) {
349
+ annotations[CONTENT_TYPE_ANNOTATION] = options.contentType;
350
+ }
351
+ if (options.tags) {
352
+ annotations[TAGS_ANNOTATION] = JSON.stringify(options.tags);
353
+ }
354
+ if (options.version) {
355
+ annotations[VERSION_ANNOTATION] = options.version;
356
+ }
357
+ if (options.tenantId) {
358
+ annotations[TENANT_ANNOTATION] = options.tenantId;
359
+ }
360
+ if (options.orgUnitId) {
361
+ annotations[ORG_UNIT_ANNOTATION] = options.orgUnitId;
362
+ }
363
+ if (options.ownerPrincipalId) {
364
+ annotations[OWNER_ANNOTATION] = options.ownerPrincipalId;
365
+ }
366
+ return {
367
+ apiVersion: "v1",
368
+ kind: "Secret",
369
+ type: "Opaque",
370
+ metadata: {
371
+ name,
372
+ namespace,
373
+ labels: {
374
+ [MANAGED_LABEL]: "true",
375
+ },
376
+ annotations,
377
+ },
378
+ stringData: {
379
+ [PAYLOAD_DATA_KEY]: JSON.stringify(serialized),
380
+ },
381
+ };
382
+ }
383
+ async readSecret(name, namespace) {
384
+ try {
385
+ return await this.client.readNamespacedSecret({ name, namespace });
386
+ }
387
+ catch (error) {
388
+ throw this.parseError(error);
389
+ }
390
+ }
391
+ assertVersion(secret, version) {
392
+ if (!version)
393
+ return;
394
+ const stored = secret.metadata?.annotations?.[VERSION_ANNOTATION];
395
+ if (stored !== version) {
396
+ throw new NotFoundError(`Secret "${secret.metadata?.name}" version "${version}" not found`);
397
+ }
398
+ }
399
+ toMetadata(secret, namespace) {
400
+ const annotations = secret.metadata?.annotations || {};
401
+ const updatedAt = annotations[UPDATED_AT_ANNOTATION];
402
+ const name = secret.metadata?.name || "";
403
+ return {
404
+ provider: this.provider,
405
+ name,
406
+ version: annotations[VERSION_ANNOTATION],
407
+ createdAt: toDate(secret.metadata?.creationTimestamp),
408
+ updatedAt: updatedAt
409
+ ? new Date(updatedAt)
410
+ : toDate(secret.metadata?.creationTimestamp),
411
+ enabled: true,
412
+ contentType: annotations[CONTENT_TYPE_ANNOTATION],
413
+ tags: parseTags(annotations[TAGS_ANNOTATION]),
414
+ externalId: secret.metadata?.uid,
415
+ uri: `kubernetes://${namespace}/${name}`,
416
+ };
417
+ }
418
+ statusOf(error) {
419
+ if (error instanceof ApiException)
420
+ return error.code;
421
+ const candidate = error;
422
+ if (typeof candidate?.code === "number")
423
+ return candidate.code;
424
+ if (typeof candidate?.statusCode === "number") {
425
+ return candidate.statusCode;
426
+ }
427
+ return undefined;
428
+ }
429
+ messageOf(error) {
430
+ const err = error;
431
+ return err?.body?.message || err?.body?.reason || err?.message || err?.name || "Unknown error";
432
+ }
433
+ parseError(error) {
434
+ if (error instanceof BaseError)
435
+ return error;
436
+ const status = this.statusOf(error);
437
+ const message = this.messageOf(error);
438
+ const lowerMessage = message.toLowerCase();
439
+ if (status === 404 ||
440
+ lowerMessage.includes("not found") ||
441
+ lowerMessage.includes("404")) {
442
+ return new NotFoundError(message);
443
+ }
444
+ if (status === 409 ||
445
+ lowerMessage.includes("already exists") ||
446
+ lowerMessage.includes("conflict") ||
447
+ lowerMessage.includes("409")) {
448
+ return new ConflictError(message);
449
+ }
450
+ if (status === 401 || lowerMessage.includes("unauthorized")) {
451
+ return new AuthorizationError(`Authentication failed: ${message}`);
452
+ }
453
+ if (status === 403 || lowerMessage.includes("forbidden")) {
454
+ return new AuthorizationError(`Permission denied: ${message}`);
455
+ }
456
+ if (status === 400 ||
457
+ status === 422 ||
458
+ lowerMessage.includes("bad request")) {
459
+ return new BadRequestError(message);
460
+ }
461
+ if (status === 429 || lowerMessage.includes("rate limit")) {
462
+ return new SecretError("SECRET_PROVIDER_RATE_LIMITED", `Rate limited: ${message}`, error);
463
+ }
464
+ if (status === undefined ||
465
+ (status !== undefined && status >= 500) ||
466
+ lowerMessage.includes("connection") ||
467
+ lowerMessage.includes("timeout") ||
468
+ lowerMessage.includes("unavailable")) {
469
+ return new SecretError("SECRET_PROVIDER_UNAVAILABLE", `Provider unavailable: ${message}`, error);
470
+ }
471
+ return new InternalError(message);
472
+ }
473
+ }
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS3ViZXJuZXRlc1NlY3JldFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFdBQVcsR0FNWiwyQkFBMkI7QUFVNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQjtBQUM3RSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUV6QiwyQkFBMkI7QUFFNUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlDQUFzQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUNuQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUM1QyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUN6QyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQztBQUMzRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsaUJBQWlCLGNBQWMsQ0FBQztBQUNuRSxNQUFNLGVBQWUsR0FBRyxHQUFHLGlCQUFpQixNQUFNLENBQUM7QUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLGlCQUFpQixTQUFTLENBQUM7QUFDekQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLGlCQUFpQixZQUFZLENBQUM7QUFD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QWEsQ0FBQyxFQUNwQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxPQUFPLElBQUksV0FBVyxDQUNwQiw4QkFBOEIsRUFDOUIsaUJBQWlCLE9BQU8sRUFBRSxFQUMxQixLQUFjLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLE1BQU0sS0FBSyxTQUFTO1lBQ3BCLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLElBQUksR0FBRyxDQUFDO1lBQ3ZDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ25DLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ2hDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQ3BDLENBQUM7WUFDRCxPQUFPLElBQUksV0FBVyxDQUNwQiw2QkFBNkIsRUFDN0IseUJBQXlCLE9BQU8sRUFBRSxFQUNsQyxLQUFjLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwaUV4Y2VwdGlvbixcbiAgQ29yZVYxQXBpLFxuICBLdWJlQ29uZmlnLFxuICB0eXBlIFYxU2VjcmV0LFxufSBmcm9tIFwiQGt1YmVybmV0ZXMvY2xpZW50LW5vZGVcIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VjcmV0U2VydmljZSxcbiAgU2VjcmV0RXJyb3IsXG4gIFNlY3JldFByb3ZpZGVyLFxuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBTdG9yZVNlY3JldE9wdGlvbnMsXG4gIFJldHJpZXZlU2VjcmV0T3B0aW9ucyxcbiAgRGVsZXRlU2VjcmV0T3B0aW9ucyxcbiAgRXhpc3RzU2VjcmV0T3B0aW9ucyxcbiAgTGlzdFNlY3JldHNPcHRpb25zLFxuICBTZWNyZXRNZXRhZGF0YU9wdGlvbnMsXG4gIFJvdGF0ZVNlY3JldE9wdGlvbnMsXG59IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSwgbm9ybWFsaXplU2VjcmV0TmFtZSB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWcgfSBmcm9tIFwiLi9LdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4vS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZCb29sZWFuLCBlbnZTdHJpbmcgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWVcIjtcbmltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQmFzZUVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuY29uc3QgUEFZTE9BRF9EQVRBX0tFWSA9IFwicGF5bG9hZFwiO1xuY29uc3QgTUFOQUdFRF9MQUJFTCA9IFwiZGVjYWYtdHMuaW8vbWFuYWdlZFwiO1xuY29uc3QgQU5OT1RBVElPTl9QUkVGSVggPSBcImRlY2FmLXRzLmlvL1wiO1xuY29uc3QgRU5DT0RJTkdfQU5OT1RBVElPTiA9IGAke0FOTk9UQVRJT05fUFJFRklYfWVuY29kaW5nYDtcbmNvbnN0IENPTlRFTlRfVFlQRV9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9Y29udGVudC10eXBlYDtcbmNvbnN0IFRBR1NfQU5OT1RBVElPTiA9IGAke0FOTk9UQVRJT05fUFJFRklYfXRhZ3NgO1xuY29uc3QgVkVSU0lPTl9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9dmVyc2lvbmA7XG5jb25zdCBVUERBVEVEX0FUX0FOTk9UQVRJT04gPSBgJHtBTk5PVEFUSU9OX1BSRUZJWH11cGRhdGVkLWF0YDtcbmNvbnN0IFRFTkFOVF9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9dGVuYW50LWlkYDtcbmNvbnN0IE9SR19VTklUX0FOTk9UQVRJT04gPSBgJHtBTk5PVEFUSU9OX1BSRUZJWH1vcmctdW5pdC1pZGA7XG5jb25zdCBPV05FUl9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9b3duZXItcHJpbmNpcGFsLWlkYDtcblxuY29uc3QgRE5TX1NVQkRPTUFJTl9QQVRURVJOID1cbiAgL15bYS16MC05XShbLWEtejAtOS5dKlthLXowLTldKT8kLztcbmNvbnN0IEROU19MQUJFTF9QQVRURVJOID0gL15bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyQvO1xuXG5mdW5jdGlvbiBhc3NlcnRLdWJlcm5ldGVzTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKG5hbWUubGVuZ3RoID4gMjUzIHx8ICFETlNfU1VCRE9NQUlOX1BBVFRFUk4udGVzdChuYW1lKSkge1xuICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX0lOVkFMSURfTkFNRVwiLFxuICAgICAgYEludmFsaWQgS3ViZXJuZXRlcyBzZWNyZXQgbmFtZTogXCIke25hbWV9XCIuIE5hbWVzIG11c3QgYmUgbG93ZXJjYXNlIEROUy0xMTIzIHN1YmRvbWFpbnMgKGxldHRlcnMsIGRpZ2l0cywgJy0nLCBhbmQgJy4nKS5gXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRLdWJlcm5ldGVzTmFtZXNwYWNlKG5hbWVzcGFjZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChuYW1lc3BhY2UubGVuZ3RoID4gNjMgfHwgIUROU19MQUJFTF9QQVRURVJOLnRlc3QobmFtZXNwYWNlKSkge1xuICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX0lOVkFMSURfTkFNRVwiLFxuICAgICAgYEludmFsaWQgS3ViZXJuZXRlcyBuYW1lc3BhY2U6IFwiJHtuYW1lc3BhY2V9XCIuIE5hbWVzcGFjZXMgbXVzdCBiZSBsb3dlcmNhc2UgRE5TLTExMjMgbGFiZWxzLmBcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IERhdGUgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBkYXRlID0gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gdW5kZWZpbmVkIDogZGF0ZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUYWdzKHJhdzogc3RyaW5nIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghcmF3KSByZXR1cm4gdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gcGFyc2VkICYmIHR5cGVvZiBwYXJzZWQgPT09IFwib2JqZWN0XCJcbiAgICAgID8gKHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBAY2xhc3MgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VcbiAqIEBzdW1tYXJ5IE5hdGl2ZSBLdWJlcm5ldGVzIFNlY3JldHMgYmFja2VuZC5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIHRoZSB7QGxpbmsgU2VjcmV0U2VydmljZX0gY29udHJhY3Qgb24gdG9wIG9mXG4gKiBuYW1lc3BhY2VkIEt1YmVybmV0ZXMgYFNlY3JldGAgb2JqZWN0cy4gRWFjaCBERUNBRiBzZWNyZXQgaXMgc3RvcmVkIGFzIGFuXG4gKiBgT3BhcXVlYCBTZWNyZXQgd2hvc2UgYHBheWxvYWRgIGRhdGEga2V5IGhvbGRzIHRoZSBzZXJpYWxpemVkXG4gKiB7QGxpbmsgU2VyaWFsaXplZFNlY3JldFBheWxvYWR9IGVudmVsb3BlLCB3aGlsZSBlbmNvZGluZywgY29udGVudCB0eXBlLCB0YWdzLFxuICogbG9naWNhbCB2ZXJzaW9uLCBhbmQgb3duZXJzaGlwIGhpbnRzIGxpdmUgaW4gYGRlY2FmLXRzLmlvLypgIGFubm90YXRpb25zLlxuICpcbiAqIEF1dGhlbnRpY2F0aW9uIHVzZXMgdGhlIHN0YW5kYXJkIEt1YmVybmV0ZXMgY2xpZW50IHJlc29sdXRpb24gb3JkZXI6XG4gKiBleHBsaWNpdCBgc2VydmVyYCBjcmVkZW50aWFscywgYW4gZXhwbGljaXQgYGt1YmVjb25maWdgIHBhdGgsIGBLVUJFQ09ORklHYCxcbiAqIGB+Ly5rdWJlL2NvbmZpZ2AsIGFuZCBmaW5hbGx5IHRoZSBpbi1jbHVzdGVyIHNlcnZpY2UgYWNjb3VudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlPFxuICBDb3JlVjFBcGksXG4gIEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCJrdWJlcm5ldGVzXCI7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOlxuICAgIHwgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWdcbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZW52ID0gS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50LnNlY3JldHMua3ViZXJuZXRlcztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBlbnZTdHJpbmcoZW52Py5uYW1lc3BhY2UpO1xuICAgIGNvbnN0IGt1YmVjb25maWcgPSBlbnZTdHJpbmcoZW52Py5rdWJlY29uZmlnKTtcbiAgICBjb25zdCBjb250ZXh0ID0gZW52U3RyaW5nKGVudj8uY29udGV4dCk7XG4gICAgY29uc3Qgc2VydmVyID0gZW52U3RyaW5nKGVudj8uc2VydmVyKTtcbiAgICBpZiAoIW5hbWVzcGFjZSAmJiAha3ViZWNvbmZpZyAmJiAhY29udGV4dCAmJiAhc2VydmVyKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogXCJrdWJlcm5ldGVzXCIsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBrdWJlY29uZmlnLFxuICAgICAgY29udGV4dCxcbiAgICAgIHNlcnZlcixcbiAgICAgIHRva2VuOiBlbnZTdHJpbmcoZW52LnRva2VuKSxcbiAgICAgIHRva2VuRmlsZTogZW52U3RyaW5nKGVudi50b2tlbkZpbGUpLFxuICAgICAgY2FGaWxlOiBlbnZTdHJpbmcoZW52LmNhRmlsZSksXG4gICAgICBjYURhdGE6IGVudlN0cmluZyhlbnYuY2FEYXRhKSxcbiAgICAgIGNlcnRGaWxlOiBlbnZTdHJpbmcoZW52LmNlcnRGaWxlKSxcbiAgICAgIGtleUZpbGU6IGVudlN0cmluZyhlbnYua2V5RmlsZSksXG4gICAgICBjZXJ0RGF0YTogZW52U3RyaW5nKGVudi5jZXJ0RGF0YSksXG4gICAgICBrZXlEYXRhOiBlbnZTdHJpbmcoZW52LmtleURhdGEpLFxuICAgICAgc2tpcFRMU1ZlcmlmeTogZW52Qm9vbGVhbihlbnYuc2tpcFRMU1ZlcmlmeSksXG4gICAgICBzZXJ2aWNlQWNjb3VudDogZW52Qm9vbGVhbihlbnYuc2VydmljZUFjY291bnQpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnOyBjbGllbnQ6IENvcmVWMUFwaSB9PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVxuICAgICk7XG4gICAgY29uc3QgY29uZmlnID1cbiAgICAgIHRoaXMuZ2V0Q29uZmlnRnJvbUFyZ3M8S3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIGNvbnN0IGt1YmVDb25maWcgPSB0aGlzLmJ1aWxkS3ViZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMucmVzb2x2ZU5hbWVzcGFjZShjb25maWcsIGt1YmVDb25maWcpO1xuICAgIGNvbnN0IHJlc29sdmVkOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyA9IHsgLi4uY29uZmlnLCBuYW1lc3BhY2UgfTtcbiAgICBjb25zdCBjbGllbnQgPSBrdWJlQ29uZmlnLm1ha2VBcGlDbGllbnQoQ29yZVYxQXBpKTtcbiAgICB0aGlzLl9jb25maWcgPSByZXNvbHZlZDtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgSW5pdGlhbGl6ZWQgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBmb3IgbmFtZXNwYWNlIFwiJHtuYW1lc3BhY2V9XCJgXG4gICAgKTtcbiAgICByZXR1cm4geyBjb25maWc6IHJlc29sdmVkLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHN0b3JlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZTogU2VjcmV0TmFtZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKHRoaXMuc3RvcmUpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gdGhpcy5ub3JtYWxpemVOYW1lKG5hbWUpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMucmVzb2x2ZU5hbWVzcGFjZU9wdGlvbihvcHRpb25zLm5hbWVzcGFjZSk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bm9ybWFsaXplZE5hbWV9IGluIG5hbWVzcGFjZSAke25hbWVzcGFjZX1gKTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHZhbHVlKTtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5idWlsZFNlY3JldChub3JtYWxpemVkTmFtZSwgbmFtZXNwYWNlLCBzZXJpYWxpemVkLCBvcHRpb25zKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5jcmVhdGVOYW1lc3BhY2VkU2VjcmV0KHsgbmFtZXNwYWNlLCBib2R5IH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5zdGF0dXNPZihlcnJvcikgPT09IDQwOSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5jbGllbnQucmVhZE5hbWVzcGFjZWRTZWNyZXQoe1xuICAgICAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYm9keS5tZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLihib2R5Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICAgICAgICAgIHJlc291cmNlVmVyc2lvbjogZXhpc3RpbmcubWV0YWRhdGE/LnJlc291cmNlVmVyc2lvbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlcGxhY2VOYW1lc3BhY2VkU2VjcmV0KHtcbiAgICAgICAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAocmVwbGFjZUVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKHJlcGxhY2VFcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24sXG4gICAgICB1cmk6IGBrdWJlcm5ldGVzOi8vJHtuYW1lc3BhY2V9LyR7bm9ybWFsaXplZE5hbWV9YCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmV0cmlldmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogUmV0cmlldmVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldHJpZXZlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJldHJpZXZlXG4gICAgKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYFJldHJpZXZpbmcgc2VjcmV0ICR7bmFtZX0gZnJvbSBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCB0aGlzLnJlYWRTZWNyZXQobmFtZSwgbmFtZXNwYWNlKTtcbiAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcblxuICAgIGNvbnN0IHJhdyA9IHNlY3JldC5kYXRhPy5bUEFZTE9BRF9EQVRBX0tFWV07XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgTm8gc2VjcmV0IHZhbHVlIGZvdW5kIGZvciBcIiR7bmFtZX1cIiBpbiBuYW1lc3BhY2UgXCIke25hbWVzcGFjZX1cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHBheWxvYWQ6IFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkO1xuICAgIHRyeSB7XG4gICAgICBwYXlsb2FkID0gSlNPTi5wYXJzZShcbiAgICAgICAgQnVmZmVyLmZyb20ocmF3LCBcImJhc2U2NFwiKS50b1N0cmluZyhcInV0ZjhcIilcbiAgICAgICkgYXMgU2VyaWFsaXplZFNlY3JldFBheWxvYWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfREVTRVJJQUxJWkFUSU9OX0ZBSUxFRFwiLFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHNlY3JldCBwYXlsb2FkIGZvciBcIiR7bmFtZX1cIjogJHsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2V9YCxcbiAgICAgICAgZXJyb3IgYXMgRXJyb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZChwYXlsb2FkKSBhcyBUO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICBvcHRpb25zOiBEZWxldGVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYERlbGV0aW5nIHNlY3JldCAke25hbWV9IGZyb20gbmFtZXNwYWNlICR7bmFtZXNwYWNlfWApO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMucmVhZFNlY3JldChuYW1lLCBuYW1lc3BhY2UpO1xuICAgICAgdGhpcy5hc3NlcnRWZXJzaW9uKHNlY3JldCwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZU5hbWVzcGFjZWRTZWNyZXQoeyBuYW1lLCBuYW1lc3BhY2UgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhpc3RzKFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICBvcHRpb25zOiBFeGlzdHNTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImV4aXN0c1wiLCB0cnVlKSkuZm9yKHRoaXMuZXhpc3RzKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGlmIHNlY3JldCAke25hbWV9IGV4aXN0cyBpbiBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5yZWFkU2VjcmV0KG5hbWUsIG5hbWVzcGFjZSk7XG4gICAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSByZXR1cm4gZmFsc2U7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IExpc3RTZWNyZXRzT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSB0aGlzLnJlc29sdmVOYW1lc3BhY2VPcHRpb24ob3B0aW9ucy5uYW1lc3BhY2UpO1xuICAgIGxvZy52ZXJib3NlKGBMaXN0aW5nIHNlY3JldHMgaW4gbmFtZXNwYWNlICR7bmFtZXNwYWNlfWApO1xuXG4gICAgY29uc3QgcmVzdWx0OiBTZWNyZXRNZXRhZGF0YVtdID0gW107XG4gICAgbGV0IGNvbnRpbnVlVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQubGlzdE5hbWVzcGFjZWRTZWNyZXQoe1xuICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICBsYWJlbFNlbGVjdG9yOiBgJHtNQU5BR0VEX0xBQkVMfT10cnVlYCxcbiAgICAgICAgICBsaW1pdDogMTAwLFxuICAgICAgICAgIF9jb250aW51ZTogY29udGludWVUb2tlbixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWNyZXQgb2YgcmVzcG9uc2UuaXRlbXMgfHwgW10pIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnRvTWV0YWRhdGEoc2VjcmV0LCBuYW1lc3BhY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVlVG9rZW4gPSByZXNwb25zZS5tZXRhZGF0YT8uX2NvbnRpbnVlO1xuICAgICAgfSB3aGlsZSAoY29udGludWVUb2tlbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSByZXN1bHQuZmlsdGVyKChtZXRhKSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5lbmFibGVkID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCFvcHRpb25zLnRhZ3MpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncykuZXZlcnkoXG4gICAgICAgIChba2V5LCB2YWx1ZV0pID0+IG1ldGEudGFncz8uW2tleV0gPT09IHZhbHVlXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQgPz8gMDtcbiAgICBjb25zdCBlbmQgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMubGltaXQgPT09IFwibnVtYmVyXCIgPyBvZmZzZXQgKyBvcHRpb25zLmxpbWl0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBmaWx0ZXJlZC5zbGljZShvZmZzZXQsIGVuZCk7XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogU2VjcmV0TWV0YWRhdGFPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJtZXRhZGF0YVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5tZXRhZGF0YVxuICAgICk7XG4gICAgY29uc3QgeyBuYW1lLCBuYW1lc3BhY2UsIHZlcnNpb24gfSA9IHRoaXMucmVzb2x2ZVJlZmVyZW5jZShcbiAgICAgIG5hbWVPclJlZixcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICAgIGxvZy52ZXJib3NlKGBHZXR0aW5nIG1ldGFkYXRhIGZvciBzZWNyZXQgJHtuYW1lfSBpbiBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5yZWFkU2VjcmV0KG5hbWUsIG5hbWVzcGFjZSk7XG4gICAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcbiAgICAgIHJldHVybiB0aGlzLnRvTWV0YWRhdGEoc2VjcmV0LCBuYW1lc3BhY2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcm90YXRlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIHZhbHVlOiBULFxuICAgIG9wdGlvbnM6IFJvdGF0ZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgbmFtZXNwYWNlIH0gPSB0aGlzLnJlc29sdmVSZWZlcmVuY2UobmFtZU9yUmVmLCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5zdG9yZShcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHsgdmVyc2lvbjogb3B0aW9ucy5uZXdWZXJzaW9uLCBuYW1lc3BhY2UgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEt1YmVDb25maWcoY29uZmlnOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyk6IEt1YmVDb25maWcge1xuICAgIGNvbnN0IGt1YmVDb25maWcgPSBuZXcgS3ViZUNvbmZpZygpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoY29uZmlnLnNlcnZpY2VBY2NvdW50KSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21DbHVzdGVyKCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbmZpZy5zZXJ2ZXIpIHtcbiAgICAgICAgY29uc3QgY2x1c3Rlck5hbWUgPSBcImRlY2FmLWNsdXN0ZXJcIjtcbiAgICAgICAgY29uc3QgdXNlck5hbWUgPSBcImRlY2FmLXVzZXJcIjtcbiAgICAgICAgY29uc3QgY29udGV4dE5hbWUgPSBcImRlY2FmLWNvbnRleHRcIjtcbiAgICAgICAga3ViZUNvbmZpZy5sb2FkRnJvbU9wdGlvbnMoe1xuICAgICAgICAgIGNsdXN0ZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgICBzZXJ2ZXI6IGNvbmZpZy5zZXJ2ZXIsXG4gICAgICAgICAgICAgIGNhRGF0YTogY29uZmlnLmNhRGF0YSxcbiAgICAgICAgICAgICAgY2FGaWxlOiBjb25maWcuY2FGaWxlLFxuICAgICAgICAgICAgICBza2lwVExTVmVyaWZ5OiBjb25maWcuc2tpcFRMU1ZlcmlmeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB1c2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiB1c2VyTmFtZSxcbiAgICAgICAgICAgICAgdG9rZW46IGNvbmZpZy50b2tlbixcbiAgICAgICAgICAgICAgdG9rZW5GaWxlOiBjb25maWcudG9rZW5GaWxlLFxuICAgICAgICAgICAgICBjZXJ0RGF0YTogY29uZmlnLmNlcnREYXRhLFxuICAgICAgICAgICAgICBjZXJ0RmlsZTogY29uZmlnLmNlcnRGaWxlLFxuICAgICAgICAgICAgICBrZXlEYXRhOiBjb25maWcua2V5RGF0YSxcbiAgICAgICAgICAgICAga2V5RmlsZTogY29uZmlnLmtleUZpbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY29udGV4dHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogY29udGV4dE5hbWUsXG4gICAgICAgICAgICAgIGNsdXN0ZXI6IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgICB1c2VyOiB1c2VyTmFtZSxcbiAgICAgICAgICAgICAgbmFtZXNwYWNlOiBjb25maWcubmFtZXNwYWNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGN1cnJlbnRDb250ZXh0OiBjb250ZXh0TmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbmZpZy5rdWJlY29uZmlnKSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21GaWxlKGNvbmZpZy5rdWJlY29uZmlnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21EZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuY29udGV4dCkge1xuICAgICAgICBrdWJlQ29uZmlnLnNldEN1cnJlbnRDb250ZXh0KGNvbmZpZy5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIGt1YmVDb25maWc7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVOYW1lc3BhY2UoXG4gICAgY29uZmlnOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyxcbiAgICBrdWJlQ29uZmlnOiBLdWJlQ29uZmlnXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZXNwYWNlID1cbiAgICAgIGNvbmZpZy5uYW1lc3BhY2UgfHxcbiAgICAgIGt1YmVDb25maWcuZ2V0Q29udGV4dE9iamVjdChrdWJlQ29uZmlnLmdldEN1cnJlbnRDb250ZXh0KCkpPy5uYW1lc3BhY2UgfHxcbiAgICAgIFwiZGVmYXVsdFwiO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lc3BhY2UobmFtZXNwYWNlKTtcbiAgICByZXR1cm4gbmFtZXNwYWNlO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlTmFtZXNwYWNlT3B0aW9uKG5hbWVzcGFjZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuYW1lc3BhY2UgfHwgdGhpcy5jb25maWcubmFtZXNwYWNlIHx8IFwiZGVmYXVsdFwiO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lc3BhY2UocmVzb2x2ZWQpO1xuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVJlZmVyZW5jZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczoge1xuICAgICAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAgICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB9XG4gICk6IHsgbmFtZTogc3RyaW5nOyBuYW1lc3BhY2U6IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB9IHtcbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPVxuICAgICAgb3B0aW9ucy5uYW1lc3BhY2UgfHxcbiAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gdW5kZWZpbmVkIDogbmFtZU9yUmVmLm5hbWVzcGFjZSkgfHxcbiAgICAgIHRoaXMuY29uZmlnLm5hbWVzcGFjZSB8fFxuICAgICAgXCJkZWZhdWx0XCI7XG4gICAgYXNzZXJ0S3ViZXJuZXRlc05hbWVzcGFjZShuYW1lc3BhY2UpO1xuICAgIGNvbnN0IHZlcnNpb24gPVxuICAgICAgb3B0aW9ucy52ZXJzaW9uIHx8XG4gICAgICAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IHVuZGVmaW5lZCA6IG5hbWVPclJlZi52ZXJzaW9uKTtcbiAgICByZXR1cm4geyBuYW1lOiB0aGlzLm5vcm1hbGl6ZU5hbWUobmFtZSksIG5hbWVzcGFjZSwgdmVyc2lvbiB9O1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lKG5vcm1hbGl6ZWROYW1lKTtcbiAgICByZXR1cm4gbm9ybWFsaXplZE5hbWU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU2VjcmV0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBuYW1lc3BhY2U6IHN0cmluZyxcbiAgICBzZXJpYWxpemVkOiBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnNcbiAgKTogVjFTZWNyZXQge1xuICAgIGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgW0VOQ09ESU5HX0FOTk9UQVRJT05dOiBzZXJpYWxpemVkLmVuY29kaW5nLFxuICAgICAgW1VQREFURURfQVRfQU5OT1RBVElPTl06IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgaWYgKG9wdGlvbnMuY29udGVudFR5cGUpIHtcbiAgICAgIGFubm90YXRpb25zW0NPTlRFTlRfVFlQRV9BTk5PVEFUSU9OXSA9IG9wdGlvbnMuY29udGVudFR5cGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRhZ3MpIHtcbiAgICAgIGFubm90YXRpb25zW1RBR1NfQU5OT1RBVElPTl0gPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLnRhZ3MpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy52ZXJzaW9uKSB7XG4gICAgICBhbm5vdGF0aW9uc1tWRVJTSU9OX0FOTk9UQVRJT05dID0gb3B0aW9ucy52ZXJzaW9uO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50ZW5hbnRJZCkge1xuICAgICAgYW5ub3RhdGlvbnNbVEVOQU5UX0FOTk9UQVRJT05dID0gb3B0aW9ucy50ZW5hbnRJZDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMub3JnVW5pdElkKSB7XG4gICAgICBhbm5vdGF0aW9uc1tPUkdfVU5JVF9BTk5PVEFUSU9OXSA9IG9wdGlvbnMub3JnVW5pdElkO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5vd25lclByaW5jaXBhbElkKSB7XG4gICAgICBhbm5vdGF0aW9uc1tPV05FUl9BTk5PVEFUSU9OXSA9IG9wdGlvbnMub3duZXJQcmluY2lwYWxJZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXBpVmVyc2lvbjogXCJ2MVwiLFxuICAgICAga2luZDogXCJTZWNyZXRcIixcbiAgICAgIHR5cGU6IFwiT3BhcXVlXCIsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgIFtNQU5BR0VEX0xBQkVMXTogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zLFxuICAgICAgfSxcbiAgICAgIHN0cmluZ0RhdGE6IHtcbiAgICAgICAgW1BBWUxPQURfREFUQV9LRVldOiBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZFNlY3JldChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxWMVNlY3JldD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5jbGllbnQucmVhZE5hbWVzcGFjZWRTZWNyZXQoeyBuYW1lLCBuYW1lc3BhY2UgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnRWZXJzaW9uKHNlY3JldDogVjFTZWNyZXQsIHZlcnNpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXZlcnNpb24pIHJldHVybjtcbiAgICBjb25zdCBzdG9yZWQgPSBzZWNyZXQubWV0YWRhdGE/LmFubm90YXRpb25zPy5bVkVSU0lPTl9BTk5PVEFUSU9OXTtcbiAgICBpZiAoc3RvcmVkICE9PSB2ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFNlY3JldCBcIiR7c2VjcmV0Lm1ldGFkYXRhPy5uYW1lfVwiIHZlcnNpb24gXCIke3ZlcnNpb259XCIgbm90IGZvdW5kYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvTWV0YWRhdGEoc2VjcmV0OiBWMVNlY3JldCwgbmFtZXNwYWNlOiBzdHJpbmcpOiBTZWNyZXRNZXRhZGF0YSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSBzZWNyZXQubWV0YWRhdGE/LmFubm90YXRpb25zIHx8IHt9O1xuICAgIGNvbnN0IHVwZGF0ZWRBdCA9IGFubm90YXRpb25zW1VQREFURURfQVRfQU5OT1RBVElPTl07XG4gICAgY29uc3QgbmFtZSA9IHNlY3JldC5tZXRhZGF0YT8ubmFtZSB8fCBcIlwiO1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIG5hbWUsXG4gICAgICB2ZXJzaW9uOiBhbm5vdGF0aW9uc1tWRVJTSU9OX0FOTk9UQVRJT05dLFxuICAgICAgY3JlYXRlZEF0OiB0b0RhdGUoc2VjcmV0Lm1ldGFkYXRhPy5jcmVhdGlvblRpbWVzdGFtcCksXG4gICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHVwZGF0ZWRBdClcbiAgICAgICAgOiB0b0RhdGUoc2VjcmV0Lm1ldGFkYXRhPy5jcmVhdGlvblRpbWVzdGFtcCksXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgY29udGVudFR5cGU6IGFubm90YXRpb25zW0NPTlRFTlRfVFlQRV9BTk5PVEFUSU9OXSxcbiAgICAgIHRhZ3M6IHBhcnNlVGFncyhhbm5vdGF0aW9uc1tUQUdTX0FOTk9UQVRJT05dKSxcbiAgICAgIGV4dGVybmFsSWQ6IHNlY3JldC5tZXRhZGF0YT8udWlkLFxuICAgICAgdXJpOiBga3ViZXJuZXRlczovLyR7bmFtZXNwYWNlfS8ke25hbWV9YCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0dXNPZihlcnJvcjogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBpRXhjZXB0aW9uKSByZXR1cm4gZXJyb3IuY29kZTtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBlcnJvciBhcyB7IGNvZGU/OiB1bmtub3duOyBzdGF0dXNDb2RlPzogdW5rbm93biB9O1xuICAgIGlmICh0eXBlb2YgY2FuZGlkYXRlPy5jb2RlID09PSBcIm51bWJlclwiKSByZXR1cm4gY2FuZGlkYXRlLmNvZGU7XG4gICAgaWYgKHR5cGVvZiBjYW5kaWRhdGU/LnN0YXR1c0NvZGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuc3RhdHVzQ29kZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgbWVzc2FnZU9mKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBlcnIgPSBlcnJvciBhcyB7XG4gICAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgIGJvZHk/OiB7IG1lc3NhZ2U/OiBzdHJpbmc7IHJlYXNvbj86IHN0cmluZyB9O1xuICAgIH07XG4gICAgcmV0dXJuIGVycj8uYm9keT8ubWVzc2FnZSB8fCBlcnI/LmJvZHk/LnJlYXNvbiB8fCBlcnI/Lm1lc3NhZ2UgfHwgZXJyPy5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IHVua25vd24pOiBFcnJvciB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQmFzZUVycm9yKSByZXR1cm4gZXJyb3I7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNPZihlcnJvcik7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZU9mKGVycm9yKTtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoXG4gICAgICBzdGF0dXMgPT09IDQwNCB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzdGF0dXMgPT09IDQwOSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEF1dGhvcml6YXRpb25FcnJvcihgQXV0aGVudGljYXRpb24gZmFpbGVkOiAke21lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cyA9PT0gNDAzIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoYFBlcm1pc3Npb24gZGVuaWVkOiAke21lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc3RhdHVzID09PSA0MDAgfHxcbiAgICAgIHN0YXR1cyA9PT0gNDIyIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cyA9PT0gNDI5IHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInJhdGUgbGltaXRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1JBVEVfTElNSVRFRFwiLFxuICAgICAgICBgUmF0ZSBsaW1pdGVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyb3IgYXMgRXJyb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc3RhdHVzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNTAwKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29ubmVjdGlvblwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidGltZW91dFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdmFpbGFibGVcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1VOQVZBSUxBQkxFXCIsXG4gICAgICAgIGBQcm92aWRlciB1bmF2YWlsYWJsZTogJHttZXNzYWdlfWAsXG4gICAgICAgIGVycm9yIGFzIEVycm9yXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @module integrations/secrets/kubernetes/config
3
+ * @summary Kubernetes secret service configuration.
4
+ * @description Configuration schema for the native Kubernetes Secrets integration,
5
+ * including kubeconfig selection, explicit API-server credentials, and the
6
+ * default namespace used by every operation.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9rdWJlcm5ldGVzL2NvbmZpZ1xuICogQHN1bW1hcnkgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc2NoZW1hIGZvciB0aGUgbmF0aXZlIEt1YmVybmV0ZXMgU2VjcmV0cyBpbnRlZ3JhdGlvbixcbiAqIGluY2x1ZGluZyBrdWJlY29uZmlnIHNlbGVjdGlvbiwgZXhwbGljaXQgQVBJLXNlcnZlciBjcmVkZW50aWFscywgYW5kIHRoZVxuICogZGVmYXVsdCBuYW1lc3BhY2UgdXNlZCBieSBldmVyeSBvcGVyYXRpb24uXG4gKi9cblxuaW1wb3J0IHsgU2VjcmV0U2VydmljZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCJrdWJlcm5ldGVzXCI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmFtZXNwYWNlIHRoYXQgb3ducyB0aGUgc2VjcmV0cy5cbiAgICogQHN1bW1hcnkgRGVmYXVsdHMgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgYWN0aXZlIGt1YmVjb25maWcgY29udGV4dCwgdGhlblxuICAgKiB0byBgZGVmYXVsdGAuIEluZGl2aWR1YWwgb3BlcmF0aW9ucyBtYXkgb3ZlcnJpZGUgaXQgdGhyb3VnaCB0aGVpciBvcHRpb25zLlxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhdGggdG8gYSBrdWJlY29uZmlnIGZpbGUuXG4gICAqIEBzdW1tYXJ5IFdoZW4gb21pdHRlZCB0aGUgY2xpZW50IGZhbGxzIGJhY2sgdG8gYEtVQkVDT05GSUdgLFxuICAgKiBgfi8ua3ViZS9jb25maWdgLCBhbmQgZmluYWxseSBpbi1jbHVzdGVyIHNlcnZpY2UtYWNjb3VudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAga3ViZWNvbmZpZz86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBLdWJlY29uZmlnIGNvbnRleHQgdG8gc2VsZWN0IGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBjb250ZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4cGxpY2l0IEt1YmVybmV0ZXMgQVBJIHNlcnZlciBVUkwuXG4gICAqIEBzdW1tYXJ5IFdoZW4gcHJlc2VudCB0aGUgY2xpZW50IGlzIGJ1aWx0IGZyb20gdGhlIGV4cGxpY2l0IHNlcnZlcixcbiAgICogdG9rZW4vY2VydGlmaWNhdGUgZmllbGRzLCBhbmQgbmFtZXNwYWNlIGluc3RlYWQgb2YgYSBrdWJlY29uZmlnIGZpbGUuXG4gICAqL1xuICBzZXJ2ZXI/OiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICB0b2tlbkZpbGU/OiBzdHJpbmc7XG4gIGNhRmlsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCYXNlNjQgZW5jb2RlZCBQRU0gY2VydGlmaWNhdGUgYXV0aG9yaXR5IGJ1bmRsZS5cbiAgICovXG4gIGNhRGF0YT86IHN0cmluZztcbiAgY2VydEZpbGU/OiBzdHJpbmc7XG4gIGtleUZpbGU/OiBzdHJpbmc7XG4gIGNlcnREYXRhPzogc3RyaW5nO1xuICBrZXlEYXRhPzogc3RyaW5nO1xuICBza2lwVExTVmVyaWZ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGb3JjZSBsb2FkaW5nIHRoZSBpbi1jbHVzdGVyIHNlcnZpY2UtYWNjb3VudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc2VydmljZUFjY291bnQ/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module integrations/secrets/kubernetes
3
+ * @summary Kubernetes secret service exports.
4
+ * @description Re-exports the native Kubernetes Secrets service, its configuration,
5
+ * and its environment slice.
6
+ */
7
+ export * from "./KubernetesSecretService.js";
8
+ export * from "./KubernetesSecretServiceConfig.js";
9
+ export * from "./KubernetesSecretEnvironment.js";
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsNkNBQTBDO0FBQzFDLG1EQUFnRDtBQUNoRCxpREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMva3ViZXJuZXRlc1xuICogQHN1bW1hcnkgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBleHBvcnRzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIG5hdGl2ZSBLdWJlcm5ldGVzIFNlY3JldHMgc2VydmljZSwgaXRzIGNvbmZpZ3VyYXRpb24sXG4gKiBhbmQgaXRzIGVudmlyb25tZW50IHNsaWNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50XCI7XG4iXX0=
@@ -70,4 +70,4 @@ export function extractKeyFromDerivedKey(derivedKey) {
70
70
  const key = buffer.slice(16).toString("base64");
71
71
  return { salt, key };
72
72
  }
73
- //# sourceMappingURL=ModelSecretCrypto.js.map
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9tb2RlbC9Nb2RlbFNlY3JldENyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQWUsRUFDZixLQUFhLEVBQ2IsR0FBVztJQUVYLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxTQUFTLEVBQUUsQ0FBUSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxFQUFFLENBQUM7UUFFakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQ3hDLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxDQUFDLFNBQVMsQ0FBQyxDQUNaLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsTUFBTSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUMx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QUMsQ0FBQztJQUM3RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxhQUFhLENBQ3JCLHlCQUEwQixLQUFlLENBQUMsT0FBTyxFQUFFLENBQ3BELENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxVQUFrQjtJQUl6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWV4cGVjdC1lcnJvciAtIGNyeXB0byBpcyBhIHBlZXIgZGVwZW5kZW5jeSB3aXRoIGV4cG9ydHMgZmllbGRcbmltcG9ydCB7IGdldENyeXB0bywgZ2V0U3VidGxlIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vaW50ZWdyYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIH0gZnJvbSBcIi4vU2VjcmV0XCI7XG5cbmNvbnN0IEFMR09SSVRITSA9IHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMjU2IH07XG5jb25zdCBJVl9MRU5HVEggPSAxMjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRQYXlsb2FkKFxuICBwYXlsb2FkOiBzdHJpbmcsXG4gIGtleUlkOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nXG4pOiBQcm9taXNlPHsgZW5jcnlwdGVkRGF0YTogc3RyaW5nOyBtZXRhZGF0YTogU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIH0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjcnlwdG8gPSAoYXdhaXQgZ2V0Q3J5cHRvKCkpIGFzIGFueTtcbiAgICBjb25zdCBzdWJ0bGUgPSBhd2FpdCBnZXRTdWJ0bGUoKTtcblxuICAgIGNvbnN0IHNhbHQgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoSVZfTEVOR1RIKTtcbiAgICBjb25zdCBrZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShrZXksIFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGltcG9ydGVkS2V5ID0gYXdhaXQgc3VidGxlLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBrZXlCdWZmZXIsXG4gICAgICBBTEdPUklUSE0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuXG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGRhdGEgPSBlbmNvZGVyLmVuY29kZShwYXlsb2FkKTtcbiAgICBjb25zdCBlbmNyeXB0ZWRCdWZmZXIgPSBhd2FpdCBzdWJ0bGUuZW5jcnlwdChcbiAgICAgIHtcbiAgICAgICAgLi4uQUxHT1JJVEhNLFxuICAgICAgICBpdjogc2FsdCxcbiAgICAgIH0sXG4gICAgICBpbXBvcnRlZEtleSxcbiAgICAgIGRhdGFcbiAgICApO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkQnl0ZXMgPSBuZXcgVWludDhBcnJheShlbmNyeXB0ZWRCdWZmZXIpO1xuICAgIGNvbnN0IGNvbWJpbmVkID0gbmV3IFVpbnQ4QXJyYXkoSVZfTEVOR1RIICsgZW5jcnlwdGVkQnl0ZXMubGVuZ3RoKTtcbiAgICBjb21iaW5lZC5zZXQoc2FsdCk7XG4gICAgY29tYmluZWQuc2V0KGVuY3J5cHRlZEJ5dGVzLCBJVl9MRU5HVEgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVuY3J5cHRlZERhdGE6IEJ1ZmZlci5mcm9tKGNvbWJpbmVkKS50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGtleUlkLFxuICAgICAgICBpdjogc2FsdC50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gZW5jcnlwdCBwYXlsb2FkOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdFBheWxvYWQoXG4gIGVuY3J5cHRlZERhdGE6IHN0cmluZyxcbiAga2V5OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3VidGxlID0gYXdhaXQgZ2V0U3VidGxlKCk7XG5cbiAgICBjb25zdCBjb21iaW5lZCA9IEJ1ZmZlci5mcm9tKGVuY3J5cHRlZERhdGEsIFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGl2ID0gY29tYmluZWQuc2xpY2UoMCwgSVZfTEVOR1RIKTtcbiAgICBjb25zdCBjaXBoZXJUZXh0ID0gY29tYmluZWQuc2xpY2UoSVZfTEVOR1RIKTtcblxuICAgIGNvbnN0IGtleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGtleSwgXCJiYXNlNjRcIik7XG4gICAgY29uc3QgaW1wb3J0ZWRLZXkgPSBhd2FpdCBzdWJ0bGUuaW1wb3J0S2V5KFxuICAgICAgXCJyYXdcIixcbiAgICAgIGtleUJ1ZmZlcixcbiAgICAgIEFMR09SSVRITSxcbiAgICAgIGZhbHNlLFxuICAgICAgW1wiZGVjcnlwdFwiXVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRCdWZmZXIgPSBhd2FpdCBzdWJ0bGUuZGVjcnlwdChcbiAgICAgIHtcbiAgICAgICAgLi4uQUxHT1JJVEhNLFxuICAgICAgICBpdjogaXYsXG4gICAgICB9LFxuICAgICAgaW1wb3J0ZWRLZXksXG4gICAgICBjaXBoZXJUZXh0XG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoZGVjcnlwdGVkQnVmZmVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gZGVjcnlwdCBwYXlsb2FkOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVyaXZlS2V5RnJvbVNlY3JldChcbiAgc2VjcmV0OiBzdHJpbmcsXG4gIHNhbHQ/OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgY3J5cHRvID0gKGF3YWl0IGdldENyeXB0bygpKSBhcyBhbnk7XG4gICAgY29uc3Qgc2FsdEJ1ZmZlciA9IHNhbHRcbiAgICAgID8gQnVmZmVyLmZyb20oc2FsdCwgXCJiYXNlNjRcIilcbiAgICAgIDogY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KTtcbiAgICBjb25zdCBrZXkgPSBjcnlwdG8ucGJrZGYyU3luYyhzZWNyZXQsIHNhbHRCdWZmZXIsIDEwMF8wMDAsIDMyLCBcInNoYTI1NlwiKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbc2FsdEJ1ZmZlciwga2V5XSkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgRmFpbGVkIHRvIGRlcml2ZSBrZXk6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleTogc3RyaW5nKToge1xuICBzYWx0OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGRlcml2ZWRLZXksIFwiYmFzZTY0XCIpO1xuICBjb25zdCBzYWx0ID0gYnVmZmVyLnNsaWNlKDAsIDE2KS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgY29uc3Qga2V5ID0gYnVmZmVyLnNsaWNlKDE2KS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgcmV0dXJuIHsgc2FsdCwga2V5IH07XG59XG4iXX0=
@@ -14,4 +14,4 @@ export const ModelSecretEnvironment = SecretEnvironment.accumulate({
14
14
  },
15
15
  },
16
16
  });
17
- //# sourceMappingURL=ModelSecretEnvironment.js.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWNyZXRzL21vZGVsL01vZGVsU2VjcmV0RW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVDQUFrQztBQWE5RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDakUsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsRUFBRTtTQUNWO0tBQ0Y7Q0FDNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IGVudmlyb25tZW50LlxuICogQGRlc2NyaXB0aW9uIEV4dGVuZHMgdGhlIGNvbW1vbiBzZWNyZXRzIGVudmlyb25tZW50IHdpdGggdGhlIGBzZWNyZXRzLm1vZGVsYCBzaGFwZVxuICogbWF0Y2hpbmcge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZ30sIHNvIHtAbGluayBNb2RlbFNlY3JldFNlcnZpY2V9IGNhbiBmYWxsXG4gKiBiYWNrIHRvIGl0IHdoZW4gbm8gY29uZmlnIGlzIHBhc3NlZCB0byBgaW5pdGlhbGl6ZWAuXG4gKi9cbmltcG9ydCB7IFNlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4uL2NvcmUvU2VjcmV0RW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbFNlY3JldEVudmlyb25tZW50Q29uZmlnIHtcbiAga2V5U2VjcmV0OiBzdHJpbmc7XG4gIGtleUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsU2VjcmV0RW52aXJvbm1lbnRTaGFwZSB7XG4gIHNlY3JldHM6IHtcbiAgICBtb2RlbDogTW9kZWxTZWNyZXRFbnZpcm9ubWVudENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE1vZGVsU2VjcmV0RW52aXJvbm1lbnQgPSBTZWNyZXRFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgc2VjcmV0czoge1xuICAgIG1vZGVsOiB7XG4gICAgICBrZXlTZWNyZXQ6IFwiXCIsXG4gICAgICBrZXlJZDogXCJcIixcbiAgICB9LFxuICB9LFxufSBhcyBNb2RlbFNlY3JldEVudmlyb25tZW50U2hhcGUpO1xuIl19