@decaf-ts/integrations 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/README.md +164 -0
  2. package/dist/integrations.cjs +1 -1
  3. package/dist/integrations.cjs.map +1 -1
  4. package/dist/integrations.js +1 -1
  5. package/dist/integrations.js.map +1 -1
  6. package/docker/mailpit-compose.yml +17 -0
  7. package/docker/postgres-compose.yml +26 -0
  8. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +12 -23
  9. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
  10. package/lib/cjs/blob/core/BlobStoreService.cjs +26 -25
  11. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +12 -23
  13. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
  14. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +11 -16
  15. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
  16. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +14 -16
  17. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
  18. package/lib/cjs/comms/email/EmailService.cjs +376 -0
  19. package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
  20. package/lib/cjs/comms/email/index.cjs +29 -0
  21. package/lib/cjs/comms/email/index.cjs.map +1 -0
  22. package/lib/cjs/comms/email/mime.cjs +225 -0
  23. package/lib/cjs/comms/email/mime.cjs.map +1 -0
  24. package/lib/cjs/comms/email/smtp.cjs +204 -0
  25. package/lib/cjs/comms/email/smtp.cjs.map +1 -0
  26. package/lib/cjs/comms/environment.cjs +63 -0
  27. package/lib/cjs/comms/environment.cjs.map +1 -0
  28. package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
  29. package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
  30. package/lib/cjs/comms/gmail/index.cjs +24 -0
  31. package/lib/cjs/comms/gmail/index.cjs.map +1 -0
  32. package/lib/cjs/comms/index.cjs +31 -0
  33. package/lib/cjs/comms/index.cjs.map +1 -0
  34. package/lib/cjs/comms/slack/SlackService.cjs +264 -0
  35. package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
  36. package/lib/cjs/comms/slack/index.cjs +24 -0
  37. package/lib/cjs/comms/slack/index.cjs.map +1 -0
  38. package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
  39. package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
  40. package/lib/cjs/comms/teams/index.cjs +24 -0
  41. package/lib/cjs/comms/teams/index.cjs.map +1 -0
  42. package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
  43. package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
  44. package/lib/cjs/comms/telegram/index.cjs +24 -0
  45. package/lib/cjs/comms/telegram/index.cjs.map +1 -0
  46. package/lib/cjs/devops/environment.cjs +43 -0
  47. package/lib/cjs/devops/environment.cjs.map +1 -0
  48. package/lib/cjs/devops/github/GithubService.cjs +302 -0
  49. package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
  50. package/lib/cjs/devops/github/index.cjs +24 -0
  51. package/lib/cjs/devops/github/index.cjs.map +1 -0
  52. package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
  53. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
  54. package/lib/cjs/devops/gitlab/index.cjs +24 -0
  55. package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
  56. package/lib/cjs/devops/index.cjs +28 -0
  57. package/lib/cjs/devops/index.cjs.map +1 -0
  58. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
  59. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
  60. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
  61. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
  62. package/lib/cjs/index.cjs +3 -3
  63. package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
  64. package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
  65. package/lib/cjs/io/airtable/index.cjs +24 -0
  66. package/lib/cjs/io/airtable/index.cjs.map +1 -0
  67. package/lib/cjs/io/environment.cjs +46 -0
  68. package/lib/cjs/io/environment.cjs.map +1 -0
  69. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
  70. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
  71. package/lib/cjs/io/google-sheets/index.cjs +24 -0
  72. package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
  73. package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
  74. package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
  75. package/lib/cjs/io/graphql/index.cjs +24 -0
  76. package/lib/cjs/io/graphql/index.cjs.map +1 -0
  77. package/lib/cjs/io/index.cjs +30 -0
  78. package/lib/cjs/io/index.cjs.map +1 -0
  79. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
  80. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
  81. package/lib/cjs/io/spreadsheet/index.cjs +25 -0
  82. package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
  83. package/lib/cjs/namespaces/index.cjs +1 -0
  84. package/lib/cjs/namespaces/index.cjs.map +1 -1
  85. package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
  86. package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
  87. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
  88. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
  89. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
  90. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
  91. package/lib/cjs/namespaces/models/group.model.cjs +2 -0
  92. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
  93. package/lib/cjs/namespaces/models/index.cjs +1 -0
  94. package/lib/cjs/namespaces/models/index.cjs.map +1 -1
  95. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
  96. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
  97. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
  98. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
  99. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
  100. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
  101. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
  102. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
  103. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
  104. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
  105. package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
  106. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
  107. package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
  108. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
  109. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
  110. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
  111. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
  112. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
  113. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
  114. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
  115. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
  116. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
  117. package/lib/cjs/namespaces/models/role.model.cjs +2 -0
  118. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
  119. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
  120. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
  121. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
  122. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
  123. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
  124. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
  125. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
  126. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
  127. package/lib/cjs/namespaces/models/user.model.cjs +2 -0
  128. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
  129. package/lib/cjs/namespaces/rls/index.cjs +28 -0
  130. package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
  131. package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
  132. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
  133. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
  134. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
  135. package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
  136. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
  137. package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
  138. package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
  139. package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
  140. package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
  141. package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
  142. package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
  143. package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
  144. package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
  145. package/lib/cjs/namespaces/services/index.cjs +1 -0
  146. package/lib/cjs/namespaces/services/index.cjs.map +1 -1
  147. package/lib/cjs/namespaces/types.cjs +6 -1
  148. package/lib/cjs/namespaces/types.cjs.map +1 -1
  149. package/lib/cjs/redis/adapter.cjs +7 -1
  150. package/lib/cjs/redis/adapter.cjs.map +1 -1
  151. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
  152. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
  153. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
  154. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  155. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
  156. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  157. package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
  158. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
  159. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
  160. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
  161. package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
  162. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
  163. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
  164. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
  165. package/lib/cjs/secrets/fs/index.cjs +27 -0
  166. package/lib/cjs/secrets/fs/index.cjs.map +1 -0
  167. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
  168. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  169. package/lib/cjs/secrets/index.cjs +2 -0
  170. package/lib/cjs/secrets/index.cjs.map +1 -1
  171. package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
  172. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  173. package/lib/cjs/secrets/model/Secret.cjs +83 -5
  174. package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
  175. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
  176. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  177. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
  178. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  179. package/lib/cjs/shared/environmentValue.cjs +24 -0
  180. package/lib/cjs/shared/environmentValue.cjs.map +1 -1
  181. package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
  182. package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
  183. package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
  184. package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
  185. package/lib/cjs/shared/http/index.cjs +28 -0
  186. package/lib/cjs/shared/http/index.cjs.map +1 -0
  187. package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
  188. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  189. package/lib/esm/blob/core/BlobStoreService.js +26 -25
  190. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  191. package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
  192. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  193. package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
  194. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
  195. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
  196. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
  197. package/lib/esm/comms/email/EmailService.js +338 -0
  198. package/lib/esm/comms/email/EmailService.js.map +1 -0
  199. package/lib/esm/comms/email/index.js +12 -0
  200. package/lib/esm/comms/email/index.js.map +1 -0
  201. package/lib/esm/comms/email/mime.js +218 -0
  202. package/lib/esm/comms/email/mime.js.map +1 -0
  203. package/lib/esm/comms/email/smtp.js +166 -0
  204. package/lib/esm/comms/email/smtp.js.map +1 -0
  205. package/lib/esm/comms/environment.js +59 -0
  206. package/lib/esm/comms/environment.js.map +1 -0
  207. package/lib/esm/comms/gmail/GmailService.js +230 -0
  208. package/lib/esm/comms/gmail/GmailService.js.map +1 -0
  209. package/lib/esm/comms/gmail/index.js +7 -0
  210. package/lib/esm/comms/gmail/index.js.map +1 -0
  211. package/lib/esm/comms/index.js +14 -0
  212. package/lib/esm/comms/index.js.map +1 -0
  213. package/lib/esm/comms/slack/SlackService.js +259 -0
  214. package/lib/esm/comms/slack/SlackService.js.map +1 -0
  215. package/lib/esm/comms/slack/index.js +7 -0
  216. package/lib/esm/comms/slack/index.js.map +1 -0
  217. package/lib/esm/comms/teams/TeamsService.js +204 -0
  218. package/lib/esm/comms/teams/TeamsService.js.map +1 -0
  219. package/lib/esm/comms/teams/index.js +7 -0
  220. package/lib/esm/comms/teams/index.js.map +1 -0
  221. package/lib/esm/comms/telegram/TelegramService.js +191 -0
  222. package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
  223. package/lib/esm/comms/telegram/index.js +7 -0
  224. package/lib/esm/comms/telegram/index.js.map +1 -0
  225. package/lib/esm/devops/environment.js +39 -0
  226. package/lib/esm/devops/environment.js.map +1 -0
  227. package/lib/esm/devops/github/GithubService.js +297 -0
  228. package/lib/esm/devops/github/GithubService.js.map +1 -0
  229. package/lib/esm/devops/github/index.js +7 -0
  230. package/lib/esm/devops/github/index.js.map +1 -0
  231. package/lib/esm/devops/gitlab/GitlabService.js +277 -0
  232. package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
  233. package/lib/esm/devops/gitlab/index.js +7 -0
  234. package/lib/esm/devops/gitlab/index.js.map +1 -0
  235. package/lib/esm/devops/index.js +11 -0
  236. package/lib/esm/devops/index.js.map +1 -0
  237. package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
  238. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
  239. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
  240. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
  241. package/lib/esm/index.js +3 -3
  242. package/lib/esm/io/airtable/AirtableService.js +261 -0
  243. package/lib/esm/io/airtable/AirtableService.js.map +1 -0
  244. package/lib/esm/io/airtable/index.js +7 -0
  245. package/lib/esm/io/airtable/index.js.map +1 -0
  246. package/lib/esm/io/environment.js +42 -0
  247. package/lib/esm/io/environment.js.map +1 -0
  248. package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
  249. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
  250. package/lib/esm/io/google-sheets/index.js +7 -0
  251. package/lib/esm/io/google-sheets/index.js.map +1 -0
  252. package/lib/esm/io/graphql/GraphqlService.js +138 -0
  253. package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
  254. package/lib/esm/io/graphql/index.js +7 -0
  255. package/lib/esm/io/graphql/index.js.map +1 -0
  256. package/lib/esm/io/index.js +13 -0
  257. package/lib/esm/io/index.js.map +1 -0
  258. package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
  259. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
  260. package/lib/esm/io/spreadsheet/index.js +8 -0
  261. package/lib/esm/io/spreadsheet/index.js.map +1 -0
  262. package/lib/esm/namespaces/index.js +1 -0
  263. package/lib/esm/namespaces/index.js.map +1 -1
  264. package/lib/esm/namespaces/models/credential.model.js +106 -0
  265. package/lib/esm/namespaces/models/credential.model.js.map +1 -0
  266. package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
  267. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
  268. package/lib/esm/namespaces/models/group-membership.model.js +2 -0
  269. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
  270. package/lib/esm/namespaces/models/group.model.js +2 -0
  271. package/lib/esm/namespaces/models/group.model.js.map +1 -1
  272. package/lib/esm/namespaces/models/index.js +1 -0
  273. package/lib/esm/namespaces/models/index.js.map +1 -1
  274. package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
  275. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
  276. package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
  277. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
  278. package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
  279. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
  280. package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
  281. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
  282. package/lib/esm/namespaces/models/org-unit.model.js +2 -0
  283. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
  284. package/lib/esm/namespaces/models/permission.model.js +2 -0
  285. package/lib/esm/namespaces/models/permission.model.js.map +1 -1
  286. package/lib/esm/namespaces/models/principal.model.js +2 -0
  287. package/lib/esm/namespaces/models/principal.model.js.map +1 -1
  288. package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
  289. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
  290. package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
  291. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
  292. package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
  293. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
  294. package/lib/esm/namespaces/models/role-permission.model.js +2 -0
  295. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
  296. package/lib/esm/namespaces/models/role.model.js +2 -0
  297. package/lib/esm/namespaces/models/role.model.js.map +1 -1
  298. package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
  299. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
  300. package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
  301. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
  302. package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
  303. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
  304. package/lib/esm/namespaces/models/tenant.model.js +2 -0
  305. package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
  306. package/lib/esm/namespaces/models/user.model.js +2 -0
  307. package/lib/esm/namespaces/models/user.model.js.map +1 -1
  308. package/lib/esm/namespaces/rls/index.js +11 -0
  309. package/lib/esm/namespaces/rls/index.js.map +1 -0
  310. package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
  311. package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
  312. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
  313. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
  314. package/lib/esm/namespaces/rls/rls.constants.js +75 -0
  315. package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
  316. package/lib/esm/namespaces/rls/rls.template.js +711 -0
  317. package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
  318. package/lib/esm/namespaces/rls/rls.types.js +9 -0
  319. package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
  320. package/lib/esm/namespaces/rls/session-binding.js +65 -0
  321. package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
  322. package/lib/esm/namespaces/services/credential.service.js +322 -0
  323. package/lib/esm/namespaces/services/credential.service.js.map +1 -0
  324. package/lib/esm/namespaces/services/index.js +1 -0
  325. package/lib/esm/namespaces/services/index.js.map +1 -1
  326. package/lib/esm/namespaces/types.js +6 -0
  327. package/lib/esm/namespaces/types.js.map +1 -1
  328. package/lib/esm/redis/adapter.js +7 -1
  329. package/lib/esm/redis/adapter.js.map +1 -1
  330. package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
  331. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
  332. package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
  333. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
  334. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
  335. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
  336. package/lib/esm/secrets/core/SecretReference.js +1 -0
  337. package/lib/esm/secrets/core/SecretReference.js.map +1 -1
  338. package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
  339. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
  340. package/lib/esm/secrets/fs/FsSecretService.js +412 -0
  341. package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
  342. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
  343. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
  344. package/lib/esm/secrets/fs/index.js +10 -0
  345. package/lib/esm/secrets/fs/index.js.map +1 -0
  346. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
  347. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
  348. package/lib/esm/secrets/index.js +2 -0
  349. package/lib/esm/secrets/index.js.map +1 -1
  350. package/lib/esm/secrets/model/ModelSecretService.js +337 -42
  351. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  352. package/lib/esm/secrets/model/Secret.js +86 -7
  353. package/lib/esm/secrets/model/Secret.js.map +1 -1
  354. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
  355. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
  356. package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
  357. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
  358. package/lib/esm/shared/environmentValue.js +24 -0
  359. package/lib/esm/shared/environmentValue.js.map +1 -1
  360. package/lib/esm/shared/http/HttpApiService.js +181 -0
  361. package/lib/esm/shared/http/HttpApiService.js.map +1 -0
  362. package/lib/esm/shared/http/hermeticBoot.js +146 -0
  363. package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
  364. package/lib/esm/shared/http/index.js +11 -0
  365. package/lib/esm/shared/http/index.js.map +1 -0
  366. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
  367. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
  368. package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
  369. package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
  370. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
  371. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
  372. package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
  373. package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
  374. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
  375. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
  376. package/lib/types/comms/email/EmailService.d.cts +184 -0
  377. package/lib/types/comms/email/EmailService.d.mts +184 -0
  378. package/lib/types/comms/email/index.d.cts +11 -0
  379. package/lib/types/comms/email/index.d.mts +11 -0
  380. package/lib/types/comms/email/mime.d.cts +84 -0
  381. package/lib/types/comms/email/mime.d.mts +84 -0
  382. package/lib/types/comms/email/smtp.d.cts +107 -0
  383. package/lib/types/comms/email/smtp.d.mts +107 -0
  384. package/lib/types/comms/environment.d.cts +84 -0
  385. package/lib/types/comms/environment.d.mts +84 -0
  386. package/lib/types/comms/gmail/GmailService.d.cts +190 -0
  387. package/lib/types/comms/gmail/GmailService.d.mts +190 -0
  388. package/lib/types/comms/gmail/index.d.cts +6 -0
  389. package/lib/types/comms/gmail/index.d.mts +6 -0
  390. package/lib/types/comms/index.d.cts +13 -0
  391. package/lib/types/comms/index.d.mts +13 -0
  392. package/lib/types/comms/slack/SlackService.d.cts +259 -0
  393. package/lib/types/comms/slack/SlackService.d.mts +259 -0
  394. package/lib/types/comms/slack/index.d.cts +6 -0
  395. package/lib/types/comms/slack/index.d.mts +6 -0
  396. package/lib/types/comms/teams/TeamsService.d.cts +172 -0
  397. package/lib/types/comms/teams/TeamsService.d.mts +172 -0
  398. package/lib/types/comms/teams/index.d.cts +6 -0
  399. package/lib/types/comms/teams/index.d.mts +6 -0
  400. package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
  401. package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
  402. package/lib/types/comms/telegram/index.d.cts +6 -0
  403. package/lib/types/comms/telegram/index.d.mts +6 -0
  404. package/lib/types/devops/environment.d.cts +62 -0
  405. package/lib/types/devops/environment.d.mts +62 -0
  406. package/lib/types/devops/github/GithubService.d.cts +287 -0
  407. package/lib/types/devops/github/GithubService.d.mts +287 -0
  408. package/lib/types/devops/github/index.d.cts +6 -0
  409. package/lib/types/devops/github/index.d.mts +6 -0
  410. package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
  411. package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
  412. package/lib/types/devops/gitlab/index.d.cts +6 -0
  413. package/lib/types/devops/gitlab/index.d.mts +6 -0
  414. package/lib/types/devops/index.d.cts +10 -0
  415. package/lib/types/devops/index.d.mts +10 -0
  416. package/lib/types/index.d.cts +2 -2
  417. package/lib/types/index.d.mts +2 -2
  418. package/lib/types/io/airtable/AirtableService.d.cts +268 -0
  419. package/lib/types/io/airtable/AirtableService.d.mts +268 -0
  420. package/lib/types/io/airtable/index.d.cts +6 -0
  421. package/lib/types/io/airtable/index.d.mts +6 -0
  422. package/lib/types/io/environment.d.cts +67 -0
  423. package/lib/types/io/environment.d.mts +67 -0
  424. package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
  425. package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
  426. package/lib/types/io/google-sheets/index.d.cts +6 -0
  427. package/lib/types/io/google-sheets/index.d.mts +6 -0
  428. package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
  429. package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
  430. package/lib/types/io/graphql/index.d.cts +6 -0
  431. package/lib/types/io/graphql/index.d.mts +6 -0
  432. package/lib/types/io/index.d.cts +12 -0
  433. package/lib/types/io/index.d.mts +12 -0
  434. package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
  435. package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
  436. package/lib/types/io/spreadsheet/index.d.cts +7 -0
  437. package/lib/types/io/spreadsheet/index.d.mts +7 -0
  438. package/lib/types/namespaces/index.d.cts +1 -0
  439. package/lib/types/namespaces/index.d.mts +1 -0
  440. package/lib/types/namespaces/models/credential.model.d.cts +23 -0
  441. package/lib/types/namespaces/models/credential.model.d.mts +23 -0
  442. package/lib/types/namespaces/models/index.d.cts +1 -0
  443. package/lib/types/namespaces/models/index.d.mts +1 -0
  444. package/lib/types/namespaces/rls/index.d.cts +10 -0
  445. package/lib/types/namespaces/rls/index.d.mts +10 -0
  446. package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
  447. package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
  448. package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
  449. package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
  450. package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
  451. package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
  452. package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
  453. package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
  454. package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
  455. package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
  456. package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
  457. package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
  458. package/lib/types/namespaces/services/credential.service.d.cts +175 -0
  459. package/lib/types/namespaces/services/credential.service.d.mts +175 -0
  460. package/lib/types/namespaces/services/index.d.cts +1 -0
  461. package/lib/types/namespaces/services/index.d.mts +1 -0
  462. package/lib/types/namespaces/types.d.cts +37 -0
  463. package/lib/types/namespaces/types.d.mts +37 -0
  464. package/lib/types/redis/adapter.d.cts +2 -0
  465. package/lib/types/redis/adapter.d.mts +2 -0
  466. package/lib/types/redis/types.d.cts +27 -2
  467. package/lib/types/redis/types.d.mts +27 -2
  468. package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
  469. package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
  470. package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
  471. package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
  472. package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
  473. package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
  474. package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
  475. package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
  476. package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
  477. package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
  478. package/lib/types/secrets/fs/index.d.cts +9 -0
  479. package/lib/types/secrets/fs/index.d.mts +9 -0
  480. package/lib/types/secrets/index.d.cts +2 -0
  481. package/lib/types/secrets/index.d.mts +2 -0
  482. package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
  483. package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
  484. package/lib/types/secrets/model/Secret.d.cts +44 -3
  485. package/lib/types/secrets/model/Secret.d.mts +44 -3
  486. package/lib/types/shared/environmentValue.d.cts +24 -0
  487. package/lib/types/shared/environmentValue.d.mts +24 -0
  488. package/lib/types/shared/http/HttpApiService.d.cts +193 -0
  489. package/lib/types/shared/http/HttpApiService.d.mts +193 -0
  490. package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
  491. package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
  492. package/lib/types/shared/http/index.d.cts +10 -0
  493. package/lib/types/shared/http/index.d.mts +10 -0
  494. package/package.json +180 -3
  495. package/sql/002_rls.sql +660 -15
  496. package/sql/004_credentials.sql +46 -0
