@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
@@ -3,10 +3,9 @@
3
3
  * @summary S3-compatible blob store base implementation.
4
4
  * @description Shared CRUD implementation backed by the AWS SDK v3 S3Client, used by
5
5
  * the S3, MinIO, and Cloudflare R2 provider services. Deliberately left undecorated:
6
- * `@service(...)` on a class whose parent is itself `@service(...)`-decorated breaks
7
- * that subclass's inherited field initializers (e.g. `Context` ends up `undefined`).
8
- * Each concrete provider below extends this class directly and carries its own
9
- * `@service("blob-<provider>")` decorator instead of stacking on top of one another.
6
+ * concrete providers are plain classes that consumers construct and boot
7
+ * explicitly (no injectable registration, no `Service.boot` auto-boot), and
8
+ * each extends this base directly instead of stacking on top of one another.
10
9
  */
11
10
  import { S3Client } from "@aws-sdk/client-s3";
12
11
  import { type ContextualArgs, type MaybeContextualArg } from "@decaf-ts/core";
@@ -16,12 +15,9 @@ import type { BlobGetOptions, BlobGetResult, BlobKey, BlobListOptions, BlobListR
16
15
  * @description Base implementation for S3-compatible blob stores
17
16
  * @summary Implements the full blob CRUD API on top of the AWS SDK v3
18
17
  * `S3Client` and is shared by the S3, MinIO, and Cloudflare R2 provider
19
- * services. Deliberately left undecorated: `@service(...)` on a class whose
20
- * parent is itself `@service(...)`-decorated breaks that subclass's inherited
21
- * field initializers (e.g. `Context` ends up `undefined`). Each concrete
22
- * provider extends this class directly and carries its own
23
- * `@service("blob-<provider>")` decorator instead of stacking on top of one
24
- * another.
18
+ * services. Deliberately left undecorated: concrete providers are plain
19
+ * classes that consumers construct and boot explicitly, so no injectable
20
+ * registration or `Service.boot` auto-boot applies here.
25
21
  * @class S3CompatibleBlobStoreService
26
22
  * @memberOf module:integrations/blob/s3/base-service
27
23
  */
@@ -29,11 +25,11 @@ export declare abstract class S3CompatibleBlobStoreService extends BlobStoreServ
29
25
  /**
30
26
  * @description Initializes the S3 client from config or environment
31
27
  * @summary Resolves the config via `getConfigFromArgs` (explicit config,
32
- * then the provider's environment slice). When no config resolves during a
33
- * context-bearing auto-boot of an unconfigured provider (e.g. an optional
34
- * `blob-minio`/`blob-r2` registered alongside `blob-s3`), returns
35
- * `skipInitialization()` so `Service.boot` does not throw; an explicit
36
- * `initialize()` with no resolvable config still throws a
28
+ * then the provider's environment slice). When no config resolves and the
29
+ * arguments carry a decaf `Context` (e.g. an unconfigured optional
30
+ * `blob-minio`/`blob-r2` provider next to `blob-s3`), returns
31
+ * `skipInitialization()` so the context-bearing boot does not throw; an
32
+ * explicit `initialize()` with no resolvable config still throws a
37
33
  * `ValidationError`. Requires a `bucket`, builds the `S3Client` (with
38
34
  * optional static credentials), stores config and client, and optionally
39
35
  * creates the bucket when `autoCreateBucket` is set.
@@ -3,10 +3,9 @@
3
3
  * @summary S3-compatible blob store base implementation.
4
4
  * @description Shared CRUD implementation backed by the AWS SDK v3 S3Client, used by
5
5
  * the S3, MinIO, and Cloudflare R2 provider services. Deliberately left undecorated:
6
- * `@service(...)` on a class whose parent is itself `@service(...)`-decorated breaks
7
- * that subclass's inherited field initializers (e.g. `Context` ends up `undefined`).
8
- * Each concrete provider below extends this class directly and carries its own
9
- * `@service("blob-<provider>")` decorator instead of stacking on top of one another.
6
+ * concrete providers are plain classes that consumers construct and boot
7
+ * explicitly (no injectable registration, no `Service.boot` auto-boot), and
8
+ * each extends this base directly instead of stacking on top of one another.
10
9
  */
11
10
  import { S3Client } from "@aws-sdk/client-s3";
12
11
  import { type ContextualArgs, type MaybeContextualArg } from "@decaf-ts/core";
@@ -16,12 +15,9 @@ import type { BlobGetOptions, BlobGetResult, BlobKey, BlobListOptions, BlobListR
16
15
  * @description Base implementation for S3-compatible blob stores
17
16
  * @summary Implements the full blob CRUD API on top of the AWS SDK v3
18
17
  * `S3Client` and is shared by the S3, MinIO, and Cloudflare R2 provider
19
- * services. Deliberately left undecorated: `@service(...)` on a class whose
20
- * parent is itself `@service(...)`-decorated breaks that subclass's inherited
21
- * field initializers (e.g. `Context` ends up `undefined`). Each concrete
22
- * provider extends this class directly and carries its own
23
- * `@service("blob-<provider>")` decorator instead of stacking on top of one
24
- * another.
18
+ * services. Deliberately left undecorated: concrete providers are plain
19
+ * classes that consumers construct and boot explicitly, so no injectable
20
+ * registration or `Service.boot` auto-boot applies here.
25
21
  * @class S3CompatibleBlobStoreService
26
22
  * @memberOf module:integrations/blob/s3/base-service
27
23
  */
@@ -29,11 +25,11 @@ export declare abstract class S3CompatibleBlobStoreService extends BlobStoreServ
29
25
  /**
30
26
  * @description Initializes the S3 client from config or environment
31
27
  * @summary Resolves the config via `getConfigFromArgs` (explicit config,
32
- * then the provider's environment slice). When no config resolves during a
33
- * context-bearing auto-boot of an unconfigured provider (e.g. an optional
34
- * `blob-minio`/`blob-r2` registered alongside `blob-s3`), returns
35
- * `skipInitialization()` so `Service.boot` does not throw; an explicit
36
- * `initialize()` with no resolvable config still throws a
28
+ * then the provider's environment slice). When no config resolves and the
29
+ * arguments carry a decaf `Context` (e.g. an unconfigured optional
30
+ * `blob-minio`/`blob-r2` provider next to `blob-s3`), returns
31
+ * `skipInitialization()` so the context-bearing boot does not throw; an
32
+ * explicit `initialize()` with no resolvable config still throws a
37
33
  * `ValidationError`. Requires a `bucket`, builds the `S3Client` (with
38
34
  * optional static credentials), stores config and client, and optionally
39
35
  * creates the bucket when `autoCreateBucket` is set.
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @description Environment shape for the calendar integration services
3
+ * @summary Defines the `calendar` root with the `googleCalendar` slice. The
4
+ * slice carries the OAuth `token` and/or `apiKey`, the default `calendarId`,
5
+ * and an optional `baseUrl` override and `timeout`. Fields are typed as
6
+ * required here so `LoggedEnvironment.accumulate` registers them; absent values
7
+ * resolve to proxy placeholders at runtime and must pass through
8
+ * `envString`/`envNumber`. Values are credential references supplied by the
9
+ * environment, never literals embedded in source.
10
+ * @memberOf module:integrations/calendar/environment
11
+ */
12
+ export interface CalendarEnvironmentShape {
13
+ calendar: {
14
+ /** Google Calendar OAuth token/API key and default calendar (`calendar/google-calendar`). */
15
+ googleCalendar: {
16
+ token: string;
17
+ apiKey: string;
18
+ calendarId: string;
19
+ baseUrl: string;
20
+ timeout?: number;
21
+ };
22
+ };
23
+ }
24
+ /**
25
+ * @description Accumulated calendar environment singleton
26
+ * @summary The `LoggedEnvironment.accumulate`-registered instance backing the
27
+ * `CalendarEnvironmentShape` contract. The Google Calendar service reads
28
+ * `CalendarEnvironment.calendar.googleCalendar` inside
29
+ * `configFromEnvironment()` and translates it into its
30
+ * `HttpApiServiceConfig`-derived config. Credentials come from environment
31
+ * variables; for as-graph node usage those are provided as
32
+ * `GRAPH_CREDENTIAL_*` values (placeholders in this example).
33
+ * @example
34
+ * ```ts
35
+ * import { GoogleCalendarService } from "@decaf-ts/integrations/calendar/google-calendar";
36
+ *
37
+ * // with calendar.googleCalendar.token / calendarId configured in the environment
38
+ * const calendar = new GoogleCalendarService();
39
+ * await calendar.initialize();
40
+ * ```
41
+ * @constant {LoggedEnvironment} CalendarEnvironment
42
+ * @memberOf module:integrations/calendar/environment
43
+ */
44
+ export declare const CalendarEnvironment: import("@decaf-ts/logging").AccumulatedEnvironment<{
45
+ app: string | undefined;
46
+ } & import("@decaf-ts/logging").LoggingConfig<object> & {
47
+ env: any;
48
+ } & CalendarEnvironmentShape>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @description Environment shape for the calendar integration services
3
+ * @summary Defines the `calendar` root with the `googleCalendar` slice. The
4
+ * slice carries the OAuth `token` and/or `apiKey`, the default `calendarId`,
5
+ * and an optional `baseUrl` override and `timeout`. Fields are typed as
6
+ * required here so `LoggedEnvironment.accumulate` registers them; absent values
7
+ * resolve to proxy placeholders at runtime and must pass through
8
+ * `envString`/`envNumber`. Values are credential references supplied by the
9
+ * environment, never literals embedded in source.
10
+ * @memberOf module:integrations/calendar/environment
11
+ */
12
+ export interface CalendarEnvironmentShape {
13
+ calendar: {
14
+ /** Google Calendar OAuth token/API key and default calendar (`calendar/google-calendar`). */
15
+ googleCalendar: {
16
+ token: string;
17
+ apiKey: string;
18
+ calendarId: string;
19
+ baseUrl: string;
20
+ timeout?: number;
21
+ };
22
+ };
23
+ }
24
+ /**
25
+ * @description Accumulated calendar environment singleton
26
+ * @summary The `LoggedEnvironment.accumulate`-registered instance backing the
27
+ * `CalendarEnvironmentShape` contract. The Google Calendar service reads
28
+ * `CalendarEnvironment.calendar.googleCalendar` inside
29
+ * `configFromEnvironment()` and translates it into its
30
+ * `HttpApiServiceConfig`-derived config. Credentials come from environment
31
+ * variables; for as-graph node usage those are provided as
32
+ * `GRAPH_CREDENTIAL_*` values (placeholders in this example).
33
+ * @example
34
+ * ```ts
35
+ * import { GoogleCalendarService } from "@decaf-ts/integrations/calendar/google-calendar";
36
+ *
37
+ * // with calendar.googleCalendar.token / calendarId configured in the environment
38
+ * const calendar = new GoogleCalendarService();
39
+ * await calendar.initialize();
40
+ * ```
41
+ * @constant {LoggedEnvironment} CalendarEnvironment
42
+ * @memberOf module:integrations/calendar/environment
43
+ */
44
+ export declare const CalendarEnvironment: import("@decaf-ts/logging").AccumulatedEnvironment<{
45
+ app: string | undefined;
46
+ } & import("@decaf-ts/logging").LoggingConfig<object> & {
47
+ env: any;
48
+ } & CalendarEnvironmentShape>;
@@ -0,0 +1,316 @@
1
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
2
+ /**
3
+ * @description Configuration for the Google Calendar service
4
+ * @summary Extends {@link HttpApiServiceConfig} with an optional OAuth
5
+ * `token`, an optional `apiKey`, and a default `calendarId`. When omitted, the
6
+ * `calendar.googleCalendar` environment slice supplies the same values (plus
7
+ * optional `baseUrl`/`timeout`). At least one credential is required; the token
8
+ * wins when both are set, and the calendar defaults to `"primary"`.
9
+ * @category Calendar
10
+ * @memberOf module:integrations/calendar/google-calendar/service
11
+ */
12
+ export interface GoogleCalendarServiceConfig extends HttpApiServiceConfig {
13
+ /**
14
+ * @description Google OAuth access token
15
+ * @summary Sent as `Authorization: Bearer <token>` when present.
16
+ */
17
+ token?: string;
18
+ /**
19
+ * @description Google API key
20
+ * @summary Sent as the `key` query parameter only when no OAuth token is configured.
21
+ */
22
+ apiKey?: string;
23
+ /**
24
+ * @description Default calendar ID used when a call does not override it
25
+ */
26
+ calendarId?: string;
27
+ }
28
+ /**
29
+ * @description Input for creating a Google Calendar event
30
+ * @summary Carries the optional target `calendarId`, `summary`, optional
31
+ * description and location, start/end values (date or date-time), an optional
32
+ * time zone, and attendee email addresses.
33
+ * @category Calendar
34
+ * @memberOf module:integrations/calendar/google-calendar/service
35
+ */
36
+ export interface GoogleCalendarEventInput {
37
+ /**
38
+ * @description Calendar ID (defaults to the configured value or `primary`)
39
+ */
40
+ calendarId?: string;
41
+ /**
42
+ * @description Event summary/title
43
+ */
44
+ summary: string;
45
+ /**
46
+ * @description Event description
47
+ */
48
+ description?: string;
49
+ /**
50
+ * @description Event location
51
+ */
52
+ location?: string;
53
+ /**
54
+ * @description Start date (`YYYY-MM-DD`) or date-time (ISO 8601)
55
+ */
56
+ start: string;
57
+ /**
58
+ * @description End date (`YYYY-MM-DD`) or date-time (ISO 8601)
59
+ */
60
+ end: string;
61
+ /**
62
+ * @description IANA time zone applied to date-time values
63
+ */
64
+ timeZone?: string;
65
+ /**
66
+ * @description Attendee email addresses
67
+ */
68
+ attendees?: string[];
69
+ }
70
+ /**
71
+ * @description Input for listing Google Calendar events
72
+ * @summary Carries the optional `calendarId` plus the time window, result cap,
73
+ * free-text query, and single-events expansion flag.
74
+ * @category Calendar
75
+ * @memberOf module:integrations/calendar/google-calendar/service
76
+ */
77
+ export interface GoogleCalendarListEventsInput {
78
+ /**
79
+ * @description Calendar ID (defaults to the configured value or `primary`)
80
+ */
81
+ calendarId?: string;
82
+ /**
83
+ * @description Lower bound for event start time (ISO 8601)
84
+ */
85
+ timeMin?: string;
86
+ /**
87
+ * @description Upper bound for event start time (ISO 8601)
88
+ */
89
+ timeMax?: string;
90
+ /**
91
+ * @description Maximum number of events to return
92
+ */
93
+ maxResults?: number;
94
+ /**
95
+ * @description Free-text search across event fields
96
+ */
97
+ q?: string;
98
+ /**
99
+ * @description Whether recurring events are expanded into instances
100
+ */
101
+ singleEvents?: boolean;
102
+ }
103
+ /**
104
+ * @description Input for updating a Google Calendar event
105
+ * @summary Carries the optional `calendarId` and the fields to change; omitted
106
+ * fields are left untouched by the partial update.
107
+ * @category Calendar
108
+ * @memberOf module:integrations/calendar/google-calendar/service
109
+ */
110
+ export interface GoogleCalendarEventUpdate {
111
+ /**
112
+ * @description Calendar ID (defaults to the configured value or `primary`)
113
+ */
114
+ calendarId?: string;
115
+ /**
116
+ * @description New event summary/title
117
+ */
118
+ summary?: string;
119
+ /**
120
+ * @description New event description
121
+ */
122
+ description?: string;
123
+ /**
124
+ * @description New event location
125
+ */
126
+ location?: string;
127
+ /**
128
+ * @description New start date or date-time
129
+ */
130
+ start?: string;
131
+ /**
132
+ * @description New end date or date-time
133
+ */
134
+ end?: string;
135
+ /**
136
+ * @description IANA time zone applied to date-time values
137
+ */
138
+ timeZone?: string;
139
+ /**
140
+ * @description Replacement attendee email addresses
141
+ */
142
+ attendees?: string[];
143
+ }
144
+ /**
145
+ * @description Google Calendar API integration service
146
+ * @summary An undecorated HTTP service for listing calendars and events and
147
+ * for creating, reading, updating, and deleting events. Every operation needs
148
+ * either an OAuth token or an API key; missing credentials or identifiers raise
149
+ * `InternalError`, and transport failures are mapped to decaf errors via
150
+ * {@link httpError}.
151
+ * @class GoogleCalendarService
152
+ * @extends HttpApiService
153
+ * @category Calendar
154
+ * @example
155
+ * ```ts
156
+ * import { GoogleCalendarService } from "@decaf-ts/integrations/calendar/google-calendar";
157
+ *
158
+ * const calendar = new GoogleCalendarService();
159
+ * await calendar.initialize({
160
+ * token: process.env.GRAPH_CREDENTIAL_GOOGLE_CALENDAR_TOKEN,
161
+ * calendarId: "primary",
162
+ * });
163
+ * await calendar.listEvents({ timeMin: new Date().toISOString() });
164
+ * ```
165
+ * @mermaid
166
+ * sequenceDiagram
167
+ * autonumber
168
+ * participant Caller
169
+ * participant Service as GoogleCalendarService
170
+ * participant API as Google Calendar API
171
+ * Caller->>Service: createEvent(input)
172
+ * activate Service
173
+ * Service->>Service: requireAuth()
174
+ * Service->>API: POST /calendars/{id}/events
175
+ * activate API
176
+ * API-->>Service: created event
177
+ * deactivate API
178
+ * Service-->>Caller: created event
179
+ * deactivate Service
180
+ * @memberOf module:integrations/calendar/google-calendar/service
181
+ */
182
+ export declare class GoogleCalendarService extends HttpApiService<GoogleCalendarServiceConfig> {
183
+ /**
184
+ * @description The provider name used in error messages
185
+ */
186
+ protected readonly serviceName = "Google Calendar";
187
+ /**
188
+ * @description The Google Calendar API base URL
189
+ * @summary Used when the resolved config carries no `baseUrl`.
190
+ * @returns {string} `"https://www.googleapis.com/calendar/v3"`.
191
+ */
192
+ protected defaultBaseUrl(): string;
193
+ /**
194
+ * @description Builds the Google Calendar authorization headers
195
+ * @summary Returns `Authorization: Bearer <token>` when an OAuth token is
196
+ * configured, and no headers otherwise (API keys travel as query parameters).
197
+ * @param {GoogleCalendarServiceConfig} config - The resolved service configuration.
198
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
199
+ */
200
+ protected authHeaders(config: GoogleCalendarServiceConfig): Record<string, string>;
201
+ /**
202
+ * @description Reads the Google Calendar credentials and defaults from the environment
203
+ * @summary Reads the `calendar.googleCalendar` slice and returns a partial
204
+ * config when a token or API key is configured, `undefined` otherwise. Values
205
+ * pass through `envString`/`envNumber` to reject unset-leaf proxies.
206
+ * @returns {Partial<GoogleCalendarServiceConfig> | undefined} A partial config, or `undefined` when no credential is configured.
207
+ */
208
+ protected configFromEnvironment(): Partial<GoogleCalendarServiceConfig> | undefined;
209
+ /**
210
+ * @description Asserts that an OAuth token or API key is configured
211
+ * @summary Called by every operation before it touches the network.
212
+ * @returns {void}
213
+ * @throws {InternalError} When neither a token nor an API key is configured.
214
+ */
215
+ protected requireAuth(): void;
216
+ /**
217
+ * @description Builds API-key query parameters when no OAuth token is set
218
+ * @summary Returns `{ key }` for API-key authentication, and an empty object
219
+ * when an OAuth token is used (or no API key is configured).
220
+ * @returns {Record<string, string>} The query parameters carrying the API key, if any.
221
+ */
222
+ private authParams;
223
+ /**
224
+ * @description Builds the encoded events path for a calendar
225
+ * @summary Resolves the calendar ID from the argument, the configured
226
+ * default, or `"primary"`, then encodes it into
227
+ * `/calendars/<id>/events`.
228
+ * @param {string} [calendarId] - Optional per-call calendar ID.
229
+ * @returns {string} The calendar events API path.
230
+ */
231
+ private calendarPath;
232
+ /**
233
+ * @description Builds the Google Calendar start/end object
234
+ * @summary Emits `{ date }` for all-day values and `{ dateTime, timeZone? }`
235
+ * for values containing a `T` separator.
236
+ * @param {string} value - The date or date-time value.
237
+ * @param {string} [timeZone] - Optional IANA time zone for date-time values.
238
+ * @returns {Record<string, string>} The Calendar API time object.
239
+ */
240
+ private eventTime;
241
+ /**
242
+ * @description Lists the calendars visible to the authenticated user
243
+ * @summary `GET`s `/users/me/calendarList` and returns the calendar list.
244
+ * @returns {Promise<unknown>} The calendar list payload.
245
+ * @throws {InternalError} When no credential is configured.
246
+ * @throws {BadRequestError} When Google rejects the request.
247
+ */
248
+ listCalendars(): Promise<unknown>;
249
+ /**
250
+ * @description Lists events in a calendar
251
+ * @summary `GET`s the calendar's events applying the optional time window,
252
+ * result cap, free-text query, and single-events flag.
253
+ * @param {GoogleCalendarListEventsInput} [input] - The calendar and event query options.
254
+ * @returns {Promise<unknown>} The event collection payload.
255
+ * @throws {InternalError} When no credential is configured.
256
+ * @throws {NotFoundError} When the calendar does not exist (HTTP 404).
257
+ * @throws {BadRequestError} When Google rejects the query.
258
+ */
259
+ listEvents(input?: GoogleCalendarListEventsInput): Promise<unknown>;
260
+ /**
261
+ * @description Creates a Google Calendar event
262
+ * @summary `POST`s the event to the resolved calendar; start/end values are
263
+ * normalized to Calendar time objects and attendees are mapped to
264
+ * `{ email }` entries.
265
+ * @param {GoogleCalendarEventInput} input - The event definition.
266
+ * @returns {Promise<unknown>} The created event payload.
267
+ * @throws {InternalError} When no credential is configured, or the summary, start, or end is missing.
268
+ * @throws {NotFoundError} When the calendar does not exist (HTTP 404).
269
+ * @throws {BadRequestError} When Google rejects the event.
270
+ * @example
271
+ * ```ts
272
+ * await calendar.createEvent({
273
+ * summary: "Release review",
274
+ * start: "2026-11-01T09:00:00Z",
275
+ * end: "2026-11-01T10:00:00Z",
276
+ * attendees: ["team@example.com"],
277
+ * });
278
+ * ```
279
+ */
280
+ createEvent(input: GoogleCalendarEventInput): Promise<unknown>;
281
+ /**
282
+ * @description Fetches a single Google Calendar event
283
+ * @summary `GET`s the event from the given calendar.
284
+ * @param {string} calendarId - The calendar ID (empty falls back to the configured value or `primary`).
285
+ * @param {string} eventId - The event ID.
286
+ * @returns {Promise<unknown>} The event payload.
287
+ * @throws {InternalError} When no credential is configured or the event ID is empty.
288
+ * @throws {NotFoundError} When the event does not exist (HTTP 404).
289
+ * @throws {BadRequestError} When Google rejects the request.
290
+ */
291
+ getEvent(calendarId: string, eventId: string): Promise<unknown>;
292
+ /**
293
+ * @description Partially updates a Google Calendar event
294
+ * @summary `PATCH`es only the supplied fields on the event, normalizing
295
+ * start/end and attendee values; omitted fields are left unchanged.
296
+ * @param {string} eventId - The event ID to update.
297
+ * @param {GoogleCalendarEventUpdate} input - The fields to change.
298
+ * @returns {Promise<unknown>} The updated event payload.
299
+ * @throws {InternalError} When no credential is configured or the event ID is empty.
300
+ * @throws {NotFoundError} When the event does not exist (HTTP 404).
301
+ * @throws {BadRequestError} When Google rejects the update.
302
+ */
303
+ updateEvent(eventId: string, input: GoogleCalendarEventUpdate): Promise<unknown>;
304
+ /**
305
+ * @description Deletes a Google Calendar event
306
+ * @summary `DELETE`s the event from the given calendar and returns
307
+ * `{ deleted: true, eventId }`.
308
+ * @param {string} calendarId - The calendar ID (empty falls back to the configured value or `primary`).
309
+ * @param {string} eventId - The event ID to delete.
310
+ * @returns {Promise<unknown>} `{ deleted: true, eventId }` on success.
311
+ * @throws {InternalError} When no credential is configured or the event ID is empty.
312
+ * @throws {NotFoundError} When the event does not exist (HTTP 404).
313
+ * @throws {BadRequestError} When Google rejects the deletion.
314
+ */
315
+ deleteEvent(calendarId: string, eventId: string): Promise<unknown>;
316
+ }