@decaf-ts/integrations 0.11.0 → 0.12.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 (496) 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/comms/email/EmailService.cjs +376 -0
  19. package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
  20. package/lib/cjs/comms/email/index.cjs +29 -0
  21. package/lib/cjs/comms/email/index.cjs.map +1 -0
  22. package/lib/cjs/comms/email/mime.cjs +225 -0
  23. package/lib/cjs/comms/email/mime.cjs.map +1 -0
  24. package/lib/cjs/comms/email/smtp.cjs +204 -0
  25. package/lib/cjs/comms/email/smtp.cjs.map +1 -0
  26. package/lib/cjs/comms/environment.cjs +63 -0
  27. package/lib/cjs/comms/environment.cjs.map +1 -0
  28. package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
  29. package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
  30. package/lib/cjs/comms/gmail/index.cjs +24 -0
  31. package/lib/cjs/comms/gmail/index.cjs.map +1 -0
  32. package/lib/cjs/comms/index.cjs +31 -0
  33. package/lib/cjs/comms/index.cjs.map +1 -0
  34. package/lib/cjs/comms/slack/SlackService.cjs +264 -0
  35. package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
  36. package/lib/cjs/comms/slack/index.cjs +24 -0
  37. package/lib/cjs/comms/slack/index.cjs.map +1 -0
  38. package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
  39. package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
  40. package/lib/cjs/comms/teams/index.cjs +24 -0
  41. package/lib/cjs/comms/teams/index.cjs.map +1 -0
  42. package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
  43. package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
  44. package/lib/cjs/comms/telegram/index.cjs +24 -0
  45. package/lib/cjs/comms/telegram/index.cjs.map +1 -0
  46. package/lib/cjs/devops/environment.cjs +43 -0
  47. package/lib/cjs/devops/environment.cjs.map +1 -0
  48. package/lib/cjs/devops/github/GithubService.cjs +302 -0
  49. package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
  50. package/lib/cjs/devops/github/index.cjs +24 -0
  51. package/lib/cjs/devops/github/index.cjs.map +1 -0
  52. package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
  53. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
  54. package/lib/cjs/devops/gitlab/index.cjs +24 -0
  55. package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
  56. package/lib/cjs/devops/index.cjs +28 -0
  57. package/lib/cjs/devops/index.cjs.map +1 -0
  58. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
  59. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
  60. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
  61. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
  62. package/lib/cjs/index.cjs +3 -3
  63. package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
  64. package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
  65. package/lib/cjs/io/airtable/index.cjs +24 -0
  66. package/lib/cjs/io/airtable/index.cjs.map +1 -0
  67. package/lib/cjs/io/environment.cjs +46 -0
  68. package/lib/cjs/io/environment.cjs.map +1 -0
  69. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
  70. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
  71. package/lib/cjs/io/google-sheets/index.cjs +24 -0
  72. package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
  73. package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
  74. package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
  75. package/lib/cjs/io/graphql/index.cjs +24 -0
  76. package/lib/cjs/io/graphql/index.cjs.map +1 -0
  77. package/lib/cjs/io/index.cjs +30 -0
  78. package/lib/cjs/io/index.cjs.map +1 -0
  79. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
  80. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
  81. package/lib/cjs/io/spreadsheet/index.cjs +25 -0
  82. package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
  83. package/lib/cjs/namespaces/index.cjs +1 -0
  84. package/lib/cjs/namespaces/index.cjs.map +1 -1
  85. package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
  86. package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
  87. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
  88. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
  89. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
  90. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
  91. package/lib/cjs/namespaces/models/group.model.cjs +2 -0
  92. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
  93. package/lib/cjs/namespaces/models/index.cjs +1 -0
  94. package/lib/cjs/namespaces/models/index.cjs.map +1 -1
  95. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
  96. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
  97. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
  98. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
  99. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
  100. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
  101. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
  102. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
  103. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
  104. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
  105. package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
  106. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
  107. package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
  108. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
  109. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
  110. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
  111. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
  112. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
  113. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
  114. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
  115. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
  116. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
  117. package/lib/cjs/namespaces/models/role.model.cjs +2 -0
  118. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
  119. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
  120. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
  121. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
  122. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
  123. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
  124. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
  125. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
  126. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
  127. package/lib/cjs/namespaces/models/user.model.cjs +2 -0
  128. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
  129. package/lib/cjs/namespaces/rls/index.cjs +28 -0
  130. package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
  131. package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
  132. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
  133. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
  134. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
  135. package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
  136. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
  137. package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
  138. package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
  139. package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
  140. package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
  141. package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
  142. package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
  143. package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
  144. package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
  145. package/lib/cjs/namespaces/services/index.cjs +1 -0
  146. package/lib/cjs/namespaces/services/index.cjs.map +1 -1
  147. package/lib/cjs/namespaces/types.cjs +6 -1
  148. package/lib/cjs/namespaces/types.cjs.map +1 -1
  149. package/lib/cjs/redis/adapter.cjs +7 -1
  150. package/lib/cjs/redis/adapter.cjs.map +1 -1
  151. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
  152. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
  153. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
  154. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  155. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
  156. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  157. package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
  158. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
  159. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
  160. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
  161. package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
  162. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
  163. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
  164. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
  165. package/lib/cjs/secrets/fs/index.cjs +27 -0
  166. package/lib/cjs/secrets/fs/index.cjs.map +1 -0
  167. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
  168. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  169. package/lib/cjs/secrets/index.cjs +2 -0
  170. package/lib/cjs/secrets/index.cjs.map +1 -1
  171. package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
  172. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  173. package/lib/cjs/secrets/model/Secret.cjs +83 -5
  174. package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
  175. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
  176. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  177. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
  178. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  179. package/lib/cjs/shared/environmentValue.cjs +24 -0
  180. package/lib/cjs/shared/environmentValue.cjs.map +1 -1
  181. package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
  182. package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
  183. package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
  184. package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
  185. package/lib/cjs/shared/http/index.cjs +28 -0
  186. package/lib/cjs/shared/http/index.cjs.map +1 -0
  187. package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
  188. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  189. package/lib/esm/blob/core/BlobStoreService.js +26 -25
  190. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  191. package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
  192. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  193. package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
  194. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  195. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
  196. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
  197. package/lib/esm/comms/email/EmailService.js +338 -0
  198. package/lib/esm/comms/email/EmailService.js.map +1 -0
  199. package/lib/esm/comms/email/index.js +12 -0
  200. package/lib/esm/comms/email/index.js.map +1 -0
  201. package/lib/esm/comms/email/mime.js +218 -0
  202. package/lib/esm/comms/email/mime.js.map +1 -0
  203. package/lib/esm/comms/email/smtp.js +166 -0
  204. package/lib/esm/comms/email/smtp.js.map +1 -0
  205. package/lib/esm/comms/environment.js +59 -0
  206. package/lib/esm/comms/environment.js.map +1 -0
  207. package/lib/esm/comms/gmail/GmailService.js +230 -0
  208. package/lib/esm/comms/gmail/GmailService.js.map +1 -0
  209. package/lib/esm/comms/gmail/index.js +7 -0
  210. package/lib/esm/comms/gmail/index.js.map +1 -0
  211. package/lib/esm/comms/index.js +14 -0
  212. package/lib/esm/comms/index.js.map +1 -0
  213. package/lib/esm/comms/slack/SlackService.js +259 -0
  214. package/lib/esm/comms/slack/SlackService.js.map +1 -0
  215. package/lib/esm/comms/slack/index.js +7 -0
  216. package/lib/esm/comms/slack/index.js.map +1 -0
  217. package/lib/esm/comms/teams/TeamsService.js +204 -0
  218. package/lib/esm/comms/teams/TeamsService.js.map +1 -0
  219. package/lib/esm/comms/teams/index.js +7 -0
  220. package/lib/esm/comms/teams/index.js.map +1 -0
  221. package/lib/esm/comms/telegram/TelegramService.js +191 -0
  222. package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
  223. package/lib/esm/comms/telegram/index.js +7 -0
  224. package/lib/esm/comms/telegram/index.js.map +1 -0
  225. package/lib/esm/devops/environment.js +39 -0
  226. package/lib/esm/devops/environment.js.map +1 -0
  227. package/lib/esm/devops/github/GithubService.js +297 -0
  228. package/lib/esm/devops/github/GithubService.js.map +1 -0
  229. package/lib/esm/devops/github/index.js +7 -0
  230. package/lib/esm/devops/github/index.js.map +1 -0
  231. package/lib/esm/devops/gitlab/GitlabService.js +277 -0
  232. package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
  233. package/lib/esm/devops/gitlab/index.js +7 -0
  234. package/lib/esm/devops/gitlab/index.js.map +1 -0
  235. package/lib/esm/devops/index.js +11 -0
  236. package/lib/esm/devops/index.js.map +1 -0
  237. package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
  238. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
  239. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
  240. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
  241. package/lib/esm/index.js +3 -3
  242. package/lib/esm/io/airtable/AirtableService.js +261 -0
  243. package/lib/esm/io/airtable/AirtableService.js.map +1 -0
  244. package/lib/esm/io/airtable/index.js +7 -0
  245. package/lib/esm/io/airtable/index.js.map +1 -0
  246. package/lib/esm/io/environment.js +42 -0
  247. package/lib/esm/io/environment.js.map +1 -0
  248. package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
  249. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
  250. package/lib/esm/io/google-sheets/index.js +7 -0
  251. package/lib/esm/io/google-sheets/index.js.map +1 -0
  252. package/lib/esm/io/graphql/GraphqlService.js +138 -0
  253. package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
  254. package/lib/esm/io/graphql/index.js +7 -0
  255. package/lib/esm/io/graphql/index.js.map +1 -0
  256. package/lib/esm/io/index.js +13 -0
  257. package/lib/esm/io/index.js.map +1 -0
  258. package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
  259. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
  260. package/lib/esm/io/spreadsheet/index.js +8 -0
  261. package/lib/esm/io/spreadsheet/index.js.map +1 -0
  262. package/lib/esm/namespaces/index.js +1 -0
  263. package/lib/esm/namespaces/index.js.map +1 -1
  264. package/lib/esm/namespaces/models/credential.model.js +106 -0
  265. package/lib/esm/namespaces/models/credential.model.js.map +1 -0
  266. package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
  267. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
  268. package/lib/esm/namespaces/models/group-membership.model.js +2 -0
  269. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
  270. package/lib/esm/namespaces/models/group.model.js +2 -0
  271. package/lib/esm/namespaces/models/group.model.js.map +1 -1
  272. package/lib/esm/namespaces/models/index.js +1 -0
  273. package/lib/esm/namespaces/models/index.js.map +1 -1
  274. package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
  275. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
  276. package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
  277. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
  278. package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
  279. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
  280. package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
  281. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
  282. package/lib/esm/namespaces/models/org-unit.model.js +2 -0
  283. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
  284. package/lib/esm/namespaces/models/permission.model.js +2 -0
  285. package/lib/esm/namespaces/models/permission.model.js.map +1 -1
  286. package/lib/esm/namespaces/models/principal.model.js +2 -0
  287. package/lib/esm/namespaces/models/principal.model.js.map +1 -1
  288. package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
  289. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
  290. package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
  291. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
  292. package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
  293. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
  294. package/lib/esm/namespaces/models/role-permission.model.js +2 -0
  295. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
  296. package/lib/esm/namespaces/models/role.model.js +2 -0
  297. package/lib/esm/namespaces/models/role.model.js.map +1 -1
  298. package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
  299. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
  300. package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
  301. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
  302. package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
  303. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
  304. package/lib/esm/namespaces/models/tenant.model.js +2 -0
  305. package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
  306. package/lib/esm/namespaces/models/user.model.js +2 -0
  307. package/lib/esm/namespaces/models/user.model.js.map +1 -1
  308. package/lib/esm/namespaces/rls/index.js +11 -0
  309. package/lib/esm/namespaces/rls/index.js.map +1 -0
  310. package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
  311. package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
  312. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
  313. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
  314. package/lib/esm/namespaces/rls/rls.constants.js +75 -0
  315. package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
  316. package/lib/esm/namespaces/rls/rls.template.js +711 -0
  317. package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
  318. package/lib/esm/namespaces/rls/rls.types.js +9 -0
  319. package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
  320. package/lib/esm/namespaces/rls/session-binding.js +65 -0
  321. package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
  322. package/lib/esm/namespaces/services/credential.service.js +322 -0
  323. package/lib/esm/namespaces/services/credential.service.js.map +1 -0
  324. package/lib/esm/namespaces/services/index.js +1 -0
  325. package/lib/esm/namespaces/services/index.js.map +1 -1
  326. package/lib/esm/namespaces/types.js +6 -0
  327. package/lib/esm/namespaces/types.js.map +1 -1
  328. package/lib/esm/redis/adapter.js +7 -1
  329. package/lib/esm/redis/adapter.js.map +1 -1
  330. package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
  331. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
  332. package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
  333. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
  334. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
  335. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
  336. package/lib/esm/secrets/core/SecretReference.js +1 -0
  337. package/lib/esm/secrets/core/SecretReference.js.map +1 -1
  338. package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
  339. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
  340. package/lib/esm/secrets/fs/FsSecretService.js +412 -0
  341. package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
  342. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
  343. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
  344. package/lib/esm/secrets/fs/index.js +10 -0
  345. package/lib/esm/secrets/fs/index.js.map +1 -0
  346. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
  347. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
  348. package/lib/esm/secrets/index.js +2 -0
  349. package/lib/esm/secrets/index.js.map +1 -1
  350. package/lib/esm/secrets/model/ModelSecretService.js +337 -42
  351. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  352. package/lib/esm/secrets/model/Secret.js +86 -7
  353. package/lib/esm/secrets/model/Secret.js.map +1 -1
  354. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
  355. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
  356. package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
  357. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
  358. package/lib/esm/shared/environmentValue.js +24 -0
  359. package/lib/esm/shared/environmentValue.js.map +1 -1
  360. package/lib/esm/shared/http/HttpApiService.js +181 -0
  361. package/lib/esm/shared/http/HttpApiService.js.map +1 -0
  362. package/lib/esm/shared/http/hermeticBoot.js +146 -0
  363. package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
  364. package/lib/esm/shared/http/index.js +11 -0
  365. package/lib/esm/shared/http/index.js.map +1 -0
  366. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
  367. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
  368. package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
  369. package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
  370. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
  371. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
  372. package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
  373. package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
  374. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
  375. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
  376. package/lib/types/comms/email/EmailService.d.cts +184 -0
  377. package/lib/types/comms/email/EmailService.d.mts +184 -0
  378. package/lib/types/comms/email/index.d.cts +11 -0
  379. package/lib/types/comms/email/index.d.mts +11 -0
  380. package/lib/types/comms/email/mime.d.cts +84 -0
  381. package/lib/types/comms/email/mime.d.mts +84 -0
  382. package/lib/types/comms/email/smtp.d.cts +107 -0
  383. package/lib/types/comms/email/smtp.d.mts +107 -0
  384. package/lib/types/comms/environment.d.cts +84 -0
  385. package/lib/types/comms/environment.d.mts +84 -0
  386. package/lib/types/comms/gmail/GmailService.d.cts +190 -0
  387. package/lib/types/comms/gmail/GmailService.d.mts +190 -0
  388. package/lib/types/comms/gmail/index.d.cts +6 -0
  389. package/lib/types/comms/gmail/index.d.mts +6 -0
  390. package/lib/types/comms/index.d.cts +13 -0
  391. package/lib/types/comms/index.d.mts +13 -0
  392. package/lib/types/comms/slack/SlackService.d.cts +259 -0
  393. package/lib/types/comms/slack/SlackService.d.mts +259 -0
  394. package/lib/types/comms/slack/index.d.cts +6 -0
  395. package/lib/types/comms/slack/index.d.mts +6 -0
  396. package/lib/types/comms/teams/TeamsService.d.cts +172 -0
  397. package/lib/types/comms/teams/TeamsService.d.mts +172 -0
  398. package/lib/types/comms/teams/index.d.cts +6 -0
  399. package/lib/types/comms/teams/index.d.mts +6 -0
  400. package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
  401. package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
  402. package/lib/types/comms/telegram/index.d.cts +6 -0
  403. package/lib/types/comms/telegram/index.d.mts +6 -0
  404. package/lib/types/devops/environment.d.cts +62 -0
  405. package/lib/types/devops/environment.d.mts +62 -0
  406. package/lib/types/devops/github/GithubService.d.cts +287 -0
  407. package/lib/types/devops/github/GithubService.d.mts +287 -0
  408. package/lib/types/devops/github/index.d.cts +6 -0
  409. package/lib/types/devops/github/index.d.mts +6 -0
  410. package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
  411. package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
  412. package/lib/types/devops/gitlab/index.d.cts +6 -0
  413. package/lib/types/devops/gitlab/index.d.mts +6 -0
  414. package/lib/types/devops/index.d.cts +10 -0
  415. package/lib/types/devops/index.d.mts +10 -0
  416. package/lib/types/index.d.cts +2 -2
  417. package/lib/types/index.d.mts +2 -2
  418. package/lib/types/io/airtable/AirtableService.d.cts +268 -0
  419. package/lib/types/io/airtable/AirtableService.d.mts +268 -0
  420. package/lib/types/io/airtable/index.d.cts +6 -0
  421. package/lib/types/io/airtable/index.d.mts +6 -0
  422. package/lib/types/io/environment.d.cts +67 -0
  423. package/lib/types/io/environment.d.mts +67 -0
  424. package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
  425. package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
  426. package/lib/types/io/google-sheets/index.d.cts +6 -0
  427. package/lib/types/io/google-sheets/index.d.mts +6 -0
  428. package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
  429. package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
  430. package/lib/types/io/graphql/index.d.cts +6 -0
  431. package/lib/types/io/graphql/index.d.mts +6 -0
  432. package/lib/types/io/index.d.cts +12 -0
  433. package/lib/types/io/index.d.mts +12 -0
  434. package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
  435. package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
  436. package/lib/types/io/spreadsheet/index.d.cts +7 -0
  437. package/lib/types/io/spreadsheet/index.d.mts +7 -0
  438. package/lib/types/namespaces/index.d.cts +1 -0
  439. package/lib/types/namespaces/index.d.mts +1 -0
  440. package/lib/types/namespaces/models/credential.model.d.cts +23 -0
  441. package/lib/types/namespaces/models/credential.model.d.mts +23 -0
  442. package/lib/types/namespaces/models/index.d.cts +1 -0
  443. package/lib/types/namespaces/models/index.d.mts +1 -0
  444. package/lib/types/namespaces/rls/index.d.cts +10 -0
  445. package/lib/types/namespaces/rls/index.d.mts +10 -0
  446. package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
  447. package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
  448. package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
  449. package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
  450. package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
  451. package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
  452. package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
  453. package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
  454. package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
  455. package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
  456. package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
  457. package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
  458. package/lib/types/namespaces/services/credential.service.d.cts +175 -0
  459. package/lib/types/namespaces/services/credential.service.d.mts +175 -0
  460. package/lib/types/namespaces/services/index.d.cts +1 -0
  461. package/lib/types/namespaces/services/index.d.mts +1 -0
  462. package/lib/types/namespaces/types.d.cts +37 -0
  463. package/lib/types/namespaces/types.d.mts +37 -0
  464. package/lib/types/redis/adapter.d.cts +2 -0
  465. package/lib/types/redis/adapter.d.mts +2 -0
  466. package/lib/types/redis/types.d.cts +27 -2
  467. package/lib/types/redis/types.d.mts +27 -2
  468. package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
  469. package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
  470. package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
  471. package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
  472. package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
  473. package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
  474. package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
  475. package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
  476. package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
  477. package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
  478. package/lib/types/secrets/fs/index.d.cts +9 -0
  479. package/lib/types/secrets/fs/index.d.mts +9 -0
  480. package/lib/types/secrets/index.d.cts +2 -0
  481. package/lib/types/secrets/index.d.mts +2 -0
  482. package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
  483. package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
  484. package/lib/types/secrets/model/Secret.d.cts +44 -3
  485. package/lib/types/secrets/model/Secret.d.mts +44 -3
  486. package/lib/types/shared/environmentValue.d.cts +24 -0
  487. package/lib/types/shared/environmentValue.d.mts +24 -0
  488. package/lib/types/shared/http/HttpApiService.d.cts +193 -0
  489. package/lib/types/shared/http/HttpApiService.d.mts +193 -0
  490. package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
  491. package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
  492. package/lib/types/shared/http/index.d.cts +10 -0
  493. package/lib/types/shared/http/index.d.mts +10 -0
  494. package/package.json +180 -3
  495. package/sql/002_rls.sql +660 -15
  496. package/sql/004_credentials.sql +46 -0
