@decaf-ts/integrations 0.1.2 → 0.1.4

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 (289) hide show
  1. package/dist/integrations.cjs +1 -1
  2. package/docker/azure-blob-compose.yml +21 -0
  3. package/docker/gcs-blob-compose.yml +21 -0
  4. package/docker/ipfs-compose.yml +25 -0
  5. package/docker/minio-compose.yml +25 -0
  6. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +293 -0
  7. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  8. package/lib/cjs/blob/azure/index.cjs +24 -0
  9. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  10. package/lib/cjs/blob/core/BlobErrors.cjs +74 -0
  11. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  12. package/lib/cjs/blob/core/BlobKey.cjs +37 -0
  13. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  14. package/lib/cjs/blob/core/BlobStoreFactory.cjs +57 -0
  15. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  16. package/lib/cjs/blob/core/BlobStoreService.cjs +42 -0
  17. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  18. package/lib/cjs/blob/core/BlobTypes.cjs +4 -0
  19. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  20. package/lib/cjs/blob/core/BlobValue.cjs +72 -0
  21. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  22. package/lib/cjs/blob/core/index.cjs +29 -0
  23. package/lib/cjs/blob/core/index.cjs.map +1 -0
  24. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +272 -0
  25. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  26. package/lib/cjs/blob/gcp/index.cjs +24 -0
  27. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  28. package/lib/cjs/blob/index.cjs +25 -0
  29. package/lib/cjs/blob/index.cjs.map +1 -0
  30. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +182 -0
  31. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
  32. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +27 -0
  33. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
  34. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +35 -0
  35. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
  36. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +45 -0
  37. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
  38. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +35 -0
  39. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
  40. package/lib/cjs/blob/ipfs/index.cjs +28 -0
  41. package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
  42. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +288 -0
  43. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  44. package/lib/cjs/blob/local/index.cjs +24 -0
  45. package/lib/cjs/blob/local/index.cjs.map +1 -0
  46. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +146 -0
  47. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  48. package/lib/cjs/blob/memory/index.cjs +24 -0
  49. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  50. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +14 -0
  51. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  52. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +14 -0
  53. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  54. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +322 -0
  55. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  56. package/lib/cjs/blob/s3/index.cjs +26 -0
  57. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  58. package/lib/cjs/docker/DockerComposeService.cjs +3 -3
  59. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -1
  60. package/lib/cjs/docker/index.cjs +1 -1
  61. package/lib/cjs/docker/index.cjs.map +1 -1
  62. package/lib/cjs/index.cjs +4 -4
  63. package/lib/cjs/index.cjs.map +1 -1
  64. package/lib/cjs/keycloak/index.cjs +1 -1
  65. package/lib/cjs/keycloak/index.cjs.map +1 -1
  66. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +1 -1
  67. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -1
  68. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +1 -1
  69. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -1
  70. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +1 -1
  71. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -1
  72. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +1 -1
  73. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -1
  74. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +1 -1
  75. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -1
  76. package/lib/cjs/keycloak/services/KeycloakService.cjs +1 -1
  77. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -1
  78. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +1 -1
  79. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -1
  80. package/lib/cjs/keycloak/services/index.cjs +1 -1
  81. package/lib/cjs/keycloak/services/index.cjs.map +1 -1
  82. package/lib/cjs/keycloak/types.cjs +1 -1
  83. package/lib/cjs/keycloak/types.cjs.map +1 -1
  84. package/lib/cjs/kibana/helpers.cjs +1 -1
  85. package/lib/cjs/kibana/helpers.cjs.map +1 -1
  86. package/lib/cjs/kibana/index.cjs +1 -1
  87. package/lib/cjs/kibana/index.cjs.map +1 -1
  88. package/lib/cjs/kibana/services/KibanaAuthService.cjs +1 -1
  89. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -1
  90. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +1 -1
  91. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -1
  92. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +1 -1
  93. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -1
  94. package/lib/cjs/kibana/services/KibanaRoleService.cjs +1 -1
  95. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -1
  96. package/lib/cjs/kibana/services/KibanaService.cjs +1 -1
  97. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -1
  98. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +1 -1
  99. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -1
  100. package/lib/cjs/kibana/services/KibanaUserService.cjs +1 -1
  101. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -1
  102. package/lib/cjs/kibana/services/index.cjs +1 -1
  103. package/lib/cjs/kibana/services/index.cjs.map +1 -1
  104. package/lib/cjs/kibana/types.cjs +1 -1
  105. package/lib/cjs/kibana/types.cjs.map +1 -1
  106. package/lib/cjs/nest/authService.cjs +1 -1
  107. package/lib/cjs/nest/authService.cjs.map +1 -1
  108. package/lib/cjs/nest/index.cjs +1 -1
  109. package/lib/cjs/nest/index.cjs.map +1 -1
  110. package/lib/cjs/nest/keycloakAuthHandler.cjs +1 -1
  111. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -1
  112. package/lib/cjs/nest/keycloakModule.cjs +1 -1
  113. package/lib/cjs/nest/keycloakModule.cjs.map +1 -1
  114. package/lib/cjs/nest/types.cjs +1 -1
  115. package/lib/cjs/nest/types.cjs.map +1 -1
  116. package/lib/cjs/nest/utils.cjs +1 -1
  117. package/lib/cjs/nest/utils.cjs.map +1 -1
  118. package/lib/cjs/secrets/aws/AwsSecretService.cjs +1 -1
  119. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
  120. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +1 -1
  121. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -1
  122. package/lib/cjs/secrets/aws/index.cjs +1 -1
  123. package/lib/cjs/secrets/aws/index.cjs.map +1 -1
  124. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +1 -1
  125. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
  126. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +1 -1
  127. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -1
  128. package/lib/cjs/secrets/azure/index.cjs +1 -1
  129. package/lib/cjs/secrets/azure/index.cjs.map +1 -1
  130. package/lib/cjs/secrets/core/SecretErrors.cjs +1 -1
  131. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -1
  132. package/lib/cjs/secrets/core/SecretName.cjs +1 -1
  133. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -1
  134. package/lib/cjs/secrets/core/SecretReference.cjs +1 -1
  135. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
  136. package/lib/cjs/secrets/core/SecretSerialization.cjs +1 -1
  137. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -1
  138. package/lib/cjs/secrets/core/SecretService.cjs +1 -1
  139. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -1
  140. package/lib/cjs/secrets/core/SecretTypes.cjs +1 -1
  141. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -1
  142. package/lib/cjs/secrets/core/index.cjs +1 -1
  143. package/lib/cjs/secrets/core/index.cjs.map +1 -1
  144. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +1 -1
  145. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
  146. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +1 -1
  147. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -1
  148. package/lib/cjs/secrets/gcp/index.cjs +1 -1
  149. package/lib/cjs/secrets/gcp/index.cjs.map +1 -1
  150. package/lib/cjs/secrets/index.cjs +1 -1
  151. package/lib/cjs/secrets/index.cjs.map +1 -1
  152. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +1 -1
  153. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -1
  154. package/lib/cjs/secrets/model/ModelSecretService.cjs +3 -3
  155. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
  156. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +1 -1
  157. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -1
  158. package/lib/cjs/secrets/model/Secret.cjs +1 -1
  159. package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
  160. package/lib/cjs/secrets/model/index.cjs +1 -1
  161. package/lib/cjs/secrets/model/index.cjs.map +1 -1
  162. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +1 -1
  163. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
  164. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +1 -1
  165. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -1
  166. package/lib/cjs/secrets/onepassword/index.cjs +1 -1
  167. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -1
  168. package/lib/cjs/secrets/vault/VaultSecretService.cjs +1 -1
  169. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
  170. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +1 -1
  171. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -1
  172. package/lib/cjs/secrets/vault/index.cjs +1 -1
  173. package/lib/cjs/secrets/vault/index.cjs.map +1 -1
  174. package/lib/cjs/utils.cjs +1 -1
  175. package/lib/cjs/utils.cjs.map +1 -1
  176. package/lib/esm/blob/azure/AzureBlobStoreService.js +288 -0
  177. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  178. package/lib/esm/blob/azure/index.js +7 -0
  179. package/lib/esm/blob/azure/index.js.map +1 -0
  180. package/lib/esm/blob/core/BlobErrors.js +61 -0
  181. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  182. package/lib/esm/blob/core/BlobKey.js +32 -0
  183. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  184. package/lib/esm/blob/core/BlobStoreFactory.js +52 -0
  185. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  186. package/lib/esm/blob/core/BlobStoreService.js +37 -0
  187. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  188. package/lib/esm/blob/core/BlobTypes.js +2 -0
  189. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  190. package/lib/esm/blob/core/BlobValue.js +66 -0
  191. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  192. package/lib/esm/blob/core/index.js +12 -0
  193. package/lib/esm/blob/core/index.js.map +1 -0
  194. package/lib/esm/blob/gcp/GcsBlobStoreService.js +267 -0
  195. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  196. package/lib/esm/blob/gcp/index.js +7 -0
  197. package/lib/esm/blob/gcp/index.js.map +1 -0
  198. package/lib/esm/blob/index.js +8 -0
  199. package/lib/esm/blob/index.js.map +1 -0
  200. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +177 -0
  201. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  202. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +23 -0
  203. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  204. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +30 -0
  205. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  206. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +40 -0
  207. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  208. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +30 -0
  209. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  210. package/lib/esm/blob/ipfs/index.js +11 -0
  211. package/lib/esm/blob/ipfs/index.js.map +1 -0
  212. package/lib/esm/blob/local/LocalBlobStoreService.js +283 -0
  213. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  214. package/lib/esm/blob/local/index.js +7 -0
  215. package/lib/esm/blob/local/index.js.map +1 -0
  216. package/lib/esm/blob/memory/MemoryBlobStoreService.js +141 -0
  217. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  218. package/lib/esm/blob/memory/index.js +7 -0
  219. package/lib/esm/blob/memory/index.js.map +1 -0
  220. package/lib/esm/blob/s3/MinioBlobStoreService.js +9 -0
  221. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  222. package/lib/esm/blob/s3/R2BlobStoreService.js +9 -0
  223. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  224. package/lib/esm/blob/s3/S3BlobStoreService.js +317 -0
  225. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  226. package/lib/esm/blob/s3/index.js +9 -0
  227. package/lib/esm/blob/s3/index.js.map +1 -0
  228. package/lib/esm/docker/DockerComposeService.js +2 -2
  229. package/lib/esm/docker/DockerComposeService.js.map +1 -1
  230. package/lib/esm/index.js +3 -3
  231. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  232. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
  233. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +25 -0
  234. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +25 -0
  235. package/lib/types/blob/azure/index.d.cts +6 -0
  236. package/lib/types/blob/azure/index.d.mts +6 -0
  237. package/lib/types/blob/core/BlobErrors.d.cts +14 -0
  238. package/lib/types/blob/core/BlobErrors.d.mts +14 -0
  239. package/lib/types/blob/core/BlobKey.d.cts +9 -0
  240. package/lib/types/blob/core/BlobKey.d.mts +9 -0
  241. package/lib/types/blob/core/BlobStoreFactory.d.cts +5 -0
  242. package/lib/types/blob/core/BlobStoreFactory.d.mts +5 -0
  243. package/lib/types/blob/core/BlobStoreService.d.cts +28 -0
  244. package/lib/types/blob/core/BlobStoreService.d.mts +28 -0
  245. package/lib/types/blob/core/BlobTypes.d.cts +122 -0
  246. package/lib/types/blob/core/BlobTypes.d.mts +122 -0
  247. package/lib/types/blob/core/BlobValue.d.cts +13 -0
  248. package/lib/types/blob/core/BlobValue.d.mts +13 -0
  249. package/lib/types/blob/core/index.d.cts +11 -0
  250. package/lib/types/blob/core/index.d.mts +11 -0
  251. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +25 -0
  252. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +25 -0
  253. package/lib/types/blob/gcp/index.d.cts +6 -0
  254. package/lib/types/blob/gcp/index.d.mts +6 -0
  255. package/lib/types/blob/index.d.cts +7 -0
  256. package/lib/types/blob/index.d.mts +7 -0
  257. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +26 -0
  258. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +26 -0
  259. package/lib/types/blob/ipfs/IpfsKeyIndex.d.cts +9 -0
  260. package/lib/types/blob/ipfs/IpfsKeyIndex.d.mts +9 -0
  261. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.cts +11 -0
  262. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.mts +11 -0
  263. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.cts +15 -0
  264. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.mts +15 -0
  265. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.cts +11 -0
  266. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.mts +11 -0
  267. package/lib/types/blob/ipfs/index.d.cts +10 -0
  268. package/lib/types/blob/ipfs/index.d.mts +10 -0
  269. package/lib/types/blob/local/LocalBlobStoreService.d.cts +30 -0
  270. package/lib/types/blob/local/LocalBlobStoreService.d.mts +30 -0
  271. package/lib/types/blob/local/index.d.cts +6 -0
  272. package/lib/types/blob/local/index.d.mts +6 -0
  273. package/lib/types/blob/memory/MemoryBlobStoreService.d.cts +28 -0
  274. package/lib/types/blob/memory/MemoryBlobStoreService.d.mts +28 -0
  275. package/lib/types/blob/memory/index.d.cts +6 -0
  276. package/lib/types/blob/memory/index.d.mts +6 -0
  277. package/lib/types/blob/s3/MinioBlobStoreService.d.cts +8 -0
  278. package/lib/types/blob/s3/MinioBlobStoreService.d.mts +8 -0
  279. package/lib/types/blob/s3/R2BlobStoreService.d.cts +8 -0
  280. package/lib/types/blob/s3/R2BlobStoreService.d.mts +8 -0
  281. package/lib/types/blob/s3/S3BlobStoreService.d.cts +25 -0
  282. package/lib/types/blob/s3/S3BlobStoreService.d.mts +25 -0
  283. package/lib/types/blob/s3/index.d.cts +8 -0
  284. package/lib/types/blob/s3/index.d.mts +8 -0
  285. package/lib/types/docker/DockerComposeService.d.cts +6 -0
  286. package/lib/types/docker/DockerComposeService.d.mts +6 -0
  287. package/lib/types/index.d.cts +2 -2
  288. package/lib/types/index.d.mts +2 -2
  289. package/package.json +92 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blob/azure/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2CAAwC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @module integrations/blob/core/errors
