@decaf-ts/integrations 0.11.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +164 -0
  2. package/dist/integrations.cjs +1 -1
  3. package/dist/integrations.cjs.map +1 -1
  4. package/dist/integrations.js +1 -1
  5. package/dist/integrations.js.map +1 -1
  6. package/docker/mailpit-compose.yml +17 -0
  7. package/docker/postgres-compose.yml +26 -0
  8. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +12 -23
  9. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
  10. package/lib/cjs/blob/core/BlobStoreService.cjs +26 -25
  11. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +12 -23
  13. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
  14. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +11 -16
  15. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
  16. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +14 -16
  17. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
  18. package/lib/cjs/calendar/environment.cjs +48 -0
  19. package/lib/cjs/calendar/environment.cjs.map +1 -0
  20. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +338 -0
  21. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
  22. package/lib/cjs/calendar/google-calendar/index.cjs +20 -0
  23. package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
  24. package/lib/cjs/comms/discord/DiscordService.cjs +318 -0
  25. package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
  26. package/lib/cjs/comms/discord/index.cjs +19 -0
  27. package/lib/cjs/comms/discord/index.cjs.map +1 -0
  28. package/lib/cjs/comms/email/EmailService.cjs +376 -0
  29. package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
  30. package/lib/cjs/comms/email/index.cjs +29 -0
  31. package/lib/cjs/comms/email/index.cjs.map +1 -0
  32. package/lib/cjs/comms/email/mime.cjs +225 -0
  33. package/lib/cjs/comms/email/mime.cjs.map +1 -0
  34. package/lib/cjs/comms/email/smtp.cjs +204 -0
  35. package/lib/cjs/comms/email/smtp.cjs.map +1 -0
  36. package/lib/cjs/comms/environment.cjs +79 -0
  37. package/lib/cjs/comms/environment.cjs.map +1 -0
  38. package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
  39. package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
  40. package/lib/cjs/comms/gmail/index.cjs +24 -0
  41. package/lib/cjs/comms/gmail/index.cjs.map +1 -0
  42. package/lib/cjs/comms/index.cjs +34 -0
  43. package/lib/cjs/comms/index.cjs.map +1 -0
  44. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +325 -0
  45. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
  46. package/lib/cjs/comms/outlook/index.cjs +19 -0
  47. package/lib/cjs/comms/outlook/index.cjs.map +1 -0
  48. package/lib/cjs/comms/slack/SlackService.cjs +264 -0
  49. package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
  50. package/lib/cjs/comms/slack/index.cjs +24 -0
  51. package/lib/cjs/comms/slack/index.cjs.map +1 -0
  52. package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
  53. package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
  54. package/lib/cjs/comms/teams/index.cjs +24 -0
  55. package/lib/cjs/comms/teams/index.cjs.map +1 -0
  56. package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
  57. package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
  58. package/lib/cjs/comms/telegram/index.cjs +24 -0
  59. package/lib/cjs/comms/telegram/index.cjs.map +1 -0
  60. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +274 -0
  61. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
  62. package/lib/cjs/comms/whatsapp/index.cjs +19 -0
  63. package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
  64. package/lib/cjs/devops/environment.cjs +43 -0
  65. package/lib/cjs/devops/environment.cjs.map +1 -0
  66. package/lib/cjs/devops/github/GithubService.cjs +302 -0
  67. package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
  68. package/lib/cjs/devops/github/index.cjs +24 -0
  69. package/lib/cjs/devops/github/index.cjs.map +1 -0
  70. package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
  71. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
  72. package/lib/cjs/devops/gitlab/index.cjs +24 -0
  73. package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
  74. package/lib/cjs/devops/index.cjs +28 -0
  75. package/lib/cjs/devops/index.cjs.map +1 -0
  76. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
  77. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
  78. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
  79. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
  80. package/lib/cjs/index.cjs +3 -3
  81. package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
  82. package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
  83. package/lib/cjs/io/airtable/index.cjs +24 -0
  84. package/lib/cjs/io/airtable/index.cjs.map +1 -0
  85. package/lib/cjs/io/confluence/ConfluenceService.cjs +317 -0
  86. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
  87. package/lib/cjs/io/confluence/index.cjs +19 -0
  88. package/lib/cjs/io/confluence/index.cjs.map +1 -0
  89. package/lib/cjs/io/environment.cjs +74 -0
  90. package/lib/cjs/io/environment.cjs.map +1 -0
  91. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +275 -0
  92. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
  93. package/lib/cjs/io/google-docs/index.cjs +19 -0
  94. package/lib/cjs/io/google-docs/index.cjs.map +1 -0
  95. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
  96. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
  97. package/lib/cjs/io/google-sheets/index.cjs +24 -0
  98. package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
  99. package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
  100. package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
  101. package/lib/cjs/io/graphql/index.cjs +24 -0
  102. package/lib/cjs/io/graphql/index.cjs.map +1 -0
  103. package/lib/cjs/io/index.cjs +35 -0
  104. package/lib/cjs/io/index.cjs.map +1 -0
  105. package/lib/cjs/io/jira/JiraService.cjs +354 -0
  106. package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
  107. package/lib/cjs/io/jira/index.cjs +19 -0
  108. package/lib/cjs/io/jira/index.cjs.map +1 -0
  109. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +253 -0
  110. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
  111. package/lib/cjs/io/microsoft-excel/index.cjs +19 -0
  112. package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
  113. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +261 -0
  114. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
  115. package/lib/cjs/io/microsoft-sharepoint/index.cjs +19 -0
  116. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
  117. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
  118. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
  119. package/lib/cjs/io/spreadsheet/index.cjs +25 -0
  120. package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
  121. package/lib/cjs/namespaces/index.cjs +1 -0
  122. package/lib/cjs/namespaces/index.cjs.map +1 -1
  123. package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
  124. package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
  125. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
  126. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
  127. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
  128. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
  129. package/lib/cjs/namespaces/models/group.model.cjs +2 -0
  130. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
  131. package/lib/cjs/namespaces/models/index.cjs +1 -0
  132. package/lib/cjs/namespaces/models/index.cjs.map +1 -1
  133. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
  134. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
  135. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
  136. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
  137. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
  138. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
  139. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
  140. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
  141. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
  142. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
  143. package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
  144. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
  145. package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
  146. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
  147. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
  148. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
  149. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
  150. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
  151. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
  152. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
  153. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
  154. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
  155. package/lib/cjs/namespaces/models/role.model.cjs +2 -0
  156. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
  157. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
  158. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
  159. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
  160. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
  161. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
  162. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
  163. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
  164. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
  165. package/lib/cjs/namespaces/models/user.model.cjs +2 -0
  166. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
  167. package/lib/cjs/namespaces/rls/index.cjs +28 -0
  168. package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
  169. package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
  170. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
  171. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
  172. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
  173. package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
  174. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
  175. package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
  176. package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
  177. package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
  178. package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
  179. package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
  180. package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
  181. package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
  182. package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
  183. package/lib/cjs/namespaces/services/index.cjs +1 -0
  184. package/lib/cjs/namespaces/services/index.cjs.map +1 -1
  185. package/lib/cjs/namespaces/types.cjs +6 -1
  186. package/lib/cjs/namespaces/types.cjs.map +1 -1
  187. package/lib/cjs/redis/adapter.cjs +7 -1
  188. package/lib/cjs/redis/adapter.cjs.map +1 -1
  189. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
  190. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
  191. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
  192. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  193. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
  194. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  195. package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
  196. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
  197. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
  198. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
  199. package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
  200. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
  201. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
  202. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
  203. package/lib/cjs/secrets/fs/index.cjs +27 -0
  204. package/lib/cjs/secrets/fs/index.cjs.map +1 -0
  205. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
  206. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  207. package/lib/cjs/secrets/index.cjs +2 -0
  208. package/lib/cjs/secrets/index.cjs.map +1 -1
  209. package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
  210. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  211. package/lib/cjs/secrets/model/Secret.cjs +83 -5
  212. package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
  213. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
  214. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  215. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
  216. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  217. package/lib/cjs/shared/environmentValue.cjs +24 -0
  218. package/lib/cjs/shared/environmentValue.cjs.map +1 -1
  219. package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
  220. package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
  221. package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
  222. package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
  223. package/lib/cjs/shared/http/index.cjs +28 -0
  224. package/lib/cjs/shared/http/index.cjs.map +1 -0
  225. package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
  226. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  227. package/lib/esm/blob/core/BlobStoreService.js +26 -25
  228. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  229. package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
  230. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  231. package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
  232. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  233. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
  234. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
  235. package/lib/esm/calendar/environment.js +44 -0
  236. package/lib/esm/calendar/environment.js.map +1 -0
  237. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +333 -0
  238. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
  239. package/lib/esm/calendar/google-calendar/index.js +3 -0
  240. package/lib/esm/calendar/google-calendar/index.js.map +1 -0
  241. package/lib/esm/comms/discord/DiscordService.js +313 -0
  242. package/lib/esm/comms/discord/DiscordService.js.map +1 -0
  243. package/lib/esm/comms/discord/index.js +2 -0
  244. package/lib/esm/comms/discord/index.js.map +1 -0
  245. package/lib/esm/comms/email/EmailService.js +338 -0
  246. package/lib/esm/comms/email/EmailService.js.map +1 -0
  247. package/lib/esm/comms/email/index.js +12 -0
  248. package/lib/esm/comms/email/index.js.map +1 -0
  249. package/lib/esm/comms/email/mime.js +218 -0
  250. package/lib/esm/comms/email/mime.js.map +1 -0
  251. package/lib/esm/comms/email/smtp.js +166 -0
  252. package/lib/esm/comms/email/smtp.js.map +1 -0
  253. package/lib/esm/comms/environment.js +75 -0
  254. package/lib/esm/comms/environment.js.map +1 -0
  255. package/lib/esm/comms/gmail/GmailService.js +230 -0
  256. package/lib/esm/comms/gmail/GmailService.js.map +1 -0
  257. package/lib/esm/comms/gmail/index.js +7 -0
  258. package/lib/esm/comms/gmail/index.js.map +1 -0
  259. package/lib/esm/comms/index.js +17 -0
  260. package/lib/esm/comms/index.js.map +1 -0
  261. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +320 -0
  262. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
  263. package/lib/esm/comms/outlook/index.js +2 -0
  264. package/lib/esm/comms/outlook/index.js.map +1 -0
  265. package/lib/esm/comms/slack/SlackService.js +259 -0
  266. package/lib/esm/comms/slack/SlackService.js.map +1 -0
  267. package/lib/esm/comms/slack/index.js +7 -0
  268. package/lib/esm/comms/slack/index.js.map +1 -0
  269. package/lib/esm/comms/teams/TeamsService.js +204 -0
  270. package/lib/esm/comms/teams/TeamsService.js.map +1 -0
  271. package/lib/esm/comms/teams/index.js +7 -0
  272. package/lib/esm/comms/teams/index.js.map +1 -0
  273. package/lib/esm/comms/telegram/TelegramService.js +191 -0
  274. package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
  275. package/lib/esm/comms/telegram/index.js +7 -0
  276. package/lib/esm/comms/telegram/index.js.map +1 -0
  277. package/lib/esm/comms/whatsapp/WhatsAppService.js +269 -0
  278. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
  279. package/lib/esm/comms/whatsapp/index.js +2 -0
  280. package/lib/esm/comms/whatsapp/index.js.map +1 -0
  281. package/lib/esm/devops/environment.js +39 -0
  282. package/lib/esm/devops/environment.js.map +1 -0
  283. package/lib/esm/devops/github/GithubService.js +297 -0
  284. package/lib/esm/devops/github/GithubService.js.map +1 -0
  285. package/lib/esm/devops/github/index.js +7 -0
  286. package/lib/esm/devops/github/index.js.map +1 -0
  287. package/lib/esm/devops/gitlab/GitlabService.js +277 -0
  288. package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
  289. package/lib/esm/devops/gitlab/index.js +7 -0
  290. package/lib/esm/devops/gitlab/index.js.map +1 -0
  291. package/lib/esm/devops/index.js +11 -0
  292. package/lib/esm/devops/index.js.map +1 -0
  293. package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
  294. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
  295. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
  296. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
  297. package/lib/esm/index.js +3 -3
  298. package/lib/esm/io/airtable/AirtableService.js +261 -0
  299. package/lib/esm/io/airtable/AirtableService.js.map +1 -0
  300. package/lib/esm/io/airtable/index.js +7 -0
  301. package/lib/esm/io/airtable/index.js.map +1 -0
  302. package/lib/esm/io/confluence/ConfluenceService.js +312 -0
  303. package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
  304. package/lib/esm/io/confluence/index.js +2 -0
  305. package/lib/esm/io/confluence/index.js.map +1 -0
  306. package/lib/esm/io/environment.js +70 -0
  307. package/lib/esm/io/environment.js.map +1 -0
  308. package/lib/esm/io/google-docs/GoogleDocsService.js +270 -0
  309. package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
  310. package/lib/esm/io/google-docs/index.js +2 -0
  311. package/lib/esm/io/google-docs/index.js.map +1 -0
  312. package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
  313. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
  314. package/lib/esm/io/google-sheets/index.js +7 -0
  315. package/lib/esm/io/google-sheets/index.js.map +1 -0
  316. package/lib/esm/io/graphql/GraphqlService.js +138 -0
  317. package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
  318. package/lib/esm/io/graphql/index.js +7 -0
  319. package/lib/esm/io/graphql/index.js.map +1 -0
  320. package/lib/esm/io/index.js +18 -0
  321. package/lib/esm/io/index.js.map +1 -0
  322. package/lib/esm/io/jira/JiraService.js +349 -0
  323. package/lib/esm/io/jira/JiraService.js.map +1 -0
  324. package/lib/esm/io/jira/index.js +2 -0
  325. package/lib/esm/io/jira/index.js.map +1 -0
  326. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +248 -0
  327. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
  328. package/lib/esm/io/microsoft-excel/index.js +2 -0
  329. package/lib/esm/io/microsoft-excel/index.js.map +1 -0
  330. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +256 -0
  331. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
  332. package/lib/esm/io/microsoft-sharepoint/index.js +2 -0
  333. package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
  334. package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
  335. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
  336. package/lib/esm/io/spreadsheet/index.js +8 -0
  337. package/lib/esm/io/spreadsheet/index.js.map +1 -0
  338. package/lib/esm/namespaces/index.js +1 -0
  339. package/lib/esm/namespaces/index.js.map +1 -1
  340. package/lib/esm/namespaces/models/credential.model.js +106 -0
  341. package/lib/esm/namespaces/models/credential.model.js.map +1 -0
  342. package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
  343. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
  344. package/lib/esm/namespaces/models/group-membership.model.js +2 -0
  345. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
  346. package/lib/esm/namespaces/models/group.model.js +2 -0
  347. package/lib/esm/namespaces/models/group.model.js.map +1 -1
  348. package/lib/esm/namespaces/models/index.js +1 -0
  349. package/lib/esm/namespaces/models/index.js.map +1 -1
  350. package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
  351. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
  352. package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
  353. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
  354. package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
  355. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
  356. package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
  357. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
  358. package/lib/esm/namespaces/models/org-unit.model.js +2 -0
  359. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
  360. package/lib/esm/namespaces/models/permission.model.js +2 -0
  361. package/lib/esm/namespaces/models/permission.model.js.map +1 -1
  362. package/lib/esm/namespaces/models/principal.model.js +2 -0
  363. package/lib/esm/namespaces/models/principal.model.js.map +1 -1
  364. package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
  365. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
  366. package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
  367. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
  368. package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
  369. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
  370. package/lib/esm/namespaces/models/role-permission.model.js +2 -0
  371. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
  372. package/lib/esm/namespaces/models/role.model.js +2 -0
  373. package/lib/esm/namespaces/models/role.model.js.map +1 -1
  374. package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
  375. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
  376. package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
  377. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
  378. package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
  379. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
  380. package/lib/esm/namespaces/models/tenant.model.js +2 -0
  381. package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
  382. package/lib/esm/namespaces/models/user.model.js +2 -0
  383. package/lib/esm/namespaces/models/user.model.js.map +1 -1
  384. package/lib/esm/namespaces/rls/index.js +11 -0
  385. package/lib/esm/namespaces/rls/index.js.map +1 -0
  386. package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
  387. package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
  388. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
  389. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
  390. package/lib/esm/namespaces/rls/rls.constants.js +75 -0
  391. package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
  392. package/lib/esm/namespaces/rls/rls.template.js +711 -0
  393. package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
  394. package/lib/esm/namespaces/rls/rls.types.js +9 -0
  395. package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
  396. package/lib/esm/namespaces/rls/session-binding.js +65 -0
  397. package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
  398. package/lib/esm/namespaces/services/credential.service.js +322 -0
  399. package/lib/esm/namespaces/services/credential.service.js.map +1 -0
  400. package/lib/esm/namespaces/services/index.js +1 -0
  401. package/lib/esm/namespaces/services/index.js.map +1 -1
  402. package/lib/esm/namespaces/types.js +6 -0
  403. package/lib/esm/namespaces/types.js.map +1 -1
  404. package/lib/esm/redis/adapter.js +7 -1
  405. package/lib/esm/redis/adapter.js.map +1 -1
  406. package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
  407. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
  408. package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
  409. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
  410. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
  411. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
  412. package/lib/esm/secrets/core/SecretReference.js +1 -0
  413. package/lib/esm/secrets/core/SecretReference.js.map +1 -1
  414. package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
  415. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
  416. package/lib/esm/secrets/fs/FsSecretService.js +412 -0
  417. package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
  418. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
  419. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
  420. package/lib/esm/secrets/fs/index.js +10 -0
  421. package/lib/esm/secrets/fs/index.js.map +1 -0
  422. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
  423. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
  424. package/lib/esm/secrets/index.js +2 -0
  425. package/lib/esm/secrets/index.js.map +1 -1
  426. package/lib/esm/secrets/model/ModelSecretService.js +337 -42
  427. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  428. package/lib/esm/secrets/model/Secret.js +86 -7
  429. package/lib/esm/secrets/model/Secret.js.map +1 -1
  430. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
  431. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
  432. package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
  433. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
  434. package/lib/esm/shared/environmentValue.js +24 -0
  435. package/lib/esm/shared/environmentValue.js.map +1 -1
  436. package/lib/esm/shared/http/HttpApiService.js +181 -0
  437. package/lib/esm/shared/http/HttpApiService.js.map +1 -0
  438. package/lib/esm/shared/http/hermeticBoot.js +146 -0
  439. package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
  440. package/lib/esm/shared/http/index.js +11 -0
  441. package/lib/esm/shared/http/index.js.map +1 -0
  442. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
  443. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
  444. package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
  445. package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
  446. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
  447. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
  448. package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
  449. package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
  450. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
  451. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
  452. package/lib/types/calendar/environment.d.cts +48 -0
  453. package/lib/types/calendar/environment.d.mts +48 -0
  454. package/lib/types/calendar/google-calendar/GoogleCalendarService.d.cts +316 -0
  455. package/lib/types/calendar/google-calendar/GoogleCalendarService.d.mts +316 -0
  456. package/lib/types/calendar/google-calendar/index.d.cts +2 -0
  457. package/lib/types/calendar/google-calendar/index.d.mts +2 -0
  458. package/lib/types/comms/discord/DiscordService.d.cts +285 -0
  459. package/lib/types/comms/discord/DiscordService.d.mts +285 -0
  460. package/lib/types/comms/discord/index.d.cts +1 -0
  461. package/lib/types/comms/discord/index.d.mts +1 -0
  462. package/lib/types/comms/email/EmailService.d.cts +184 -0
  463. package/lib/types/comms/email/EmailService.d.mts +184 -0
  464. package/lib/types/comms/email/index.d.cts +11 -0
  465. package/lib/types/comms/email/index.d.mts +11 -0
  466. package/lib/types/comms/email/mime.d.cts +84 -0
  467. package/lib/types/comms/email/mime.d.mts +84 -0
  468. package/lib/types/comms/email/smtp.d.cts +107 -0
  469. package/lib/types/comms/email/smtp.d.mts +107 -0
  470. package/lib/types/comms/environment.d.cts +110 -0
  471. package/lib/types/comms/environment.d.mts +110 -0
  472. package/lib/types/comms/gmail/GmailService.d.cts +190 -0
  473. package/lib/types/comms/gmail/GmailService.d.mts +190 -0
  474. package/lib/types/comms/gmail/index.d.cts +6 -0
  475. package/lib/types/comms/gmail/index.d.mts +6 -0
  476. package/lib/types/comms/index.d.cts +16 -0
  477. package/lib/types/comms/index.d.mts +16 -0
  478. package/lib/types/comms/outlook/MicrosoftOutlookService.d.cts +282 -0
  479. package/lib/types/comms/outlook/MicrosoftOutlookService.d.mts +282 -0
  480. package/lib/types/comms/outlook/index.d.cts +1 -0
  481. package/lib/types/comms/outlook/index.d.mts +1 -0
  482. package/lib/types/comms/slack/SlackService.d.cts +259 -0
  483. package/lib/types/comms/slack/SlackService.d.mts +259 -0
  484. package/lib/types/comms/slack/index.d.cts +6 -0
  485. package/lib/types/comms/slack/index.d.mts +6 -0
  486. package/lib/types/comms/teams/TeamsService.d.cts +172 -0
  487. package/lib/types/comms/teams/TeamsService.d.mts +172 -0
  488. package/lib/types/comms/teams/index.d.cts +6 -0
  489. package/lib/types/comms/teams/index.d.mts +6 -0
  490. package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
  491. package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
  492. package/lib/types/comms/telegram/index.d.cts +6 -0
  493. package/lib/types/comms/telegram/index.d.mts +6 -0
  494. package/lib/types/comms/whatsapp/WhatsAppService.d.cts +258 -0
  495. package/lib/types/comms/whatsapp/WhatsAppService.d.mts +258 -0
  496. package/lib/types/comms/whatsapp/index.d.cts +1 -0
  497. package/lib/types/comms/whatsapp/index.d.mts +1 -0
  498. package/lib/types/devops/environment.d.cts +62 -0
  499. package/lib/types/devops/environment.d.mts +62 -0
  500. package/lib/types/devops/github/GithubService.d.cts +287 -0
  501. package/lib/types/devops/github/GithubService.d.mts +287 -0
  502. package/lib/types/devops/github/index.d.cts +6 -0
  503. package/lib/types/devops/github/index.d.mts +6 -0
  504. package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
  505. package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
  506. package/lib/types/devops/gitlab/index.d.cts +6 -0
  507. package/lib/types/devops/gitlab/index.d.mts +6 -0
  508. package/lib/types/devops/index.d.cts +10 -0
  509. package/lib/types/devops/index.d.mts +10 -0
  510. package/lib/types/index.d.cts +2 -2
  511. package/lib/types/index.d.mts +2 -2
  512. package/lib/types/io/airtable/AirtableService.d.cts +268 -0
  513. package/lib/types/io/airtable/AirtableService.d.mts +268 -0
  514. package/lib/types/io/airtable/index.d.cts +6 -0
  515. package/lib/types/io/airtable/index.d.mts +6 -0
  516. package/lib/types/io/confluence/ConfluenceService.d.cts +250 -0
  517. package/lib/types/io/confluence/ConfluenceService.d.mts +250 -0
  518. package/lib/types/io/confluence/index.d.cts +1 -0
  519. package/lib/types/io/confluence/index.d.mts +1 -0
  520. package/lib/types/io/environment.d.cts +107 -0
  521. package/lib/types/io/environment.d.mts +107 -0
  522. package/lib/types/io/google-docs/GoogleDocsService.d.cts +188 -0
  523. package/lib/types/io/google-docs/GoogleDocsService.d.mts +188 -0
  524. package/lib/types/io/google-docs/index.d.cts +1 -0
  525. package/lib/types/io/google-docs/index.d.mts +1 -0
  526. package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
  527. package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
  528. package/lib/types/io/google-sheets/index.d.cts +6 -0
  529. package/lib/types/io/google-sheets/index.d.mts +6 -0
  530. package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
  531. package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
  532. package/lib/types/io/graphql/index.d.cts +6 -0
  533. package/lib/types/io/graphql/index.d.mts +6 -0
  534. package/lib/types/io/index.d.cts +17 -0
  535. package/lib/types/io/index.d.mts +17 -0
  536. package/lib/types/io/jira/JiraService.d.cts +300 -0
  537. package/lib/types/io/jira/JiraService.d.mts +300 -0
  538. package/lib/types/io/jira/index.d.cts +1 -0
  539. package/lib/types/io/jira/index.d.mts +1 -0
  540. package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.cts +230 -0
  541. package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.mts +230 -0
  542. package/lib/types/io/microsoft-excel/index.d.cts +1 -0
  543. package/lib/types/io/microsoft-excel/index.d.mts +1 -0
  544. package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.cts +226 -0
  545. package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.mts +226 -0
  546. package/lib/types/io/microsoft-sharepoint/index.d.cts +1 -0
  547. package/lib/types/io/microsoft-sharepoint/index.d.mts +1 -0
  548. package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
  549. package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
  550. package/lib/types/io/spreadsheet/index.d.cts +7 -0
  551. package/lib/types/io/spreadsheet/index.d.mts +7 -0
  552. package/lib/types/namespaces/index.d.cts +1 -0
  553. package/lib/types/namespaces/index.d.mts +1 -0
  554. package/lib/types/namespaces/models/credential.model.d.cts +23 -0
  555. package/lib/types/namespaces/models/credential.model.d.mts +23 -0
  556. package/lib/types/namespaces/models/index.d.cts +1 -0
  557. package/lib/types/namespaces/models/index.d.mts +1 -0
  558. package/lib/types/namespaces/rls/index.d.cts +10 -0
  559. package/lib/types/namespaces/rls/index.d.mts +10 -0
  560. package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
  561. package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
  562. package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
  563. package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
  564. package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
  565. package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
  566. package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
  567. package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
  568. package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
  569. package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
  570. package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
  571. package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
  572. package/lib/types/namespaces/services/credential.service.d.cts +175 -0
  573. package/lib/types/namespaces/services/credential.service.d.mts +175 -0
  574. package/lib/types/namespaces/services/index.d.cts +1 -0
  575. package/lib/types/namespaces/services/index.d.mts +1 -0
  576. package/lib/types/namespaces/types.d.cts +37 -0
  577. package/lib/types/namespaces/types.d.mts +37 -0
  578. package/lib/types/redis/adapter.d.cts +2 -0
  579. package/lib/types/redis/adapter.d.mts +2 -0
  580. package/lib/types/redis/types.d.cts +27 -2
  581. package/lib/types/redis/types.d.mts +27 -2
  582. package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
  583. package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
  584. package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
  585. package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
  586. package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
  587. package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
  588. package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
  589. package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
  590. package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
  591. package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
  592. package/lib/types/secrets/fs/index.d.cts +9 -0
  593. package/lib/types/secrets/fs/index.d.mts +9 -0
  594. package/lib/types/secrets/index.d.cts +2 -0
  595. package/lib/types/secrets/index.d.mts +2 -0
  596. package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
  597. package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
  598. package/lib/types/secrets/model/Secret.d.cts +44 -3
  599. package/lib/types/secrets/model/Secret.d.mts +44 -3
  600. package/lib/types/shared/environmentValue.d.cts +24 -0
  601. package/lib/types/shared/environmentValue.d.mts +24 -0
  602. package/lib/types/shared/http/HttpApiService.d.cts +193 -0
  603. package/lib/types/shared/http/HttpApiService.d.mts +193 -0
  604. package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
  605. package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
  606. package/lib/types/shared/http/index.d.cts +10 -0
  607. package/lib/types/shared/http/index.d.mts +10 -0
  608. package/package.json +279 -6
  609. package/sql/002_rls.sql +660 -15
  610. package/sql/004_credentials.sql +46 -0
