@decaf-ts/integrations 0.1.3 → 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 (172) 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 +2 -2
  59. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -1
  60. package/lib/cjs/index.cjs +3 -3
  61. package/lib/esm/blob/azure/AzureBlobStoreService.js +288 -0
  62. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  63. package/lib/esm/blob/azure/index.js +7 -0
  64. package/lib/esm/blob/azure/index.js.map +1 -0
  65. package/lib/esm/blob/core/BlobErrors.js +61 -0
  66. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  67. package/lib/esm/blob/core/BlobKey.js +32 -0
  68. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  69. package/lib/esm/blob/core/BlobStoreFactory.js +52 -0
  70. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  71. package/lib/esm/blob/core/BlobStoreService.js +37 -0
  72. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  73. package/lib/esm/blob/core/BlobTypes.js +2 -0
  74. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  75. package/lib/esm/blob/core/BlobValue.js +66 -0
  76. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  77. package/lib/esm/blob/core/index.js +12 -0
  78. package/lib/esm/blob/core/index.js.map +1 -0
  79. package/lib/esm/blob/gcp/GcsBlobStoreService.js +267 -0
  80. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  81. package/lib/esm/blob/gcp/index.js +7 -0
  82. package/lib/esm/blob/gcp/index.js.map +1 -0
  83. package/lib/esm/blob/index.js +8 -0
  84. package/lib/esm/blob/index.js.map +1 -0
  85. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +177 -0
  86. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  87. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +23 -0
  88. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  89. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +30 -0
  90. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  91. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +40 -0
  92. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  93. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +30 -0
  94. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  95. package/lib/esm/blob/ipfs/index.js +11 -0
  96. package/lib/esm/blob/ipfs/index.js.map +1 -0
  97. package/lib/esm/blob/local/LocalBlobStoreService.js +283 -0
  98. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  99. package/lib/esm/blob/local/index.js +7 -0
  100. package/lib/esm/blob/local/index.js.map +1 -0
  101. package/lib/esm/blob/memory/MemoryBlobStoreService.js +141 -0
  102. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  103. package/lib/esm/blob/memory/index.js +7 -0
  104. package/lib/esm/blob/memory/index.js.map +1 -0
  105. package/lib/esm/blob/s3/MinioBlobStoreService.js +9 -0
  106. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  107. package/lib/esm/blob/s3/R2BlobStoreService.js +9 -0
  108. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  109. package/lib/esm/blob/s3/S3BlobStoreService.js +317 -0
  110. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  111. package/lib/esm/blob/s3/index.js +9 -0
  112. package/lib/esm/blob/s3/index.js.map +1 -0
  113. package/lib/esm/docker/DockerComposeService.js +2 -2
  114. package/lib/esm/docker/DockerComposeService.js.map +1 -1
  115. package/lib/esm/index.js +3 -3
  116. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +25 -0
  117. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +25 -0
  118. package/lib/types/blob/azure/index.d.cts +6 -0
  119. package/lib/types/blob/azure/index.d.mts +6 -0
  120. package/lib/types/blob/core/BlobErrors.d.cts +14 -0
  121. package/lib/types/blob/core/BlobErrors.d.mts +14 -0
  122. package/lib/types/blob/core/BlobKey.d.cts +9 -0
  123. package/lib/types/blob/core/BlobKey.d.mts +9 -0
  124. package/lib/types/blob/core/BlobStoreFactory.d.cts +5 -0
  125. package/lib/types/blob/core/BlobStoreFactory.d.mts +5 -0
  126. package/lib/types/blob/core/BlobStoreService.d.cts +28 -0
  127. package/lib/types/blob/core/BlobStoreService.d.mts +28 -0
  128. package/lib/types/blob/core/BlobTypes.d.cts +122 -0
  129. package/lib/types/blob/core/BlobTypes.d.mts +122 -0
  130. package/lib/types/blob/core/BlobValue.d.cts +13 -0
  131. package/lib/types/blob/core/BlobValue.d.mts +13 -0
  132. package/lib/types/blob/core/index.d.cts +11 -0
  133. package/lib/types/blob/core/index.d.mts +11 -0
  134. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +25 -0
  135. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +25 -0
  136. package/lib/types/blob/gcp/index.d.cts +6 -0
  137. package/lib/types/blob/gcp/index.d.mts +6 -0
  138. package/lib/types/blob/index.d.cts +7 -0
  139. package/lib/types/blob/index.d.mts +7 -0
  140. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +26 -0
  141. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +26 -0
  142. package/lib/types/blob/ipfs/IpfsKeyIndex.d.cts +9 -0
  143. package/lib/types/blob/ipfs/IpfsKeyIndex.d.mts +9 -0
  144. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.cts +11 -0
  145. package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.mts +11 -0
  146. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.cts +15 -0
  147. package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.mts +15 -0
  148. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.cts +11 -0
  149. package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.mts +11 -0
  150. package/lib/types/blob/ipfs/index.d.cts +10 -0
  151. package/lib/types/blob/ipfs/index.d.mts +10 -0
  152. package/lib/types/blob/local/LocalBlobStoreService.d.cts +30 -0
  153. package/lib/types/blob/local/LocalBlobStoreService.d.mts +30 -0
  154. package/lib/types/blob/local/index.d.cts +6 -0
  155. package/lib/types/blob/local/index.d.mts +6 -0
  156. package/lib/types/blob/memory/MemoryBlobStoreService.d.cts +28 -0
  157. package/lib/types/blob/memory/MemoryBlobStoreService.d.mts +28 -0
  158. package/lib/types/blob/memory/index.d.cts +6 -0
  159. package/lib/types/blob/memory/index.d.mts +6 -0
  160. package/lib/types/blob/s3/MinioBlobStoreService.d.cts +8 -0
  161. package/lib/types/blob/s3/MinioBlobStoreService.d.mts +8 -0
  162. package/lib/types/blob/s3/R2BlobStoreService.d.cts +8 -0
  163. package/lib/types/blob/s3/R2BlobStoreService.d.mts +8 -0
  164. package/lib/types/blob/s3/S3BlobStoreService.d.cts +25 -0
  165. package/lib/types/blob/s3/S3BlobStoreService.d.mts +25 -0
  166. package/lib/types/blob/s3/index.d.cts +8 -0
  167. package/lib/types/blob/s3/index.d.mts +8 -0
  168. package/lib/types/docker/DockerComposeService.d.cts +6 -0
  169. package/lib/types/docker/DockerComposeService.d.mts +6 -0
  170. package/lib/types/index.d.cts +2 -2
  171. package/lib/types/index.d.mts +2 -2
  172. package/package.json +88 -6
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalBlobStoreService = void 0;
4
+ /**
5
+ * @module integrations/blob/local/service
6
+ * @summary Local filesystem blob store service.
7
+ * @description Filesystem-backed blob store wrapping node:fs with atomic writes and path-traversal protection.
8
+ */
9
+ const core_1 = require("@decaf-ts/core");
10
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
11
+ const common_1 = require("@decaf-ts/crypto/common");
12
+ const fs_1 = require("fs");
13
+ const path_1 = require("path");
14
+ const BlobStoreService_js_1 = require("./../core/BlobStoreService.cjs");
15
+ class LocalBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
16
+ async initialize(...args) {
17
+ const config = this.getConfigFromArgs(...args);
18
+ if (!config.rootPath) {
19
+ throw new db_decorators_1.InternalError("LocalBlobStoreService requires a rootPath");
20
+ }
21
+ await fs_1.promises.mkdir(config.rootPath, { recursive: true });
22
+ this._config = config;
23
+ this._client = { root: (0, path_1.resolve)(config.rootPath) };
24
+ return { config, client: this._client };
25
+ }
26
+ async put(key, value, options = {}, ...args) {
27
+ const { log } = (await this.logCtx(args, "put", true)).for(this.put);
28
+ log.verbose(`Putting blob ${key}`);
29
+ const targetPath = this.safePath(key);
30
+ if (options.ifNotExists) {
31
+ try {
32
+ await fs_1.promises.stat(targetPath);
33
+ throw new db_decorators_1.ConflictError(`Blob already exists: ${key}`);
34
+ }
35
+ catch (e) {
36
+ if (e.code !== "ENOENT")
37
+ throw e;
38
+ }
39
+ }
40
+ await fs_1.promises.mkdir((0, path_1.dirname)(targetPath), { recursive: true });
41
+ const buffer = await collectToBufferLocal(value);
42
+ const crypto = (await (0, common_1.getCrypto)());
43
+ const sha256 = crypto.createHash("sha256").update(buffer).digest("hex");
44
+ if (options.expectedSha256 && options.expectedSha256 !== sha256) {
45
+ throw new db_decorators_1.ValidationError(`Checksum mismatch for ${key}`);
46
+ }
47
+ await this.atomicWrite(targetPath, buffer);
48
+ const metadata = {
49
+ contentType: options.contentType,
50
+ contentLength: buffer.length,
51
+ sha256,
52
+ custom: options.metadata,
53
+ };
54
+ return {
55
+ key,
56
+ uri: this.uri(key, "file"),
57
+ provider: this.provider,
58
+ sourceId: this.sourceId,
59
+ metadata,
60
+ };
61
+ }
62
+ async get(key, options = {}, ...args) {
63
+ const { log } = (await this.logCtx(args, "get", true)).for(this.get);
64
+ log.verbose(`Getting blob ${key}`);
65
+ const targetPath = this.safePath(key);
66
+ const stat = await this.safeStat(targetPath);
67
+ if (!stat) {
68
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
69
+ }
70
+ const stream = (0, fs_1.createReadStream)(targetPath, {
71
+ start: options.range?.start,
72
+ end: options.range?.end,
73
+ });
74
+ const metadata = {
75
+ contentLength: stat.size,
76
+ };
77
+ return {
78
+ key,
79
+ value: streamToAsyncIterable(stream),
80
+ uri: this.uri(key, "file"),
81
+ provider: this.provider,
82
+ sourceId: this.sourceId,
83
+ metadata,
84
+ };
85
+ }
86
+ async has(key, ...args) {
87
+ const { log } = (await this.logCtx(args, "has", true)).for(this.has);
88
+ log.verbose(`Checking blob ${key}`);
89
+ const targetPath = this.safePath(key);
90
+ return Boolean(await this.safeStat(targetPath));
91
+ }
92
+ async stat(key, ...args) {
93
+ const { log } = (await this.logCtx(args, "stat", true)).for(this.stat);
94
+ log.verbose(`Statting blob ${key}`);
95
+ const targetPath = this.safePath(key);
96
+ const stat = await this.safeStat(targetPath);
97
+ if (!stat) {
98
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
99
+ }
100
+ return { contentLength: stat.size };
101
+ }
102
+ async delete(key, ...args) {
103
+ const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
104
+ log.verbose(`Deleting blob ${key}`);
105
+ const targetPath = this.safePath(key);
106
+ try {
107
+ await fs_1.promises.unlink(targetPath);
108
+ }
109
+ catch (e) {
110
+ if (e.code !== "ENOENT")
111
+ throw e;
112
+ }
113
+ }
114
+ async copy(fromKey, toKey, options = {}, ...args) {
115
+ const { log } = (await this.logCtx(args, "copy", true)).for(this.copy);
116
+ log.verbose(`Copying blob ${fromKey} to ${toKey}`);
117
+ const fromPath = this.safePath(fromKey);
118
+ const fromStat = await this.safeStat(fromPath);
119
+ if (!fromStat) {
120
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${fromKey}`);
121
+ }
122
+ const buffer = await fs_1.promises.readFile(fromPath);
123
+ return this.put(toKey, buffer, options);
124
+ }
125
+ async list(options = {}, ...args) {
126
+ const { log } = (await this.logCtx(args, "list", true)).for(this.list);
127
+ log.verbose("Listing blobs");
128
+ const prefix = options.prefix ? this.physicalKey(options.prefix) : "";
129
+ const root = this.client.root;
130
+ const baseDir = prefix ? (0, path_1.join)(root, prefix) : root;
131
+ const allFiles = [];
132
+ await walkDir(baseDir, allFiles);
133
+ const keys = allFiles
134
+ .map((f) => {
135
+ const rel = (0, path_1.relative)(root, f).split(path_1.sep).join("/");
136
+ return prefix ? rel : rel;
137
+ })
138
+ .filter((k) => (prefix ? k.startsWith(prefix) : true))
139
+ .sort();
140
+ const limit = options.limit ?? 1000;
141
+ const startIndex = options.cursor ? Number(options.cursor) : 0;
142
+ const slice = keys.slice(startIndex, startIndex + limit);
143
+ const nextCursor = startIndex + limit < keys.length
144
+ ? String(startIndex + limit)
145
+ : undefined;
146
+ return {
147
+ items: slice.map((k) => ({ key: k })),
148
+ cursor: nextCursor,
149
+ };
150
+ }
151
+ async url(key, options = {}, ...args) {
152
+ const { log } = (await this.logCtx(args, "url", true)).for(this.url);
153
+ log.verbose(`Building url for blob ${key}`);
154
+ if (options.operation && options.operation !== "get") {
155
+ throw new core_1.UnsupportedError("Local blob store does not support PUT urls");
156
+ }
157
+ return {
158
+ url: this.uri(key, "file"),
159
+ method: "GET",
160
+ expiresAt: new Date(Date.now() + (options.expiresInSeconds ?? 300) * 1000),
161
+ };
162
+ }
163
+ parseError(error) {
164
+ const err = error;
165
+ if (err instanceof db_decorators_1.NotFoundError ||
166
+ err instanceof db_decorators_1.ConflictError ||
167
+ err instanceof db_decorators_1.ValidationError ||
168
+ err instanceof db_decorators_1.InternalError) {
169
+ return err;
170
+ }
171
+ const message = err.message || "Unknown error";
172
+ const lower = message.toLowerCase();
173
+ const code = err.code;
174
+ if (code === "ENOENT" || lower.includes("not found")) {
175
+ return new db_decorators_1.NotFoundError(err);
176
+ }
177
+ if (code === "EEXIST" || lower.includes("already exists")) {
178
+ return new db_decorators_1.ConflictError(err);
179
+ }
180
+ if (code === "EACCES" || code === "EPERM" || lower.includes("permission")) {
181
+ return new core_1.ForbiddenError(err);
182
+ }
183
+ if (code === "ENAMETOOLONG" || lower.includes("invalid")) {
184
+ return new db_decorators_1.ValidationError(err);
185
+ }
186
+ return new db_decorators_1.InternalError(err);
187
+ }
188
+ safePath(key) {
189
+ const physical = this.physicalKey(key);
190
+ const root = this.client.root;
191
+ const target = (0, path_1.resolve)(root, physical);
192
+ const rel = (0, path_1.relative)(root, target);
193
+ if (rel.startsWith("..") || rel === "" || rel === "." || rel.startsWith(`..${path_1.sep}`)) {
194
+ throw new db_decorators_1.ValidationError(`Blob key escapes root path: ${key}`);
195
+ }
196
+ return target;
197
+ }
198
+ async safeStat(path) {
199
+ try {
200
+ const stat = await fs_1.promises.stat(path);
201
+ if (stat.isFile())
202
+ return { size: stat.size };
203
+ return undefined;
204
+ }
205
+ catch (e) {
206
+ if (e.code === "ENOENT")
207
+ return undefined;
208
+ throw e;
209
+ }
210
+ }
211
+ async atomicWrite(targetPath, buffer) {
212
+ const crypto = (await (0, common_1.getCrypto)());
213
+ const tmpPath = `${targetPath}.${crypto.randomBytes(6).toString("hex")}.tmp`;
214
+ const stream = (0, fs_1.createWriteStream)(tmpPath);
215
+ await new Promise((resolve, reject) => {
216
+ stream.on("error", reject);
217
+ stream.on("finish", () => resolve());
218
+ stream.end(buffer);
219
+ });
220
+ try {
221
+ await fs_1.promises.rename(tmpPath, targetPath);
222
+ }
223
+ catch (e) {
224
+ try {
225
+ await fs_1.promises.unlink(tmpPath);
226
+ }
227
+ catch {
228
+ /* ignore */
229
+ }
230
+ throw e;
231
+ }
232
+ }
233
+ }
234
+ exports.LocalBlobStoreService = LocalBlobStoreService;
235
+ async function collectToBufferLocal(value) {
236
+ if (value instanceof Uint8Array)
237
+ return Buffer.from(value);
238
+ if (value instanceof Buffer)
239
+ return value;
240
+ if (typeof value?.[Symbol.asyncIterator] === "function") {
241
+ const chunks = [];
242
+ for await (const chunk of value) {
243
+ chunks.push(Buffer.from(chunk));
244
+ }
245
+ return Buffer.concat(chunks);
246
+ }
247
+ if (typeof value?.getReader === "function") {
248
+ const reader = value.getReader();
249
+ const chunks = [];
250
+ let result = await reader.read();
251
+ while (!result.done) {
252
+ chunks.push(Buffer.from(result.value));
253
+ result = await reader.read();
254
+ }
255
+ return Buffer.concat(chunks);
256
+ }
257
+ throw new db_decorators_1.ValidationError(`Unsupported blob value type: ${typeof value}`);
258
+ }
259
+ async function* streamToAsyncIterable(stream) {
260
+ for await (const chunk of stream) {
261
+ yield chunk;
262
+ }
263
+ }
264
+ async function walkDir(dir, acc) {
265
+ let entries;
266
+ try {
267
+ entries = await fs_1.promises.readdir(dir);
268
+ }
269
+ catch (e) {
270
+ if (e.code === "ENOENT")
271
+ return;
272
+ throw e;
273
+ }
274
+ for (const entry of entries) {
275
+ if (entry.endsWith(".tmp"))
276
+ continue;
277
+ const full = (0, path_1.join)(dir, entry);
278
+ const stat = await fs_1.promises.stat(full);
279
+ if (stat.isDirectory()) {
280
+ await walkDir(full, acc);
281
+ }
282
+ else {
283
+ acc.push(full);
284
+ }
285
+ }
286
+ }
287
+ //# sourceMappingURL=LocalBlobStoreService.js.map
288
+ //# sourceMappingURL=LocalBlobStoreService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/local/LocalBlobStoreService.cjs","sourceRoot":"","sources":["blob/local/LocalBlobStoreService.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module integrations/blob/local
19
+ * @summary Local filesystem blob store exports.
20
+ * @description Re-exports the local filesystem blob store service.
21
+ */
22
+ __exportStar(require("./LocalBlobStoreService.cjs"), exports);
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/local/index.cjs","sourceRoot":"","sources":["blob/local/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,6DAA2C;AAC3C,iCAAiC"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryBlobStoreService = void 0;
4
+ /**
5
+ * @module integrations/blob/memory/service
6
+ * @summary In-memory blob store service.
7
+ * @description Process-local Map-backed blob store for tests and examples. No SDK dependency.
8
+ */
9
+ const core_1 = require("@decaf-ts/core");
10
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
11
+ const BlobValue_js_1 = require("./../core/BlobValue.cjs");
12
+ const BlobStoreService_js_1 = require("./../core/BlobStoreService.cjs");
13
+ class MemoryBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
14
+ async initialize(...args) {
15
+ const config = this.getConfigFromArgs(...args);
16
+ this._config = config;
17
+ this._client = new Map();
18
+ return { config, client: this._client };
19
+ }
20
+ async put(key, value, options = {}, ...args) {
21
+ const { log } = (await this.logCtx(args, "put", true)).for(this.put);
22
+ log.verbose(`Putting blob ${key}`);
23
+ const physicalKey = this.physicalKey(key);
24
+ if (options.ifNotExists && this.client.has(physicalKey)) {
25
+ throw new db_decorators_1.ConflictError(`Blob already exists: ${key}`);
26
+ }
27
+ const buffer = await (0, BlobValue_js_1.collectToBuffer)(value);
28
+ const sha256 = await (0, BlobValue_js_1.computeSha256)(buffer);
29
+ if (options.expectedSha256 && options.expectedSha256 !== sha256) {
30
+ throw new db_decorators_1.ValidationError(`Checksum mismatch for ${key}`);
31
+ }
32
+ const metadata = {
33
+ contentType: options.contentType,
34
+ contentLength: buffer.length,
35
+ sha256,
36
+ custom: options.metadata,
37
+ };
38
+ this.client.set(physicalKey, { value: buffer, metadata });
39
+ return {
40
+ key,
41
+ uri: this.uri(key, "memory"),
42
+ provider: this.provider,
43
+ sourceId: this.sourceId,
44
+ metadata,
45
+ };
46
+ }
47
+ async get(key, options = {}, ...args) {
48
+ const { log } = (await this.logCtx(args, "get", true)).for(this.get);
49
+ log.verbose(`Getting blob ${key}`);
50
+ const physicalKey = this.physicalKey(key);
51
+ const entry = this.client.get(physicalKey);
52
+ if (!entry) {
53
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
54
+ }
55
+ let value = entry.value;
56
+ if (options.range) {
57
+ const start = options.range.start;
58
+ const end = options.range.end ?? entry.value.length;
59
+ value = entry.value.subarray(start, end);
60
+ }
61
+ return {
62
+ key,
63
+ value: (0, BlobValue_js_1.toAsyncIterable)(value),
64
+ uri: this.uri(key, "memory"),
65
+ provider: this.provider,
66
+ sourceId: this.sourceId,
67
+ metadata: entry.metadata,
68
+ };
69
+ }
70
+ async has(key, ...args) {
71
+ const { log } = (await this.logCtx(args, "has", true)).for(this.has);
72
+ log.verbose(`Checking blob ${key}`);
73
+ return this.client.has(this.physicalKey(key));
74
+ }
75
+ async stat(key, ...args) {
76
+ const { log } = (await this.logCtx(args, "stat", true)).for(this.stat);
77
+ log.verbose(`Statting blob ${key}`);
78
+ const entry = this.client.get(this.physicalKey(key));
79
+ if (!entry) {
80
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
81
+ }
82
+ return entry.metadata;
83
+ }
84
+ async delete(key, ...args) {
85
+ const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
86
+ log.verbose(`Deleting blob ${key}`);
87
+ this.client.delete(this.physicalKey(key));
88
+ }
89
+ async copy(fromKey, toKey, options = {}, ...args) {
90
+ const { log } = (await this.logCtx(args, "copy", true)).for(this.copy);
91
+ log.verbose(`Copying blob ${fromKey} to ${toKey}`);
92
+ const source = this.client.get(this.physicalKey(fromKey));
93
+ if (!source) {
94
+ throw new db_decorators_1.NotFoundError(`Blob not found: ${fromKey}`);
95
+ }
96
+ return this.put(toKey, source.value, {
97
+ ...options,
98
+ contentType: options.contentType ?? source.metadata.contentType,
99
+ });
100
+ }
101
+ async list(options = {}, ...args) {
102
+ const { log } = (await this.logCtx(args, "list", true)).for(this.list);
103
+ log.verbose("Listing blobs");
104
+ const prefix = options.prefix ? this.physicalKey(options.prefix) : "";
105
+ const allKeys = Array.from(this.client.keys())
106
+ .filter((k) => (prefix ? k.startsWith(prefix) : true))
107
+ .sort();
108
+ const limit = options.limit ?? 1000;
109
+ const startIndex = options.cursor ? Number(options.cursor) : 0;
110
+ const slice = allKeys.slice(startIndex, startIndex + limit);
111
+ const nextCursor = startIndex + limit < allKeys.length
112
+ ? String(startIndex + limit)
113
+ : undefined;
114
+ return {
115
+ items: slice.map((k) => ({
116
+ key: k,
117
+ metadata: this.client.get(k)?.metadata,
118
+ })),
119
+ cursor: nextCursor,
120
+ };
121
+ }
122
+ async url(key, options = {}, ...args) {
123
+ const { log } = (await this.logCtx(args, "url", true)).for(this.url);
124
+ log.verbose(`Building url for blob ${key}`);
125
+ if (options.operation && options.operation !== "get") {
126
+ throw new core_1.UnsupportedError("Memory blob store does not support PUT urls");
127
+ }
128
+ return {
129
+ url: this.uri(key, "memory"),
130
+ method: "GET",
131
+ expiresAt: new Date(Date.now() + (options.expiresInSeconds ?? 300) * 1000),
132
+ };
133
+ }
134
+ parseError(error) {
135
+ if (error instanceof db_decorators_1.NotFoundError ||
136
+ error instanceof db_decorators_1.ConflictError ||
137
+ error instanceof db_decorators_1.ValidationError ||
138
+ error instanceof db_decorators_1.InternalError) {
139
+ return error;
140
+ }
141
+ return new db_decorators_1.InternalError(`Memory blob error: ${error.message}`);
142
+ }
143
+ }
144
+ exports.MemoryBlobStoreService = MemoryBlobStoreService;
145
+ //# sourceMappingURL=MemoryBlobStoreService.js.map
146
+ //# sourceMappingURL=MemoryBlobStoreService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/memory/MemoryBlobStoreService.cjs","sourceRoot":"","sources":["blob/memory/MemoryBlobStoreService.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module integrations/blob/memory
19
+ * @summary In-memory blob store exports.
20
+ * @description Re-exports the in-memory blob store service.
21
+ */
22
+ __exportStar(require("./MemoryBlobStoreService.cjs"), exports);
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/memory/index.cjs","sourceRoot":"","sources":["blob/memory/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,8DAA4C;AAC5C,iCAAiC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MinioBlobStoreService = void 0;
4
+ /**
5
+ * @module integrations/blob/s3/minio
6
+ * @summary MinIO blob store service.
7
+ * @description S3-compatible blob store for MinIO. Extends S3BlobStoreService.
8
+ */
9
+ const S3BlobStoreService_js_1 = require("./S3BlobStoreService.cjs");
10
+ class MinioBlobStoreService extends S3BlobStoreService_js_1.S3BlobStoreService {
11
+ }
12
+ exports.MinioBlobStoreService = MinioBlobStoreService;
13
+ //# sourceMappingURL=MinioBlobStoreService.js.map
14
+ //# sourceMappingURL=MinioBlobStoreService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/s3/MinioBlobStoreService.cjs","sourceRoot":"","sources":["blob/s3/MinioBlobStoreService.js"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,mEAA6D;AAC7D,MAAa,qBAAsB,SAAQ,0CAAkB;CAC5D;AADD,sDACC;AACD,iDAAiD"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.R2BlobStoreService = void 0;
4
+ /**
5
+ * @module integrations/blob/s3/r2
6
+ * @summary Cloudflare R2 blob store service.
7
+ * @description S3-compatible blob store for Cloudflare R2. Extends S3BlobStoreService.
8
+ */
9
+ const S3BlobStoreService_js_1 = require("./S3BlobStoreService.cjs");
10
+ class R2BlobStoreService extends S3BlobStoreService_js_1.S3BlobStoreService {
11
+ }
12
+ exports.R2BlobStoreService = R2BlobStoreService;
13
+ //# sourceMappingURL=R2BlobStoreService.js.map
14
+ //# sourceMappingURL=R2BlobStoreService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob/s3/R2BlobStoreService.cjs","sourceRoot":"","sources":["blob/s3/R2BlobStoreService.js"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,mEAA6D;AAC7D,MAAa,kBAAmB,SAAQ,0CAAkB;CACzD;AADD,gDACC;AACD,8CAA8C"}