@decaf-ts/integrations 0.11.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +164 -0
  2. package/dist/integrations.cjs +1 -1
  3. package/dist/integrations.cjs.map +1 -1
  4. package/dist/integrations.js +1 -1
  5. package/dist/integrations.js.map +1 -1
  6. package/docker/mailpit-compose.yml +17 -0
  7. package/docker/postgres-compose.yml +26 -0
  8. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +12 -23
  9. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
  10. package/lib/cjs/blob/core/BlobStoreService.cjs +26 -25
  11. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +12 -23
  13. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
  14. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +11 -16
  15. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
  16. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +14 -16
  17. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
  18. package/lib/cjs/calendar/environment.cjs +48 -0
  19. package/lib/cjs/calendar/environment.cjs.map +1 -0
  20. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +338 -0
  21. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
  22. package/lib/cjs/calendar/google-calendar/index.cjs +20 -0
  23. package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
  24. package/lib/cjs/comms/discord/DiscordService.cjs +318 -0
  25. package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
  26. package/lib/cjs/comms/discord/index.cjs +19 -0
  27. package/lib/cjs/comms/discord/index.cjs.map +1 -0
  28. package/lib/cjs/comms/email/EmailService.cjs +376 -0
  29. package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
  30. package/lib/cjs/comms/email/index.cjs +29 -0
  31. package/lib/cjs/comms/email/index.cjs.map +1 -0
  32. package/lib/cjs/comms/email/mime.cjs +225 -0
  33. package/lib/cjs/comms/email/mime.cjs.map +1 -0
  34. package/lib/cjs/comms/email/smtp.cjs +204 -0
  35. package/lib/cjs/comms/email/smtp.cjs.map +1 -0
  36. package/lib/cjs/comms/environment.cjs +79 -0
  37. package/lib/cjs/comms/environment.cjs.map +1 -0
  38. package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
  39. package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
  40. package/lib/cjs/comms/gmail/index.cjs +24 -0
  41. package/lib/cjs/comms/gmail/index.cjs.map +1 -0
  42. package/lib/cjs/comms/index.cjs +34 -0
  43. package/lib/cjs/comms/index.cjs.map +1 -0
  44. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +325 -0
  45. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
  46. package/lib/cjs/comms/outlook/index.cjs +19 -0
  47. package/lib/cjs/comms/outlook/index.cjs.map +1 -0
  48. package/lib/cjs/comms/slack/SlackService.cjs +264 -0
  49. package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
  50. package/lib/cjs/comms/slack/index.cjs +24 -0
  51. package/lib/cjs/comms/slack/index.cjs.map +1 -0
  52. package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
  53. package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
  54. package/lib/cjs/comms/teams/index.cjs +24 -0
  55. package/lib/cjs/comms/teams/index.cjs.map +1 -0
  56. package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
  57. package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
  58. package/lib/cjs/comms/telegram/index.cjs +24 -0
  59. package/lib/cjs/comms/telegram/index.cjs.map +1 -0
  60. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +274 -0
  61. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
  62. package/lib/cjs/comms/whatsapp/index.cjs +19 -0
  63. package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
  64. package/lib/cjs/devops/environment.cjs +43 -0
  65. package/lib/cjs/devops/environment.cjs.map +1 -0
  66. package/lib/cjs/devops/github/GithubService.cjs +302 -0
  67. package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
  68. package/lib/cjs/devops/github/index.cjs +24 -0
  69. package/lib/cjs/devops/github/index.cjs.map +1 -0
  70. package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
  71. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
  72. package/lib/cjs/devops/gitlab/index.cjs +24 -0
  73. package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
  74. package/lib/cjs/devops/index.cjs +28 -0
  75. package/lib/cjs/devops/index.cjs.map +1 -0
  76. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
  77. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
  78. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
  79. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
  80. package/lib/cjs/index.cjs +3 -3
  81. package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
  82. package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
  83. package/lib/cjs/io/airtable/index.cjs +24 -0
  84. package/lib/cjs/io/airtable/index.cjs.map +1 -0
  85. package/lib/cjs/io/confluence/ConfluenceService.cjs +317 -0
  86. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
  87. package/lib/cjs/io/confluence/index.cjs +19 -0
  88. package/lib/cjs/io/confluence/index.cjs.map +1 -0
  89. package/lib/cjs/io/environment.cjs +74 -0
  90. package/lib/cjs/io/environment.cjs.map +1 -0
  91. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +275 -0
  92. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
  93. package/lib/cjs/io/google-docs/index.cjs +19 -0
  94. package/lib/cjs/io/google-docs/index.cjs.map +1 -0
  95. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
  96. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
  97. package/lib/cjs/io/google-sheets/index.cjs +24 -0
  98. package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
  99. package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
  100. package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
  101. package/lib/cjs/io/graphql/index.cjs +24 -0
  102. package/lib/cjs/io/graphql/index.cjs.map +1 -0
  103. package/lib/cjs/io/index.cjs +35 -0
  104. package/lib/cjs/io/index.cjs.map +1 -0
  105. package/lib/cjs/io/jira/JiraService.cjs +354 -0
  106. package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
  107. package/lib/cjs/io/jira/index.cjs +19 -0
  108. package/lib/cjs/io/jira/index.cjs.map +1 -0
  109. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +253 -0
  110. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
  111. package/lib/cjs/io/microsoft-excel/index.cjs +19 -0
  112. package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
  113. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +261 -0
  114. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
  115. package/lib/cjs/io/microsoft-sharepoint/index.cjs +19 -0
  116. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
  117. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
  118. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
  119. package/lib/cjs/io/spreadsheet/index.cjs +25 -0
  120. package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
  121. package/lib/cjs/namespaces/index.cjs +1 -0
  122. package/lib/cjs/namespaces/index.cjs.map +1 -1
  123. package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
  124. package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
  125. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
  126. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
  127. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
  128. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
  129. package/lib/cjs/namespaces/models/group.model.cjs +2 -0
  130. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
  131. package/lib/cjs/namespaces/models/index.cjs +1 -0
  132. package/lib/cjs/namespaces/models/index.cjs.map +1 -1
  133. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
  134. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
  135. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
  136. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
  137. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
  138. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
  139. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
  140. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
  141. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
  142. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
  143. package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
  144. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
  145. package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
  146. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
  147. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
  148. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
  149. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
  150. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
  151. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
  152. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
  153. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
  154. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
  155. package/lib/cjs/namespaces/models/role.model.cjs +2 -0
  156. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
  157. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
  158. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
  159. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
  160. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
  161. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
  162. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
  163. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
  164. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
  165. package/lib/cjs/namespaces/models/user.model.cjs +2 -0
  166. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
  167. package/lib/cjs/namespaces/rls/index.cjs +28 -0
  168. package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
  169. package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
  170. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
  171. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
  172. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
  173. package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
  174. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
  175. package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
  176. package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
  177. package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
  178. package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
  179. package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
  180. package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
  181. package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
  182. package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
  183. package/lib/cjs/namespaces/services/index.cjs +1 -0
  184. package/lib/cjs/namespaces/services/index.cjs.map +1 -1
  185. package/lib/cjs/namespaces/types.cjs +6 -1
  186. package/lib/cjs/namespaces/types.cjs.map +1 -1
  187. package/lib/cjs/redis/adapter.cjs +7 -1
  188. package/lib/cjs/redis/adapter.cjs.map +1 -1
  189. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
  190. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
  191. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
  192. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  193. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
  194. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  195. package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
  196. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
  197. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
  198. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
  199. package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
  200. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
  201. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
  202. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
  203. package/lib/cjs/secrets/fs/index.cjs +27 -0
  204. package/lib/cjs/secrets/fs/index.cjs.map +1 -0
  205. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
  206. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  207. package/lib/cjs/secrets/index.cjs +2 -0
  208. package/lib/cjs/secrets/index.cjs.map +1 -1
  209. package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
  210. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  211. package/lib/cjs/secrets/model/Secret.cjs +83 -5
  212. package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
  213. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
  214. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  215. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
  216. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  217. package/lib/cjs/shared/environmentValue.cjs +24 -0
  218. package/lib/cjs/shared/environmentValue.cjs.map +1 -1
  219. package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
  220. package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
  221. package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
  222. package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
  223. package/lib/cjs/shared/http/index.cjs +28 -0
  224. package/lib/cjs/shared/http/index.cjs.map +1 -0
  225. package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
  226. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  227. package/lib/esm/blob/core/BlobStoreService.js +26 -25
  228. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  229. package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
  230. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  231. package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
  232. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  233. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
  234. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
  235. package/lib/esm/calendar/environment.js +44 -0
  236. package/lib/esm/calendar/environment.js.map +1 -0
  237. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +333 -0
  238. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
  239. package/lib/esm/calendar/google-calendar/index.js +3 -0
  240. package/lib/esm/calendar/google-calendar/index.js.map +1 -0
  241. package/lib/esm/comms/discord/DiscordService.js +313 -0
  242. package/lib/esm/comms/discord/DiscordService.js.map +1 -0
  243. package/lib/esm/comms/discord/index.js +2 -0
  244. package/lib/esm/comms/discord/index.js.map +1 -0
  245. package/lib/esm/comms/email/EmailService.js +338 -0
  246. package/lib/esm/comms/email/EmailService.js.map +1 -0
  247. package/lib/esm/comms/email/index.js +12 -0
  248. package/lib/esm/comms/email/index.js.map +1 -0
  249. package/lib/esm/comms/email/mime.js +218 -0
  250. package/lib/esm/comms/email/mime.js.map +1 -0
  251. package/lib/esm/comms/email/smtp.js +166 -0
  252. package/lib/esm/comms/email/smtp.js.map +1 -0
  253. package/lib/esm/comms/environment.js +75 -0
  254. package/lib/esm/comms/environment.js.map +1 -0
  255. package/lib/esm/comms/gmail/GmailService.js +230 -0
  256. package/lib/esm/comms/gmail/GmailService.js.map +1 -0
  257. package/lib/esm/comms/gmail/index.js +7 -0
  258. package/lib/esm/comms/gmail/index.js.map +1 -0
  259. package/lib/esm/comms/index.js +17 -0
  260. package/lib/esm/comms/index.js.map +1 -0
  261. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +320 -0
  262. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
  263. package/lib/esm/comms/outlook/index.js +2 -0
  264. package/lib/esm/comms/outlook/index.js.map +1 -0
  265. package/lib/esm/comms/slack/SlackService.js +259 -0
  266. package/lib/esm/comms/slack/SlackService.js.map +1 -0
  267. package/lib/esm/comms/slack/index.js +7 -0
  268. package/lib/esm/comms/slack/index.js.map +1 -0
  269. package/lib/esm/comms/teams/TeamsService.js +204 -0
  270. package/lib/esm/comms/teams/TeamsService.js.map +1 -0
  271. package/lib/esm/comms/teams/index.js +7 -0
  272. package/lib/esm/comms/teams/index.js.map +1 -0
  273. package/lib/esm/comms/telegram/TelegramService.js +191 -0
  274. package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
  275. package/lib/esm/comms/telegram/index.js +7 -0
  276. package/lib/esm/comms/telegram/index.js.map +1 -0
  277. package/lib/esm/comms/whatsapp/WhatsAppService.js +269 -0
  278. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
  279. package/lib/esm/comms/whatsapp/index.js +2 -0
  280. package/lib/esm/comms/whatsapp/index.js.map +1 -0
  281. package/lib/esm/devops/environment.js +39 -0
  282. package/lib/esm/devops/environment.js.map +1 -0
  283. package/lib/esm/devops/github/GithubService.js +297 -0
  284. package/lib/esm/devops/github/GithubService.js.map +1 -0
  285. package/lib/esm/devops/github/index.js +7 -0
  286. package/lib/esm/devops/github/index.js.map +1 -0
  287. package/lib/esm/devops/gitlab/GitlabService.js +277 -0
  288. package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
  289. package/lib/esm/devops/gitlab/index.js +7 -0
  290. package/lib/esm/devops/gitlab/index.js.map +1 -0
  291. package/lib/esm/devops/index.js +11 -0
  292. package/lib/esm/devops/index.js.map +1 -0
  293. package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
  294. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
  295. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
  296. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
  297. package/lib/esm/index.js +3 -3
  298. package/lib/esm/io/airtable/AirtableService.js +261 -0
  299. package/lib/esm/io/airtable/AirtableService.js.map +1 -0
  300. package/lib/esm/io/airtable/index.js +7 -0
  301. package/lib/esm/io/airtable/index.js.map +1 -0
  302. package/lib/esm/io/confluence/ConfluenceService.js +312 -0
  303. package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
  304. package/lib/esm/io/confluence/index.js +2 -0
  305. package/lib/esm/io/confluence/index.js.map +1 -0
  306. package/lib/esm/io/environment.js +70 -0
  307. package/lib/esm/io/environment.js.map +1 -0
  308. package/lib/esm/io/google-docs/GoogleDocsService.js +270 -0
  309. package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
  310. package/lib/esm/io/google-docs/index.js +2 -0
  311. package/lib/esm/io/google-docs/index.js.map +1 -0
  312. package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
  313. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
  314. package/lib/esm/io/google-sheets/index.js +7 -0
  315. package/lib/esm/io/google-sheets/index.js.map +1 -0
  316. package/lib/esm/io/graphql/GraphqlService.js +138 -0
  317. package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
  318. package/lib/esm/io/graphql/index.js +7 -0
  319. package/lib/esm/io/graphql/index.js.map +1 -0
  320. package/lib/esm/io/index.js +18 -0
  321. package/lib/esm/io/index.js.map +1 -0
  322. package/lib/esm/io/jira/JiraService.js +349 -0
  323. package/lib/esm/io/jira/JiraService.js.map +1 -0
  324. package/lib/esm/io/jira/index.js +2 -0
  325. package/lib/esm/io/jira/index.js.map +1 -0
  326. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +248 -0
  327. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
  328. package/lib/esm/io/microsoft-excel/index.js +2 -0
  329. package/lib/esm/io/microsoft-excel/index.js.map +1 -0
  330. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +256 -0
  331. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
  332. package/lib/esm/io/microsoft-sharepoint/index.js +2 -0
  333. package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
  334. package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
  335. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
  336. package/lib/esm/io/spreadsheet/index.js +8 -0
  337. package/lib/esm/io/spreadsheet/index.js.map +1 -0
  338. package/lib/esm/namespaces/index.js +1 -0
  339. package/lib/esm/namespaces/index.js.map +1 -1
  340. package/lib/esm/namespaces/models/credential.model.js +106 -0
  341. package/lib/esm/namespaces/models/credential.model.js.map +1 -0
  342. package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
  343. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
  344. package/lib/esm/namespaces/models/group-membership.model.js +2 -0
  345. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
  346. package/lib/esm/namespaces/models/group.model.js +2 -0
  347. package/lib/esm/namespaces/models/group.model.js.map +1 -1
  348. package/lib/esm/namespaces/models/index.js +1 -0
  349. package/lib/esm/namespaces/models/index.js.map +1 -1
  350. package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
  351. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
  352. package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
  353. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
  354. package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
  355. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
  356. package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
  357. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
  358. package/lib/esm/namespaces/models/org-unit.model.js +2 -0
  359. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
  360. package/lib/esm/namespaces/models/permission.model.js +2 -0
  361. package/lib/esm/namespaces/models/permission.model.js.map +1 -1
  362. package/lib/esm/namespaces/models/principal.model.js +2 -0
  363. package/lib/esm/namespaces/models/principal.model.js.map +1 -1
  364. package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
  365. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
  366. package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
  367. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
  368. package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
  369. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
  370. package/lib/esm/namespaces/models/role-permission.model.js +2 -0
  371. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
  372. package/lib/esm/namespaces/models/role.model.js +2 -0
  373. package/lib/esm/namespaces/models/role.model.js.map +1 -1
  374. package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
  375. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
  376. package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
  377. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
  378. package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
  379. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
  380. package/lib/esm/namespaces/models/tenant.model.js +2 -0
  381. package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
  382. package/lib/esm/namespaces/models/user.model.js +2 -0
  383. package/lib/esm/namespaces/models/user.model.js.map +1 -1
  384. package/lib/esm/namespaces/rls/index.js +11 -0
  385. package/lib/esm/namespaces/rls/index.js.map +1 -0
  386. package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
  387. package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
  388. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
  389. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
  390. package/lib/esm/namespaces/rls/rls.constants.js +75 -0
  391. package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
  392. package/lib/esm/namespaces/rls/rls.template.js +711 -0
  393. package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
  394. package/lib/esm/namespaces/rls/rls.types.js +9 -0
  395. package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
  396. package/lib/esm/namespaces/rls/session-binding.js +65 -0
  397. package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
  398. package/lib/esm/namespaces/services/credential.service.js +322 -0
  399. package/lib/esm/namespaces/services/credential.service.js.map +1 -0
  400. package/lib/esm/namespaces/services/index.js +1 -0
  401. package/lib/esm/namespaces/services/index.js.map +1 -1
  402. package/lib/esm/namespaces/types.js +6 -0
  403. package/lib/esm/namespaces/types.js.map +1 -1
  404. package/lib/esm/redis/adapter.js +7 -1
  405. package/lib/esm/redis/adapter.js.map +1 -1
  406. package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
  407. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
  408. package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
  409. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
  410. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
  411. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
  412. package/lib/esm/secrets/core/SecretReference.js +1 -0
  413. package/lib/esm/secrets/core/SecretReference.js.map +1 -1
  414. package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
  415. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
  416. package/lib/esm/secrets/fs/FsSecretService.js +412 -0
  417. package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
  418. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
  419. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
  420. package/lib/esm/secrets/fs/index.js +10 -0
  421. package/lib/esm/secrets/fs/index.js.map +1 -0
  422. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
  423. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
  424. package/lib/esm/secrets/index.js +2 -0
  425. package/lib/esm/secrets/index.js.map +1 -1
  426. package/lib/esm/secrets/model/ModelSecretService.js +337 -42
  427. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  428. package/lib/esm/secrets/model/Secret.js +86 -7
  429. package/lib/esm/secrets/model/Secret.js.map +1 -1
  430. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
  431. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
  432. package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
  433. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
  434. package/lib/esm/shared/environmentValue.js +24 -0
  435. package/lib/esm/shared/environmentValue.js.map +1 -1
  436. package/lib/esm/shared/http/HttpApiService.js +181 -0
  437. package/lib/esm/shared/http/HttpApiService.js.map +1 -0
  438. package/lib/esm/shared/http/hermeticBoot.js +146 -0
  439. package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
  440. package/lib/esm/shared/http/index.js +11 -0
  441. package/lib/esm/shared/http/index.js.map +1 -0
  442. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
  443. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
  444. package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
  445. package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
  446. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
  447. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
  448. package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
  449. package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
  450. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
  451. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
  452. package/lib/types/calendar/environment.d.cts +48 -0
  453. package/lib/types/calendar/environment.d.mts +48 -0
  454. package/lib/types/calendar/google-calendar/GoogleCalendarService.d.cts +316 -0
  455. package/lib/types/calendar/google-calendar/GoogleCalendarService.d.mts +316 -0
  456. package/lib/types/calendar/google-calendar/index.d.cts +2 -0
  457. package/lib/types/calendar/google-calendar/index.d.mts +2 -0
  458. package/lib/types/comms/discord/DiscordService.d.cts +285 -0
  459. package/lib/types/comms/discord/DiscordService.d.mts +285 -0
  460. package/lib/types/comms/discord/index.d.cts +1 -0
  461. package/lib/types/comms/discord/index.d.mts +1 -0
  462. package/lib/types/comms/email/EmailService.d.cts +184 -0
  463. package/lib/types/comms/email/EmailService.d.mts +184 -0
  464. package/lib/types/comms/email/index.d.cts +11 -0
  465. package/lib/types/comms/email/index.d.mts +11 -0
  466. package/lib/types/comms/email/mime.d.cts +84 -0
  467. package/lib/types/comms/email/mime.d.mts +84 -0
  468. package/lib/types/comms/email/smtp.d.cts +107 -0
  469. package/lib/types/comms/email/smtp.d.mts +107 -0
  470. package/lib/types/comms/environment.d.cts +110 -0
  471. package/lib/types/comms/environment.d.mts +110 -0
  472. package/lib/types/comms/gmail/GmailService.d.cts +190 -0
  473. package/lib/types/comms/gmail/GmailService.d.mts +190 -0
  474. package/lib/types/comms/gmail/index.d.cts +6 -0
  475. package/lib/types/comms/gmail/index.d.mts +6 -0
  476. package/lib/types/comms/index.d.cts +16 -0
  477. package/lib/types/comms/index.d.mts +16 -0
  478. package/lib/types/comms/outlook/MicrosoftOutlookService.d.cts +282 -0
  479. package/lib/types/comms/outlook/MicrosoftOutlookService.d.mts +282 -0
  480. package/lib/types/comms/outlook/index.d.cts +1 -0
  481. package/lib/types/comms/outlook/index.d.mts +1 -0
  482. package/lib/types/comms/slack/SlackService.d.cts +259 -0
  483. package/lib/types/comms/slack/SlackService.d.mts +259 -0
  484. package/lib/types/comms/slack/index.d.cts +6 -0
  485. package/lib/types/comms/slack/index.d.mts +6 -0
  486. package/lib/types/comms/teams/TeamsService.d.cts +172 -0
  487. package/lib/types/comms/teams/TeamsService.d.mts +172 -0
  488. package/lib/types/comms/teams/index.d.cts +6 -0
  489. package/lib/types/comms/teams/index.d.mts +6 -0
  490. package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
  491. package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
  492. package/lib/types/comms/telegram/index.d.cts +6 -0
  493. package/lib/types/comms/telegram/index.d.mts +6 -0
  494. package/lib/types/comms/whatsapp/WhatsAppService.d.cts +258 -0
  495. package/lib/types/comms/whatsapp/WhatsAppService.d.mts +258 -0
  496. package/lib/types/comms/whatsapp/index.d.cts +1 -0
  497. package/lib/types/comms/whatsapp/index.d.mts +1 -0
  498. package/lib/types/devops/environment.d.cts +62 -0
  499. package/lib/types/devops/environment.d.mts +62 -0
  500. package/lib/types/devops/github/GithubService.d.cts +287 -0
  501. package/lib/types/devops/github/GithubService.d.mts +287 -0
  502. package/lib/types/devops/github/index.d.cts +6 -0
  503. package/lib/types/devops/github/index.d.mts +6 -0
  504. package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
  505. package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
  506. package/lib/types/devops/gitlab/index.d.cts +6 -0
  507. package/lib/types/devops/gitlab/index.d.mts +6 -0
  508. package/lib/types/devops/index.d.cts +10 -0
  509. package/lib/types/devops/index.d.mts +10 -0
  510. package/lib/types/index.d.cts +2 -2
  511. package/lib/types/index.d.mts +2 -2
  512. package/lib/types/io/airtable/AirtableService.d.cts +268 -0
  513. package/lib/types/io/airtable/AirtableService.d.mts +268 -0
  514. package/lib/types/io/airtable/index.d.cts +6 -0
  515. package/lib/types/io/airtable/index.d.mts +6 -0
  516. package/lib/types/io/confluence/ConfluenceService.d.cts +250 -0
  517. package/lib/types/io/confluence/ConfluenceService.d.mts +250 -0
  518. package/lib/types/io/confluence/index.d.cts +1 -0
  519. package/lib/types/io/confluence/index.d.mts +1 -0
  520. package/lib/types/io/environment.d.cts +107 -0
  521. package/lib/types/io/environment.d.mts +107 -0
  522. package/lib/types/io/google-docs/GoogleDocsService.d.cts +188 -0
  523. package/lib/types/io/google-docs/GoogleDocsService.d.mts +188 -0
  524. package/lib/types/io/google-docs/index.d.cts +1 -0
  525. package/lib/types/io/google-docs/index.d.mts +1 -0
  526. package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
  527. package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
  528. package/lib/types/io/google-sheets/index.d.cts +6 -0
  529. package/lib/types/io/google-sheets/index.d.mts +6 -0
  530. package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
  531. package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
  532. package/lib/types/io/graphql/index.d.cts +6 -0
  533. package/lib/types/io/graphql/index.d.mts +6 -0
  534. package/lib/types/io/index.d.cts +17 -0
  535. package/lib/types/io/index.d.mts +17 -0
  536. package/lib/types/io/jira/JiraService.d.cts +300 -0
  537. package/lib/types/io/jira/JiraService.d.mts +300 -0
  538. package/lib/types/io/jira/index.d.cts +1 -0
  539. package/lib/types/io/jira/index.d.mts +1 -0
  540. package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.cts +230 -0
  541. package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.mts +230 -0
  542. package/lib/types/io/microsoft-excel/index.d.cts +1 -0
  543. package/lib/types/io/microsoft-excel/index.d.mts +1 -0
  544. package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.cts +226 -0
  545. package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.mts +226 -0
  546. package/lib/types/io/microsoft-sharepoint/index.d.cts +1 -0
  547. package/lib/types/io/microsoft-sharepoint/index.d.mts +1 -0
  548. package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
  549. package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
  550. package/lib/types/io/spreadsheet/index.d.cts +7 -0
  551. package/lib/types/io/spreadsheet/index.d.mts +7 -0
  552. package/lib/types/namespaces/index.d.cts +1 -0
  553. package/lib/types/namespaces/index.d.mts +1 -0
  554. package/lib/types/namespaces/models/credential.model.d.cts +23 -0
  555. package/lib/types/namespaces/models/credential.model.d.mts +23 -0
  556. package/lib/types/namespaces/models/index.d.cts +1 -0
  557. package/lib/types/namespaces/models/index.d.mts +1 -0
  558. package/lib/types/namespaces/rls/index.d.cts +10 -0
  559. package/lib/types/namespaces/rls/index.d.mts +10 -0
  560. package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
  561. package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
  562. package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
  563. package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
  564. package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
  565. package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
  566. package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
  567. package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
  568. package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
  569. package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
  570. package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
  571. package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
  572. package/lib/types/namespaces/services/credential.service.d.cts +175 -0
  573. package/lib/types/namespaces/services/credential.service.d.mts +175 -0
  574. package/lib/types/namespaces/services/index.d.cts +1 -0
  575. package/lib/types/namespaces/services/index.d.mts +1 -0
  576. package/lib/types/namespaces/types.d.cts +37 -0
  577. package/lib/types/namespaces/types.d.mts +37 -0
  578. package/lib/types/redis/adapter.d.cts +2 -0
  579. package/lib/types/redis/adapter.d.mts +2 -0
  580. package/lib/types/redis/types.d.cts +27 -2
  581. package/lib/types/redis/types.d.mts +27 -2
  582. package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
  583. package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
  584. package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
  585. package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
  586. package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
  587. package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
  588. package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
  589. package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
  590. package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
  591. package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
  592. package/lib/types/secrets/fs/index.d.cts +9 -0
  593. package/lib/types/secrets/fs/index.d.mts +9 -0
  594. package/lib/types/secrets/index.d.cts +2 -0
  595. package/lib/types/secrets/index.d.mts +2 -0
  596. package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
  597. package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
  598. package/lib/types/secrets/model/Secret.d.cts +44 -3
  599. package/lib/types/secrets/model/Secret.d.mts +44 -3
  600. package/lib/types/shared/environmentValue.d.cts +24 -0
  601. package/lib/types/shared/environmentValue.d.mts +24 -0
  602. package/lib/types/shared/http/HttpApiService.d.cts +193 -0
  603. package/lib/types/shared/http/HttpApiService.d.mts +193 -0
  604. package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
  605. package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
  606. package/lib/types/shared/http/index.d.cts +10 -0
  607. package/lib/types/shared/http/index.d.mts +10 -0
  608. package/package.json +279 -6
  609. package/sql/002_rls.sql +660 -15
  610. package/sql/004_credentials.sql +46 -0