@@ -0,0 +1,173 @@
1
+ /**
2
+ * @module integrations/io/graphql/service
3
+ * @summary Generic GraphQL endpoint integration service for executing queries and mutations.
4
+ * @description Posts GraphQL documents to any endpoint as an undecorated
5
+ * client-based service built on {@link HttpApiService}.
6
+ * The endpoint is supplied as `endpoint` (an alias normalized to `baseUrl`
7
+ * during initialization) or the `io.graphql` environment slice; an optional
8
+ * bearer token is attached to every request, per-request headers can extend
9
+ * it, and failures are mapped to decaf errors via {@link httpError}. GraphQL
10
+ * field-level `errors` are returned in the response rather than thrown —
11
+ * callers decide how to handle partial results.
12
+ */
13
+ import { type MaybeContextualArg } from "@decaf-ts/core";
14
+ import type { AxiosInstance } from "axios";
15
+ import { HttpApiService, type HttpApiServiceConfig } from "../../shared/http/index.d.mts";
16
+ /**
17
+ * @description Configuration for the GraphQL service
18
+ * @summary Extends {@link HttpApiServiceConfig} with the GraphQL `endpoint`
19
+ * URL (normalized to `baseUrl` during initialization) and the optional bearer
20
+ * token. When omitted, the `io.graphql` environment slice supplies the
21
+ * endpoint (and optional `token`, `timeout`).
22
+ * @category IO
23
+ * @memberOf module:integrations/io/graphql/service
24
+ */
25
+ export interface GraphqlServiceConfig extends HttpApiServiceConfig {
26
+ /**
27
+ * @description GraphQL endpoint URL
28
+ * @summary Aliased to `baseUrl` by {@link GraphqlService.initialize}; every
29
+ * request is posted to this URL.
30
+ */
31
+ endpoint?: string;
32
+ /**
33
+ * @description Bearer token for the endpoint
34
+ * @summary Sent as `Authorization: Bearer <token>` with every request.
35
+ */
36
+ token?: string;
37
+ }
38
+ /**
39
+ * @description Input for a GraphQL request
40
+ * @summary Carries the `query` document, the `variables` map referenced by
41
+ * it, the optional `operationName` when the document holds multiple named
42
+ * operations, and per-request `headers` merged into the client's defaults.
43
+ * @category IO
44
+ * @memberOf module:integrations/io/graphql/service
45
+ */
46
+ export interface GraphqlRequest {
47
+ /**
48
+ * @description The GraphQL query or mutation document (required)
49
+ */
50
+ query: string;
51
+ /**
52
+ * @description Variable values for the document's declared variables
53
+ */
54
+ variables?: Record<string, unknown>;
55
+ /**
56
+ * @description The operation to execute when the document defines several
57
+ */
58
+ operationName?: string;
59
+ /**
60
+ * @description Extra headers merged over the client's defaults for this request
61
+ */
62
+ headers?: Record<string, string>;
63
+ }
64
+ /**
65
+ * @description GraphQL response envelope
66
+ * @summary The standard GraphQL execution result: `data` when the operation
67
+ * produced results, field-level `errors` (message plus response path) when
68
+ * execution partially failed, and provider `extensions`.
69
+ * @template T - The expected type of the `data` payload.
70
+ * @category IO
71
+ * @memberOf module:integrations/io/graphql/service
72
+ */
73
+ export interface GraphqlResponse<T = unknown> {
74
+ data?: T;
75
+ errors?: Array<{
76
+ message: string;
77
+ path?: Array<string | number>;
78
+ }>;
79
+ extensions?: Record<string, unknown>;
80
+ }
81
+ /**
82
+ * @description Generic GraphQL endpoint integration service
83
+ * @summary An undecorated HTTP service that `POST`s GraphQL
84
+ * documents to any endpoint. Unlike the other integration services there is
85
+ * no default base URL — the endpoint must come from the config (`endpoint` or
86
+ * `baseUrl`) or the `io.graphql` environment slice. Initialization normalizes
87
+ * the `endpoint` alias to `baseUrl` before delegating to the shared
88
+ * {@link HttpApiService.initialize}; the optional token is sent as a bearer
89
+ * header and per-request headers extend it. Transport failures are mapped to
90
+ * decaf errors via {@link httpError}, while GraphQL field-level `errors` are
91
+ * returned in the response for the caller to interpret.
92
+ * @class GraphqlService
93
+ * @category IO
94
+ * @example
95
+ * ```ts
96
+ * import { GraphqlService } from "@decaf-ts/integrations/io/graphql";
97
+ *
98
+ * const graphql = new GraphqlService();
99
+ * await graphql.initialize({
100
+ * endpoint: "https://api.example.com/graphql",
101
+ * token: process.env.GRAPH_CREDENTIAL_GRAPHQL_TOKEN,
102
+ * });
103
+ * const response = await graphql.request<{ user: { name: string } }>({
104
+ * query: `query GetUser($id: ID!) {
105
+ * user(id: $id) { name }
106
+ * }`,
107
+ * variables: { id: "123" },
108
+ * });
109
+ * ```
110
+ * @memberOf module:integrations/io/graphql/service
111
+ */
112
+ export declare class GraphqlService extends HttpApiService<GraphqlServiceConfig> {
113
+ /**
114
+ * @description The provider name used in error messages
115
+ */
116
+ protected readonly serviceName = "GraphQL";
117
+ /**
118
+ * @description The absence of a default GraphQL endpoint
119
+ * @summary Returns an empty string because GraphQL endpoints are
120
+ * provider-specific; {@link GraphqlService.request} rejects execution when
121
+ * no endpoint was configured.
122
+ * @returns {string} An empty string.
123
+ */
124
+ protected defaultBaseUrl(): string;
125
+ /**
126
+ * @description Normalizes the `endpoint` alias before shared initialization
127
+ * @summary When the provided config carries no `baseUrl` but an `endpoint`,
128
+ * copies `endpoint` into `baseUrl` and delegates to
129
+ * {@link HttpApiService.initialize}, which merges the environment slice and
130
+ * builds the Axios client.
131
+ * @param {...MaybeContextualArg<any>} args - An optional `Partial<GraphqlServiceConfig>`, optionally followed by a decaf `Context`.
132
+ * @returns {Promise<{config: GraphqlServiceConfig, client: AxiosInstance}>} The merged configuration and the configured Axios instance.
133
+ * @throws {InternalError} When no base URL can be resolved from the config or environment.
134
+ */
135
+ initialize(...args: MaybeContextualArg<any>): Promise<{
136
+ config: GraphqlServiceConfig;
137
+ client: AxiosInstance;
138
+ }>;
139
+ /**
140
+ * @description Builds the GraphQL bearer authorization headers
141
+ * @summary Returns the `Authorization: Bearer <token>` header when the
142
+ * config carries a token, and no headers otherwise.
143
+ * @param {GraphqlServiceConfig} config - The resolved service configuration.
144
+ * @returns {Record<string, string>} The authorization headers (empty without a token).
145
+ */
146
+ protected authHeaders(config: GraphqlServiceConfig): Record<string, string>;
147
+ /**
148
+ * @description Reads the GraphQL endpoint and token from the environment
149
+ * @summary Reads the `io.graphql` environment slice and returns a partial
150
+ * config (with `endpoint` also mirrored to `baseUrl`) when an endpoint is
151
+ * configured, `undefined` otherwise. Values pass through
152
+ * `envString`/`envNumber` to reject unset-leaf proxies.
153
+ * @returns {Partial<GraphqlServiceConfig> | undefined} A partial config, or `undefined` when no GraphQL endpoint is configured.
154
+ */
155
+ protected configFromEnvironment(): Partial<GraphqlServiceConfig> | undefined;
156
+ /**
157
+ * @description Executes a GraphQL query or mutation against the configured endpoint
158
+ * @summary `POST`s the standard GraphQL request body (`query`,
159
+ * `variables`, `operationName`) to the resolved endpoint with the optional
160
+ * per-request headers merged over the client defaults. Requires a
161
+ * non-empty query and a configured endpoint. Returns the raw execution
162
+ * envelope: field-level `errors` are reported in `GraphqlResponse.errors`
163
+ * rather than thrown, so callers must inspect them for partial failures.
164
+ * @template T - The expected type of the `data` payload.
165
+ * @param {GraphqlRequest} input - The query document, variables, operation name, and per-request headers.
166
+ * @returns {Promise<GraphqlResponse<T>>} The execution envelope with `data`, `errors`, and `extensions`.
167
+ * @throws {InternalError} When the query is empty or no endpoint is configured.
168
+ * @throws {NotFoundError} When the endpoint answers with HTTP 404.
169
+ * @throws {ConflictError} When the endpoint answers with HTTP 409.
170
+ * @throws {BadRequestError} When the endpoint answers with any other HTTP error status.
171
+ */
172
+ request<T = unknown>(input: GraphqlRequest): Promise<GraphqlResponse<T>>;
173
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/io/graphql
3
+ * @summary Generic GraphQL endpoint client (queries and mutations).
4
+ * @description Re-exports the GraphQL client-based service and its types.
5
+ */
6
+ export * from "./GraphqlService.d.cts";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module integrations/io/graphql
3
+ * @summary Generic GraphQL endpoint client (queries and mutations).
4
+ * @description Re-exports the GraphQL client-based service and its types.
5
+ */
6
+ export * from "./GraphqlService.d.mts";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module integrations/io
3
+ * @summary IO integration services (Google Sheets, Airtable, GraphQL, Spreadsheet).
4
+ * @description Re-exports the data-source services, their per-service modules,
5
+ * and the shared `io` environment slice. Each sub-module is also available
6
+ * through its own package subpath export.
7
+ */
8
+ export * from "./airtable/index.d.cts";
9
+ export * from "./google-sheets/index.d.cts";
10
+ export * from "./graphql/index.d.cts";
11
+ export * from "./spreadsheet/index.d.cts";
12
+ export * from "./environment.d.cts";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module integrations/io
3
+ * @summary IO integration services (Google Sheets, Airtable, GraphQL, Spreadsheet).
4
+ * @description Re-exports the data-source services, their per-service modules,
5
+ * and the shared `io` environment slice. Each sub-module is also available
6
+ * through its own package subpath export.
7
+ */
8
+ export * from "./airtable/index.d.mts";
9
+ export * from "./google-sheets/index.d.mts";
10
+ export * from "./graphql/index.d.mts";
11
+ export * from "./spreadsheet/index.d.mts";
12
+ export * from "./environment.d.mts";
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @module integrations/io/spreadsheet/service
3
+ * @summary Delimiter-agnostic spreadsheet parsing and serialization service.
4
+ * @description Parses and serializes CSV, TSV, and JSON tabular content
5
+ * without external dependencies: a hand-written RFC 4180-style parser (quoted
6
+ * fields, escaped quotes, CRLF handling) and a quoting serializer. Unlike the
7
+ * other io services it is not HTTP-backed and requires no configuration — it
8
+ * operates purely on in-memory strings and arrays.
9
+ */
10
+ /**
11
+ * @description The tabular content formats the spreadsheet service handles
12
+ * @summary `"csv"` (comma-delimited), `"tsv"` (tab-delimited), and `"json"`
13
+ * (an array of rows or of records keyed by column name).
14
+ * @category IO
15
+ * @memberOf module:integrations/io/spreadsheet/service
16
+ */
17
+ export type SpreadsheetFormat = "csv" | "tsv" | "json";
18
+ /**
19
+ * @description Options controlling how spreadsheet content is parsed
20
+ * @summary Selects the `format` (inferred from the `delimiter` when omitted:
21
+ * `"\t"` implies `"tsv"`, otherwise `"csv"`) and whether the first parsed row
22
+ * is treated as a header (`true` by default; set `header: false` to keep it
23
+ * in `rows` and receive an empty `header`).
24
+ * @category IO
25
+ * @memberOf module:integrations/io/spreadsheet/service
26
+ */
27
+ export interface SpreadsheetParseOptions {
28
+ /**
29
+ * @description Explicit content format; inferred from `delimiter` when omitted
30
+ */
31
+ format?: SpreadsheetFormat;
32
+ /**
33
+ * @description Delimiter for delimited formats; defaults to `","` for CSV and `"\t"` for TSV
34
+ */
35
+ delimiter?: string;
36
+ /**
37
+ * @description Whether the first row is a header; defaults to `true`
38
+ */
39
+ header?: boolean;
40
+ }
41
+ /**
42
+ * @description Result of parsing spreadsheet content
43
+ * @summary Carries the resolved `format`, the `header` row (empty when
44
+ * `header: false` was requested), and the remaining data `rows`.
45
+ * @category IO
46
+ * @memberOf module:integrations/io/spreadsheet/service
47
+ */
48
+ export interface SpreadsheetParseResult {
49
+ format: SpreadsheetFormat;
50
+ header: string[];
51
+ rows: string[][];
52
+ }
53
+ /**
54
+ * @description Options controlling how rows are serialized to spreadsheet content
55
+ * @summary Selects the `format` (inferred from the `delimiter` when omitted),
56
+ * the `delimiter` for delimited formats, and an optional `header` row written
57
+ * before the data. For `"json"`, the `header` values become the record keys
58
+ * (falling back to the first data row as keys).
59
+ * @category IO
60
+ * @memberOf module:integrations/io/spreadsheet/service
61
+ */
62
+ export interface SpreadsheetWriteOptions {
63
+ /**
64
+ * @description Explicit output format; inferred from `delimiter` when omitted
65
+ */
66
+ format?: SpreadsheetFormat;
67
+ /**
68
+ * @description Delimiter for delimited formats; defaults to `","` for CSV and `"\t"` for TSV
69
+ */
70
+ delimiter?: string;
71
+ /**
72
+ * @description Header row written before the data (or used as record keys for JSON)
73
+ */
74
+ header?: string[];
75
+ }
76
+ /**
77
+ * @description Dependency-free spreadsheet parsing and serialization service
78
+ * @summary A stateless (no configuration, no HTTP client) service that
79
+ * converts between tabular strings and row arrays. `parse` handles CSV and
80
+ * TSV with a quoted-field parser (double-quote escaping, CRLF stripping,
81
+ * blank-row filtering) and JSON arrays of rows or records; `serialize`
82
+ * writes CSV/TSV with RFC 4180-style quoting of fields containing the
83
+ * delimiter, quotes, or line breaks, or pretty-printed JSON records. Values
84
+ * are stringified with `null`/`undefined` as empty cells and objects as JSON.
85
+ * @class SpreadsheetService
86
+ * @category IO
87
+ * @example
88
+ * ```ts
89
+ * import { SpreadsheetService } from "@decaf-ts/integrations/io/spreadsheet";
90
+ *
91
+ * const spreadsheets = new SpreadsheetService();
92
+ * const parsed = spreadsheets.parse("name,count\nalpha,1\nbeta,2", {
93
+ * format: "csv",
94
+ * });
95
+ * // parsed.header === ["name", "count"], parsed.rows === [["alpha", "1"], ["beta", "2"]]
96
+ * ```
97
+ * @memberOf module:integrations/io/spreadsheet/service
98
+ */
99
+ export declare class SpreadsheetService {
100
+ /**
101
+ * @description Parses spreadsheet text into a header and data rows
102
+ * @summary Dispatches on the resolved format. `"json"` content must be an
103
+ * array: either an array of arrays (the first row becomes the header unless
104
+ * `header: false`) or an array of records (the union of the first record's
105
+ * keys becomes the header). CSV/TSV content is parsed with a quoted-field
106
+ * parser honoring `""` escapes and CR/LF line endings, dropping blank rows;
107
+ * the first row becomes the header unless `header: false`.
108
+ * @param {string} content - The spreadsheet text content to parse.
109
+ * @param {SpreadsheetParseOptions} [options] - Format, delimiter, and header options.
110
+ * @returns {SpreadsheetParseResult} The resolved format, header row, and data rows.
111
+ * @throws {InternalError} When the content is not a string, the JSON payload is invalid, or the JSON payload is not an array.
112
+ * @example
113
+ * ```ts
114
+ * // TSV with an explicit delimiter and no header row
115
+ * const tsv = spreadsheets.parse("alpha\t1\nbeta\t2", { delimiter: "\t", header: false });
116
+ * // JSON records infer the header from the first record's keys
117
+ * const json = spreadsheets.parse('[{"name":"alpha","count":1}]', { format: "json" });
118
+ * ```
119
+ */
120
+ parse(content: string, options?: SpreadsheetParseOptions): SpreadsheetParseResult;
121
+ /**
122
+ * @description Serializes rows into spreadsheet text
123
+ * @summary Stringifies each cell (objects become JSON, `null`/`undefined`
124
+ * become empty cells) and dispatches on the resolved format. For `"json"`,
125
+ * the optional `header` values (or the first data row) become the record
126
+ * keys and the output is pretty-printed JSON records. For `"csv"`/`"tsv"`,
127
+ * fields containing the delimiter, quotes, or line breaks are wrapped in
128
+ * double quotes with inner quotes escaped, and the optional `header` row is
129
+ * written first. Non-array rows are treated as single-cell rows.
130
+ * @param {unknown[][]} rows - The data rows to serialize.
131
+ * @param {SpreadsheetWriteOptions} [options] - Format, delimiter, and header options.
132
+ * @returns {string} The serialized spreadsheet content.
133
+ * @throws {InternalError} When `rows` is not an array.
134
+ * @example
135
+ * ```ts
136
+ * const csv = spreadsheets.serialize(
137
+ * [["alpha", 1], ["beta, gamma", 2]],
138
+ * { format: "csv", header: ["name", "count"] }
139
+ * );
140
+ * // "name,count\nalpha,1\n\"beta, gamma\",2"
141
+ * ```
142
+ */
143
+ serialize(rows: unknown[][], options?: SpreadsheetWriteOptions): string;
144
+ }
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @module integrations/io/spreadsheet/service
3
+ * @summary Delimiter-agnostic spreadsheet parsing and serialization service.
4
+ * @description Parses and serializes CSV, TSV, and JSON tabular content
5
+ * without external dependencies: a hand-written RFC 4180-style parser (quoted
6
+ * fields, escaped quotes, CRLF handling) and a quoting serializer. Unlike the
7
+ * other io services it is not HTTP-backed and requires no configuration — it
8
+ * operates purely on in-memory strings and arrays.
9
+ */
10
+ /**
11
+ * @description The tabular content formats the spreadsheet service handles
12
+ * @summary `"csv"` (comma-delimited), `"tsv"` (tab-delimited), and `"json"`
13
+ * (an array of rows or of records keyed by column name).
14
+ * @category IO
15
+ * @memberOf module:integrations/io/spreadsheet/service
16
+ */
17
+ export type SpreadsheetFormat = "csv" | "tsv" | "json";
18
+ /**
19
+ * @description Options controlling how spreadsheet content is parsed
20
+ * @summary Selects the `format` (inferred from the `delimiter` when omitted:
21
+ * `"\t"` implies `"tsv"`, otherwise `"csv"`) and whether the first parsed row
22
+ * is treated as a header (`true` by default; set `header: false` to keep it
23
+ * in `rows` and receive an empty `header`).
24
+ * @category IO
25
+ * @memberOf module:integrations/io/spreadsheet/service
26
+ */
27
+ export interface SpreadsheetParseOptions {
28
+ /**
29
+ * @description Explicit content format; inferred from `delimiter` when omitted
30
+ */
31
+ format?: SpreadsheetFormat;
32
+ /**
33
+ * @description Delimiter for delimited formats; defaults to `","` for CSV and `"\t"` for TSV
34
+ */
35
+ delimiter?: string;
36
+ /**
37
+ * @description Whether the first row is a header; defaults to `true`
38
+ */
39
+ header?: boolean;
40
+ }
41
+ /**
42
+ * @description Result of parsing spreadsheet content
43
+ * @summary Carries the resolved `format`, the `header` row (empty when
44
+ * `header: false` was requested), and the remaining data `rows`.
45
+ * @category IO
46
+ * @memberOf module:integrations/io/spreadsheet/service
47
+ */
48
+ export interface SpreadsheetParseResult {
49
+ format: SpreadsheetFormat;
50
+ header: string[];
51
+ rows: string[][];
52
+ }
53
+ /**
54
+ * @description Options controlling how rows are serialized to spreadsheet content
55
+ * @summary Selects the `format` (inferred from the `delimiter` when omitted),
56
+ * the `delimiter` for delimited formats, and an optional `header` row written
57
+ * before the data. For `"json"`, the `header` values become the record keys
58
+ * (falling back to the first data row as keys).
59
+ * @category IO
60
+ * @memberOf module:integrations/io/spreadsheet/service
61
+ */
62
+ export interface SpreadsheetWriteOptions {
63
+ /**
64
+ * @description Explicit output format; inferred from `delimiter` when omitted
65
+ */
66
+ format?: SpreadsheetFormat;
67
+ /**
68
+ * @description Delimiter for delimited formats; defaults to `","` for CSV and `"\t"` for TSV
69
+ */
70
+ delimiter?: string;
71
+ /**
72
+ * @description Header row written before the data (or used as record keys for JSON)
73
+ */
74
+ header?: string[];
75
+ }
76
+ /**
77
+ * @description Dependency-free spreadsheet parsing and serialization service
78
+ * @summary A stateless (no configuration, no HTTP client) service that
79
+ * converts between tabular strings and row arrays. `parse` handles CSV and
80
+ * TSV with a quoted-field parser (double-quote escaping, CRLF stripping,
81
+ * blank-row filtering) and JSON arrays of rows or records; `serialize`
82
+ * writes CSV/TSV with RFC 4180-style quoting of fields containing the
83
+ * delimiter, quotes, or line breaks, or pretty-printed JSON records. Values
84
+ * are stringified with `null`/`undefined` as empty cells and objects as JSON.
85
+ * @class SpreadsheetService
86
+ * @category IO
87
+ * @example
88
+ * ```ts
89
+ * import { SpreadsheetService } from "@decaf-ts/integrations/io/spreadsheet";
90
+ *
91
+ * const spreadsheets = new SpreadsheetService();
92
+ * const parsed = spreadsheets.parse("name,count\nalpha,1\nbeta,2", {
93
+ * format: "csv",
94
+ * });
95
+ * // parsed.header === ["name", "count"], parsed.rows === [["alpha", "1"], ["beta", "2"]]
96
+ * ```
97
+ * @memberOf module:integrations/io/spreadsheet/service
98
+ */
99
+ export declare class SpreadsheetService {
100
+ /**
101
+ * @description Parses spreadsheet text into a header and data rows
102
+ * @summary Dispatches on the resolved format. `"json"` content must be an
103
+ * array: either an array of arrays (the first row becomes the header unless
104
+ * `header: false`) or an array of records (the union of the first record's
105
+ * keys becomes the header). CSV/TSV content is parsed with a quoted-field
106
+ * parser honoring `""` escapes and CR/LF line endings, dropping blank rows;
107
+ * the first row becomes the header unless `header: false`.
108
+ * @param {string} content - The spreadsheet text content to parse.
109
+ * @param {SpreadsheetParseOptions} [options] - Format, delimiter, and header options.
110
+ * @returns {SpreadsheetParseResult} The resolved format, header row, and data rows.
111
+ * @throws {InternalError} When the content is not a string, the JSON payload is invalid, or the JSON payload is not an array.
112
+ * @example
113
+ * ```ts
114
+ * // TSV with an explicit delimiter and no header row
115
+ * const tsv = spreadsheets.parse("alpha\t1\nbeta\t2", { delimiter: "\t", header: false });
116
+ * // JSON records infer the header from the first record's keys
117
+ * const json = spreadsheets.parse('[{"name":"alpha","count":1}]', { format: "json" });
118
+ * ```
119
+ */
120
+ parse(content: string, options?: SpreadsheetParseOptions): SpreadsheetParseResult;
121
+ /**
122
+ * @description Serializes rows into spreadsheet text
123
+ * @summary Stringifies each cell (objects become JSON, `null`/`undefined`
124
+ * become empty cells) and dispatches on the resolved format. For `"json"`,
125
+ * the optional `header` values (or the first data row) become the record
126
+ * keys and the output is pretty-printed JSON records. For `"csv"`/`"tsv"`,
127
+ * fields containing the delimiter, quotes, or line breaks are wrapped in
128
+ * double quotes with inner quotes escaped, and the optional `header` row is
129
+ * written first. Non-array rows are treated as single-cell rows.
130
+ * @param {unknown[][]} rows - The data rows to serialize.
131
+ * @param {SpreadsheetWriteOptions} [options] - Format, delimiter, and header options.
132
+ * @returns {string} The serialized spreadsheet content.
133
+ * @throws {InternalError} When `rows` is not an array.
134
+ * @example
135
+ * ```ts
136
+ * const csv = spreadsheets.serialize(
137
+ * [["alpha", 1], ["beta, gamma", 2]],
138
+ * { format: "csv", header: ["name", "count"] }
139
+ * );
140
+ * // "name,count\nalpha,1\n\"beta, gamma\",2"
141
+ * ```
142
+ */
143
+ serialize(rows: unknown[][], options?: SpreadsheetWriteOptions): string;
144
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module integrations/io/spreadsheet
3
+ * @summary Tabular text parse/serialize service (CSV, TSV, JSON lines).
4
+ * @description Re-exports the offline spreadsheet service and its types; no
5
+ * network or credentials are involved.
6
+ */
7
+ export * from "./SpreadsheetService.d.cts";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module integrations/io/spreadsheet
3
+ * @summary Tabular text parse/serialize service (CSV, TSV, JSON lines).
4
+ * @description Re-exports the offline spreadsheet service and its types; no
5
+ * network or credentials are involved.
6
+ */
7
+ export * from "./SpreadsheetService.d.mts";
@@ -6,3 +6,4 @@ export * from "./types.d.cts";
6
6
  export * from "./utils.d.cts";
7
7
  export * from "./models/index.d.cts";
8
8
  export * from "./services/index.d.cts";
9
+ export * from "./rls/index.d.cts";
@@ -6,3 +6,4 @@ export * from "./types.d.mts";
6
6
  export * from "./utils.d.mts";
7
7
  export * from "./models/index.d.mts";
8
8
  export * from "./services/index.d.mts";
9
+ export * from "./rls/index.d.mts";
@@ -0,0 +1,23 @@
1
+ import { CredentialProvider } from "../types.d.cts";
2
+ import { AuthorizationModel } from "./authorization-model.d.cts";
3
+ import { Tenant } from "./tenant.model.d.cts";
4
+ import { OrgUnit } from "./org-unit.model.d.cts";
5
+ import { Principal } from "./principal.model.d.cts";
6
+ export declare class Credential extends AuthorizationModel {
7
+ id: string;
8
+ tenant: Tenant | string;
9
+ orgUnit?: OrgUnit | string;
10
+ owner?: Principal | string;
11
+ name: string;
12
+ credentialType: string;
13
+ secretName: string;
14
+ provider: CredentialProvider;
15
+ description?: string;
16
+ enabled: boolean;
17
+ metadata?: Record<string, unknown>;
18
+ expiresAt?: Date;
19
+ lastUsedAt?: Date;
20
+ createdAt: Date;
21
+ updatedAt: Date;
22
+ constructor(data?: unknown);
23
+ }
@@ -0,0 +1,23 @@
1
+ import { CredentialProvider } from "../types.d.mts";
2
+ import { AuthorizationModel } from "./authorization-model.d.mts";
3
+ import { Tenant } from "./tenant.model.d.mts";
4
+ import { OrgUnit } from "./org-unit.model.d.mts";
5
+ import { Principal } from "./principal.model.d.mts";
6
+ export declare class Credential extends AuthorizationModel {
7
+ id: string;
8
+ tenant: Tenant | string;
9
+ orgUnit?: OrgUnit | string;
10
+ owner?: Principal | string;
11
+ name: string;
12
+ credentialType: string;
13
+ secretName: string;
14
+ provider: CredentialProvider;
15
+ description?: string;
16
+ enabled: boolean;
17
+ metadata?: Record<string, unknown>;
18
+ expiresAt?: Date;
19
+ lastUsedAt?: Date;
20
+ createdAt: Date;
21
+ updatedAt: Date;
22
+ constructor(data?: unknown);
23
+ }
@@ -19,3 +19,4 @@ export * from "./protected-resource.model.d.cts";
19
19
  export * from "./resource-grant.model.d.cts";
20
20
  export * from "./effective-permission.model.d.cts";
21
21
  export * from "./storage-binding.model.d.cts";
22
+ export * from "./credential.model.d.cts";
@@ -19,3 +19,4 @@ export * from "./protected-resource.model.d.mts";
19
19
  export * from "./resource-grant.model.d.mts";
20
20
  export * from "./effective-permission.model.d.mts";
21
21
  export * from "./storage-binding.model.d.mts";
22
+ export * from "./credential.model.d.mts";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module integrations/namespaces/rls
3
+ * @summary Namespace row-level-security template, bootstrap service, and session helpers.
4
+ */
5
+ export * from "./rls.constants.d.cts";
6
+ export * from "./rls.types.d.cts";
7
+ export * from "./rls.template.d.cts";
8
+ export * from "./rls-bootstrap.service.d.cts";
9
+ export * from "./principal-resolver.d.cts";
10
+ export * from "./session-binding.d.cts";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module integrations/namespaces/rls
3
+ * @summary Namespace row-level-security template, bootstrap service, and session helpers.
4
+ */
5
+ export * from "./rls.constants.d.mts";
6
+ export * from "./rls.types.d.mts";
7
+ export * from "./rls.template.d.mts";
8
+ export * from "./rls-bootstrap.service.d.mts";
9
+ export * from "./principal-resolver.d.mts";
10
+ export * from "./session-binding.d.mts";