@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,325 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MicrosoftOutlookService = void 0;
4
+ /**
5
+ * @module integrations/comms/outlook/service
6
+ * @summary Microsoft Outlook mail and calendar integration service (Microsoft Graph).
7
+ * @description Exposes Outlook mail (`sendMail`, `listMessages`, `getMessage`)
8
+ * and calendar (`listEvents`, `createEvent`, `deleteEvent`) operations through
9
+ * Microsoft Graph `v1.0` as an undecorated client-based service built on
10
+ * {@link HttpApiService}. Configuration comes from an explicit
11
+ * `OutlookServiceConfig` or the `comms.outlook` environment slice; the access
12
+ * token is sent as `Authorization: Bearer <token>`. Credentials are referenced
13
+ * from configuration (and, from as-graph nodes, from the resolved
14
+ * `microsoft-outlook` credential secret) and are never embedded in source.
15
+ * Failures are mapped to decaf errors via {@link httpError}.
16
+ */
17
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
18
+ const environment_js_1 = require("./../environment.cjs");
19
+ const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
20
+ const index_js_1 = require("./../../shared/http/index.cjs");
21
+ /**
22
+ * @description Normalizes Outlook recipient addresses into Graph recipients
23
+ * @summary Accepts a single address, an array, or a comma/semicolon-separated
24
+ * string, trims entries, drops blanks, and maps each address to the Graph
25
+ * `{ emailAddress: { address } }` envelope.
26
+ * @param {string | string[] | undefined} value - The raw recipient value.
27
+ * @returns {Array<{ emailAddress: { address: string } }>} The Graph recipient envelopes.
28
+ */
29
+ function recipientList(value) {
30
+ if (!value)
31
+ return [];
32
+ const values = Array.isArray(value)
33
+ ? value
34
+ : value.split(/[,;]/).map((entry) => entry.trim());
35
+ return values
36
+ .map((entry) => entry.trim())
37
+ .filter((entry) => entry.length > 0)
38
+ .map((address) => ({ emailAddress: { address } }));
39
+ }
40
+ /**
41
+ * @description Microsoft Outlook (Graph) mail and calendar integration service
42
+ * @summary An undecorated HTTP service for sending and reading mail and for
43
+ * listing, creating, and deleting calendar events on the signed-in user
44
+ * (`/me`). Every operation requires a Graph access token; missing credentials
45
+ * or identifiers raise `InternalError`, and transport failures are mapped to
46
+ * decaf errors via {@link httpError}.
47
+ * @class MicrosoftOutlookService
48
+ * @extends HttpApiService
49
+ * @category Comms
50
+ * @example
51
+ * ```ts
52
+ * import { MicrosoftOutlookService } from "@decaf-ts/integrations/comms/outlook";
53
+ *
54
+ * const outlook = new MicrosoftOutlookService();
55
+ * await outlook.initialize({
56
+ * token: process.env.GRAPH_CREDENTIAL_MICROSOFT_OUTLOOK_TOKEN,
57
+ * });
58
+ * await outlook.sendMail({
59
+ * to: "team@example.com",
60
+ * subject: "Deployment finished",
61
+ * body: "Release 1.2.0 is live",
62
+ * });
63
+ * ```
64
+ * @mermaid
65
+ * sequenceDiagram
66
+ * autonumber
67
+ * participant Caller
68
+ * participant Service as MicrosoftOutlookService
69
+ * participant Graph as Microsoft Graph
70
+ * Caller->>Service: sendMail(input)
71
+ * activate Service
72
+ * Service->>Service: requireAccessToken()
73
+ * Service->>Graph: POST /me/sendMail
74
+ * activate Graph
75
+ * Graph-->>Service: 202 Accepted
76
+ * deactivate Graph
77
+ * Service-->>Caller: { sent, to, subject }
78
+ * deactivate Service
79
+ * @memberOf module:integrations/comms/outlook/service
80
+ */
81
+ class MicrosoftOutlookService extends index_js_1.HttpApiService {
82
+ constructor() {
83
+ super(...arguments);
84
+ /**
85
+ * @description The provider name used in error messages
86
+ */
87
+ this.serviceName = "Microsoft Outlook";
88
+ }
89
+ /**
90
+ * @description The Microsoft Graph base URL
91
+ * @summary Used when the resolved config carries no `baseUrl`.
92
+ * @returns {string} `"https://graph.microsoft.com/v1.0"`.
93
+ */
94
+ defaultBaseUrl() {
95
+ return "https://graph.microsoft.com/v1.0";
96
+ }
97
+ /**
98
+ * @description Builds the Microsoft Graph bearer authorization headers
99
+ * @summary Returns `Authorization: Bearer <token>` when configured, and no
100
+ * headers otherwise.
101
+ * @param {OutlookServiceConfig} config - The resolved service configuration.
102
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
103
+ */
104
+ authHeaders(config) {
105
+ return config.token ? { Authorization: `Bearer ${config.token}` } : {};
106
+ }
107
+ /**
108
+ * @description Reads the Outlook credentials and defaults from the environment
109
+ * @summary Reads the `comms.outlook` slice and returns a partial config when
110
+ * an access token is configured, `undefined` otherwise. Values pass through
111
+ * `envString`/`envNumber` to reject unset-leaf proxies.
112
+ * @returns {Partial<OutlookServiceConfig> | undefined} A partial config, or `undefined` when no Outlook token is configured.
113
+ */
114
+ configFromEnvironment() {
115
+ const env = environment_js_1.CommsEnvironment.comms.outlook;
116
+ const token = (0, environmentValue_js_1.envString)(env?.token);
117
+ if (!token)
118
+ return undefined;
119
+ return {
120
+ token,
121
+ baseUrl: (0, environmentValue_js_1.envString)(env.baseUrl),
122
+ timeout: (0, environmentValue_js_1.envNumber)(env.timeout),
123
+ };
124
+ }
125
+ /**
126
+ * @description Asserts that a Microsoft Graph access token is configured
127
+ * @summary Delegates to the shared `requireToken()` guard used by every
128
+ * operation.
129
+ * @returns {void}
130
+ * @throws {InternalError} When the resolved config has no `token`.
131
+ */
132
+ requireAccessToken() {
133
+ this.requireToken();
134
+ }
135
+ /**
136
+ * @description Sends a mail message through Outlook
137
+ * @summary `POST`s the message to `/me/sendMail`; recipients are normalized
138
+ * to Graph envelopes and `saveToSentItems` defaults to `true`.
139
+ * @param {OutlookMailInput} input - The recipients, subject, body, and content options.
140
+ * @returns {Promise<unknown>} `{ sent: true, to, subject }` on success.
141
+ * @throws {InternalError} When no token is configured, or recipients or subject are missing.
142
+ * @throws {BadRequestError} When Graph rejects the request.
143
+ * @example
144
+ * ```ts
145
+ * await outlook.sendMail({
146
+ * to: ["a@example.com", "b@example.com"],
147
+ * subject: "Status",
148
+ * body: "All systems operational",
149
+ * contentType: "Text",
150
+ * });
151
+ * ```
152
+ */
153
+ async sendMail(input) {
154
+ this.requireAccessToken();
155
+ if (!input.to || !input.subject) {
156
+ throw new db_decorators_1.InternalError("Microsoft Outlook sendMail requires recipients and a subject");
157
+ }
158
+ try {
159
+ await this.client.post("/me/sendMail", {
160
+ message: {
161
+ subject: input.subject,
162
+ body: {
163
+ contentType: input.contentType ?? "Text",
164
+ content: input.body ?? "",
165
+ },
166
+ toRecipients: recipientList(input.to),
167
+ ...(input.cc ? { ccRecipients: recipientList(input.cc) } : {}),
168
+ ...(input.bcc ? { bccRecipients: recipientList(input.bcc) } : {}),
169
+ },
170
+ saveToSentItems: input.saveToSentItems ?? true,
171
+ });
172
+ return { sent: true, to: input.to, subject: input.subject };
173
+ }
174
+ catch (error) {
175
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "send mail", error);
176
+ }
177
+ }
178
+ /**
179
+ * @description Lists messages in an Outlook mail folder
180
+ * @summary `GET`s `/me/mailFolders/<folder>/messages` (default `inbox`)
181
+ * applying the optional `$top`, `$filter`, and `$search` parameters.
182
+ * @param {OutlookListInput} [input] - The folder and OData query options.
183
+ * @returns {Promise<unknown>} The Graph message collection.
184
+ * @throws {InternalError} When no token is configured.
185
+ * @throws {NotFoundError} When the folder does not exist (HTTP 404).
186
+ * @throws {BadRequestError} When Graph rejects the query.
187
+ */
188
+ async listMessages(input = {}) {
189
+ this.requireAccessToken();
190
+ const folder = input.folderId ?? "inbox";
191
+ try {
192
+ const response = await this.client.get(`/me/mailFolders/${encodeURIComponent(folder)}/messages`, {
193
+ params: {
194
+ ...(input.top !== undefined ? { $top: input.top } : {}),
195
+ ...(input.filter ? { $filter: input.filter } : {}),
196
+ ...(input.search ? { $search: input.search } : {}),
197
+ },
198
+ });
199
+ return response.data;
200
+ }
201
+ catch (error) {
202
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "list messages", error);
203
+ }
204
+ }
205
+ /**
206
+ * @description Fetches a single Outlook message
207
+ * @summary `GET`s `/me/messages/<id>` and returns the message payload.
208
+ * @param {string} messageId - The Graph message ID.
209
+ * @returns {Promise<unknown>} The message payload.
210
+ * @throws {InternalError} When no token is configured or the message ID is empty.
211
+ * @throws {NotFoundError} When the message does not exist (HTTP 404).
212
+ * @throws {BadRequestError} When Graph rejects the request.
213
+ */
214
+ async getMessage(messageId) {
215
+ this.requireAccessToken();
216
+ if (!messageId) {
217
+ throw new db_decorators_1.InternalError("Microsoft Outlook requires a message id");
218
+ }
219
+ try {
220
+ const response = await this.client.get(`/me/messages/${encodeURIComponent(messageId)}`);
221
+ return response.data;
222
+ }
223
+ catch (error) {
224
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "get message", error);
225
+ }
226
+ }
227
+ /**
228
+ * @description Lists Outlook calendar events
229
+ * @summary `GET`s `/me/events` applying the optional `$top`, `$filter`, and
230
+ * `$search` parameters; the mail `folderId` is not used.
231
+ * @param {OutlookListInput} [input] - The OData query options.
232
+ * @returns {Promise<unknown>} The Graph event collection.
233
+ * @throws {InternalError} When no token is configured.
234
+ * @throws {BadRequestError} When Graph rejects the query.
235
+ */
236
+ async listEvents(input = {}) {
237
+ this.requireAccessToken();
238
+ try {
239
+ const response = await this.client.get("/me/events", {
240
+ params: {
241
+ ...(input.top !== undefined ? { $top: input.top } : {}),
242
+ ...(input.filter ? { $filter: input.filter } : {}),
243
+ ...(input.search ? { $search: input.search } : {}),
244
+ },
245
+ });
246
+ return response.data;
247
+ }
248
+ catch (error) {
249
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "list events", error);
250
+ }
251
+ }
252
+ /**
253
+ * @description Creates an Outlook calendar event
254
+ * @summary `POST`s the event to `/me/events`; `start`/`end` are sent with the
255
+ * configured or default (`UTC`) time zone and attendees as required.
256
+ * @param {OutlookEventInput} input - The event definition.
257
+ * @returns {Promise<unknown>} The created Graph event.
258
+ * @throws {InternalError} When no token is configured, or subject, start, or end is missing.
259
+ * @throws {BadRequestError} When Graph rejects the event.
260
+ * @example
261
+ * ```ts
262
+ * await outlook.createEvent({
263
+ * subject: "Release review",
264
+ * start: "2026-11-01T09:00:00",
265
+ * end: "2026-11-01T10:00:00",
266
+ * timeZone: "Europe/Lisbon",
267
+ * });
268
+ * ```
269
+ */
270
+ async createEvent(input) {
271
+ this.requireAccessToken();
272
+ if (!input.subject || !input.start || !input.end) {
273
+ throw new db_decorators_1.InternalError("Microsoft Outlook createEvent requires subject, start, and end");
274
+ }
275
+ const timeZone = input.timeZone ?? "UTC";
276
+ try {
277
+ const response = await this.client.post("/me/events", {
278
+ subject: input.subject,
279
+ ...(input.body
280
+ ? { body: { contentType: "Text", content: input.body } }
281
+ : {}),
282
+ start: { dateTime: input.start, timeZone },
283
+ end: { dateTime: input.end, timeZone },
284
+ ...(input.location ? { location: { displayName: input.location } } : {}),
285
+ ...(input.attendees
286
+ ? {
287
+ attendees: recipientList(input.attendees).map((entry) => ({
288
+ emailAddress: entry.emailAddress,
289
+ type: "required",
290
+ })),
291
+ }
292
+ : {}),
293
+ });
294
+ return response.data;
295
+ }
296
+ catch (error) {
297
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "create event", error);
298
+ }
299
+ }
300
+ /**
301
+ * @description Deletes an Outlook calendar event
302
+ * @summary `DELETE`s `/me/events/<id>` and returns `{ deleted: true, eventId }`.
303
+ * @param {string} eventId - The Graph event ID.
304
+ * @returns {Promise<unknown>} `{ deleted: true, eventId }` on success.
305
+ * @throws {InternalError} When no token is configured or the event ID is empty.
306
+ * @throws {NotFoundError} When the event does not exist (HTTP 404).
307
+ * @throws {BadRequestError} When Graph rejects the request.
308
+ */
309
+ async deleteEvent(eventId) {
310
+ this.requireAccessToken();
311
+ if (!eventId) {
312
+ throw new db_decorators_1.InternalError("Microsoft Outlook requires an event id");
313
+ }
314
+ try {
315
+ await this.client.delete(`/me/events/${encodeURIComponent(eventId)}`);
316
+ return { deleted: true, eventId };
317
+ }
318
+ catch (error) {
319
+ throw (0, index_js_1.httpError)("Microsoft Outlook", "delete event", error);
320
+ }
321
+ }
322
+ }
323
+ exports.MicrosoftOutlookService = MicrosoftOutlookService;
324
+ //# sourceMappingURL=MicrosoftOutlookService.js.map
325
+ //# sourceMappingURL=MicrosoftOutlookService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/outlook/MicrosoftOutlookService.cjs","sourceRoot":"","sources":["comms/outlook/MicrosoftOutlookService.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MicrosoftOutlookService.cjs"), exports);
18
+ //# sourceMappingURL=index.js.map
19
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/outlook/index.cjs","sourceRoot":"","sources":["comms/outlook/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,iCAAiC"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlackService = void 0;
4
+ /**
5
+ * @module integrations/comms/slack/service
6
+ * @summary Slack Web API integration service for posting messages and reading conversations and users.
7
+ * @description Exposes the Slack Web API (`chat.postMessage`, `conversations.*`, `users.info`)
8
+ * as an undecorated client-based service built on {@link HttpApiService}.
9
+ * Configuration comes from an explicit `SlackServiceConfig` or the `comms.slack`
10
+ * environment slice; every response is normalized and failures are mapped to decaf
11
+ * errors via {@link httpError}.
12
+ */
13
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
14
+ const environment_js_1 = require("./../environment.cjs");
15
+ const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
16
+ const index_js_1 = require("./../../shared/http/index.cjs");
17
+ /**
18
+ * @description Slack Web API integration service
19
+ * @summary An undecorated HTTP service for posting messages,
20
+ * listing conversations with cursor paging, fetching a single conversation,
21
+ * and looking up users. The Slack Bot token is sent as a bearer token, every
22
+ * call requires it (`requireToken()`), non-`ok` Slack responses raise
23
+ * `InternalError`, and transport failures are mapped to decaf errors via
24
+ * {@link httpError}.
25
+ * @class SlackService
26
+ * @category Comms
27
+ * @example
28
+ * ```ts
29
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
30
+ *
31
+ * const slack = new SlackService();
32
+ * await slack.initialize({
33
+ * token: process.env.GRAPH_CREDENTIAL_SLACK_TOKEN,
34
+ * });
35
+ * await slack.postMessage({
36
+ * channel: "#general",
37
+ * text: "Deployment finished",
38
+ * });
39
+ * ```
40
+ * @mermaid
41
+ * sequenceDiagram
42
+ * autonumber
43
+ * participant Caller
44
+ * participant Service as SlackService
45
+ * participant Slack as Slack Web API
46
+ * Caller->>Service: postMessage(input)
47
+ * activate Service
48
+ * Service->>Service: requireToken()
49
+ * Service->>Slack: POST /chat.postMessage
50
+ * activate Slack
51
+ * Slack-->>Service: { ok, channel, ts }
52
+ * deactivate Slack
53
+ * alt ok
54
+ * Service-->>Caller: SlackPostMessageResult
55
+ * else error
56
+ * Service--xCaller: InternalError / mapped decaf error
57
+ * end
58
+ * deactivate Service
59
+ * @memberOf module:integrations/comms/slack/service
60
+ */
61
+ class SlackService extends index_js_1.HttpApiService {
62
+ constructor() {
63
+ super(...arguments);
64
+ /**
65
+ * @description The provider name used in error messages
66
+ */
67
+ this.serviceName = "Slack";
68
+ }
69
+ /**
70
+ * @description The Slack Web API base URL
71
+ * @summary Used when the resolved config carries no `baseUrl`.
72
+ * @returns {string} `"https://slack.com/api"`.
73
+ */
74
+ defaultBaseUrl() {
75
+ return "https://slack.com/api";
76
+ }
77
+ /**
78
+ * @description Builds the Slack bearer authorization headers
79
+ * @summary Returns the `Authorization: Bearer <token>` header when the
80
+ * config carries a token, and no headers otherwise.
81
+ * @param {SlackServiceConfig} config - The resolved service configuration.
82
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
83
+ */
84
+ authHeaders(config) {
85
+ return config.token ? { Authorization: `Bearer ${config.token}` } : {};
86
+ }
87
+ /**
88
+ * @description Reads the Slack credentials and defaults from the environment
89
+ * @summary Reads the `comms.slack` environment slice and returns a partial
90
+ * config when a token is configured, `undefined` otherwise. Values pass
91
+ * through `envString`/`envNumber` to reject unset-leaf proxies.
92
+ * @returns {Partial<SlackServiceConfig> | undefined} A partial config, or `undefined` when no Slack token is configured.
93
+ */
94
+ configFromEnvironment() {
95
+ const env = environment_js_1.CommsEnvironment.comms.slack;
96
+ const token = (0, environmentValue_js_1.envString)(env?.token);
97
+ if (!token)
98
+ return undefined;
99
+ return {
100
+ token,
101
+ baseUrl: (0, environmentValue_js_1.envString)(env.baseUrl),
102
+ timeout: (0, environmentValue_js_1.envNumber)(env.timeout),
103
+ };
104
+ }
105
+ /**
106
+ * @description Posts a request to a Slack Web API method
107
+ * @summary Shared request path for all Slack operations: asserts a token is
108
+ * configured, `POST`s the payload to `/<method>`, rejects non-`ok` Slack
109
+ * responses with an `InternalError`, and maps transport failures through
110
+ * {@link httpError}.
111
+ * @template T - The expected Slack response shape, extending `SlackApiResponse`.
112
+ * @param {string} method - The Slack Web API method name (e.g. `"chat.postMessage"`).
113
+ * @param {Record<string, unknown>} payload - The JSON body for the method.
114
+ * @returns {Promise<T>} The parsed Slack response payload.
115
+ * @throws {InternalError} When no token is configured or Slack answers with `ok: false`.
116
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
117
+ * @throws {ConflictError} When Slack answers with HTTP 409.
118
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
119
+ */
120
+ async call(method, payload) {
121
+ this.requireToken();
122
+ try {
123
+ const response = await this.client.post(`/${method}`, payload);
124
+ const data = response.data;
125
+ if (!data || data.ok !== true) {
126
+ throw new db_decorators_1.InternalError(`Slack API ${method} failed: ${data?.error ?? "unknown error"}`);
127
+ }
128
+ return data;
129
+ }
130
+ catch (error) {
131
+ throw (0, index_js_1.httpError)("Slack", `API ${method}`, error);
132
+ }
133
+ }
134
+ /**
135
+ * @description Posts a message to a Slack channel or thread
136
+ * @summary Sends the input to Slack's `chat.postMessage` method and returns
137
+ * the destination channel and message timestamp; use the returned `ts` as
138
+ * `threadTs` to reply in the same thread. Provide `blocks` for Block Kit
139
+ * layouts (with `text` as the fallback), or plain text alone.
140
+ * @param {SlackPostMessageInput} input - The message destination and content.
141
+ * @returns {Promise<SlackPostMessageResult>} The posted message's channel, timestamp, text, and raw payload.
142
+ * @throws {InternalError} When no token is configured or Slack rejects the message.
143
+ * @throws {NotFoundError} When the channel cannot be found (HTTP 404).
144
+ * @throws {ConflictError} When Slack answers with HTTP 409.
145
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
146
+ * @example
147
+ * ```ts
148
+ * await slack.postMessage({
149
+ * channel: "#deploys",
150
+ * text: "Release 1.2.0 is live",
151
+ * unfurlLinks: false,
152
+ * });
153
+ * ```
154
+ */
155
+ async postMessage(input) {
156
+ const data = await this.call("chat.postMessage", {
157
+ channel: input.channel,
158
+ text: input.text,
159
+ blocks: input.blocks,
160
+ thread_ts: input.threadTs,
161
+ reply_broadcast: input.replyBroadcast,
162
+ unfurl_links: input.unfurlLinks,
163
+ unfurl_media: input.unfurlMedia,
164
+ });
165
+ return {
166
+ channel: data.channel,
167
+ ts: data.ts,
168
+ text: data.text,
169
+ message: data.message,
170
+ };
171
+ }
172
+ /**
173
+ * @description Lists Slack conversations with cursor paging
174
+ * @summary Calls `conversations.list` with a page size (default `100`),
175
+ * conversation `types` (default public and private channels), and archived
176
+ * exclusion (default `true`), returning normalized channels and the
177
+ * `nextCursor` to pass back as `cursor` for the next page.
178
+ * @param {object} [options] - Paging and filter options.
179
+ * @param {number} [options.limit] - Page size; defaults to `100`.
180
+ * @param {string} [options.cursor] - The `nextCursor` from the previous page.
181
+ * @param {string} [options.types] - Comma-separated conversation types (e.g. `"public_channel,private_channel"`); defaults to `"public_channel,private_channel"`.
182
+ * @param {boolean} [options.excludeArchived] - Whether archived channels are excluded; defaults to `true`.
183
+ * @returns {Promise<{channels: SlackChannel[], nextCursor?: string}>} The page of channels and the cursor for the next page, when more pages exist.
184
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
185
+ * @throws {NotFoundError} When Slack answers with HTTP 404.
186
+ * @throws {ConflictError} When Slack answers with HTTP 409.
187
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
188
+ * @example
189
+ * ```ts
190
+ * let cursor: string | undefined;
191
+ * do {
192
+ * const page = await slack.listConversations({ limit: 200, cursor });
193
+ * console.log(page.channels.map((channel) => channel.name));
194
+ * cursor = page.nextCursor;
195
+ * } while (cursor);
196
+ * ```
197
+ */
198
+ async listConversations(options = {}) {
199
+ const data = await this.call("conversations.list", {
200
+ limit: options.limit ?? 100,
201
+ cursor: options.cursor,
202
+ types: options.types ?? "public_channel,private_channel",
203
+ exclude_archived: options.excludeArchived ?? true,
204
+ });
205
+ return {
206
+ channels: (data.channels ?? []).map((channel) => ({
207
+ id: String(channel["id"] ?? ""),
208
+ name: (0, environmentValue_js_1.envString)(channel["name"]),
209
+ isPrivate: channel["is_private"] === true,
210
+ isArchived: channel["is_archived"] === true,
211
+ memberCount: typeof channel["num_members"] === "number"
212
+ ? channel["num_members"]
213
+ : undefined,
214
+ topic: channel["topic"]?.value,
215
+ purpose: channel["purpose"]?.value,
216
+ })),
217
+ nextCursor: (0, environmentValue_js_1.envString)(data.response_metadata?.next_cursor),
218
+ };
219
+ }
220
+ /**
221
+ * @description Fetches a single Slack conversation
222
+ * @summary Calls `conversations.info` for the given channel ID (or
223
+ * `#name`) and returns the normalized channel descriptor.
224
+ * @param {string} channel - The channel ID or `#name` to look up.
225
+ * @returns {Promise<SlackChannel>} The normalized conversation descriptor.
226
+ * @throws {InternalError} When no token is configured or Slack rejects the call.
227
+ * @throws {NotFoundError} When the channel does not exist (HTTP 404).
228
+ * @throws {ConflictError} When Slack answers with HTTP 409.
229
+ * @throws {BadRequestError} When Slack answers with any other HTTP error status.
230
+ */
231
+ async getConversation(channel) {
232
+ const data = await this.call("conversations.info", { channel });
233
+ const found = data.channel ?? {};
234
+ return {
235
+ id: String(found["id"] ?? channel),
236
+ name: (0, environmentValue_js_1.envString)(found["name"]),
237
+ isPrivate: found["is_private"] === true,
238
+ isArchived: found["is_archived"] === true,
239
+ memberCount: typeof found["num_members"] === "number"
240
+ ? found["num_members"]
241
+ : undefined,
242
+ topic: found["topic"]?.value,
243
+ purpose: found["purpose"]?.value,
244
+ };
245
+ }
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
+ async getUser(userId) {
258
+ const data = await this.call("users.info", { user: userId });
259
+ return data.user;
260
+ }
261
+ }
262
+ exports.SlackService = SlackService;
263
+ //# sourceMappingURL=SlackService.js.map
264
+ //# sourceMappingURL=SlackService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/slack/SlackService.cjs","sourceRoot":"","sources":["comms/slack/SlackService.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module integrations/comms/slack
19
+ * @summary Slack Web API service (posting, conversations, users).
20
+ * @description Re-exports the Slack client-based service and its types.
21
+ */
22
+ __exportStar(require("./SlackService.cjs"), exports);
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/slack/index.cjs","sourceRoot":"","sources":["comms/slack/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAkC;AAClC,iCAAiC"}