@@ -0,0 +1,204 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SmtpClient = void 0;
37
+ /**
38
+ * @module integrations/comms/email/smtp
39
+ * @summary SMTP client used by the Email service for direct SMTP delivery.
40
+ * @description Delegates the SMTP protocol to the optional `nodemailer`
41
+ * library (the same library n8n uses) instead of hand-rolling the wire
42
+ * protocol: the transport performs EHLO, STARTTLS/implicit TLS, AUTH LOGIN,
43
+ * and the `MAIL FROM`/`RCPT TO`/`DATA` transaction for a pre-built raw MIME
44
+ * message. The public {@link SmtpClient} surface is unchanged. Envelope
45
+ * addresses are validated through {@link assertEmailAddress} (decaf
46
+ * `BadRequestError`s) before they reach any SMTP command, and credentials are
47
+ * never sent over a plaintext session unless `SmtpConfig.allowPlaintextAuth`
48
+ * opts in.
49
+ */
50
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
51
+ const mime_js_1 = require("./mime.cjs");
52
+ /**
53
+ * @description SMTP client for raw MIME delivery
54
+ * @summary Connects and authenticates through a nodemailer SMTP transport
55
+ * (implicit TLS on `secure`, STARTTLS otherwise), then delivers a pre-built
56
+ * message with the envelope sender/recipients and the raw RFC 5322 source.
57
+ * Credentials are never sent over a plaintext session unless
58
+ * `allowPlaintextAuth` is set, and every envelope address is validated before
59
+ * it reaches the transport.
60
+ * @category Comms
61
+ * @memberOf module:integrations/comms/email/smtp
62
+ * @example
63
+ * ```ts
64
+ * import { SmtpClient, buildEmail } from "@decaf-ts/integrations/comms/email";
65
+ *
66
+ * const client = new SmtpClient({
67
+ * host: "smtp.example.com",
68
+ * port: 587,
69
+ * username: "noreply@example.com",
70
+ * password: process.env.SMTP_PASSWORD,
71
+ * });
72
+ * await client.connect();
73
+ * const mail = buildEmail({
74
+ * from: "noreply@example.com",
75
+ * to: ["ops@example.com"],
76
+ * subject: "Nightly report",
77
+ * text: "All systems nominal.",
78
+ * });
79
+ * await client.send(mail.from, mail.recipients, mail.raw);
80
+ * await client.close();
81
+ * ```
82
+ */
83
+ class SmtpClient {
84
+ /**
85
+ * @description Creates an SMTP client
86
+ * @summary Stores the config; the nodemailer transport is only created and
87
+ * verified by {@link SmtpClient.connect}.
88
+ * @param config - Server address, optional credentials, and TLS/timeout options
89
+ */
90
+ constructor(config) {
91
+ this.config = config;
92
+ }
93
+ transportOptions() {
94
+ const secure = this.config.secure ?? false;
95
+ const hasCredentials = Boolean(this.config.username && this.config.password);
96
+ const timeout = this.config.timeout ?? 30000;
97
+ return {
98
+ host: this.config.host,
99
+ port: this.config.port ?? (secure ? 465 : 587),
100
+ secure,
101
+ name: this.config.clientHostname ?? "as-graph",
102
+ requireTLS: !secure && hasCredentials && !this.config.allowPlaintextAuth,
103
+ auth: hasCredentials
104
+ ? {
105
+ user: this.config.username,
106
+ pass: this.config.password,
107
+ method: "LOGIN",
108
+ }
109
+ : undefined,
110
+ tls: this.config.allowUnauthorizedCerts
111
+ ? { rejectUnauthorized: false }
112
+ : undefined,
113
+ connectionTimeout: timeout,
114
+ greetingTimeout: timeout,
115
+ socketTimeout: timeout,
116
+ };
117
+ }
118
+ transportError(prefix, error) {
119
+ if (error instanceof db_decorators_1.InternalError)
120
+ return error;
121
+ return new db_decorators_1.InternalError(`${prefix}: ${error instanceof Error ? error.message : String(error)}`);
122
+ }
123
+ /**
124
+ * @description Opens the SMTP session
125
+ * @summary Lazily loads the optional `nodemailer` peer, builds the SMTP
126
+ * transport for the configured host/credentials, and verifies it
127
+ * (`EHLO` + TLS upgrade + `AUTH LOGIN` when credentials are configured).
128
+ * Authentication fails closed: with credentials configured and no encrypted
129
+ * session, the transport requires STARTTLS and verification fails unless
130
+ * `allowPlaintextAuth` was set on the config.
131
+ * @throws {InternalError} when `nodemailer` is not installed, or on
132
+ * connection, TLS, or auth failures
133
+ */
134
+ async connect() {
135
+ if (this.transporter)
136
+ return;
137
+ const moduleName = "nodemailer";
138
+ let module;
139
+ try {
140
+ module = (await Promise.resolve(`${moduleName}`).then(s => __importStar(require(s))));
141
+ }
142
+ catch {
143
+ throw new db_decorators_1.InternalError("SMTP delivery requires the optional 'nodemailer' package; install it to use this surface");
144
+ }
145
+ if (typeof module.createTransport !== "function") {
146
+ throw new db_decorators_1.InternalError("The optional 'nodemailer' package did not export createTransport");
147
+ }
148
+ const transporter = module.createTransport(this.transportOptions(), {
149
+ disableFileAccess: true,
150
+ disableUrlAccess: true,
151
+ });
152
+ try {
153
+ await transporter.verify();
154
+ }
155
+ catch (error) {
156
+ transporter.close();
157
+ throw this.transportError("SMTP connection failed", error);
158
+ }
159
+ this.transporter = transporter;
160
+ }
161
+ /**
162
+ * @description Delivers a raw message over the established session
163
+ * @summary Validates the envelope, then hands the sender, recipients, and
164
+ * raw RFC 5322 source to nodemailer's `sendMail` (the transport performs
165
+ * queueing, dot-stuffing, and CRLF normalization).
166
+ * @param from - Envelope sender address
167
+ * @param recipients - Envelope recipient addresses
168
+ * @param raw - Raw RFC 5322 message text
169
+ * @throws {InternalError} when not connected or the server rejects delivery
170
+ * @throws {BadRequestError} when the envelope sender or a recipient is not an allowlisted mailbox
171
+ */
172
+ async send(from, recipients, raw) {
173
+ if (!this.transporter) {
174
+ throw new db_decorators_1.InternalError("SMTP client is not connected");
175
+ }
176
+ const sender = (0, mime_js_1.assertEmailAddress)(from, "envelope sender");
177
+ const envelopes = recipients.map((recipient) => (0, mime_js_1.assertEmailAddress)(recipient, "envelope recipient"));
178
+ const message = {
179
+ envelope: { from: sender, to: envelopes },
180
+ raw,
181
+ };
182
+ try {
183
+ await this.transporter.sendMail(message);
184
+ }
185
+ catch (error) {
186
+ throw this.transportError("SMTP delivery failed", error);
187
+ }
188
+ }
189
+ /**
190
+ * @description Closes the session gracefully
191
+ * @summary Closes the nodemailer transport, ignoring shutdown failures.
192
+ */
193
+ async close() {
194
+ try {
195
+ this.transporter?.close();
196
+ }
197
+ finally {
198
+ this.transporter = undefined;
199
+ }
200
+ }
201
+ }
202
+ exports.SmtpClient = SmtpClient;
203
+ //# sourceMappingURL=smtp.js.map
204
+ //# sourceMappingURL=smtp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/email/smtp.cjs","sourceRoot":"","sources":["comms/email/smtp.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommsEnvironment = void 0;
4
+ const logging_1 = require("@decaf-ts/logging");
5
+ /**
6
+ * @description Accumulated comms environment singleton
7
+ * @summary The `LoggedEnvironment.accumulate`-registered instance backing the
8
+ * `CommsEnvironmentShape` contract. Comms services read their provider slice
9
+ * (e.g. `CommsEnvironment.comms.slack`) inside `configFromEnvironment()` and
10
+ * translate it into an `HttpApiServiceConfig`-derived config. Credentials come
11
+ * from environment variables; for as-graph node usage those are provided as
12
+ * `GRAPH_CREDENTIAL_*` values (placeholders in this example).
13
+ * @example
14
+ * ```ts
15
+ * import { SlackService } from "@decaf-ts/integrations/comms/slack";
16
+ *
17
+ * // with comms.slack.token / comms.slack.baseUrl configured in the environment
18
+ * const slack = new SlackService();
19
+ * await slack.initialize();
20
+ * ```
21
+ * @constant {LoggedEnvironment} CommsEnvironment
22
+ * @memberOf module:integrations/comms/environment
23
+ */
24
+ exports.CommsEnvironment = logging_1.LoggedEnvironment.accumulate({
25
+ comms: {
26
+ slack: {
27
+ token: "",
28
+ baseUrl: "",
29
+ timeout: undefined,
30
+ },
31
+ telegram: {
32
+ token: "",
33
+ baseUrl: "",
34
+ timeout: undefined,
35
+ },
36
+ teams: {
37
+ token: "",
38
+ webhookUrl: "",
39
+ baseUrl: "",
40
+ timeout: undefined,
41
+ },
42
+ email: {
43
+ provider: "",
44
+ host: "",
45
+ port: undefined,
46
+ secure: undefined,
47
+ username: "",
48
+ password: "",
49
+ from: "",
50
+ token: "",
51
+ graphBaseUrl: "",
52
+ timeout: undefined,
53
+ },
54
+ gmail: {
55
+ token: "",
56
+ userId: "",
57
+ baseUrl: "",
58
+ timeout: undefined,
59
+ },
60
+ },
61
+ });
62
+ //# sourceMappingURL=environment.js.map
63
+ //# sourceMappingURL=environment.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/environment.cjs","sourceRoot":"","sources":["comms/environment.js"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,gBAAgB,GAAG,2BAAiB,CAAC,UAAU,CAAC;IACzD,KAAK,EAAE;QACH,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,QAAQ,EAAE;YACN,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,SAAS;SACrB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;KACJ;CACJ,CAAC,CAAC;AACH,uCAAuC"}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GmailService = void 0;
4
+ /**
5
+ * @module integrations/comms/gmail/service
6
+ * @summary Gmail API integration service for sending and listing messages.
7
+ * @description Exposes the Gmail REST API (`users.messages.send`,
8
+ * `users.messages.list`, `users.messages.get`, `users.labels.list`) as an
9
+ * undecorated client-based service built on {@link HttpApiService}.
10
+ * Message sending reuses the shared MIME builder from the email integration
11
+ * (`buildEmail`) and posts the raw MIME message as base64url. Configuration
12
+ * comes from an explicit `GmailServiceConfig` or the `comms.gmail` environment
13
+ * slice, and failures are mapped to decaf errors via {@link httpError}.
14
+ */
15
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
16
+ const environment_js_1 = require("./../environment.cjs");
17
+ const environmentValue_js_1 = require("./../../shared/environmentValue.cjs");
18
+ const index_js_1 = require("./../../shared/http/index.cjs");
19
+ const mime_js_1 = require("./../email/mime.cjs");
20
+ /**
21
+ * @description Gmail API integration service
22
+ * @summary An undecorated HTTP service for sending MIME-built
23
+ * emails, listing messages with Gmail query syntax and page tokens, fetching
24
+ * a single message in a chosen format, and listing labels. All operations
25
+ * require an OAuth token (`requireToken()`) and operate on the configured
26
+ * `userId` mailbox (default `"me"`); transport failures are mapped to decaf
27
+ * errors via {@link httpError}.
28
+ * @class GmailService
29
+ * @category Comms
30
+ * @example
31
+ * ```ts
32
+ * import { GmailService } from "@decaf-ts/integrations/comms/gmail";
33
+ *
34
+ * const gmail = new GmailService();
35
+ * await gmail.initialize({
36
+ * token: process.env.GRAPH_CREDENTIAL_GMAIL_TOKEN,
37
+ * });
38
+ * await gmail.send({
39
+ * from: "bot@example.com",
40
+ * to: "ops@example.com",
41
+ * subject: "Deploy",
42
+ * text: "Release 1.2.0 is live",
43
+ * });
44
+ * ```
45
+ * @memberOf module:integrations/comms/gmail/service
46
+ */
47
+ class GmailService extends index_js_1.HttpApiService {
48
+ constructor() {
49
+ super(...arguments);
50
+ /**
51
+ * @description The provider name used in error messages
52
+ */
53
+ this.serviceName = "Gmail";
54
+ }
55
+ /**
56
+ * @description The Gmail REST API base URL
57
+ * @summary Used when the resolved config carries no `baseUrl`.
58
+ * @returns {string} `"https://gmail.googleapis.com/gmail/v1"`.
59
+ */
60
+ defaultBaseUrl() {
61
+ return "https://gmail.googleapis.com/gmail/v1";
62
+ }
63
+ /**
64
+ * @description Builds the Gmail OAuth bearer authorization headers
65
+ * @summary Returns the `Authorization: Bearer <token>` header when the
66
+ * config carries a token, and no headers otherwise.
67
+ * @param {GmailServiceConfig} config - The resolved service configuration.
68
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
69
+ */
70
+ authHeaders(config) {
71
+ return config.token ? { Authorization: `Bearer ${config.token}` } : {};
72
+ }
73
+ /**
74
+ * @description Reads the Gmail credentials and defaults from the environment
75
+ * @summary Reads the `comms.gmail` environment slice and returns a partial
76
+ * config when a token is configured, `undefined` otherwise. Values pass
77
+ * through `envString`/`envNumber` to reject unset-leaf proxies.
78
+ * @returns {Partial<GmailServiceConfig> | undefined} A partial config, or `undefined` when no Gmail token is configured.
79
+ */
80
+ configFromEnvironment() {
81
+ const env = environment_js_1.CommsEnvironment.comms.gmail;
82
+ const token = (0, environmentValue_js_1.envString)(env?.token);
83
+ if (!token)
84
+ return undefined;
85
+ return {
86
+ token,
87
+ userId: (0, environmentValue_js_1.envString)(env.userId),
88
+ baseUrl: (0, environmentValue_js_1.envString)(env.baseUrl),
89
+ timeout: (0, environmentValue_js_1.envNumber)(env.timeout),
90
+ };
91
+ }
92
+ /**
93
+ * @description Builds the mailbox-scoped API path
94
+ * @summary Returns `/users/<userId>` with the configured `userId` (or
95
+ * `"me"` when unset) URL-encoded; all message and label operations are
96
+ * relative to this path.
97
+ * @returns {string} The URL-encoded mailbox path.
98
+ */
99
+ userPath() {
100
+ return `/users/${encodeURIComponent(this.config.userId ?? "me")}`;
101
+ }
102
+ /**
103
+ * @description Sends an email through the Gmail API
104
+ * @summary Builds a raw MIME message from the input with the shared email
105
+ * MIME builder (`buildEmail`), base64url-encodes it, and `POST`s it to
106
+ * `users.messages.send`. Requires a token and a `from` sender address.
107
+ * @param {EmailMessageInput} input - The message envelope and body (`from`, `to`, `subject`, and optional `cc`/`bcc`/`text`/`html`/`replyTo`/`attachments`).
108
+ * @returns {Promise<GmailSendResult>} Gmail's identifiers for the sent message.
109
+ * @throws {InternalError} When no token is configured or the sender address is missing.
110
+ * @throws {NotFoundError} When the endpoint answers with HTTP 404.
111
+ * @throws {ConflictError} When Gmail answers with HTTP 409.
112
+ * @throws {BadRequestError} When Gmail answers with any other HTTP error status (e.g. invalid recipients).
113
+ */
114
+ async send(input) {
115
+ this.requireToken();
116
+ if (!input.from) {
117
+ throw new db_decorators_1.InternalError("Gmail send requires a sender address");
118
+ }
119
+ const built = (0, mime_js_1.buildEmail)(input);
120
+ try {
121
+ const response = await this.client.post(`${this.userPath()}/messages/send`, {
122
+ raw: Buffer.from(built.raw, "utf8").toString("base64url"),
123
+ });
124
+ return {
125
+ id: String(response.data.id ?? built.messageId),
126
+ threadId: response.data.threadId,
127
+ labelIds: response.data.labelIds,
128
+ };
129
+ }
130
+ catch (error) {
131
+ throw (0, index_js_1.httpError)("Gmail", "send message", error);
132
+ }
133
+ }
134
+ /**
135
+ * @description Lists mailbox messages with Gmail query paging
136
+ * @summary `GET`s `users.messages.list` with an optional Gmail `query`
137
+ * (`q` parameter, e.g. `"from:user@example.com is:unread"`), a page size
138
+ * (default `25`), a `pageToken` from the previous page, and `labelIds`
139
+ * filtering. Returns the message references and the `nextPageToken` to pass
140
+ * back as `pageToken` for the next page.
141
+ * @param {object} [options] - Query and paging options.
142
+ * @param {string} [options.query] - Gmail search query (`q` parameter).
143
+ * @param {number} [options.maxResults] - Page size; defaults to `25`.
144
+ * @param {string} [options.pageToken] - The `nextPageToken` from the previous page.
145
+ * @param {string[]} [options.labelIds] - Label IDs the messages must carry.
146
+ * @returns {Promise<GmailListResult>} One page of message references with the next page token when more pages exist.
147
+ * @throws {InternalError} When no token is configured.
148
+ * @throws {NotFoundError} When the endpoint answers with HTTP 404.
149
+ * @throws {ConflictError} When Gmail answers with HTTP 409.
150
+ * @throws {BadRequestError} When Gmail answers with any other HTTP error status (e.g. invalid query).
151
+ * @example
152
+ * ```ts
153
+ * let pageToken: string | undefined;
154
+ * do {
155
+ * const page = await gmail.listMessages({
156
+ * query: "is:unread",
157
+ * maxResults: 100,
158
+ * pageToken,
159
+ * });
160
+ * console.log(page.messages);
161
+ * pageToken = page.nextPageToken;
162
+ * } while (pageToken);
163
+ * ```
164
+ */
165
+ async listMessages(options = {}) {
166
+ this.requireToken();
167
+ try {
168
+ const response = await this.client.get(`${this.userPath()}/messages`, {
169
+ params: {
170
+ q: options.query,
171
+ maxResults: options.maxResults ?? 25,
172
+ pageToken: options.pageToken,
173
+ labelIds: options.labelIds,
174
+ },
175
+ });
176
+ return {
177
+ messages: response.data.messages ?? [],
178
+ nextPageToken: response.data.nextPageToken,
179
+ resultSizeEstimate: response.data.resultSizeEstimate,
180
+ };
181
+ }
182
+ catch (error) {
183
+ throw (0, index_js_1.httpError)("Gmail", "list messages", error);
184
+ }
185
+ }
186
+ /**
187
+ * @description Fetches a single Gmail message
188
+ * @summary `GET`s `users.messages.get` for the given message ID with the
189
+ * requested `format`. With `"full"` (the default) the payload includes the
190
+ * parsed body parts; `"metadata"` limits it to headers and labels,
191
+ * `"minimal"` to identifiers only, and `"raw"` returns the raw MIME string.
192
+ * @param {string} id - The Gmail message ID.
193
+ * @param {"full" | "metadata" | "minimal" | "raw"} [format] - The message format to request; defaults to `"full"`.
194
+ * @returns {Promise<Record<string, unknown>>} The raw Gmail message payload in the requested format.
195
+ * @throws {InternalError} When no token is configured or the message ID is empty.
196
+ * @throws {NotFoundError} When the message does not exist (HTTP 404).
197
+ * @throws {ConflictError} When Gmail answers with HTTP 409.
198
+ * @throws {BadRequestError} When Gmail answers with any other HTTP error status.
199
+ */
200
+ async getMessage(id, format = "full") {
201
+ this.requireToken();
202
+ if (!id)
203
+ throw new db_decorators_1.InternalError("Gmail getMessage requires a message ID");
204
+ try {
205
+ const response = await this.client.get(`${this.userPath()}/messages/${encodeURIComponent(id)}`, { params: { format } });
206
+ return response.data;
207
+ }
208
+ catch (error) {
209
+ throw (0, index_js_1.httpError)("Gmail", "get message", error);
210
+ }
211
+ }
212
+ /**
213
+ * @description Lists the mailbox's Gmail labels
214
+ * @summary `GET`s `users.labels.list` and returns the raw label payloads
215
+ * (including `id`, `name`, and `type`).
216
+ * @returns {Promise<Array<Record<string, unknown>>>} The raw Gmail label payloads.
217
+ * @throws {InternalError} When no token is configured.
218
+ * @throws {NotFoundError} When the endpoint answers with HTTP 404.
219
+ * @throws {ConflictError} When Gmail answers with HTTP 409.
220
+ * @throws {BadRequestError} When Gmail answers with any other HTTP error status.
221
+ */
222
+ async listLabels() {
223
+ this.requireToken();
224
+ try {
225
+ const response = await this.client.get(`${this.userPath()}/labels`);
226
+ return response.data.labels ?? [];
227
+ }
228
+ catch (error) {
229
+ throw (0, index_js_1.httpError)("Gmail", "list labels", error);
230
+ }
231
+ }
232
+ }
233
+ exports.GmailService = GmailService;
234
+ //# sourceMappingURL=GmailService.js.map
235
+ //# sourceMappingURL=GmailService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/gmail/GmailService.cjs","sourceRoot":"","sources":["comms/gmail/GmailService.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/gmail
19
+ * @summary Gmail service (REST v1 message send/list/get and label listing).
20
+ * @description Re-exports the Gmail client-based service and its types.
21
+ */
22
+ __exportStar(require("./GmailService.cjs"), exports);
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/gmail/index.cjs","sourceRoot":"","sources":["comms/gmail/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAkC;AAClC,iCAAiC"}
@@ -0,0 +1,31 @@
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
19
+ * @summary Comms integration services (Slack, Telegram, Teams, Gmail, Email).
20
+ * @description Re-exports the messaging/email services, their per-service
21
+ * modules, and the shared `comms` environment slice. Each sub-module is also
22
+ * available through its own package subpath export.
23
+ */
24
+ __exportStar(require("./email/index.cjs"), exports);
25
+ __exportStar(require("./gmail/index.cjs"), exports);
26
+ __exportStar(require("./slack/index.cjs"), exports);
27
+ __exportStar(require("./teams/index.cjs"), exports);
28
+ __exportStar(require("./telegram/index.cjs"), exports);
29
+ __exportStar(require("./environment.cjs"), exports);
30
+ //# sourceMappingURL=index.js.map
31
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comms/index.cjs","sourceRoot":"","sources":["comms/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,mDAAiC;AACjC,iCAAiC"}