@@ -0,0 +1,268 @@
1
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.mts";
2
+ /**
3
+ * @description Configuration for the Airtable service
4
+ * @summary Extends {@link HttpApiServiceConfig} with the Airtable personal
5
+ * access token (sent as a bearer token) and the default `baseId` used when a
6
+ * call does not override it. When omitted, the `io.airtable` environment
7
+ * slice supplies the token (and optional `baseId`, `baseUrl`, `timeout`).
8
+ * @category IO
9
+ * @memberOf module:integrations/io/airtable/service
10
+ */
11
+ export interface AirtableServiceConfig extends HttpApiServiceConfig {
12
+ /**
13
+ * @description Airtable personal access token
14
+ * @summary Sent as `Authorization: Bearer <token>` with every API call.
15
+ */
16
+ token?: string;
17
+ /**
18
+ * @description Default base ID used when a call does not override it
19
+ */
20
+ baseId?: string;
21
+ }
22
+ /**
23
+ * @description Normalized Airtable record descriptor
24
+ * @summary The Airtable record envelope: the record `id`, the `fields` map
25
+ * (column name to value), and the optional `createdTime` timestamp.
26
+ * @category IO
27
+ * @memberOf module:integrations/io/airtable/service
28
+ */
29
+ export interface AirtableRecord {
30
+ id: string;
31
+ fields: Record<string, unknown>;
32
+ createdTime?: string;
33
+ }
34
+ /**
35
+ * @description Options for listing Airtable records
36
+ * @summary Carries the required `table` name plus the view, formula filter,
37
+ * record caps and paging offset, field projection, and first-sort configuration
38
+ * Airtable supports. Only the first sort entry is sent (Airtable's
39
+ * `sort[0][field]`/`sort[0][direction]` query parameters); paging works by
40
+ * passing the previous page's `offset` back as `offset`.
41
+ * @category IO
42
+ * @memberOf module:integrations/io/airtable/service
43
+ */
44
+ export interface AirtableListOptions {
45
+ /**
46
+ * @description Table name or ID to list records from (required)
47
+ */
48
+ table: string;
49
+ /**
50
+ * @description View name or ID to restrict the listing to
51
+ */
52
+ view?: string;
53
+ /**
54
+ * @description Airtable formula restricting the returned records (e.g. `"{Status} = 'Active'"`)
55
+ */
56
+ filterByFormula?: string;
57
+ /**
58
+ * @description Maximum number of records to return in total
59
+ */
60
+ maxRecords?: number;
61
+ /**
62
+ * @description Number of records per page
63
+ */
64
+ pageSize?: number;
65
+ /**
66
+ * @description The `offset` from the previous page's result
67
+ */
68
+ offset?: string;
69
+ /**
70
+ * @description Column names to project
71
+ */
72
+ fields?: string[];
73
+ /**
74
+ * @description First sort entry applied to the listing
75
+ */
76
+ sort?: Array<{
77
+ field: string;
78
+ direction?: "asc" | "desc";
79
+ }>;
80
+ }
81
+ /**
82
+ * @description Result of an Airtable record listing
83
+ * @summary Carries the page of `records` and the `offset` cursor to pass back
84
+ * as `AirtableListOptions.offset` when more pages exist.
85
+ * @category IO
86
+ * @memberOf module:integrations/io/airtable/service
87
+ */
88
+ export interface AirtableListResult {
89
+ records: AirtableRecord[];
90
+ offset?: string;
91
+ }
92
+ /**
93
+ * @description Input for creating or updating an Airtable record
94
+ * @summary Carries the required `table` name, the `fields` map to write, and
95
+ * the `typecast` flag letting Airtable convert values to the column types.
96
+ * `updateRecord` additionally carries the `recordId`.
97
+ * @category IO
98
+ * @memberOf module:integrations/io/airtable/service
99
+ */
100
+ export interface AirtableWriteInput {
101
+ table: string;
102
+ fields: Record<string, unknown>;
103
+ typecast?: boolean;
104
+ }
105
+ /**
106
+ * @description Airtable Web API integration service
107
+ * @summary An undecorated HTTP service for listing records
108
+ * with filtering, sorting, and cursor paging; fetching, creating, updating,
109
+ * and deleting individual records. Base targets resolve per call from the
110
+ * `baseId` argument, falling back to the configured value, and throw
111
+ * `InternalError` when unresolved. Every operation requires a token
112
+ * (`requireToken()`), and transport failures are mapped to decaf errors via
113
+ * {@link httpError}.
114
+ * @class AirtableService
115
+ * @category IO
116
+ * @example
117
+ * ```ts
118
+ * import { AirtableService } from "@decaf-ts/integrations/io/airtable";
119
+ *
120
+ * const airtable = new AirtableService();
121
+ * await airtable.initialize({
122
+ * token: process.env.GRAPH_CREDENTIAL_AIRTABLE_TOKEN,
123
+ * baseId: "appExampleBase",
124
+ * });
125
+ * const created = await airtable.createRecord({
126
+ * table: "Tasks",
127
+ * fields: { Name: "Ship release", Status: "Todo" },
128
+ * });
129
+ * ```
130
+ * @memberOf module:integrations/io/airtable/service
131
+ */
132
+ export declare class AirtableService extends HttpApiService<AirtableServiceConfig> {
133
+ /**
134
+ * @description The provider name used in error messages
135
+ */
136
+ protected readonly serviceName = "Airtable";
137
+ /**
138
+ * @description The Airtable Web API v0 base URL
139
+ * @summary Used when the resolved config carries no `baseUrl`.
140
+ * @returns {string} `"https://api.airtable.com/v0"`.
141
+ */
142
+ protected defaultBaseUrl(): string;
143
+ /**
144
+ * @description Builds the Airtable bearer authorization headers
145
+ * @summary Returns the `Authorization: Bearer <token>` header when the
146
+ * config carries a token, and no headers otherwise.
147
+ * @param {AirtableServiceConfig} config - The resolved service configuration.
148
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
149
+ */
150
+ protected authHeaders(config: AirtableServiceConfig): Record<string, string>;
151
+ /**
152
+ * @description Reads the Airtable credentials and defaults from the environment
153
+ * @summary Reads the `io.airtable` environment slice and returns a partial
154
+ * config when a token is configured, `undefined` otherwise. Values pass
155
+ * through `envString`/`envNumber` to reject unset-leaf proxies.
156
+ * @returns {Partial<AirtableServiceConfig> | undefined} A partial config, or `undefined` when no Airtable token is configured.
157
+ */
158
+ protected configFromEnvironment(): Partial<AirtableServiceConfig> | undefined;
159
+ /**
160
+ * @description Resolves the URL-encoded base path for a call
161
+ * @summary Builds `/<baseId>` from the given base ID, falling back to the
162
+ * configured value, and throws when neither is available.
163
+ * @param {string} [baseId] - The per-call base override.
164
+ * @returns {string} The URL-encoded base API path.
165
+ * @throws {InternalError} When neither the input nor the config yields a base ID.
166
+ */
167
+ protected basePath(baseId?: string): string;
168
+ /**
169
+ * @description Resolves the URL-encoded table path for a call
170
+ * @summary Builds `<basePath>/<table>` with both segments URL-encoded, and
171
+ * throws when the table name is empty (or the base cannot be resolved).
172
+ * @param {string} table - The table name or ID.
173
+ * @param {string} [baseId] - The per-call base override.
174
+ * @returns {string} The URL-encoded table API path.
175
+ * @throws {InternalError} When the table name is empty or the base ID cannot be resolved.
176
+ */
177
+ protected tablePath(table: string, baseId?: string): string;
178
+ /**
179
+ * @description Lists records in an Airtable table with cursor paging
180
+ * @summary `GET`s the table endpoint with the configured view, formula
181
+ * filter, record caps, page size, page offset, field projection, and first
182
+ * sort entry. Return the `offset` cursor as the next call's
183
+ * `AirtableListOptions.offset` to fetch further pages.
184
+ * @param {AirtableListOptions} options - The table and filter/sort/paging options.
185
+ * @param {string} [baseId] - The base override; falls back to the configured `baseId`.
186
+ * @returns {Promise<AirtableListResult>} The page of records and the next offset cursor when more pages exist.
187
+ * @throws {InternalError} When no token is configured or the table/base cannot be resolved.
188
+ * @throws {NotFoundError} When the base or table does not exist (HTTP 404).
189
+ * @throws {ConflictError} When Airtable answers with HTTP 409.
190
+ * @throws {BadRequestError} When Airtable answers with any other HTTP error status (e.g. invalid formula).
191
+ * @example
192
+ * ```ts
193
+ * let offset: string | undefined;
194
+ * do {
195
+ * const page = await airtable.listRecords({
196
+ * table: "Tasks",
197
+ * filterByFormula: "{Status} = 'Active'",
198
+ * pageSize: 100,
199
+ * offset,
200
+ * sort: [{ field: "Name", direction: "asc" }],
201
+ * });
202
+ * console.log(page.records);
203
+ * offset = page.offset;
204
+ * } while (offset);
205
+ * ```
206
+ */
207
+ listRecords(options: AirtableListOptions, baseId?: string): Promise<AirtableListResult>;
208
+ /**
209
+ * @description Fetches a single Airtable record
210
+ * @summary `GET`s the table endpoint with the record ID appended and
211
+ * returns the record envelope.
212
+ * @param {string} table - The table name or ID.
213
+ * @param {string} recordId - The record ID to fetch (e.g. `"rec1234567890"`).
214
+ * @param {string} [baseId] - The base override; falls back to the configured `baseId`.
215
+ * @returns {Promise<AirtableRecord>} The record envelope.
216
+ * @throws {InternalError} When no token is configured or the table/base cannot be resolved.
217
+ * @throws {NotFoundError} When the record does not exist (HTTP 404).
218
+ * @throws {ConflictError} When Airtable answers with HTTP 409.
219
+ * @throws {BadRequestError} When Airtable answers with any other HTTP error status.
220
+ */
221
+ getRecord(table: string, recordId: string, baseId?: string): Promise<AirtableRecord>;
222
+ /**
223
+ * @description Creates an Airtable record
224
+ * @summary `POST`s the fields map to the table endpoint; `typecast` lets
225
+ * Airtable coerce values into the column types (disabled by default).
226
+ * @param {AirtableWriteInput} input - The table, fields, and typecast option.
227
+ * @param {string} [baseId] - The base override; falls back to the configured `baseId`.
228
+ * @returns {Promise<AirtableRecord>} The created record envelope.
229
+ * @throws {InternalError} When no token is configured or the table/base cannot be resolved.
230
+ * @throws {NotFoundError} When the base or table does not exist (HTTP 404).
231
+ * @throws {ConflictError} When Airtable answers with HTTP 409.
232
+ * @throws {BadRequestError} When Airtable answers with any other HTTP error status (e.g. invalid field values).
233
+ */
234
+ createRecord(input: AirtableWriteInput, baseId?: string): Promise<AirtableRecord>;
235
+ /**
236
+ * @description Updates an Airtable record
237
+ * @summary `PATCH`es the fields map onto the record identified by
238
+ * `recordId`; only the provided fields change. `typecast` lets Airtable
239
+ * coerce values into the column types (disabled by default).
240
+ * @param {AirtableWriteInput & {recordId: string}} input - The table, fields, typecast option, and target record ID.
241
+ * @param {string} [baseId] - The base override; falls back to the configured `baseId`.
242
+ * @returns {Promise<AirtableRecord>} The updated record envelope.
243
+ * @throws {InternalError} When no token is configured or the table/base cannot be resolved.
244
+ * @throws {NotFoundError} When the record does not exist (HTTP 404).
245
+ * @throws {ConflictError} When Airtable answers with HTTP 409.
246
+ * @throws {BadRequestError} When Airtable answers with any other HTTP error status (e.g. invalid field values).
247
+ */
248
+ updateRecord(input: AirtableWriteInput & {
249
+ recordId: string;
250
+ }, baseId?: string): Promise<AirtableRecord>;
251
+ /**
252
+ * @description Deletes an Airtable record
253
+ * @summary `DELETE`s the record identified by `recordId` and returns the
254
+ * Airtable deletion confirmation.
255
+ * @param {string} table - The table name or ID.
256
+ * @param {string} recordId - The record ID to delete.
257
+ * @param {string} [baseId] - The base override; falls back to the configured `baseId`.
258
+ * @returns {Promise<{id: string, deleted: boolean}>} The deleted record's ID and Airtable's `deleted` confirmation.
259
+ * @throws {InternalError} When no token is configured or the table/base cannot be resolved.
260
+ * @throws {NotFoundError} When the record does not exist (HTTP 404).
261
+ * @throws {ConflictError} When Airtable answers with HTTP 409.
262
+ * @throws {BadRequestError} When Airtable answers with any other HTTP error status.
263
+ */
264
+ deleteRecord(table: string, recordId: string, baseId?: string): Promise<{
265
+ id: string;
266
+ deleted: boolean;
267
+ }>;
268
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/io/airtable
3
+ * @summary Airtable Web API service (record CRUD).
4
+ * @description Re-exports the Airtable client-based service and its types.
5
+ */
6
+ export * from "./AirtableService.d.cts";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/io/airtable
3
+ * @summary Airtable Web API service (record CRUD).
4
+ * @description Re-exports the Airtable client-based service and its types.
5
+ */
6
+ export * from "./AirtableService.d.mts";
@@ -0,0 +1,250 @@
1
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.cts";
2
+ /**
3
+ * @description Configuration for the Confluence service
4
+ * @summary Extends {@link HttpApiServiceConfig} with the API `token`, the
5
+ * optional `username` that enables Basic authentication, and the required
6
+ * site `baseUrl`. When omitted, the `io.confluence` environment slice supplies
7
+ * the same values (plus optional `timeout`).
8
+ * @category IO
9
+ * @memberOf module:integrations/io/confluence/service
10
+ */
11
+ export interface ConfluenceServiceConfig extends HttpApiServiceConfig {
12
+ /**
13
+ * @description Confluence API token
14
+ * @summary Used as the Basic-auth password when `username` is set, otherwise as a bearer token.
15
+ */
16
+ token?: string;
17
+ /**
18
+ * @description Confluence account username for Basic authentication
19
+ */
20
+ username?: string;
21
+ }
22
+ /**
23
+ * @description Input for creating a Confluence page
24
+ * @summary Carries the target `spaceKey`, page `title`, storage-format body,
25
+ * and optional `parentId` of the ancestor page.
26
+ * @category IO
27
+ * @memberOf module:integrations/io/confluence/service
28
+ */
29
+ export interface ConfluencePageInput {
30
+ /**
31
+ * @description Space key that owns the new page
32
+ */
33
+ spaceKey: string;
34
+ /**
35
+ * @description Page title (unique within the space)
36
+ */
37
+ title: string;
38
+ /**
39
+ * @description Page body in Confluence storage format
40
+ */
41
+ body: string;
42
+ /**
43
+ * @description Optional parent page ID
44
+ */
45
+ parentId?: string;
46
+ }
47
+ /**
48
+ * @description Input for updating a Confluence page
49
+ * @summary Carries the `pageId`, new `title` and storage-format body, and an
50
+ * optional `version`. When `version` is omitted the service fetches the
51
+ * current version and submits the next one.
52
+ * @category IO
53
+ * @memberOf module:integrations/io/confluence/service
54
+ */
55
+ export interface ConfluencePageUpdate {
56
+ /**
57
+ * @description ID of the page to update
58
+ */
59
+ pageId: string;
60
+ /**
61
+ * @description New page title
62
+ */
63
+ title: string;
64
+ /**
65
+ * @description New page body in Confluence storage format
66
+ */
67
+ body: string;
68
+ /**
69
+ * @description Explicit new version number (auto-incremented when omitted)
70
+ */
71
+ version?: number;
72
+ }
73
+ /**
74
+ * @description Input for a Confluence CQL search
75
+ * @summary Carries the `cql` query and an optional result `limit`.
76
+ * @category IO
77
+ * @memberOf module:integrations/io/confluence/service
78
+ */
79
+ export interface ConfluenceSearchInput {
80
+ /**
81
+ * @description Confluence Query Language expression
82
+ */
83
+ cql: string;
84
+ /**
85
+ * @description Maximum number of results
86
+ */
87
+ limit?: number;
88
+ }
89
+ /**
90
+ * @description Confluence REST API integration service
91
+ * @summary An undecorated HTTP service for reading, creating, updating, and
92
+ * deleting pages, listing spaces, and running CQL searches. The site base URL
93
+ * and API token are required; supplying a `username` switches authentication to
94
+ * Basic, and transport failures are mapped to decaf errors via
95
+ * {@link httpError}.
96
+ * @class ConfluenceService
97
+ * @extends HttpApiService
98
+ * @category IO
99
+ * @example
100
+ * ```ts
101
+ * import { ConfluenceService } from "@decaf-ts/integrations/io/confluence";
102
+ *
103
+ * const confluence = new ConfluenceService();
104
+ * await confluence.initialize({
105
+ * baseUrl: "https://example.atlassian.net/wiki",
106
+ * username: process.env.CONFLUENCE_USERNAME,
107
+ * token: process.env.GRAPH_CREDENTIAL_CONFLUENCE_TOKEN,
108
+ * });
109
+ * const page = await confluence.getPage("123456");
110
+ * ```
111
+ * @mermaid
112
+ * sequenceDiagram
113
+ * autonumber
114
+ * participant Caller
115
+ * participant Service as ConfluenceService
116
+ * participant API as Confluence REST API
117
+ * Caller->>Service: updatePage(input)
118
+ * activate Service
119
+ * Service->>Service: requireCredentials()
120
+ * opt version omitted
121
+ * Service->>API: GET /rest/api/content/{id}?expand=version
122
+ * activate API
123
+ * API-->>Service: current version
124
+ * deactivate API
125
+ * end
126
+ * Service->>API: PUT /rest/api/content/{id}
127
+ * activate API
128
+ * API-->>Service: updated page
129
+ * deactivate API
130
+ * Service-->>Caller: updated page
131
+ * deactivate Service
132
+ * @memberOf module:integrations/io/confluence/service
133
+ */
134
+ export declare class ConfluenceService extends HttpApiService<ConfluenceServiceConfig> {
135
+ /**
136
+ * @description The provider name used in error messages
137
+ */
138
+ protected readonly serviceName = "Confluence";
139
+ /**
140
+ * @description The default base URL for Confluence
141
+ * @summary Returns an empty string; Confluence is site-hosted, so the
142
+ * resolved `baseUrl` (from config or `io.confluence.baseUrl`) is required.
143
+ * @returns {string} An empty string.
144
+ */
145
+ protected defaultBaseUrl(): string;
146
+ /**
147
+ * @description Builds the Confluence authentication headers
148
+ * @summary Uses HTTP Basic (`username:token`) when both values are present,
149
+ * otherwise a bearer token when only `token` is present, otherwise no
150
+ * headers.
151
+ * @param {ConfluenceServiceConfig} config - The resolved service configuration.
152
+ * @returns {Record<string, string>} The authorization headers.
153
+ */
154
+ protected authHeaders(config: ConfluenceServiceConfig): Record<string, string>;
155
+ /**
156
+ * @description Reads the Confluence credentials and defaults from the environment
157
+ * @summary Reads the `io.confluence` slice and returns a partial config when
158
+ * an API token is configured, `undefined` otherwise. Values pass through
159
+ * `envString`/`envNumber` to reject unset-leaf proxies.
160
+ * @returns {Partial<ConfluenceServiceConfig> | undefined} A partial config, or `undefined` when no Confluence token is configured.
161
+ */
162
+ protected configFromEnvironment(): Partial<ConfluenceServiceConfig> | undefined;
163
+ /**
164
+ * @description Asserts that the Confluence token and site base URL are configured
165
+ * @summary Called by every operation before it touches the network.
166
+ * @returns {void}
167
+ * @throws {InternalError} When no API token or base URL is configured.
168
+ */
169
+ protected requireCredentials(): void;
170
+ /**
171
+ * @description Wraps a body in the Confluence storage representation
172
+ * @summary Produces the `{ storage: { value, representation } }` envelope
173
+ * the content API expects.
174
+ * @param {string} body - The Confluence storage-format body.
175
+ * @returns {Record<string, unknown>} The storage body envelope.
176
+ */
177
+ private storageBody;
178
+ /**
179
+ * @description Fetches a Confluence page
180
+ * @summary `GET`s `/rest/api/content/<id>` with the requested `expand`
181
+ * fields (default `body.storage,version`).
182
+ * @param {string} pageId - The page ID.
183
+ * @param {string} [expand] - Comma-separated fields to expand; defaults to `"body.storage,version"`.
184
+ * @returns {Promise<unknown>} The page payload.
185
+ * @throws {InternalError} When credentials are missing or the page ID is empty.
186
+ * @throws {NotFoundError} When the page does not exist (HTTP 404).
187
+ * @throws {BadRequestError} When the API rejects the request.
188
+ */
189
+ getPage(pageId: string, expand?: string): Promise<unknown>;
190
+ /**
191
+ * @description Lists Confluence spaces
192
+ * @summary `GET`s `/rest/api/space` with a result `limit` (default `25`).
193
+ * @param {number} [limit] - Maximum number of spaces to return; defaults to `25`.
194
+ * @returns {Promise<unknown>} The space collection payload.
195
+ * @throws {InternalError} When credentials are missing.
196
+ * @throws {BadRequestError} When the API rejects the request.
197
+ */
198
+ listSpaces(limit?: number): Promise<unknown>;
199
+ /**
200
+ * @description Creates a Confluence page
201
+ * @summary `POST`s a `page` content entry in the target space, optionally
202
+ * under a parent, with the body in storage format.
203
+ * @param {ConfluencePageInput} input - The space, title, body, and optional parent.
204
+ * @returns {Promise<unknown>} The created page payload.
205
+ * @throws {InternalError} When credentials are missing, or the space key or title is empty.
206
+ * @throws {BadRequestError} When the API rejects the page.
207
+ * @example
208
+ * ```ts
209
+ * await confluence.createPage({
210
+ * spaceKey: "OPS",
211
+ * title: "Release 1.2.0",
212
+ * body: "<p>Details…</p>",
213
+ * });
214
+ * ```
215
+ */
216
+ createPage(input: ConfluencePageInput): Promise<unknown>;
217
+ /**
218
+ * @description Updates a Confluence page
219
+ * @summary `PUT`s the new title and storage body. When `version` is omitted
220
+ * the current version is read first and the next number is submitted, as
221
+ * Confluence requires optimistic versioning.
222
+ * @param {ConfluencePageUpdate} input - The page, new title/body, and optional version.
223
+ * @returns {Promise<unknown>} The updated page payload.
224
+ * @throws {InternalError} When credentials are missing, or the page ID or title is empty.
225
+ * @throws {NotFoundError} When the page does not exist (HTTP 404).
226
+ * @throws {ConflictError} When the submitted version is stale (HTTP 409).
227
+ * @throws {BadRequestError} When the API rejects the update.
228
+ */
229
+ updatePage(input: ConfluencePageUpdate): Promise<unknown>;
230
+ /**
231
+ * @description Deletes a Confluence page
232
+ * @summary `DELETE`s the content entry and returns `{ deleted: true, pageId }`.
233
+ * @param {string} pageId - The page ID to delete.
234
+ * @returns {Promise<unknown>} `{ deleted: true, pageId }` on success.
235
+ * @throws {InternalError} When credentials are missing or the page ID is empty.
236
+ * @throws {NotFoundError} When the page does not exist (HTTP 404).
237
+ * @throws {BadRequestError} When the API rejects the deletion.
238
+ */
239
+ deletePage(pageId: string): Promise<unknown>;
240
+ /**
241
+ * @description Searches Confluence content with CQL
242
+ * @summary `GET`s `/rest/api/content/search` with the CQL expression and an
243
+ * optional `limit`.
244
+ * @param {ConfluenceSearchInput} input - The CQL query and result limit.
245
+ * @returns {Promise<unknown>} The search result payload.
246
+ * @throws {InternalError} When credentials are missing or the CQL query is empty.
247
+ * @throws {BadRequestError} When the CQL query is invalid.
248
+ */
249
+ search(input: ConfluenceSearchInput): Promise<unknown>;
250
+ }