@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
@@ -0,0 +1,259 @@
1
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
2
+ /**
3
+ * @description Configuration for the Slack service
4
+ * @summary Extends {@link HttpApiServiceConfig} with the Slack Bot User OAuth
5
+ * token used as a bearer token. When omitted, the `comms.slack` environment
6
+ * slice supplies the token (and optional `baseUrl`/`timeout`).
7
+ * @category Comms
8
+ * @memberOf module:integrations/comms/slack/service
9
+ */
10
+ export interface SlackServiceConfig extends HttpApiServiceConfig {
11
+ /**
12
+ * @description Slack Bot User OAuth token
13
+ * @summary Sent as `Authorization: Bearer <token>` with every API call.
14
+ */
15
+ token?: string;
16
+ }
17
+ /**
18
+ * @description Input for posting a message to a Slack channel or thread
19
+ * @summary Carries the destination `channel` (ID or `#channel`/`@user` style
20
+ * name), the plain-text fallback `text`, optional Block Kit `blocks`, and the
21
+ * posting options (thread reply, broadcast reply, unfurling).
22
+ * @category Comms
23
+ * @memberOf module:integrations/comms/slack/service
24
+ */
25
+ export interface SlackPostMessageInput {
26
+ /**
27
+ * @description Destination channel ID, `#channel`, or `@user` mention
28
+ */
29
+ channel: string;
30
+ /**
31
+ * @description Plain-text message body (also the fallback for `blocks`)
32
+ */
33
+ text: string;
34
+ /**
35
+ * @description Optional Block Kit layout blocks replacing plain text
36
+ */
37
+ blocks?: unknown[];
38
+ /**
39
+ * @description Message timestamp to reply in-thread to
40
+ */
41
+ threadTs?: string;
42
+ /**
43
+ * @description Whether to also notify the channel when replying in a thread
44
+ */
45
+ replyBroadcast?: boolean;
46
+ /**
47
+ * @description Whether link previews are enabled
48
+ */
49
+ unfurlLinks?: boolean;
50
+ /**
51
+ * @description Whether media unfurls are enabled
52
+ */
53
+ unfurlMedia?: boolean;
54
+ }
55
+ /**
56
+ * @description Result of a posted Slack message
57
+ * @summary Echoes the destination `channel` and the message timestamp `ts`
58
+ * (usable as `threadTs` for follow-up replies), with the posted `text` and the
59
+ * raw `message` payload when Slack returns them.
60
+ * @category Comms
61
+ * @memberOf module:integrations/comms/slack/service
62
+ */
63
+ export interface SlackPostMessageResult {
64
+ channel: string;
65
+ ts: string;
66
+ text?: string;
67
+ message?: unknown;
68
+ }
69
+ /**
70
+ * @description Normalized Slack conversation (channel) descriptor
71
+ * @summary Maps the raw `conversations.*` payload onto camelCase fields:
72
+ * identity (`id`, `name`), visibility (`isPrivate`, `isArchived`),
73
+ * `memberCount`, and topic/purpose summaries.
74
+ * @category Comms
75
+ * @memberOf module:integrations/comms/slack/service
76
+ */
77
+ export interface SlackChannel {
78
+ id: string;
79
+ name?: string;
80
+ isPrivate?: boolean;
81
+ isArchived?: boolean;
82
+ memberCount?: number;
83
+ topic?: string;
84
+ purpose?: string;
85
+ }
86
+ interface SlackApiResponse {
87
+ ok: boolean;
88
+ error?: string;
89
+ }
90
+ /**
91
+ * @description Slack Web API integration service
92
+ * @summary An undecorated HTTP service for posting messages,
93
+ * listing conversations with cursor paging, fetching a single conversation,
94
+ * and looking up users. The Slack Bot token is sent as a bearer token, every
95
+ * call requires it (`requireToken()`), non-`ok` Slack responses raise
96
+ * `InternalError`, and transport failures are mapped to decaf errors via
97
+ * {@link httpError}.
98
+ * @class SlackService
99
+ * @category Comms
100
+ * @example
101
+ * ```ts
102
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
103
+ *
104
+ * const slack = new SlackService();
105
+ * await slack.initialize({
106
+ * token: process.env.GRAPH_CREDENTIAL_SLACK_TOKEN,
107
+ * });
108
+ * await slack.postMessage({
109
+ * channel: "#general",
110
+ * text: "Deployment finished",
111
+ * });
112
+ * ```
113
+ * @mermaid
114
+ * sequenceDiagram
115
+ * autonumber
116
+ * participant Caller
117
+ * participant Service as SlackService
118
+ * participant Slack as Slack Web API
119
+ * Caller->>Service: postMessage(input)
120
+ * activate Service
121
+ * Service->>Service: requireToken()
122
+ * Service->>Slack: POST /chat.postMessage
123
+ * activate Slack
124
+ * Slack-->>Service: { ok, channel, ts }
125
+ * deactivate Slack
126
+ * alt ok
127
+ * Service-->>Caller: SlackPostMessageResult
128
+ * else error
129
+ * Service--xCaller: InternalError / mapped decaf error
130
+ * end
131
+ * deactivate Service
132
+ * @memberOf module:integrations/comms/slack/service
133
+ */
134
+ export declare class SlackService extends HttpApiService<SlackServiceConfig> {
135
+ /**
136
+ * @description The provider name used in error messages
137
+ */
138
+ protected readonly serviceName = "Slack";
139
+ /**
140
+ * @description The Slack Web API base URL
141
+ * @summary Used when the resolved config carries no `baseUrl`.
142
+ * @returns {string} `"https://slack.com/api"`.
143
+ */
144
+ protected defaultBaseUrl(): string;
145
+ /**
146
+ * @description Builds the Slack bearer authorization headers
147
+ * @summary Returns the `Authorization: Bearer <token>` header when the
148
+ * config carries a token, and no headers otherwise.
149
+ * @param {SlackServiceConfig} config - The resolved service configuration.
150
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
151
+ */
152
+ protected authHeaders(config: SlackServiceConfig): Record<string, string>;
153
+ /**
154
+ * @description Reads the Slack credentials and defaults from the environment
155
+ * @summary Reads the `comms.slack` environment slice and returns a partial
156
+ * config when a token is configured, `undefined` otherwise. Values pass
157
+ * through `envString`/`envNumber` to reject unset-leaf proxies.
158
+ * @returns {Partial<SlackServiceConfig> | undefined} A partial config, or `undefined` when no Slack token is configured.
159
+ */
160
+ protected configFromEnvironment(): Partial<SlackServiceConfig> | undefined;
161
+ /**
162
+ * @description Posts a request to a Slack Web API method
163
+ * @summary Shared request path for all Slack operations: asserts a token is
164
+ * configured, `POST`s the payload to `/<method>`, rejects non-`ok` Slack
165
+ * responses with an `InternalError`, and maps transport failures through
166
+ * {@link httpError}.
167
+ * @template T - The expected Slack response shape, extending `SlackApiResponse`.
168
+ * @param {string} method - The Slack Web API method name (e.g. `"chat.postMessage"`).
169
+ * @param {Record<string, unknown>} payload - The JSON body for the method.
170
+ * @returns {Promise<T>} The parsed Slack response payload.
171
+ * @throws {InternalError} When no token is configured or Slack answers with `ok: false`.
172
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
173
+ * @throws {ConflictError} When Slack answers with HTTP 409.
174
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
175
+ */
176
+ protected call<T extends SlackApiResponse>(method: string, payload: Record<string, unknown>): Promise<T>;
177
+ /**
178
+ * @description Posts a message to a Slack channel or thread
179
+ * @summary Sends the input to Slack's `chat.postMessage` method and returns
180
+ * the destination channel and message timestamp; use the returned `ts` as
181
+ * `threadTs` to reply in the same thread. Provide `blocks` for Block Kit
182
+ * layouts (with `text` as the fallback), or plain text alone.
183
+ * @param {SlackPostMessageInput} input - The message destination and content.
184
+ * @returns {Promise<SlackPostMessageResult>} The posted message's channel, timestamp, text, and raw payload.
185
+ * @throws {InternalError} When no token is configured or Slack rejects the message.
186
+ * @throws {NotFoundError} When the channel cannot be found (HTTP 404).
187
+ * @throws {ConflictError} When Slack answers with HTTP 409.
188
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
189
+ * @example
190
+ * ```ts
191
+ * await slack.postMessage({
192
+ * channel: "#deploys",
193
+ * text: "Release 1.2.0 is live",
194
+ * unfurlLinks: false,
195
+ * });
196
+ * ```
197
+ */
198
+ postMessage(input: SlackPostMessageInput): Promise<SlackPostMessageResult>;
199
+ /**
200
+ * @description Lists Slack conversations with cursor paging
201
+ * @summary Calls `conversations.list` with a page size (default `100`),
202
+ * conversation `types` (default public and private channels), and archived
203
+ * exclusion (default `true`), returning normalized channels and the
204
+ * `nextCursor` to pass back as `cursor` for the next page.
205
+ * @param {object} [options] - Paging and filter options.
206
+ * @param {number} [options.limit] - Page size; defaults to `100`.
207
+ * @param {string} [options.cursor] - The `nextCursor` from the previous page.
208
+ * @param {string} [options.types] - Comma-separated conversation types (e.g. `"public_channel,private_channel"`); defaults to `"public_channel,private_channel"`.
209
+ * @param {boolean} [options.excludeArchived] - Whether archived channels are excluded; defaults to `true`.
210
+ * @returns {Promise<{channels: SlackChannel[], nextCursor?: string}>} The page of channels and the cursor for the next page, when more pages exist.
211
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
212
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
213
+ * @throws {ConflictError} When Slack answers with HTTP 409.
214
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
215
+ * @example
216
+ * ```ts
217
+ * let cursor: string | undefined;
218
+ * do {
219
+ * const page = await slack.listConversations({ limit: 200, cursor });
220
+ * console.log(page.channels.map((channel) => channel.name));
221
+ * cursor = page.nextCursor;
222
+ * } while (cursor);
223
+ * ```
224
+ */
225
+ listConversations(options?: {
226
+ limit?: number;
227
+ cursor?: string;
228
+ types?: string;
229
+ excludeArchived?: boolean;
230
+ }): Promise<{
231
+ channels: SlackChannel[];
232
+ nextCursor?: string;
233
+ }>;
234
+ /**
235
+ * @description Fetches a single Slack conversation
236
+ * @summary Calls `conversations.info` for the given channel ID (or
237
+ * `#name`) and returns the normalized channel descriptor.
238
+ * @param {string} channel - The channel ID or `#name` to look up.
239
+ * @returns {Promise<SlackChannel>} The normalized conversation descriptor.
240
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
241
+ * @throws {NotFoundError} When the channel does not exist (HTTP 404).
242
+ * @throws {ConflictError} When Slack answers with HTTP 409.
243
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
244
+ */
245
+ getConversation(channel: string): Promise<SlackChannel>;
246
+ /**
247
+ * @description Fetches a Slack user profile
248
+ * @summary Calls `users.info` for the given user ID and returns the raw
249
+ * user payload, or `undefined` when Slack reports no user.
250
+ * @param {string} userId - The Slack user ID to look up (e.g. `"U12345678"`).
251
+ * @returns {Promise<Record<string, unknown> | undefined>} The raw user payload, or `undefined` when the user is not found.
252
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
253
+ * @throws {NotFoundError} When the user does not exist (HTTP 404).
254
+ * @throws {ConflictError} When Slack answers with HTTP 409.
255
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
256
+ */
257
+ getUser(userId: string): Promise<Record<string, unknown> | undefined>;
258
+ }
259
+ export {};
@@ -0,0 +1,259 @@
1
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.mts";
2
+ /**
3
+ * @description Configuration for the Slack service
4
+ * @summary Extends {@link HttpApiServiceConfig} with the Slack Bot User OAuth
5
+ * token used as a bearer token. When omitted, the `comms.slack` environment
6
+ * slice supplies the token (and optional `baseUrl`/`timeout`).
7
+ * @category Comms
8
+ * @memberOf module:integrations/comms/slack/service
9
+ */
10
+ export interface SlackServiceConfig extends HttpApiServiceConfig {
11
+ /**
12
+ * @description Slack Bot User OAuth token
13
+ * @summary Sent as `Authorization: Bearer <token>` with every API call.
14
+ */
15
+ token?: string;
16
+ }
17
+ /**
18
+ * @description Input for posting a message to a Slack channel or thread
19
+ * @summary Carries the destination `channel` (ID or `#channel`/`@user` style
20
+ * name), the plain-text fallback `text`, optional Block Kit `blocks`, and the
21
+ * posting options (thread reply, broadcast reply, unfurling).
22
+ * @category Comms
23
+ * @memberOf module:integrations/comms/slack/service
24
+ */
25
+ export interface SlackPostMessageInput {
26
+ /**
27
+ * @description Destination channel ID, `#channel`, or `@user` mention
28
+ */
29
+ channel: string;
30
+ /**
31
+ * @description Plain-text message body (also the fallback for `blocks`)
32
+ */
33
+ text: string;
34
+ /**
35
+ * @description Optional Block Kit layout blocks replacing plain text
36
+ */
37
+ blocks?: unknown[];
38
+ /**
39
+ * @description Message timestamp to reply in-thread to
40
+ */
41
+ threadTs?: string;
42
+ /**
43
+ * @description Whether to also notify the channel when replying in a thread
44
+ */
45
+ replyBroadcast?: boolean;
46
+ /**
47
+ * @description Whether link previews are enabled
48
+ */
49
+ unfurlLinks?: boolean;
50
+ /**
51
+ * @description Whether media unfurls are enabled
52
+ */
53
+ unfurlMedia?: boolean;
54
+ }
55
+ /**
56
+ * @description Result of a posted Slack message
57
+ * @summary Echoes the destination `channel` and the message timestamp `ts`
58
+ * (usable as `threadTs` for follow-up replies), with the posted `text` and the
59
+ * raw `message` payload when Slack returns them.
60
+ * @category Comms
61
+ * @memberOf module:integrations/comms/slack/service
62
+ */
63
+ export interface SlackPostMessageResult {
64
+ channel: string;
65
+ ts: string;
66
+ text?: string;
67
+ message?: unknown;
68
+ }
69
+ /**
70
+ * @description Normalized Slack conversation (channel) descriptor
71
+ * @summary Maps the raw `conversations.*` payload onto camelCase fields:
72
+ * identity (`id`, `name`), visibility (`isPrivate`, `isArchived`),
73
+ * `memberCount`, and topic/purpose summaries.
74
+ * @category Comms
75
+ * @memberOf module:integrations/comms/slack/service
76
+ */
77
+ export interface SlackChannel {
78
+ id: string;
79
+ name?: string;
80
+ isPrivate?: boolean;
81
+ isArchived?: boolean;
82
+ memberCount?: number;
83
+ topic?: string;
84
+ purpose?: string;
85
+ }
86
+ interface SlackApiResponse {
87
+ ok: boolean;
88
+ error?: string;
89
+ }
90
+ /**
91
+ * @description Slack Web API integration service
92
+ * @summary An undecorated HTTP service for posting messages,
93
+ * listing conversations with cursor paging, fetching a single conversation,
94
+ * and looking up users. The Slack Bot token is sent as a bearer token, every
95
+ * call requires it (`requireToken()`), non-`ok` Slack responses raise
96
+ * `InternalError`, and transport failures are mapped to decaf errors via
97
+ * {@link httpError}.
98
+ * @class SlackService
99
+ * @category Comms
100
+ * @example
101
+ * ```ts
102
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
103
+ *
104
+ * const slack = new SlackService();
105
+ * await slack.initialize({
106
+ * token: process.env.GRAPH_CREDENTIAL_SLACK_TOKEN,
107
+ * });
108
+ * await slack.postMessage({
109
+ * channel: "#general",
110
+ * text: "Deployment finished",
111
+ * });
112
+ * ```
113
+ * @mermaid
114
+ * sequenceDiagram
115
+ * autonumber
116
+ * participant Caller
117
+ * participant Service as SlackService
118
+ * participant Slack as Slack Web API
119
+ * Caller->>Service: postMessage(input)
120
+ * activate Service
121
+ * Service->>Service: requireToken()
122
+ * Service->>Slack: POST /chat.postMessage
123
+ * activate Slack
124
+ * Slack-->>Service: { ok, channel, ts }
125
+ * deactivate Slack
126
+ * alt ok
127
+ * Service-->>Caller: SlackPostMessageResult
128
+ * else error
129
+ * Service--xCaller: InternalError / mapped decaf error
130
+ * end
131
+ * deactivate Service
132
+ * @memberOf module:integrations/comms/slack/service
133
+ */
134
+ export declare class SlackService extends HttpApiService<SlackServiceConfig> {
135
+ /**
136
+ * @description The provider name used in error messages
137
+ */
138
+ protected readonly serviceName = "Slack";
139
+ /**
140
+ * @description The Slack Web API base URL
141
+ * @summary Used when the resolved config carries no `baseUrl`.
142
+ * @returns {string} `"https://slack.com/api"`.
143
+ */
144
+ protected defaultBaseUrl(): string;
145
+ /**
146
+ * @description Builds the Slack bearer authorization headers
147
+ * @summary Returns the `Authorization: Bearer <token>` header when the
148
+ * config carries a token, and no headers otherwise.
149
+ * @param {SlackServiceConfig} config - The resolved service configuration.
150
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
151
+ */
152
+ protected authHeaders(config: SlackServiceConfig): Record<string, string>;
153
+ /**
154
+ * @description Reads the Slack credentials and defaults from the environment
155
+ * @summary Reads the `comms.slack` environment slice and returns a partial
156
+ * config when a token is configured, `undefined` otherwise. Values pass
157
+ * through `envString`/`envNumber` to reject unset-leaf proxies.
158
+ * @returns {Partial<SlackServiceConfig> | undefined} A partial config, or `undefined` when no Slack token is configured.
159
+ */
160
+ protected configFromEnvironment(): Partial<SlackServiceConfig> | undefined;
161
+ /**
162
+ * @description Posts a request to a Slack Web API method
163
+ * @summary Shared request path for all Slack operations: asserts a token is
164
+ * configured, `POST`s the payload to `/<method>`, rejects non-`ok` Slack
165
+ * responses with an `InternalError`, and maps transport failures through
166
+ * {@link httpError}.
167
+ * @template T - The expected Slack response shape, extending `SlackApiResponse`.
168
+ * @param {string} method - The Slack Web API method name (e.g. `"chat.postMessage"`).
169
+ * @param {Record<string, unknown>} payload - The JSON body for the method.
170
+ * @returns {Promise<T>} The parsed Slack response payload.
171
+ * @throws {InternalError} When no token is configured or Slack answers with `ok: false`.
172
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
173
+ * @throws {ConflictError} When Slack answers with HTTP 409.
174
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
175
+ */
176
+ protected call<T extends SlackApiResponse>(method: string, payload: Record<string, unknown>): Promise<T>;
177
+ /**
178
+ * @description Posts a message to a Slack channel or thread
179
+ * @summary Sends the input to Slack's `chat.postMessage` method and returns
180
+ * the destination channel and message timestamp; use the returned `ts` as
181
+ * `threadTs` to reply in the same thread. Provide `blocks` for Block Kit
182
+ * layouts (with `text` as the fallback), or plain text alone.
183
+ * @param {SlackPostMessageInput} input - The message destination and content.
184
+ * @returns {Promise<SlackPostMessageResult>} The posted message's channel, timestamp, text, and raw payload.
185
+ * @throws {InternalError} When no token is configured or Slack rejects the message.
186
+ * @throws {NotFoundError} When the channel cannot be found (HTTP 404).
187
+ * @throws {ConflictError} When Slack answers with HTTP 409.
188
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
189
+ * @example
190
+ * ```ts
191
+ * await slack.postMessage({
192
+ * channel: "#deploys",
193
+ * text: "Release 1.2.0 is live",
194
+ * unfurlLinks: false,
195
+ * });
196
+ * ```
197
+ */
198
+ postMessage(input: SlackPostMessageInput): Promise<SlackPostMessageResult>;
199
+ /**
200
+ * @description Lists Slack conversations with cursor paging
201
+ * @summary Calls `conversations.list` with a page size (default `100`),
202
+ * conversation `types` (default public and private channels), and archived
203
+ * exclusion (default `true`), returning normalized channels and the
204
+ * `nextCursor` to pass back as `cursor` for the next page.
205
+ * @param {object} [options] - Paging and filter options.
206
+ * @param {number} [options.limit] - Page size; defaults to `100`.
207
+ * @param {string} [options.cursor] - The `nextCursor` from the previous page.
208
+ * @param {string} [options.types] - Comma-separated conversation types (e.g. `"public_channel,private_channel"`); defaults to `"public_channel,private_channel"`.
209
+ * @param {boolean} [options.excludeArchived] - Whether archived channels are excluded; defaults to `true`.
210
+ * @returns {Promise<{channels: SlackChannel[], nextCursor?: string}>} The page of channels and the cursor for the next page, when more pages exist.
211
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
212
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
213
+ * @throws {ConflictError} When Slack answers with HTTP 409.
214
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
215
+ * @example
216
+ * ```ts
217
+ * let cursor: string | undefined;
218
+ * do {
219
+ * const page = await slack.listConversations({ limit: 200, cursor });
220
+ * console.log(page.channels.map((channel) => channel.name));
221
+ * cursor = page.nextCursor;
222
+ * } while (cursor);
223
+ * ```
224
+ */
225
+ listConversations(options?: {
226
+ limit?: number;
227
+ cursor?: string;
228
+ types?: string;
229
+ excludeArchived?: boolean;
230
+ }): Promise<{
231
+ channels: SlackChannel[];
232
+ nextCursor?: string;
233
+ }>;
234
+ /**
235
+ * @description Fetches a single Slack conversation
236
+ * @summary Calls `conversations.info` for the given channel ID (or
237
+ * `#name`) and returns the normalized channel descriptor.
238
+ * @param {string} channel - The channel ID or `#name` to look up.
239
+ * @returns {Promise<SlackChannel>} The normalized conversation descriptor.
240
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
241
+ * @throws {NotFoundError} When the channel does not exist (HTTP 404).
242
+ * @throws {ConflictError} When Slack answers with HTTP 409.
243
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
244
+ */
245
+ getConversation(channel: string): Promise<SlackChannel>;
246
+ /**
247
+ * @description Fetches a Slack user profile
248
+ * @summary Calls `users.info` for the given user ID and returns the raw
249
+ * user payload, or `undefined` when Slack reports no user.
250
+ * @param {string} userId - The Slack user ID to look up (e.g. `"U12345678"`).
251
+ * @returns {Promise<Record<string, unknown> | undefined>} The raw user payload, or `undefined` when the user is not found.
252
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
253
+ * @throws {NotFoundError} When the user does not exist (HTTP 404).
254
+ * @throws {ConflictError} When Slack answers with HTTP 409.
255
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
256
+ */
257
+ getUser(userId: string): Promise<Record<string, unknown> | undefined>;
258
+ }
259
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/comms/slack
3
+ * @summary Slack Web API service (posting, conversations, users).
4
+ * @description Re-exports the Slack client-based service and its types.
5
+ */
6
+ export * from "./SlackService.d.cts";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/comms/slack
3
+ * @summary Slack Web API service (posting, conversations, users).
4
+ * @description Re-exports the Slack client-based service and its types.
5
+ */
6
+ export * from "./SlackService.d.mts";