@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,11 @@
1
+ /**
2
+ * @module integrations/comms/email
3
+ * @summary Email service (SMTP + Microsoft Graph send, Graph/IMAP inbox reads).
4
+ * @description Re-exports the {@link EmailService} and its config/result
5
+ * types, the raw MIME builder, and the nodemailer-backed {@link SmtpClient}
6
+ * with its {@link SmtpConfig}
7
+ * (also available directly from the `./smtp` subpath).
8
+ */
9
+ export * from "./EmailService.d.mts";
10
+ export * from "./mime.d.mts";
11
+ export * from "./smtp.d.mts";
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @description A message attachment
3
+ * @summary Content is base64 text by default; with `encoding: "utf8"` the
4
+ * builder base64-encodes the UTF-8 content itself.
5
+ * @category Comms
6
+ * @memberOf module:integrations/comms/email/mime
7
+ */
8
+ export interface EmailAttachment {
9
+ filename: string;
10
+ content: string;
11
+ encoding?: "base64" | "utf8";
12
+ contentType?: string;
13
+ }
14
+ /**
15
+ * @description Input for building a raw MIME message
16
+ * @summary Carries the sender, recipients (single address, comma-separated
17
+ * string, or array), subject, optional text and HTML bodies, `Reply-To`, and
18
+ * attachments.
19
+ * @category Comms
20
+ * @memberOf module:integrations/comms/email/mime
21
+ */
22
+ export interface EmailMessageInput {
23
+ from: string;
24
+ to: string | string[];
25
+ cc?: string | string[];
26
+ bcc?: string | string[];
27
+ subject: string;
28
+ text?: string;
29
+ html?: string;
30
+ replyTo?: string;
31
+ attachments?: EmailAttachment[];
32
+ }
33
+ /**
34
+ * @description The built MIME message ready for delivery
35
+ * @summary Carries the raw RFC 5322 text, the resolved sender, the flattened
36
+ * recipient list (To/Cc/Bcc), and the generated `Message-ID`.
37
+ * @category Comms
38
+ * @memberOf module:integrations/comms/email/mime
39
+ */
40
+ export interface BuiltEmail {
41
+ raw: string;
42
+ from: string;
43
+ recipients: string[];
44
+ messageId: string;
45
+ }
46
+ /**
47
+ * Validates a mailbox address against the allowlist and returns it trimmed.
48
+ *
49
+ * @param value - Candidate address.
50
+ * @param field - Human-readable field name used in the error message.
51
+ * @returns The trimmed, validated mailbox address.
52
+ * @throws {BadRequestError} when the address contains control characters or is not a bare mailbox.
53
+ */
54
+ export declare function assertEmailAddress(value: string, field?: string): string;
55
+ /**
56
+ * @description Encodes a MIME header value safely
57
+ * @summary Pure-ASCII values pass through; anything else becomes an RFC 2047
58
+ * `=?UTF-8?B?...?=` encoded word.
59
+ * @param value - Raw header value
60
+ * @returns The header value safe for raw message transport
61
+ */
62
+ export declare function encodeHeader(value: string): string;
63
+ /**
64
+ * @description Normalizes a recipient input into an allowlisted address list
65
+ * @summary Splits comma-separated strings, trims entries, drops empties, and
66
+ * validates every remaining entry as a bare mailbox address. Values carrying
67
+ * CR/LF, NUL, or other control characters are rejected outright so workflow
68
+ * input can never inject MIME headers or SMTP envelope commands.
69
+ * @param value - Single address, comma-separated string, array, or `undefined`
70
+ * @returns The trimmed, validated list of addresses
71
+ * @throws {BadRequestError} when an entry is not a valid mailbox address
72
+ */
73
+ export declare function parseAddressList(value: string | string[] | undefined): string[];
74
+ /**
75
+ * @description Builds the complete raw MIME message
76
+ * @summary Generates the `Message-ID`, resolves recipients (throwing when
77
+ * none remain), emits the standard headers, and assembles the body entity
78
+ * (alternative text/HTML parts, plus attachments when present).
79
+ * @param input - Message input
80
+ * @returns The built message with raw text, sender, recipients, and `Message-ID`
81
+ * @throws {BadRequestError} when the message has no recipient or any address,
82
+ * attachment filename, or content type fails validation
83
+ */
84
+ export declare function buildEmail(input: EmailMessageInput): BuiltEmail;
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @description A message attachment
3
+ * @summary Content is base64 text by default; with `encoding: "utf8"` the
4
+ * builder base64-encodes the UTF-8 content itself.
5
+ * @category Comms
6
+ * @memberOf module:integrations/comms/email/mime
7
+ */
8
+ export interface EmailAttachment {
9
+ filename: string;
10
+ content: string;
11
+ encoding?: "base64" | "utf8";
12
+ contentType?: string;
13
+ }
14
+ /**
15
+ * @description Input for building a raw MIME message
16
+ * @summary Carries the sender, recipients (single address, comma-separated
17
+ * string, or array), subject, optional text and HTML bodies, `Reply-To`, and
18
+ * attachments.
19
+ * @category Comms
20
+ * @memberOf module:integrations/comms/email/mime
21
+ */
22
+ export interface EmailMessageInput {
23
+ from: string;
24
+ to: string | string[];
25
+ cc?: string | string[];
26
+ bcc?: string | string[];
27
+ subject: string;
28
+ text?: string;
29
+ html?: string;
30
+ replyTo?: string;
31
+ attachments?: EmailAttachment[];
32
+ }
33
+ /**
34
+ * @description The built MIME message ready for delivery
35
+ * @summary Carries the raw RFC 5322 text, the resolved sender, the flattened
36
+ * recipient list (To/Cc/Bcc), and the generated `Message-ID`.
37
+ * @category Comms
38
+ * @memberOf module:integrations/comms/email/mime
39
+ */
40
+ export interface BuiltEmail {
41
+ raw: string;
42
+ from: string;
43
+ recipients: string[];
44
+ messageId: string;
45
+ }
46
+ /**
47
+ * Validates a mailbox address against the allowlist and returns it trimmed.
48
+ *
49
+ * @param value - Candidate address.
50
+ * @param field - Human-readable field name used in the error message.
51
+ * @returns The trimmed, validated mailbox address.
52
+ * @throws {BadRequestError} when the address contains control characters or is not a bare mailbox.
53
+ */
54
+ export declare function assertEmailAddress(value: string, field?: string): string;
55
+ /**
56
+ * @description Encodes a MIME header value safely
57
+ * @summary Pure-ASCII values pass through; anything else becomes an RFC 2047
58
+ * `=?UTF-8?B?...?=` encoded word.
59
+ * @param value - Raw header value
60
+ * @returns The header value safe for raw message transport
61
+ */
62
+ export declare function encodeHeader(value: string): string;
63
+ /**
64
+ * @description Normalizes a recipient input into an allowlisted address list
65
+ * @summary Splits comma-separated strings, trims entries, drops empties, and
66
+ * validates every remaining entry as a bare mailbox address. Values carrying
67
+ * CR/LF, NUL, or other control characters are rejected outright so workflow
68
+ * input can never inject MIME headers or SMTP envelope commands.
69
+ * @param value - Single address, comma-separated string, array, or `undefined`
70
+ * @returns The trimmed, validated list of addresses
71
+ * @throws {BadRequestError} when an entry is not a valid mailbox address
72
+ */
73
+ export declare function parseAddressList(value: string | string[] | undefined): string[];
74
+ /**
75
+ * @description Builds the complete raw MIME message
76
+ * @summary Generates the `Message-ID`, resolves recipients (throwing when
77
+ * none remain), emits the standard headers, and assembles the body entity
78
+ * (alternative text/HTML parts, plus attachments when present).
79
+ * @param input - Message input
80
+ * @returns The built message with raw text, sender, recipients, and `Message-ID`
81
+ * @throws {BadRequestError} when the message has no recipient or any address,
82
+ * attachment filename, or content type fails validation
83
+ */
84
+ export declare function buildEmail(input: EmailMessageInput): BuiltEmail;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @description SMTP connection configuration
3
+ * @summary Carries the server address, optional implicit-TLS/STARTTLS
4
+ * selection, credentials, and timeouts.
5
+ *
6
+ * `secure` selects implicit TLS: `true` opens a TLS socket from the first byte
7
+ * (default port 465). `false` connects in plaintext and upgrades with STARTTLS
8
+ * when the server advertises it (default port 587). When credentials are
9
+ * configured, `connect()` refuses to authenticate unless the session is
10
+ * encrypted; `allowPlaintextAuth` is the explicit, documented opt-out for
11
+ * servers that cannot offer TLS.
12
+ * @category Comms
13
+ * @memberOf module:integrations/comms/email/smtp
14
+ */
15
+ export interface SmtpConfig {
16
+ /** @description SMTP server hostname (required) */
17
+ host: string;
18
+ /** @description Server port; defaults to `465` when `secure` is `true`, `587` otherwise */
19
+ port?: number;
20
+ /** @description `true` opens an implicit-TLS socket from the first byte; `false` (default) connects in plaintext and upgrades via STARTTLS */
21
+ secure?: boolean;
22
+ /** @description Username for `AUTH LOGIN`; when set with `password`, enables the fail-closed plaintext-AUTH check */
23
+ username?: string;
24
+ /** @description Password for `AUTH LOGIN` */
25
+ password?: string;
26
+ /** @description Connection, greeting, and socket timeout in milliseconds (default `30000`) */
27
+ timeout?: number;
28
+ /** @description Explicitly permit `AUTH LOGIN` over a plaintext session (default `false`) */
29
+ allowPlaintextAuth?: boolean;
30
+ /** @description Explicitly accept an otherwise-invalid TLS certificate (default `false`) */
31
+ allowUnauthorizedCerts?: boolean;
32
+ /** @description Client hostname announced in `EHLO` (default `as-graph`) */
33
+ clientHostname?: string;
34
+ }
35
+ /**
36
+ * @description SMTP client for raw MIME delivery
37
+ * @summary Connects and authenticates through a nodemailer SMTP transport
38
+ * (implicit TLS on `secure`, STARTTLS otherwise), then delivers a pre-built
39
+ * message with the envelope sender/recipients and the raw RFC 5322 source.
40
+ * Credentials are never sent over a plaintext session unless
41
+ * `allowPlaintextAuth` is set, and every envelope address is validated before
42
+ * it reaches the transport.
43
+ * @category Comms
44
+ * @memberOf module:integrations/comms/email/smtp
45
+ * @example
46
+ * ```ts
47
+ * import { SmtpClient, buildEmail } from "@decaf-ts/integrations/comms/email";
48
+ *
49
+ * const client = new SmtpClient({
50
+ * host: "smtp.example.com",
51
+ * port: 587,
52
+ * username: "noreply@example.com",
53
+ * password: process.env.SMTP_PASSWORD,
54
+ * });
55
+ * await client.connect();
56
+ * const mail = buildEmail({
57
+ * from: "noreply@example.com",
58
+ * to: ["ops@example.com"],
59
+ * subject: "Nightly report",
60
+ * text: "All systems nominal.",
61
+ * });
62
+ * await client.send(mail.from, mail.recipients, mail.raw);
63
+ * await client.close();
64
+ * ```
65
+ */
66
+ export declare class SmtpClient {
67
+ private config;
68
+ private transporter?;
69
+ /**
70
+ * @description Creates an SMTP client
71
+ * @summary Stores the config; the nodemailer transport is only created and
72
+ * verified by {@link SmtpClient.connect}.
73
+ * @param config - Server address, optional credentials, and TLS/timeout options
74
+ */
75
+ constructor(config: SmtpConfig);
76
+ private transportOptions;
77
+ private transportError;
78
+ /**
79
+ * @description Opens the SMTP session
80
+ * @summary Lazily loads the optional `nodemailer` peer, builds the SMTP
81
+ * transport for the configured host/credentials, and verifies it
82
+ * (`EHLO` + TLS upgrade + `AUTH LOGIN` when credentials are configured).
83
+ * Authentication fails closed: with credentials configured and no encrypted
84
+ * session, the transport requires STARTTLS and verification fails unless
85
+ * `allowPlaintextAuth` was set on the config.
86
+ * @throws {InternalError} when `nodemailer` is not installed, or on
87
+ * connection, TLS, or auth failures
88
+ */
89
+ connect(): Promise<void>;
90
+ /**
91
+ * @description Delivers a raw message over the established session
92
+ * @summary Validates the envelope, then hands the sender, recipients, and
93
+ * raw RFC 5322 source to nodemailer's `sendMail` (the transport performs
94
+ * queueing, dot-stuffing, and CRLF normalization).
95
+ * @param from - Envelope sender address
96
+ * @param recipients - Envelope recipient addresses
97
+ * @param raw - Raw RFC 5322 message text
98
+ * @throws {InternalError} when not connected or the server rejects delivery
99
+ * @throws {BadRequestError} when the envelope sender or a recipient is not an allowlisted mailbox
100
+ */
101
+ send(from: string, recipients: string[], raw: string): Promise<void>;
102
+ /**
103
+ * @description Closes the session gracefully
104
+ * @summary Closes the nodemailer transport, ignoring shutdown failures.
105
+ */
106
+ close(): Promise<void>;
107
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @description SMTP connection configuration
3
+ * @summary Carries the server address, optional implicit-TLS/STARTTLS
4
+ * selection, credentials, and timeouts.
5
+ *
6
+ * `secure` selects implicit TLS: `true` opens a TLS socket from the first byte
7
+ * (default port 465). `false` connects in plaintext and upgrades with STARTTLS
8
+ * when the server advertises it (default port 587). When credentials are
9
+ * configured, `connect()` refuses to authenticate unless the session is
10
+ * encrypted; `allowPlaintextAuth` is the explicit, documented opt-out for
11
+ * servers that cannot offer TLS.
12
+ * @category Comms
13
+ * @memberOf module:integrations/comms/email/smtp
14
+ */
15
+ export interface SmtpConfig {
16
+ /** @description SMTP server hostname (required) */
17
+ host: string;
18
+ /** @description Server port; defaults to `465` when `secure` is `true`, `587` otherwise */
19
+ port?: number;
20
+ /** @description `true` opens an implicit-TLS socket from the first byte; `false` (default) connects in plaintext and upgrades via STARTTLS */
21
+ secure?: boolean;
22
+ /** @description Username for `AUTH LOGIN`; when set with `password`, enables the fail-closed plaintext-AUTH check */
23
+ username?: string;
24
+ /** @description Password for `AUTH LOGIN` */
25
+ password?: string;
26
+ /** @description Connection, greeting, and socket timeout in milliseconds (default `30000`) */
27
+ timeout?: number;
28
+ /** @description Explicitly permit `AUTH LOGIN` over a plaintext session (default `false`) */
29
+ allowPlaintextAuth?: boolean;
30
+ /** @description Explicitly accept an otherwise-invalid TLS certificate (default `false`) */
31
+ allowUnauthorizedCerts?: boolean;
32
+ /** @description Client hostname announced in `EHLO` (default `as-graph`) */
33
+ clientHostname?: string;
34
+ }
35
+ /**
36
+ * @description SMTP client for raw MIME delivery
37
+ * @summary Connects and authenticates through a nodemailer SMTP transport
38
+ * (implicit TLS on `secure`, STARTTLS otherwise), then delivers a pre-built
39
+ * message with the envelope sender/recipients and the raw RFC 5322 source.
40
+ * Credentials are never sent over a plaintext session unless
41
+ * `allowPlaintextAuth` is set, and every envelope address is validated before
42
+ * it reaches the transport.
43
+ * @category Comms
44
+ * @memberOf module:integrations/comms/email/smtp
45
+ * @example
46
+ * ```ts
47
+ * import { SmtpClient, buildEmail } from "@decaf-ts/integrations/comms/email";
48
+ *
49
+ * const client = new SmtpClient({
50
+ * host: "smtp.example.com",
51
+ * port: 587,
52
+ * username: "noreply@example.com",
53
+ * password: process.env.SMTP_PASSWORD,
54
+ * });
55
+ * await client.connect();
56
+ * const mail = buildEmail({
57
+ * from: "noreply@example.com",
58
+ * to: ["ops@example.com"],
59
+ * subject: "Nightly report",
60
+ * text: "All systems nominal.",
61
+ * });
62
+ * await client.send(mail.from, mail.recipients, mail.raw);
63
+ * await client.close();
64
+ * ```
65
+ */
66
+ export declare class SmtpClient {
67
+ private config;
68
+ private transporter?;
69
+ /**
70
+ * @description Creates an SMTP client
71
+ * @summary Stores the config; the nodemailer transport is only created and
72
+ * verified by {@link SmtpClient.connect}.
73
+ * @param config - Server address, optional credentials, and TLS/timeout options
74
+ */
75
+ constructor(config: SmtpConfig);
76
+ private transportOptions;
77
+ private transportError;
78
+ /**
79
+ * @description Opens the SMTP session
80
+ * @summary Lazily loads the optional `nodemailer` peer, builds the SMTP
81
+ * transport for the configured host/credentials, and verifies it
82
+ * (`EHLO` + TLS upgrade + `AUTH LOGIN` when credentials are configured).
83
+ * Authentication fails closed: with credentials configured and no encrypted
84
+ * session, the transport requires STARTTLS and verification fails unless
85
+ * `allowPlaintextAuth` was set on the config.
86
+ * @throws {InternalError} when `nodemailer` is not installed, or on
87
+ * connection, TLS, or auth failures
88
+ */
89
+ connect(): Promise<void>;
90
+ /**
91
+ * @description Delivers a raw message over the established session
92
+ * @summary Validates the envelope, then hands the sender, recipients, and
93
+ * raw RFC 5322 source to nodemailer's `sendMail` (the transport performs
94
+ * queueing, dot-stuffing, and CRLF normalization).
95
+ * @param from - Envelope sender address
96
+ * @param recipients - Envelope recipient addresses
97
+ * @param raw - Raw RFC 5322 message text
98
+ * @throws {InternalError} when not connected or the server rejects delivery
99
+ * @throws {BadRequestError} when the envelope sender or a recipient is not an allowlisted mailbox
100
+ */
101
+ send(from: string, recipients: string[], raw: string): Promise<void>;
102
+ /**
103
+ * @description Closes the session gracefully
104
+ * @summary Closes the nodemailer transport, ignoring shutdown failures.
105
+ */
106
+ close(): Promise<void>;
107
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @module integrations/comms/environment
3
+ * @summary Environment contract and accumulated environment for the comms integration services.
4
+ * @description Declares the `CommsEnvironmentShape` consumed by the Slack,
5
+ * Telegram, Teams, Gmail, Discord, WhatsApp, and Outlook services'
6
+ * `configFromEnvironment()` implementations and the `CommsEnvironment`
7
+ * singleton created via `LoggedEnvironment.accumulate`. Services read their
8
+ * credentials and defaults from the matching `comms.<provider>` slice, using
9
+ * the `envString`/`envNumber` helpers from `shared/environmentValue` to reject
10
+ * unset-leaf proxies. The matching public subpath exports are
11
+ * `@decaf-ts/integrations/comms/discord`,
12
+ * `@decaf-ts/integrations/comms/whatsapp`, and
13
+ * `@decaf-ts/integrations/comms/outlook`.
14
+ */
15
+ /**
16
+ * @description Environment shape for the comms integration services
17
+ * @summary Defines the `comms` root with one slice per provider (`slack`,
18
+ * `telegram`, `teams`, `email`, `gmail`, `discord`, `whatsApp`, `outlook`).
19
+ * Each slice carries the provider's required credentials (e.g. `token`,
20
+ * `webhookUrl`, `phoneNumberId`) plus optional `baseUrl` override and
21
+ * `timeout`. Fields are typed as required here so
22
+ * `LoggedEnvironment.accumulate` registers them; absent values resolve to
23
+ * proxy placeholders at runtime and must pass through `envString`/`envNumber`.
24
+ * Values are credential references supplied by the environment, never literals
25
+ * embedded in source.
26
+ * @memberOf module:integrations/comms/environment
27
+ */
28
+ export interface CommsEnvironmentShape {
29
+ comms: {
30
+ slack: {
31
+ token: string;
32
+ baseUrl: string;
33
+ timeout?: number;
34
+ };
35
+ telegram: {
36
+ token: string;
37
+ baseUrl: string;
38
+ timeout?: number;
39
+ };
40
+ teams: {
41
+ token: string;
42
+ webhookUrl: string;
43
+ baseUrl: string;
44
+ timeout?: number;
45
+ };
46
+ email: {
47
+ provider: string;
48
+ host: string;
49
+ port?: number;
50
+ secure?: boolean;
51
+ username: string;
52
+ password: string;
53
+ from: string;
54
+ token: string;
55
+ graphBaseUrl: string;
56
+ /** Explicit opt-in for SMTP AUTH over a plaintext session (default false). */
57
+ allowPlaintextAuth?: boolean;
58
+ timeout?: number;
59
+ };
60
+ gmail: {
61
+ token: string;
62
+ userId: string;
63
+ baseUrl: string;
64
+ timeout?: number;
65
+ };
66
+ /** Discord bot token and optional API overrides (`comms/discord`). */
67
+ discord: {
68
+ token: string;
69
+ baseUrl: string;
70
+ timeout?: number;
71
+ };
72
+ /** WhatsApp Cloud API token and sender phone number ID (`comms/whatsapp`). */
73
+ whatsApp: {
74
+ token: string;
75
+ phoneNumberId: string;
76
+ baseUrl: string;
77
+ timeout?: number;
78
+ };
79
+ /** Microsoft Graph access token for Outlook mail/calendar (`comms/outlook`). */
80
+ outlook: {
81
+ token: string;
82
+ baseUrl: string;
83
+ timeout?: number;
84
+ };
85
+ };
86
+ }
87
+ /**
88
+ * @description Accumulated comms environment singleton
89
+ * @summary The `LoggedEnvironment.accumulate`-registered instance backing the
90
+ * `CommsEnvironmentShape` contract. Comms services read their provider slice
91
+ * (e.g. `CommsEnvironment.comms.slack`) inside `configFromEnvironment()` and
92
+ * translate it into an `HttpApiServiceConfig`-derived config. Credentials come
93
+ * from environment variables; for as-graph node usage those are provided as
94
+ * `GRAPH_CREDENTIAL_*` values (placeholders in this example).
95
+ * @example
96
+ * ```ts
97
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
98
+ *
99
+ * // with comms.slack.token / comms.slack.baseUrl configured in the environment
100
+ * const slack = new SlackService();
101
+ * await slack.initialize();
102
+ * ```
103
+ * @constant {LoggedEnvironment} CommsEnvironment
104
+ * @memberOf module:integrations/comms/environment
105
+ */
106
+ export declare const CommsEnvironment: import("@decaf-ts/logging").AccumulatedEnvironment<{
107
+ app: string | undefined;
108
+ } & import("@decaf-ts/logging").LoggingConfig<object> & {
109
+ env: any;
110
+ } & CommsEnvironmentShape>;
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @module integrations/comms/environment
3
+ * @summary Environment contract and accumulated environment for the comms integration services.
4
+ * @description Declares the `CommsEnvironmentShape` consumed by the Slack,
5
+ * Telegram, Teams, Gmail, Discord, WhatsApp, and Outlook services'
6
+ * `configFromEnvironment()` implementations and the `CommsEnvironment`
7
+ * singleton created via `LoggedEnvironment.accumulate`. Services read their
8
+ * credentials and defaults from the matching `comms.<provider>` slice, using
9
+ * the `envString`/`envNumber` helpers from `shared/environmentValue` to reject
10
+ * unset-leaf proxies. The matching public subpath exports are
11
+ * `@decaf-ts/integrations/comms/discord`,
12
+ * `@decaf-ts/integrations/comms/whatsapp`, and
13
+ * `@decaf-ts/integrations/comms/outlook`.
14
+ */
15
+ /**
16
+ * @description Environment shape for the comms integration services
17
+ * @summary Defines the `comms` root with one slice per provider (`slack`,
18
+ * `telegram`, `teams`, `email`, `gmail`, `discord`, `whatsApp`, `outlook`).
19
+ * Each slice carries the provider's required credentials (e.g. `token`,
20
+ * `webhookUrl`, `phoneNumberId`) plus optional `baseUrl` override and
21
+ * `timeout`. Fields are typed as required here so
22
+ * `LoggedEnvironment.accumulate` registers them; absent values resolve to
23
+ * proxy placeholders at runtime and must pass through `envString`/`envNumber`.
24
+ * Values are credential references supplied by the environment, never literals
25
+ * embedded in source.
26
+ * @memberOf module:integrations/comms/environment
27
+ */
28
+ export interface CommsEnvironmentShape {
29
+ comms: {
30
+ slack: {
31
+ token: string;
32
+ baseUrl: string;
33
+ timeout?: number;
34
+ };
35
+ telegram: {
36
+ token: string;
37
+ baseUrl: string;
38
+ timeout?: number;
39
+ };
40
+ teams: {
41
+ token: string;
42
+ webhookUrl: string;
43
+ baseUrl: string;
44
+ timeout?: number;
45
+ };
46
+ email: {
47
+ provider: string;
48
+ host: string;
49
+ port?: number;
50
+ secure?: boolean;
51
+ username: string;
52
+ password: string;
53
+ from: string;
54
+ token: string;
55
+ graphBaseUrl: string;
56
+ /** Explicit opt-in for SMTP AUTH over a plaintext session (default false). */
57
+ allowPlaintextAuth?: boolean;
58
+ timeout?: number;
59
+ };
60
+ gmail: {
61
+ token: string;
62
+ userId: string;
63
+ baseUrl: string;
64
+ timeout?: number;
65
+ };
66
+ /** Discord bot token and optional API overrides (`comms/discord`). */
67
+ discord: {
68
+ token: string;
69
+ baseUrl: string;
70
+ timeout?: number;
71
+ };
72
+ /** WhatsApp Cloud API token and sender phone number ID (`comms/whatsapp`). */
73
+ whatsApp: {
74
+ token: string;
75
+ phoneNumberId: string;
76
+ baseUrl: string;
77
+ timeout?: number;
78
+ };
79
+ /** Microsoft Graph access token for Outlook mail/calendar (`comms/outlook`). */
80
+ outlook: {
81
+ token: string;
82
+ baseUrl: string;
83
+ timeout?: number;
84
+ };
85
+ };
86
+ }
87
+ /**
88
+ * @description Accumulated comms environment singleton
89
+ * @summary The `LoggedEnvironment.accumulate`-registered instance backing the
90
+ * `CommsEnvironmentShape` contract. Comms services read their provider slice
91
+ * (e.g. `CommsEnvironment.comms.slack`) inside `configFromEnvironment()` and
92
+ * translate it into an `HttpApiServiceConfig`-derived config. Credentials come
93
+ * from environment variables; for as-graph node usage those are provided as
94
+ * `GRAPH_CREDENTIAL_*` values (placeholders in this example).
95
+ * @example
96
+ * ```ts
97
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
98
+ *
99
+ * // with comms.slack.token / comms.slack.baseUrl configured in the environment
100
+ * const slack = new SlackService();
101
+ * await slack.initialize();
102
+ * ```
103
+ * @constant {LoggedEnvironment} CommsEnvironment
104
+ * @memberOf module:integrations/comms/environment
105
+ */
106
+ export declare const CommsEnvironment: import("@decaf-ts/logging").AccumulatedEnvironment<{
107
+ app: string | undefined;
108
+ } & import("@decaf-ts/logging").LoggingConfig<object> & {
109
+ env: any;
110
+ } & CommsEnvironmentShape>;