@@ -1,25 +1,69 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
1
+ /**
2
+ * @module integrations/secrets/model/service
3
+ * @summary Model-backed encrypted secret service.
4
+ * @description Implements the `{@link ModelSecretService}`, an undecorated
5
+ * `ClientBasedSecretService` that
6
+ * persists AES-encrypted payloads as `{@link Secret}` rows through a
7
+ * decaf `Repository` (tenant/org-unit/owner scoping included). Encryption
8
+ * keys derive from a master `keySecret` via `CryptoService`; configuration
9
+ * comes from the `secrets.model` Environment slice or an explicit boot
10
+ * config (see `ModelSecretServiceConfig`).
11
+ */
7
12
  import { ClientBasedSecretService, SecretError } from "./../core/index.js";
8
13
  import { validateSecretName, normalizeSecretName } from "./../core/index.js";
9
14
  import { serializeSecretPayload, deserializeSecretPayload, } from "./../core/index.js";
10
15
  import { Secret } from "./Secret.js";
11
- import { Repository, service, } from "@decaf-ts/core";
16
+ import { Repository, resolveTransactionLock, } from "@decaf-ts/core";
12
17
  import { ModelSecretEnvironment } from "./ModelSecretEnvironment.js";
13
18
  import { envString } from "./../../shared/environmentValue.js";