3
+ * @summary Blob error translation helpers.
4
+ * @description Re-exports standard DECAF errors used by blob store implementations and provides
5
+ * helper functions for translating provider library errors into the appropriate DECAF error types.
6
+ */
7
+ import { AuthorizationError, ConnectionError, ForbiddenError, UnsupportedError, } from "@decaf-ts/core";
8
+ import { BadRequestError, ConflictError, InternalError, NotFoundError, ValidationError, } from "@decaf-ts/db-decorators";
9
+ export { AuthorizationError, BadRequestError, ConflictError, ConnectionError, ForbiddenError, InternalError, NotFoundError, UnsupportedError, ValidationError, };
10
+ /**
11
+ * Translates a generic error into a DECAF error based on HTTP status code or message keywords.
12
+ * Used as a fallback by provider parseError methods.
13
+ */
14
+ export function translateBlobError(error) {
15
+ if (error instanceof NotFoundError ||
16
+ error instanceof ConflictError ||
17
+ error instanceof AuthorizationError ||
18
+ error instanceof ForbiddenError ||
19
+ error instanceof ValidationError ||
20
+ error instanceof ConnectionError ||
21
+ error instanceof UnsupportedError ||
22
+ error instanceof InternalError) {
23
+ return error;
24
+ }
25
+ const message = error.message || error.name || "Unknown error";
26
+ const lowerMessage = message.toLowerCase();
27
+ const statusCode = error?.statusCode ||
28
+ error?.$metadata?.httpStatusCode ||
29
+ error?.code;
30
+ if (lowerMessage.includes("not found") ||
31
+ statusCode === 404 ||
32
+ lowerMessage.includes("enoent") ||
33
+ lowerMessage.includes("blobnotfound") ||
34
+ statusCode === "ENOENT") {
35
+ return new NotFoundError(error);
36
+ }
37
+ if (lowerMessage.includes("already exists") ||
38
+ lowerMessage.includes("conflict") ||
39
+ statusCode === 409 ||
40
+ statusCode === "EEXIST") {
41
+ return new ConflictError(error);
42
+ }
43
+ if (lowerMessage.includes("unauthorized") || statusCode === 401) {
44
+ return new AuthorizationError(error);
45
+ }
46
+ if (lowerMessage.includes("permission") || statusCode === 403) {
47
+ return new ForbiddenError(error);
48
+ }
49
+ if (lowerMessage.includes("rate limit") ||
50
+ statusCode === 429) {
51
+ return new ConflictError(error);
52
+ }
53
+ if (lowerMessage.includes("connection") ||
54
+ lowerMessage.includes("timeout") ||
55
+ lowerMessage.includes("unavailable") ||
56
+ statusCode === 503) {
57
+ return new ConnectionError(error);
58
+ }
59
+ return new InternalError(error);
60
+ }
61
+ //# sourceMappingURL=BlobErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobErrors.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobErrors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAY;IAC7C,IACE,KAAK,YAAY,aAAa;QAC9B,KAAK,YAAY,aAAa;QAC9B,KAAK,YAAY,kBAAkB;QACnC,KAAK,YAAY,cAAc;QAC/B,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,gBAAgB;QACjC,KAAK,YAAY,aAAa,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,UAAU,GACb,KAAa,EAAE,UAAU;QACzB,KAAa,EAAE,SAAS,EAAE,cAAc;QACxC,KAAa,EAAE,IAAI,CAAC;IAEvB,IACE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClC,UAAU,KAAK,GAAG;QAClB,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrC,UAAU,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IACE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACvC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAChE,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAC9D,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IACE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnC,UAAU,KAAK,GAAG,EAClB,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IACE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpC,UAAU,KAAK,GAAG,EAClB,CAAC;QACD,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module integrations/blob/core/key
3
+ * @summary Blob key helpers.
4
+ * @description Validation, cleaning, and prefixing helpers for blob keys.
5
+ */
6
+ import { ValidationError } from "@decaf-ts/db-decorators";
7
+ /**
8
+ * Strips leading slashes from a blob key and rejects unsafe path segments.
9
+ */
10
+ export function cleanKey(key) {
11
+ if (typeof key !== "string") {
12
+ throw new ValidationError(`Blob key must be a string`);
13
+ }
14
+ const clean = key.replace(/^\/+/, "");
15
+ if (clean === "" ||
16
+ clean === "." ||
17
+ clean === ".." ||
18
+ clean.includes("../") ||
19
+ clean.startsWith("../")) {
20
+ throw new ValidationError(`Invalid blob key: ${key}`);
21
+ }
22
+ return clean;
23
+ }
24
+ /**
25
+ * Applies the configured prefix (trimmed of leading/trailing slashes) to a cleaned key.
26
+ */
27
+ export function physicalKey(key, prefix) {
28
+ const clean = cleanKey(key);
29
+ const trimmedPrefix = prefix?.replace(/^\/+|\/+$/g, "");
30
+ return trimmedPrefix ? `${trimmedPrefix}/${clean}` : clean;
31
+ }
32
+ //# sourceMappingURL=BlobKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobKey.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobKey.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEtC,IACE,KAAK,KAAK,EAAE;QACZ,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,MAAe;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @module integrations/blob/core/factory
3
+ * @summary Blob store factory.
4
+ * @description Creates uninitialized blob store services selected by provider.
5
+ */
6
+ import { ValidationError } from "@decaf-ts/db-decorators";
7
+ import { S3BlobStoreService } from "./../s3/S3BlobStoreService.js";
8
+ import { MinioBlobStoreService } from "./../s3/MinioBlobStoreService.js";
9
+ import { R2BlobStoreService } from "./../s3/R2BlobStoreService.js";
10
+ import { AzureBlobStoreService } from "./../azure/AzureBlobStoreService.js";
11
+ import { GcsBlobStoreService } from "./../gcp/GcsBlobStoreService.js";
12
+ import { LocalBlobStoreService } from "./../local/LocalBlobStoreService.js";
13
+ import { IpfsBlobStoreService } from "./../ipfs/IpfsBlobStoreService.js";
14
+ import { MemoryBlobStoreService } from "./../memory/MemoryBlobStoreService.js";
15
+ export class BlobStoreFactory {
16
+ create(config) {
17
+ let service;
18
+ switch (config.provider) {
19
+ case "s3":
20
+ service = new S3BlobStoreService();
21
+ break;
22
+ case "minio":
23
+ service = new MinioBlobStoreService();
24
+ break;
25
+ case "r2":
26
+ service = new R2BlobStoreService();
27
+ break;
28
+ case "azure-blob":
29
+ service = new AzureBlobStoreService();
30
+ break;
31
+ case "gcs":
32
+ service = new GcsBlobStoreService();
33
+ break;
34
+ case "local":
35
+ service = new LocalBlobStoreService();
36
+ break;
37
+ case "ipfs":
38
+ service = new IpfsBlobStoreService();
39
+ break;
40
+ case "memory":
41
+ service = new MemoryBlobStoreService();
42
+ break;
43
+ default:
44
+ return assertNever(config);
45
+ }
46
+ return service;
47
+ }
48
+ }
49
+ function assertNever(value) {
50
+ throw new ValidationError(`Unsupported blob provider: ${JSON.stringify(value)}`);
51
+ }
52
+ //# sourceMappingURL=BlobStoreFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobStoreFactory.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobStoreFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,kBAAkB,EAAE,sCAAiC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,yCAAoC;AACpE,OAAO,EAAE,kBAAkB,EAAE,sCAAiC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,4CAAuC;AACvE,OAAO,EAAE,mBAAmB,EAAE,wCAAmC;AACjE,OAAO,EAAE,qBAAqB,EAAE,4CAAuC;AACvE,OAAO,EAAE,oBAAoB,EAAE,0CAAqC;AACpE,OAAO,EAAE,sBAAsB,EAAE,8CAAyC;AAE1E,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CACJ,MAAS;QAET,IAAI,OAAyB,CAAC;QAC9B,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,IAAI;gBACP,OAAO,GAAG,IAAI,kBAAkB,EAAiC,CAAC;gBAClE,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,qBAAqB,EAAiC,CAAC;gBACrE,MAAM;YACR,KAAK,IAAI;gBACP,OAAO,GAAG,IAAI,kBAAkB,EAAiC,CAAC;gBAClE,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,GAAG,IAAI,qBAAqB,EAAiC,CAAC;gBACrE,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,GAAG,IAAI,mBAAmB,EAAiC,CAAC;gBACnE,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,GAAG,IAAI,qBAAqB,EAAiC,CAAC;gBACrE,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,GAAG,IAAI,oBAAoB,EAAiC,CAAC;gBACpE,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,sBAAsB,EAAiC,CAAC;gBACtE,MAAM;YACR;gBACE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAA6B;IAChD,MAAM,IAAI,eAAe,CACvB,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @module integrations/blob/core/service
3
+ * @summary Blob store service abstraction.
4
+ * @description Base abstraction for binary large object backends.
5
+ */
6
+ import { ClientBasedService, } from "@decaf-ts/core";
7
+ import { ValidationError } from "@decaf-ts/db-decorators";
8
+ import { cleanKey, physicalKey } from "./BlobKey.js";
9
+ export class BlobStoreService extends ClientBasedService {
10
+ constructor() {
11
+ super();
12
+ }
13
+ get provider() {
14
+ return this.config.provider;
15
+ }
16
+ get sourceId() {
17
+ return this.config.sourceId;
18
+ }
19
+ physicalKey(key) {
20
+ return physicalKey(key, this.config.prefix);
21
+ }
22
+ cleanKey(key) {
23
+ return cleanKey(key);
24
+ }
25
+ getConfigFromArgs(...args) {
26
+ const config = args[0];
27
+ if (!config || typeof config !== "object") {
28
+ throw new ValidationError("Blob store config must be the first initialize argument");
29
+ }
30
+ return config;
31
+ }
32
+ uri(key, scheme, extra) {
33
+ const base = `${scheme}://${this.sourceId}/${this.physicalKey(key)}`;
34
+ return extra ? `${base}?${extra}` : base;
35
+ }
36
+ }
37
+ //# sourceMappingURL=BlobStoreService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobStoreService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,kBAAkB,GAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAkB;AAiBlD,MAAM,OAAgB,gBAGpB,SAAQ,kBAAoC;IAC5C;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAoDS,WAAW,CAAC,GAAY;QAChC,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAES,QAAQ,CAAC,GAAY;QAC7B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAES,iBAAiB,CACzB,GAAG,IAA6B;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;QAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAe,CACvB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,GAAG,CAAC,GAAY,EAAE,MAAc,EAAE,KAAc;QACxD,MAAM,IAAI,GAAG,GAAG,MAAM,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BlobTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobTypes.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @module integrations/blob/core/value
3
+ * @summary Blob value helpers.
4
+ * @description Utilities for normalizing blob values and collecting them into buffers.
5
+ */
6
+ import { getCrypto } from "@decaf-ts/crypto/common";
7
+ import { ValidationError } from "@decaf-ts/db-decorators";
8
+ /**
9
+ * Converts any supported BlobValue into an AsyncIterable of Uint8Array chunks.
10
+ */
11
+ export function toAsyncIterable(value) {
12
+ if (value instanceof Uint8Array) {
13
+ return (async function* () {
14
+ yield value;
15
+ })();
16
+ }
17
+ const anyValue = value;
18
+ if (anyValue && typeof anyValue[Symbol.asyncIterator] === "function") {
19
+ return anyValue;
20
+ }
21
+ if (anyValue && typeof anyValue.getReader === "function") {
22
+ return (async function* () {
23
+ const reader = anyValue.getReader();
24
+ try {
25
+ let result = await reader.read();
26
+ while (!result.done) {
27
+ yield result.value;
28
+ result = await reader.read();
29
+ }
30
+ }
31
+ finally {
32
+ reader.releaseLock();
33
+ }
34
+ })();
35
+ }
36
+ if (anyValue && typeof anyValue[Symbol.iterator] === "function") {
37
+ return (async function* () {
38
+ for (const chunk of anyValue) {
39
+ yield chunk;
40
+ }
41
+ })();
42
+ }
43
+ throw new ValidationError(`Unsupported blob value type: ${typeof value}`);
44
+ }
45
+ /**
46
+ * Collects an AsyncIterable of Uint8Array chunks into a single Buffer.
47
+ */
48
+ export async function collectToBuffer(value) {
49
+ if (value instanceof Uint8Array) {
50
+ return Buffer.from(value);
51
+ }
52
+ const chunks = [];
53
+ for await (const chunk of toAsyncIterable(value)) {
54
+ chunks.push(Buffer.from(chunk));
55
+ }
56
+ return Buffer.concat(chunks);
57
+ }
58
+ /**
59
+ * Computes the sha256 hex digest of a blob value.
60
+ */
61
+ export async function computeSha256(value) {
62
+ const buffer = await collectToBuffer(value);
63
+ const crypto = (await getCrypto());
64
+ return crypto.createHash("sha256").update(buffer).digest("hex");
65
+ }
66
+ //# sourceMappingURL=BlobValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlobValue.js","sourceRoot":"","sources":["../../../../src/blob/core/BlobValue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAgB;IAEhB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,KAAY,CAAC;IAC9B,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;QACrE,OAAO,QAAqC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,MAAM,MAAM,CAAC,KAAmB,CAAC;oBACjC,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;QAChE,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,QAAgC,EAAE,CAAC;gBACrD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,MAAM,IAAI,eAAe,CACvB,gCAAgC,OAAO,KAAK,EAAE,CAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAgB;IAEhB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAgB;IAClD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,EAAE,CAAQ,CAAC;IAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module integrations/blob/core
3
+ * @summary Blob core exports.
4
+ * @description Re-exports the blob store core types, errors, key/value helpers, service abstraction, and factory.
5
+ */
6
+ export * from "./BlobTypes.js";
7
+ export * from "./BlobErrors.js";
8
+ export * from "./BlobKey.js";
9
+ export * from "./BlobValue.js";
10
+ export * from "./BlobStoreService.js";
11
+ export * from "./BlobStoreFactory.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blob/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,+BAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B;AAC1B,+BAA4B;AAC5B,sCAAmC;AACnC,sCAAmC"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * @module integrations/blob/gcp/service
3
+ * @summary Google Cloud Storage blob store service.
4
+ * @description Blob store backed by Google Cloud Storage via @google-cloud/storage.
5
+ */
6
+ import { Storage } from "@google-cloud/storage";
7
+ import { AuthorizationError, ConnectionError, ForbiddenError, UnsupportedError, } from "@decaf-ts/core";
8
+ import { ConflictError, InternalError, NotFoundError, ValidationError, } from "@decaf-ts/db-decorators";
9
+ import { BlobStoreService } from "./../core/BlobStoreService.js";
10
+ import { collectToBuffer, computeSha256, toAsyncIterable } from "./../core/BlobValue.js";
11
+ export class GcsBlobStoreService extends BlobStoreService {
12
+ async initialize(...args) {
13
+ const { log } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
14
+ const config = this.getConfigFromArgs(...args);
15
+ if (!config.bucket) {
16
+ throw new InternalError("GcsBlobStoreService requires a bucket");
17
+ }
18
+ const storageOptions = {};
19
+ if (config.projectId)
20
+ storageOptions.projectId = config.projectId;
21
+ if (config.credentials)
22
+ storageOptions.credentials = config.credentials;
23
+ if (config.apiEndpoint)
24
+ storageOptions.apiEndpoint = config.apiEndpoint;
25
+ this.storage = new Storage(storageOptions);
26
+ const client = this.storage.bucket(config.bucket);
27
+ this._config = config;
28
+ this._client = client;
29
+ log.verbose(`Initialized GCS blob store ${config.sourceId}`);
30
+ return { config, client };
31
+ }
32
+ async put(key, value, options = {}, ...args) {
33
+ const { log } = (await this.logCtx(args, "put", true)).for(this.put);
34
+ log.verbose(`Putting blob ${key}`);
35
+ const objectName = this.physicalKey(key);
36
+ if (options.ifNotExists) {
37
+ if (await this.has(key)) {
38
+ throw new ConflictError(`Blob already exists: ${key}`);
39
+ }
40
+ }
41
+ const buffer = await collectToBuffer(value);
42
+ if (options.expectedSha256) {
43
+ const sha256 = await computeSha256(buffer);
44
+ if (options.expectedSha256 !== sha256) {
45
+ throw new ValidationError(`Checksum mismatch for ${key}`);
46
+ }
47
+ }
48
+ try {
49
+ const file = this.client.file(objectName);
50
+ const metadata = { ...(options.metadata ?? {}) };
51
+ await file.save(buffer, {
52
+ contentType: options.contentType,
53
+ metadata,
54
+ });
55
+ const [info] = await file.getMetadata();
56
+ const resultMetadata = {
57
+ contentType: options.contentType,
58
+ contentLength: Number(info.size ?? buffer.length),
59
+ etag: info.etag,
60
+ custom: options.metadata,
61
+ };
62
+ return {
63
+ key,
64
+ uri: this.uri(key, "gcs"),
65
+ provider: this.provider,
66
+ sourceId: this.sourceId,
67
+ metadata: resultMetadata,
68
+ };
69
+ }
70
+ catch (error) {
71
+ throw this.parseError(error);
72
+ }
73
+ }
74
+ async get(key, options = {}, ...args) {
75
+ const { log } = (await this.logCtx(args, "get", true)).for(this.get);
76
+ log.verbose(`Getting blob ${key}`);
77
+ const objectName = this.physicalKey(key);
78
+ try {
79
+ const file = this.client.file(objectName);
80
+ const [exists] = await file.exists();
81
+ if (!exists) {
82
+ throw new NotFoundError(`Blob not found: ${key}`);
83
+ }
84
+ const readOptions = {};
85
+ if (options.range) {
86
+ readOptions.start = options.range.start;
87
+ if (options.range.end !== undefined)
88
+ readOptions.end = options.range.end;
89
+ }
90
+ const [info] = await file.getMetadata();
91
+ const stream = file.createReadStream(readOptions);
92
+ const metadata = {
93
+ contentType: info.contentType,
94
+ contentLength: Number(info.size),
95
+ etag: info.etag,
96
+ };
97
+ return {
98
+ key,
99
+ value: toAsyncIterable(stream),
100
+ uri: this.uri(key, "gcs"),
101
+ provider: this.provider,
102
+ sourceId: this.sourceId,
103
+ metadata,
104
+ };
105
+ }
106
+ catch (error) {
107
+ throw this.parseError(error);
108
+ }
109
+ }
110
+ async has(key, ...args) {
111
+ const { log } = (await this.logCtx(args, "has", true)).for(this.has);
112
+ log.verbose(`Checking blob ${key}`);
113
+ try {
114
+ const [exists] = await this.client.file(this.physicalKey(key)).exists();
115
+ return exists;
116
+ }
117
+ catch (error) {
118
+ throw this.parseError(error);
119
+ }
120
+ }
121
+ async stat(key, ...args) {
122
+ const { log } = (await this.logCtx(args, "stat", true)).for(this.stat);
123
+ log.verbose(`Statting blob ${key}`);
124
+ try {
125
+ const [info] = await this.client.file(this.physicalKey(key)).getMetadata();
126
+ return {
127
+ contentType: info.contentType,
128
+ contentLength: Number(info.size),
129
+ etag: info.etag,
130
+ custom: info.metadata,
131
+ };
132
+ }
133
+ catch (error) {
134
+ throw this.parseError(error);
135
+ }
136
+ }
137
+ async delete(key, ...args) {
138
+ const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
139
+ log.verbose(`Deleting blob ${key}`);
140
+ try {
141
+ await this.client.file(this.physicalKey(key)).delete({ ignoreNotFound: true });
142
+ }
143
+ catch (error) {
144
+ throw this.parseError(error);
145
+ }
146
+ }
147
+ async copy(fromKey, toKey, options = {}, ...args) {
148
+ const { log } = (await this.logCtx(args, "copy", true)).for(this.copy);
149
+ log.verbose(`Copying blob ${fromKey} to ${toKey}`);
150
+ try {
151
+ const sourceFile = this.client.file(this.physicalKey(fromKey));
152
+ const targetFile = this.client.file(this.physicalKey(toKey));
153
+ const [copied] = await sourceFile.copy(targetFile);
154
+ const [info] = await copied.getMetadata();
155
+ const metadata = {
156
+ contentType: options.contentType ?? info.contentType,
157
+ contentLength: Number(info.size),
158
+ etag: info.etag,
159
+ custom: options.metadata,
160
+ };
161
+ return {
162
+ key: toKey,
163
+ uri: this.uri(toKey, "gcs"),
164
+ provider: this.provider,
165
+ sourceId: this.sourceId,
166
+ metadata,
167
+ };
168
+ }
169
+ catch (error) {
170
+ throw this.parseError(error);
171
+ }
172
+ }
173
+ async list(options = {}, ...args) {
174
+ const { log } = (await this.logCtx(args, "list", true)).for(this.list);
175
+ log.verbose("Listing blobs");
176
+ const prefix = this.physicalKey(options.prefix ?? "");
177
+ try {
178
+ const items = [];
179
+ const [files] = await this.client.getFiles({
180
+ prefix: prefix || undefined,
181
+ maxResults: options.limit,
182
+ pageToken: options.cursor,
183
+ });
184
+ for (const file of files) {
185
+ const [info] = await file.getMetadata();
186
+ items.push({
187
+ key: file.name,
188
+ metadata: {
189
+ contentLength: Number(info.size),
190
+ etag: info.etag,
191
+ contentType: info.contentType,
192
+ },
193
+ });
194
+ }
195
+ return { items };
196
+ }
197
+ catch (error) {
198
+ throw this.parseError(error);
199
+ }
200
+ }
201
+ async url(key, options = {}, ...args) {
202
+ const { log } = (await this.logCtx(args, "url", true)).for(this.url);
203
+ log.verbose(`Building url for blob ${key}`);
204
+ const objectName = this.physicalKey(key);
205
+ const operation = options.operation ?? "get";
206
+ const expiresIn = options.expiresInSeconds ?? 300;
207
+ try {
208
+ const file = this.client.file(objectName);
209
+ const action = operation === "put" ? "write" : "read";
210
+ const config = {
211
+ version: "v4",
212
+ action,
213
+ expires: Date.now() + expiresIn * 1000,
214
+ };
215
+ if (options.contentType)
216
+ config.contentType = options.contentType;
217
+ const [url] = await file.getSignedUrl(config);
218
+ return {
219
+ url,
220
+ method: operation === "put" ? "PUT" : "GET",
221
+ expiresAt: new Date(Date.now() + expiresIn * 1000),
222
+ headers: options.contentType
223
+ ? { "Content-Type": options.contentType }
224
+ : undefined,
225
+ };
226
+ }
227
+ catch (error) {
228
+ throw this.parseError(error);
229
+ }
230
+ }
231
+ parseError(error) {
232
+ const err = error;
233
+ if (err instanceof NotFoundError ||
234
+ err instanceof ConflictError ||
235
+ err instanceof AuthorizationError ||
236
+ err instanceof ForbiddenError ||
237
+ err instanceof ValidationError ||
238
+ err instanceof ConnectionError ||
239
+ err instanceof UnsupportedError ||
240
+ err instanceof InternalError) {
241
+ return err;
242
+ }
243
+ const message = err.message || "Unknown error";
244
+ const lower = message.toLowerCase();
245
+ const code = err?.code || err?.status;
246
+ if (lower.includes("not found") || code === 404 || code === "ENOENT" || code === 5) {
247
+ return new NotFoundError(err);
248
+ }
249
+ if (lower.includes("already exists") || code === 409 || code === "EEXIST" || code === 6) {
250
+ return new ConflictError(err);
251
+ }
252
+ if (lower.includes("unauthorized") || code === 401 || code === 16) {
253
+ return new AuthorizationError(err);
254
+ }
255
+ if (lower.includes("permission") || code === 403 || code === 7) {
256
+ return new ForbiddenError(err);
257
+ }
258
+ if (lower.includes("rate limit") || code === 429 || code === 8) {
259
+ return new ConflictError(err);
260
+ }
261
+ if (lower.includes("timeout") || lower.includes("unavailable") || lower.includes("connection") || code === 14 || code === 503) {
262
+ return new ConnectionError(err);
263
+ }
264
+ return new InternalError(err);
265
+ }
266
+ }
267
+ //# sourceMappingURL=GcsBlobStoreService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GcsBlobStoreService.js","sourceRoot":"","sources":["../../../../src/blob/gcp/GcsBlobStoreService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module integrations/blob/gcp
3
+ * @summary Google Cloud Storage blob store exports.
4
+ * @description Re-exports the GCS blob store service.
5
+ */
6
+ export * from "./GcsBlobStoreService.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blob/gcp/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yCAAsC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module integrations/blob
3
+ * @summary Blob store management helpers for the integrations package.
4
+ * @description Re-exports the blob store core abstractions only. Provider implementations are exported
5
+ * through their own subpaths so the core entry does not eagerly load optional provider SDKs.
6
+ */
7
+ export * from "./core/index.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blob/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,gCAAuB"}