14
- import { Condition } from "@decaf-ts/core";
19
+ import { Condition, OrderDirection } from "@decaf-ts/core";
15
20
  import { CryptoService } from "@decaf-ts/crypto/integration/services/crypto";
16
21
  import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
17
22
  const DEFAULT_KEY_ID = "default-key";
18
- let ModelSecretService = class ModelSecretService extends ClientBasedSecretService {
23
+ /**
24
+ * @description Model-backed encrypted secret service
25
+ * @summary Stores each secret as a `{@link Secret}` row (encrypted payload,
26
+ * key id/iv/salt metadata, version, enablement flag, and optional
27
+ * tenant/org-unit/owner scope) through the repository booted as the service
28
+ * client. Names are validated and normalized before persistence;
29
+ * `(name, version)` is unique (enforced by a `SECRET_ALREADY_EXISTS`
30
+ * conflict in `store`/`rotate` and backed by the `uq_secrets_name_version`
31
+ * database index); retrieval only considers enabled rows, supports version
32
+ * pinning, and resolves multiple matches deterministically by `updatedAt
33
+ * DESC`. Delete is soft by default (sets `enabled: false`) unless
34
+ * `options.force` is set. Errors from the repository are translated into
35
+ * typed {@link SecretError}s by `parseError`.
36
+ *
37
+ * Undecorated and Environment-configurable
38
+ * through the `secrets.model` slice; the credential service
39
+ * (`CredentialService`) delegates user/runtime credential storage to this
40
+ * service.
41
+ * @class ModelSecretService
42
+ * @category Secrets
43
+ * @example
44
+ * ```ts
45
+ * import { ModelSecretService } from "@decaf-ts/integrations/secrets";
46
+ *
47
+ * const modelSecrets = await new ModelSecretService().boot({
48
+ * keySecret: "model-master-key",
49
+ * });
50
+ * await modelSecrets.store("my-secret", { value: "s3cr3t" });
51
+ * const payload = await modelSecrets.retrieve<{ value: string }>("my-secret");
52
+ * ```
53
+ */
54
+ export class ModelSecretService extends ClientBasedSecretService {
19
55
  constructor() {
20
- super(...arguments);
56
+ super();
21
57
  this.provider = "model";
22
58
  }
59
+ /**
60
+ * @description Builds the model secret configuration from the Environment
61
+ * @summary Reads the `secrets.model` Environment slice and returns a
62
+ * `ModelSecretServiceConfig` when a `keySecret` is configured; returns
63
+ * `undefined` otherwise, letting boot fall back to explicit arguments.
64
+ * @returns {ModelSecretServiceConfig | undefined} The Environment-derived configuration, or `undefined`.
65
+ * @override
66
+ */
23
67
  configFromEnvironment() {
24
68
  const env = ModelSecretEnvironment.secrets.model;
25
69
  const keySecret = envString(env?.keySecret);
@@ -31,16 +75,43 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
31
75
  keyId: envString(env.keyId),
32
76
  };
33
77
  }
78
+ /**
79
+ * @description Boots the crypto service and resolves the backing repository
80
+ * @summary Accepts the configuration (explicit args, merged with the
81
+ * Environment slice by the base) and an optional `Repository<Secret>` as the
82
+ * second argument; when absent, creates one via `Repository.forModel(Secret)`.
83
+ * Returns the config and repository as the service client.
84
+ * @param {ContextualArgs} args - Configuration and optional `Repository`/`Context` arguments.
85
+ * @returns {Promise<{config: ModelSecretServiceConfig, client: Repository<Secret, any>}>} The resolved config and repository client.
86
+ */
34
87
  async initialize(...args) {
35
88
  const config = this.getConfigFromArgs(...args);
36
89
  const repository = args[1] ||
37
- new Repository(undefined, Secret);
90
+ Repository.forModel(Secret);
38
91
  this.cryptoService = new CryptoService();
39
- await this.cryptoService.initialize(config);
92
+ await this.cryptoService.boot({});
40
93
  return { config, client: repository };
41
94
  }
95
+ /**
96
+ * @description Encrypts and persists a secret row
97
+ * @summary Validates and normalizes the name, serializes the payload, and
98
+ * encrypts it with a key derived from the master `keySecret`, embedding the
99
+ * key id/iv/salt in the row's `encryption` metadata. The row carries the
100
+ * optional tenant/org-unit/owner scoping and version. `(name, version)` is
101
+ * unique: an application-level pre-check rejects a duplicate combination
102
+ * with a `SECRET_ALREADY_EXISTS` {@link SecretError} before the insert, and
103
+ * the `uq_secrets_name_version` database index (which treats `NULL`
104
+ * versions as `''`) backstops the same rule against concurrent writers.
105
+ * @template T - The secret payload type.
106
+ * @param {SecretName} name - The secret name (validated and normalized).
107
+ * @param {T} value - The payload to encrypt and store.
108
+ * @param {StoreSecretOptions} [options] - Optional content type, tags, version, and tenant/org/owner scoping.
109
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
110
+ * @returns {Promise<SecretReference>} A reference to the persisted secret.
111
+ * @throws {SecretError} `SECRET_ALREADY_EXISTS` when a row with the same normalized name and version already exists, or `SECRET_NOT_FOUND`/`SECRET_PROVIDER_CONFLICT` when the name is invalid or the repository insert fails.
112
+ */
42
113
  async store(name, value, options = {}, ...args) {
43
- const { log } = (await this.logCtx(args, "store", true)).for(this.store);
114
+ const { log, ctxArgs } = (await this.logCtx(args, "store", true)).for(this.store);
44
115
  log.verbose(`Storing secret ${name}`);
45
116
  try {
46
117
  validateSecretName(name);
@@ -51,7 +122,8 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
51
122
  const normalizedName = normalizeSecretName(name);
52
123
  const serialized = serializeSecretPayload(value);
53
124
  const derivedKey = await this.cryptoService.deriveKeyFromSecret(this.config.keySecret);
54
- const { encryptedData, metadata } = await this.cryptoService.encryptPayload(serialized.value, this.config.keyId || DEFAULT_KEY_ID, this.cryptoService.extractKeyFromDerivedKey(derivedKey).key);
125
+ const extracted = this.cryptoService.extractKeyFromDerivedKey(derivedKey);
126
+ const { encryptedData, metadata } = await this.cryptoService.encryptPayload(JSON.stringify(serialized), this.config.keyId || DEFAULT_KEY_ID, extracted.key);
55
127
  const now = new Date();
56
128
  const secret = new Secret({
57
129
  name: normalizedName,
@@ -60,20 +132,29 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
60
132
  encryption: {
61
133
  keyId: metadata.keyId,
62
134
  iv: metadata.iv,
135
+ salt: extracted.salt,
63
136
  },
64
137
  contentType: options.contentType,
65
138
  tags: options.tags,
66
139
  enabled: true,
67
140
  version: options.version,
141
+ tenantId: options.tenantId,
142
+ orgUnitId: options.orgUnitId,
143
+ ownerPrincipalId: options.ownerPrincipalId,
68
144
  });
145
+ const targetVersion = options.version ?? "";
146
+ const existing = await this.client
147
+ .select()
148
+ .where(Condition.attr("name").eq(normalizedName))
149
+ .execute(...ctxArgs);
150
+ const duplicate = existing.some((row) => (row.version ?? "") === targetVersion);
151
+ if (duplicate) {
152
+ throw new SecretError("SECRET_ALREADY_EXISTS", `Secret ${JSON.stringify(normalizedName)}${targetVersion ? ` version ${JSON.stringify(targetVersion)}` : ""} already exists`);
153
+ }
69
154
  try {
70
- await this.client.create(secret);
155
+ await this.client.create(secret, ...ctxArgs);
71
156
  }
72
157
  catch (error) {
73
- if (error?.message?.toLowerCase()?.includes?.("already") ||
74
- error?.name === "ConflictError") {
75
- throw this.parseError(error);
76
- }
77
158
  throw this.parseError(error);
78
159
  }
79
160
  return {
@@ -85,8 +166,28 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
85
166
  },
86
167
  };
87
168
  }
169
+ /**
170
+ * @description Reads, decrypts, and deserializes an enabled secret row
171
+ * @summary Queries the newest matching enabled row (by normalized name and,
172
+ * optionally, version), re-derives the key using the row's salt, and decrypts
173
+ * the payload. Rows are ordered by `updatedAt DESC`, so when several rows
174
+ * share a name the most recently updated enabled row is resolved
175
+ * deterministically. The repository SELECT runs inside a principal-bound
176
+ * transaction (see {@link ModelSecretService.withinPrincipalTransaction}):
177
+ * it joins an in-flight `transactionLock` on the context or begins one,
178
+ * binding the context's principal to `app.principal_id` on TypeORM adapters
179
+ * so namespace RLS applies to the read. Missing rows throw
180
+ * {@link NotFoundError}; decryption and JSON parse failures throw
181
+ * `InternalError`.
182
+ * @template T - The secret payload type.
183
+ * @param {SecretName | SecretReference} nameOrRef - The secret name or reference.
184
+ * @param {RetrieveSecretOptions} [options] - Optional version filter.
185
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
186
+ * @returns {Promise<T>} The decrypted payload.
187
+ * @throws {NotFoundError} When no enabled secret matches the name/version.
188
+ */
88
189
  async retrieve(nameOrRef, options = {}, ...args) {
89
- const { log } = (await this.logCtx(args, "retrieve", true)).for(this.retrieve);
190
+ const { log, ctx, ctxArgs } = (await this.logCtx(args, "retrieve", true)).for(this.retrieve);
90
191
  const nameStr = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
91
192
  log.verbose(`Retrieving secret ${nameStr}`);
92
193
  let name;
@@ -111,12 +212,17 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
111
212
  condition = condition.and(Condition.attr("version").eq(version));
112
213
  }
113
214
  condition = condition.and(Condition.attr("enabled").eq(true));
114
- const results = await this.client.select().where(condition).execute();
215
+ const results = await this.withinPrincipalTransaction(ctx, (lock) => this.client
216
+ .override({ transactionLock: lock })
217
+ .select()
218
+ .where(condition)
219
+ .orderBy(["updatedAt", OrderDirection.DSC])
220
+ .execute(...ctxArgs));
115
221
  const existing = results[0];
116
222
  if (!existing) {
117
223
  throw new NotFoundError(`Secret "${normalizedName}" not found`);
118
224
  }
119
- const derivedKey = await this.cryptoService.deriveKeyFromSecret(this.config.keySecret);
225
+ const derivedKey = await this.cryptoService.deriveKeyFromSecret(this.config.keySecret, existing.encryption?.salt);
120
226
  let decryptedValue;
121
227
  try {
122
228
  decryptedValue = await this.cryptoService.decryptPayload(existing.encryptedPayload, this.cryptoService.extractKeyFromDerivedKey(derivedKey).key);
@@ -124,14 +230,82 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
124
230
  catch (error) {
125
231
  throw new InternalError(`Failed to decrypt secret "${normalizedName}": ${error.message}`);
126
232
  }
127
- const payload = {
128
- encoding: "utf8",
129
- value: decryptedValue,
130
- };
233
+ let payload;
234
+ try {
235
+ payload = JSON.parse(decryptedValue);
236
+ }
237
+ catch (error) {
238
+ throw new InternalError(`Failed to deserialize secret "${normalizedName}": ${error.message}`);
239
+ }
131
240
  return deserializeSecretPayload(payload);
132
241
  }
242
+ /**
243
+ * @description Runs a repository operation inside a principal-bound transaction
244
+ * @summary Mirrors core's `@transactional()` proxy for single reads: reuses
245
+ * the `transactionLock` already cached on the context (nested call), or
246
+ * resolves a fresh lock for the service client via `resolveTransactionLock`
247
+ * and calls `begin(context)` - which, on a TypeORM adapter, binds the
248
+ * context's principal to `app.principal_id` for the new transaction.
249
+ * Increments the lock depth for the duration of the operation; on failure,
250
+ * rolls back and zeroes the depth (skipping a redundant rollback when an
251
+ * inner frame already ended the transaction) and rethrows the original
252
+ * error; on success, commits when the outermost frame completes.
253
+ * @template R - The operation result type.
254
+ * @param {Context} context - The request context, carrying any in-flight transaction lock.
255
+ * @param {function(ContextLock): Promise<R>} operation - The repository operation to run, receiving the active lock.
256
+ * @returns {Promise<R>} The operation result.
257
+ * @throws {InternalError} When the final commit fails; operation errors are rethrown after rollback.
258
+ */
259
+ async withinPrincipalTransaction(context, operation) {
260
+ const existing = context.getOrUndefined("transactionLock");
261
+ const lock = existing ?? resolveTransactionLock(this.client);
262
+ lock.depth++;
263
+ if (!existing) {
264
+ await lock.begin(context);
265
+ context.cache.put("transactionLock", lock);
266
+ }
267
+ let result;
268
+ try {
269
+ result = await operation(lock);
270
+ }
271
+ catch (error) {
272
+ const alreadyEnded = lock.depth === 0;
273
+ lock.depth = 0;
274
+ if (!alreadyEnded) {
275
+ try {
276
+ await lock.rollback(error, context);
277
+ }
278
+ catch (rollbackError) {
279
+ void rollbackError;
280
+ }
281
+ }
282
+ throw error;
283
+ }
284
+ lock.depth--;
285
+ if (lock.depth === 0) {
286
+ try {
287
+ await lock.commit(context);
288
+ }
289
+ catch (error) {
290
+ throw new InternalError(`Failed to commit transaction: ${error}`);
291
+ }
292
+ }
293
+ return result;
294
+ }
295
+ /**
296
+ * @description Deletes (or disables) a secret row
297
+ * @summary Soft-deletes by default: the row is disabled and stamped with a
298
+ * new `updatedAt`. With `options.force`, the row is hard-deleted from the
299
+ * repository. Rows are ordered by `updatedAt DESC`, so the most recently
300
+ * updated matching row is resolved deterministically. A missing secret
301
+ * resolves silently.
302
+ * @param {SecretName | SecretReference} nameOrRef - The secret name or reference.
303
+ * @param {DeleteSecretOptions} [options] - Optional version filter and `force` hard-delete flag.
304
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
305
+ * @returns {Promise<void>} Resolves once the row is deleted or disabled.
306
+ */
133
307
  async delete(nameOrRef, options = {}, ...args) {
134
- const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
308
+ const { log, ctxArgs } = (await this.logCtx(args, "delete", true)).for(this.delete);
135
309
  const nameStr = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
136
310
  log.verbose(`Deleting secret ${nameStr}`);
137
311
  let name;
@@ -153,22 +327,35 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
153
327
  if (version) {
154
328
  filter = filter.and(Condition.attr("version").eq(version));
155
329
  }
156
- const results = await this.client.select().where(filter).execute();
330
+ const results = await this.client
331
+ .select()
332
+ .where(filter)
333
+ .orderBy(["updatedAt", OrderDirection.DSC])
334
+ .execute(...ctxArgs);
157
335
  const existing = results[0];
158
336
  if (!existing) {
159
337
  return;
160
338
  }
161
339
  if (options.force) {
162
- await this.client.delete(normalizedName);
340
+ await this.client.delete(existing.id, ...ctxArgs);
163
341
  }
164
342
  else {
165
343
  existing.enabled = false;
166
344
  existing.updatedAt = new Date();
167
- await this.client.update(existing);
345
+ await this.client.update(existing, ...ctxArgs);
168
346
  }
169
347
  }
348
+ /**
349
+ * @description Checks whether an enabled secret exists (optionally at a version)
350
+ * @summary Counts enabled rows matching the normalized name (plus any
351
+ * requested version) and returns whether the count is positive.
352
+ * @param {SecretName | SecretReference} nameOrRef - The secret name or reference.
353
+ * @param {ExistsSecretOptions} [options] - Optional version filter.
354
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
355
+ * @returns {Promise<boolean>} `true` when at least one enabled row matches.
356
+ */
170
357
  async exists(nameOrRef, options = {}, ...args) {
171
- const { log } = (await this.logCtx(args, "exists", true)).for(this.exists);
358
+ const { log, ctxArgs } = (await this.logCtx(args, "exists", true)).for(this.exists);
172
359
  const nameStr = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
173
360
  log.verbose(`Checking if secret ${nameStr} exists`);
174
361
  let name;
@@ -192,11 +379,19 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
192
379
  if (version) {
193
380
  filter = filter.and(Condition.attr("version").eq(version));
194
381
  }
195
- const count = await this.client.count().where(filter).execute();
382
+ const count = await this.client.count().where(filter).execute(...ctxArgs);
196
383
  return count > 0;
197
384
  }
385
+ /**
386
+ * @description Lists secret metadata across stored rows
387
+ * @summary Selects rows filtered by the `enabled` flag (when supplied) and
388
+ * maps them to `SecretMetadata` records (no payloads).
389
+ * @param {ListSecretsOptions} [options] - Optional `enabled` filter.
390
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
391
+ * @returns {Promise<SecretMetadata[]>} Metadata for every matching secret.
392
+ */
198
393
  async list(options = {}, ...args) {
199
- const { log } = (await this.logCtx(args, "list", true)).for(this.list);
394
+ const { log, ctxArgs } = (await this.logCtx(args, "list", true)).for(this.list);
200
395
  log.verbose("Listing secrets");
201
396
  let condition = null;
202
397
  if (options.enabled !== undefined) {
@@ -205,7 +400,7 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
205
400
  const secrets = await this.client
206
401
  .select()
207
402
  .where(condition || Condition.attr("name").dif(null))
208
- .execute();
403
+ .execute(...ctxArgs);
209
404
  return secrets.map((secret) => ({
210
405
  provider: secret.provider,
211
406
  name: secret.name,
@@ -217,8 +412,20 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
217
412
  tags: secret.tags,
218
413
  }));
219
414
  }
415
+ /**
416
+ * @description Reads one secret's metadata without its payload
417
+ * @summary Selects the row matching the normalized name (and optional
418
+ * version) and maps it to `SecretMetadata`; tags are included only when
419
+ * `options.includeTags` is set. Rows are ordered by `updatedAt DESC`, so
420
+ * the most recently updated matching row is resolved deterministically.
421
+ * Returns `undefined` when no row matches.
422
+ * @param {SecretName | SecretReference} nameOrRef - The secret name or reference.
423
+ * @param {SecretMetadataOptions} [options] - Optional version filter and `includeTags` flag.
424
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
425
+ * @returns {Promise<SecretMetadata | undefined>} The metadata, or `undefined` when absent.
426
+ */
220
427
  async metadata(nameOrRef, options = {}, ...args) {
221
- const { log } = (await this.logCtx(args, "metadata", true)).for(this.metadata);
428
+ const { log, ctxArgs } = (await this.logCtx(args, "metadata", true)).for(this.metadata);
222
429
  const nameStr = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
223
430
  log.verbose(`Getting metadata for secret ${nameStr}`);
224
431
  let name;
@@ -244,7 +451,8 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
244
451
  const results = await this.client
245
452
  .select()
246
453
  .where(filter)
247
- .execute();
454
+ .orderBy(["updatedAt", OrderDirection.DSC])
455
+ .execute(...ctxArgs);
248
456
  const secret = results[0];
249
457
  if (!secret) {
250
458
  return undefined;
@@ -263,6 +471,94 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
263
471
  }
264
472
  return meta;
265
473
  }
474
+ /**
475
+ * @description Re-encrypts an enabled secret row with a new payload
476
+ * @summary Locates the enabled row (optionally pinned to
477
+ * `options.oldVersion`), encrypts the new payload with a freshly derived
478
+ * key (optionally tagged with `options.keyId`), and updates the row's
479
+ * payload, encryption metadata, version (`options.newVersion`), and
480
+ * `updatedAt`. When `options.newVersion` differs from the row's current
481
+ * version, a `(name, version)` duplicate check rejects the rotation with a
482
+ * `SECRET_ALREADY_EXISTS` {@link SecretError}; otherwise the target version
483
+ * is reused and the row is updated in place. Matching rows are ordered by
484
+ * `updatedAt DESC`, so the most recently updated enabled row is resolved
485
+ * deterministically.
486
+ * @template T - The secret payload type.
487
+ * @param {SecretName | SecretReference} nameOrRef - The secret name or reference.
488
+ * @param {T} value - The new payload.
489
+ * @param {RotateSecretOptions} [options] - Optional `newVersion`, `oldVersion`, and `keyId`.
490
+ * @param {MaybeContextualArg} args - Optional trailing decaf `Context` forwarded to the repository.
491
+ * @returns {Promise<SecretReference>} A reference reflecting the updated row.
492
+ * @throws {NotFoundError} When no enabled secret matches the name/version.
493
+ * @throws {SecretError} `SECRET_ALREADY_EXISTS` when the target `newVersion` is already held by another row with the same normalized name, or `SECRET_PROVIDER_CONFLICT` when the repository update fails.
494
+ */
495
+ async rotate(nameOrRef, value, options = {}, ...args) {
496
+ const { log, ctxArgs } = (await this.logCtx(args, "rotate", true)).for(this.rotate);
497
+ const nameStr = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
498
+ log.verbose(`Rotating secret ${nameStr}`);
499
+ const normalizedName = normalizeSecretName(nameStr);
500
+ let condition = Condition.attr("name").eq(normalizedName);
501
+ condition = condition.and(Condition.attr("enabled").eq(true));
502
+ const version = options.oldVersion ??
503
+ (typeof nameOrRef === "object" ? nameOrRef.version : undefined);
504
+ if (version) {
505
+ condition = condition.and(Condition.attr("version").eq(version));
506
+ }
507
+ const results = await this.client
508
+ .select()
509
+ .where(condition)
510
+ .orderBy(["updatedAt", OrderDirection.DSC])
511
+ .execute(...ctxArgs);
512
+ const existing = results[0];
513
+ if (!existing) {
514
+ throw new NotFoundError(`Secret "${normalizedName}" not found`);
515
+ }
516
+ const nextVersion = options.newVersion ?? existing.version;
517
+ const targetVersion = nextVersion ?? "";
518
+ if (targetVersion !== (existing.version ?? "")) {
519
+ const rows = await this.client
520
+ .select()
521
+ .where(Condition.attr("name").eq(normalizedName))
522
+ .execute(...ctxArgs);
523
+ const duplicate = rows.some((row) => row.id !== existing.id && (row.version ?? "") === targetVersion);
524
+ if (duplicate) {
525
+ throw new SecretError("SECRET_ALREADY_EXISTS", `Secret ${JSON.stringify(normalizedName)}${targetVersion ? ` version ${JSON.stringify(targetVersion)}` : ""} already exists`);
526
+ }
527
+ }
528
+ const serialized = serializeSecretPayload(value);
529
+ const derivedKey = await this.cryptoService.deriveKeyFromSecret(this.config.keySecret);
530
+ const extracted = this.cryptoService.extractKeyFromDerivedKey(derivedKey);
531
+ const { encryptedData, metadata } = await this.cryptoService.encryptPayload(JSON.stringify(serialized), options.keyId || this.config.keyId || DEFAULT_KEY_ID, extracted.key);
532
+ existing.encryptedPayload = encryptedData;
533
+ existing.encryption = {
534
+ keyId: metadata.keyId,
535
+ iv: metadata.iv,
536
+ salt: extracted.salt,
537
+ };
538
+ existing.version = nextVersion;
539
+ existing.updatedAt = new Date();
540
+ try {
541
+ await this.client.update(existing, ...ctxArgs);
542
+ }
543
+ catch (error) {
544
+ throw this.parseError(error);
545
+ }
546
+ return {
547
+ provider: this.provider,
548
+ name: normalizedName,
549
+ version: existing.version,
550
+ };
551
+ }
552
+ /**
553
+ * @description Translates repository errors into typed secret errors
554
+ * @summary Inspects the error message for "not found"/404, "already
555
+ * exists"/conflict/409, and decryption-related markers and maps them to
556
+ * `SECRET_NOT_FOUND`, `SECRET_ALREADY_EXISTS`,
557
+ * `SECRET_DECRYPTION_FAILED`, or a generic `SECRET_PROVIDER_CONFLICT`
558
+ * {@link SecretError}.
559
+ * @param {unknown} error - The raw error thrown by the repository.
560
+ * @returns {SecretError} The typed secret error.
561
+ */
266
562
  parseError(error) {
267
563
  const err = error;
268
564
  const message = err.message || err.name || "Unknown error";
@@ -272,7 +568,10 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
272
568
  }
273
569
  if (lowerMessage.includes("already exists") ||
274
570
  lowerMessage.includes("conflict") ||
275
- lowerMessage.includes("409")) {
571
+ lowerMessage.includes("409") ||
572
+ lowerMessage.includes("duplicate key") ||
573
+ lowerMessage.includes("unique constraint") ||
574
+ err.code === "23505") {
276
575
  return new SecretError("SECRET_ALREADY_EXISTS", `Secret already exists: ${message}`, err);
277
576
  }
278
577
  if (lowerMessage.includes("decryption") ||
@@ -281,9 +580,5 @@ let ModelSecretService = class ModelSecretService extends ClientBasedSecretServi
281
580
  }
282
581
  return new SecretError("SECRET_PROVIDER_CONFLICT", `Provider error: ${message}`, err);
283
582
  }
284
- };
285
- ModelSecretService = __decorate([
286
- service("secret-model")
287
- ], ModelSecretService);
288
- export { ModelSecretService };
583
+ }
289
584
  //# sourceMappingURL=ModelSecretService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSecretService.js","sourceRoot":"","sources":["../../../../src/secrets/model/ModelSecretService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelSecretService.js","sourceRoot":"","sources":["../../../../src/secrets/model/ModelSecretService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAkB,2BAAgB;AAgBhF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,2BAAgB;AAClE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GAEzB,2BAAgB;AACjB,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAKL,UAAU,EACV,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAClE,OAAO,EAAE,SAAS,EAAE,2CAAsC;AAC1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,kBAAmB,SAAQ,wBAGvC;IAIC;QACE,KAAK,EAAE,CAAC;QAJD,aAAQ,GAAmB,OAAO,CAAC;IAK5C,CAAC;IAED;;;;;;;OAOG;IACO,qBAAqB;QAC7B,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,GAAG,IAAyB;QAI3C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAA2B,GAAG,IAAI,CAAC,CAAC;QACzE,MAAM,UAAU,GACb,IAAI,CAAC,CAAC,CAAyC;YAChD,UAAU,CAAC,QAAQ,CAAkC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,KAAK,CACT,IAAgB,EAChB,KAAQ,EACR,UAA8B,EAAE,EAChC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACnE,IAAI,CAAC,KAAK,CACX,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC7D,IAAI,CAAC,MAAM,CAAC,SAAmB,CAChC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACzE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,cAAc,EACnC,SAAS,CAAC,GAAG,CACd,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,aAAa;YAC/B,UAAU,EAAE;gBACV,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,SAAS,CAAC,IAAI;aACrB;YACD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM;aAC/B,MAAM,EAAE;aACR,KAAK,CAAC,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;aACxD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,aAAa,CACvD,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CACnB,uBAAuB,EACvB,UAAU,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GACtC,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAChE,iBAAiB,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE;gBACR,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;aAC7B;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,QAAQ,CACZ,SAAuC,EACvC,UAAiC,EAAE,EACnC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAC1C,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAY,CAAC;QACjB,IAAI,OAA2B,CAAC;QAEhC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,SAAS,CAAC;YACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YACtB,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,SAAS,GAAG,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAElE,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAClE,IAAI,CAAC,MAAM;aACR,QAAQ,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;aACnC,MAAM,EAAE;aACR,KAAK,CAAC,SAAS,CAAC;aAChB,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1C,OAAO,CAAC,GAAG,OAAO,CAAC,CACvB,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,WAAW,cAAc,aAAa,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC7D,IAAI,CAAC,MAAM,CAAC,SAAmB,EAC/B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAC1B,CAAC;QACF,IAAI,cAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACtD,QAAQ,CAAC,gBAAgB,EACzB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,GAAG,CAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CACrB,6BAA6B,cAAc,MAAO,KAAe,CAAC,OAAO,EAAE,CAC5E,CAAC;QACJ,CAAC;QAED,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAA4B,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CACrB,iCAAiC,cAAc,MAAO,KAAe,CAAC,OAAO,EAAE,CAChF,CAAC;QACJ,CAAC;QAED,OAAO,wBAAwB,CAAC,OAAO,CAAM,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,0BAA0B,CACtC,OAAqB,EACrB,SAA4C;QAE5C,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAE5C,CAAC;QACd,MAAM,IAAI,GAAG,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,MAAS,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAc,EAAE,OAAO,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,aAAsB,EAAE,CAAC;oBAChC,KAAK,aAAa,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,aAAa,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CACV,SAAuC,EACvC,UAA+B,EAAE,EACjC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACpE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAE1C,IAAI,IAAY,CAAC;QAEjB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM;aAC9B,MAAM,EAAE;aACR,KAAK,CAAC,MAAM,CAAC;aACb,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,SAAuC,EACvC,UAA+B,EAAE,EACjC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACpE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,sBAAsB,OAAO,SAAS,CAAC,CAAC;QAEpD,IAAI,IAAY,CAAC;QAEjB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhE,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QAE1E,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,UAA8B,EAAE,EAChC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAClE,IAAI,CAAC,IAAI,CACV,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE/B,IAAI,SAAS,GAA6B,IAAI,CAAC;QAE/C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAa,MAAM,IAAI,CAAC,MAAM;aACxC,MAAM,EAAE;aACR,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5D,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QAEvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,QAA0B;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,SAAuC,EACvC,UAAiC,EAAE,EACnC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACtE,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;QAEtD,IAAI,IAAY,CAAC;QAEjB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAE/D,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,OAAO,GAAa,MAAM,IAAI,CAAC,MAAM;aACxC,MAAM,EAAE;aACR,KAAK,CAAC,MAAM,CAAC;aACb,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAmB;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAA0B;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,MAAM,CACV,SAAuC,EACvC,KAAQ,EACR,UAA+B,EAAE,EACjC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACpE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,SAAS,GAAG,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAClE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GACX,OAAO,CAAC,UAAU;YAClB,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAS,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM;aAC9B,MAAM,EAAE;aACR,KAAK,CAAC,SAAS,CAAC;aAChB,OAAO,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,WAAW,cAAc,aAAa,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC;QAC3D,MAAM,aAAa,GAAG,WAAW,IAAI,EAAE,CAAC;QACxC,IAAI,aAAa,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM;iBAC3B,MAAM,EAAE;iBACR,KAAK,CAAC,SAAS,CAAC,IAAI,CAAS,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;iBACxD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,CAAC,GAAW,EAAE,EAAE,CACd,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,aAAa,CAClE,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,WAAW,CACnB,uBAAuB,EACvB,UAAU,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GACtC,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAChE,iBAAiB,CAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC7D,IAAI,CAAC,MAAM,CAAC,SAAmB,CAChC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAC1E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACzE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAC1B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,cAAc,EACpD,SAAS,CAAC,GAAG,CACd,CAAC;QAEF,QAAQ,CAAC,gBAAgB,GAAG,aAAa,CAAC;QAC1C,QAAQ,CAAC,UAAU,GAAG;YACpB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC;QACF,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;QAC/B,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACO,UAAU,CAAC,KAAc;QACjC,MAAM,GAAG,GAAG,KAAc,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,WAAW,CACpB,kBAAkB,EAClB,qBAAqB,OAAO,EAAE,EAC9B,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IACE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACvC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5B,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;YACtC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACzC,GAA0B,CAAC,IAAI,KAAK,OAAO,EAC5C,CAAC;YACD,OAAO,IAAI,WAAW,CACpB,uBAAuB,EACvB,0BAA0B,OAAO,EAAE,EACnC,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IACE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;YACnC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAChC,CAAC;YACD,OAAO,IAAI,WAAW,CACpB,0BAA0B,EAC1B,sBAAsB,OAAO,EAAE,EAC/B,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,WAAW,CACpB,0BAA0B,EAC1B,mBAAmB,OAAO,EAAE,EAC5B,GAAG,CACJ,CAAC;IACJ,CAAC;CACF"}