@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.
- package/dist/integrations.cjs +1 -1
- package/docker/azure-blob-compose.yml +21 -0
- package/docker/gcs-blob-compose.yml +21 -0
- package/docker/ipfs-compose.yml +25 -0
- package/docker/minio-compose.yml +25 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +293 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +24 -0
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +74 -0
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +37 -0
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +57 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +42 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +4 -0
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +72 -0
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +29 -0
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +272 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +24 -0
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +25 -0
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +182 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +27 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +35 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +45 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +35 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/index.cjs +28 -0
- package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +288 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +24 -0
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +146 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +24 -0
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +14 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +14 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +322 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +26 -0
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/esm/blob/azure/AzureBlobStoreService.js +288 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +7 -0
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +61 -0
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +32 -0
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +52 -0
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +37 -0
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +2 -0
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +66 -0
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +12 -0
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +267 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +7 -0
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +8 -0
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +177 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +23 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +30 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +40 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +30 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/index.js +11 -0
- package/lib/esm/blob/ipfs/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +283 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +7 -0
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +141 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +7 -0
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +9 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +9 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +317 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +9 -0
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +2 -2
- package/lib/esm/docker/DockerComposeService.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/types/blob/azure/AzureBlobStoreService.d.cts +25 -0
- package/lib/types/blob/azure/AzureBlobStoreService.d.mts +25 -0
- package/lib/types/blob/azure/index.d.cts +6 -0
- package/lib/types/blob/azure/index.d.mts +6 -0
- package/lib/types/blob/core/BlobErrors.d.cts +14 -0
- package/lib/types/blob/core/BlobErrors.d.mts +14 -0
- package/lib/types/blob/core/BlobKey.d.cts +9 -0
- package/lib/types/blob/core/BlobKey.d.mts +9 -0
- package/lib/types/blob/core/BlobStoreFactory.d.cts +5 -0
- package/lib/types/blob/core/BlobStoreFactory.d.mts +5 -0
- package/lib/types/blob/core/BlobStoreService.d.cts +28 -0
- package/lib/types/blob/core/BlobStoreService.d.mts +28 -0
- package/lib/types/blob/core/BlobTypes.d.cts +122 -0
- package/lib/types/blob/core/BlobTypes.d.mts +122 -0
- package/lib/types/blob/core/BlobValue.d.cts +13 -0
- package/lib/types/blob/core/BlobValue.d.mts +13 -0
- package/lib/types/blob/core/index.d.cts +11 -0
- package/lib/types/blob/core/index.d.mts +11 -0
- package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +25 -0
- package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +25 -0
- package/lib/types/blob/gcp/index.d.cts +6 -0
- package/lib/types/blob/gcp/index.d.mts +6 -0
- package/lib/types/blob/index.d.cts +7 -0
- package/lib/types/blob/index.d.mts +7 -0
- package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +26 -0
- package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +26 -0
- package/lib/types/blob/ipfs/IpfsKeyIndex.d.cts +9 -0
- package/lib/types/blob/ipfs/IpfsKeyIndex.d.mts +9 -0
- package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.cts +11 -0
- package/lib/types/blob/ipfs/LocalJsonIpfsKeyIndex.d.mts +11 -0
- package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.cts +15 -0
- package/lib/types/blob/ipfs/MemoryIpfsKeyIndex.d.mts +15 -0
- package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.cts +11 -0
- package/lib/types/blob/ipfs/PostgresIpfsKeyIndex.d.mts +11 -0
- package/lib/types/blob/ipfs/index.d.cts +10 -0
- package/lib/types/blob/ipfs/index.d.mts +10 -0
- package/lib/types/blob/local/LocalBlobStoreService.d.cts +30 -0
- package/lib/types/blob/local/LocalBlobStoreService.d.mts +30 -0
- package/lib/types/blob/local/index.d.cts +6 -0
- package/lib/types/blob/local/index.d.mts +6 -0
- package/lib/types/blob/memory/MemoryBlobStoreService.d.cts +28 -0
- package/lib/types/blob/memory/MemoryBlobStoreService.d.mts +28 -0
- package/lib/types/blob/memory/index.d.cts +6 -0
- package/lib/types/blob/memory/index.d.mts +6 -0
- package/lib/types/blob/s3/MinioBlobStoreService.d.cts +8 -0
- package/lib/types/blob/s3/MinioBlobStoreService.d.mts +8 -0
- package/lib/types/blob/s3/R2BlobStoreService.d.cts +8 -0
- package/lib/types/blob/s3/R2BlobStoreService.d.mts +8 -0
- package/lib/types/blob/s3/S3BlobStoreService.d.cts +25 -0
- package/lib/types/blob/s3/S3BlobStoreService.d.mts +25 -0
- package/lib/types/blob/s3/index.d.cts +8 -0
- package/lib/types/blob/s3/index.d.mts +8 -0
- package/lib/types/docker/DockerComposeService.d.cts +6 -0
- package/lib/types/docker/DockerComposeService.d.mts +6 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/package.json +88 -6
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IpfsBlobStoreService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/blob/ipfs/service
|
|
6
|
+
* @summary IPFS blob store service.
|
|
7
|
+
* @description Blob store backed by an IPFS (Kubo) node. Because the blob API is key/value CRUD-like
|
|
8
|
+
* and IPFS is content-addressed, an IpfsKeyIndex maps logical keys to CIDs.
|
|
9
|
+
*/
|
|
10
|
+
const kubo_rpc_client_1 = require("kubo-rpc-client");
|
|
11
|
+
const core_1 = require("@decaf-ts/core");
|
|
12
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
13
|
+
const BlobStoreService_js_1 = require("./../core/BlobStoreService.cjs");
|
|
14
|
+
const BlobValue_js_1 = require("./../core/BlobValue.cjs");
|
|
15
|
+
const IpfsKeyIndex_js_1 = require("./IpfsKeyIndex.cjs");
|
|
16
|
+
class IpfsBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
|
|
17
|
+
async initialize(...args) {
|
|
18
|
+
const { log } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
|
|
19
|
+
const config = this.getConfigFromArgs(...args);
|
|
20
|
+
const apiUrl = config.apiUrl || "http://localhost:5001";
|
|
21
|
+
const client = (0, kubo_rpc_client_1.create)({ url: apiUrl });
|
|
22
|
+
this.index = (0, IpfsKeyIndex_js_1.createIpfsKeyIndex)(config.keyIndex);
|
|
23
|
+
this._config = config;
|
|
24
|
+
this._client = client;
|
|
25
|
+
log.verbose(`Initialized IPFS blob store ${config.sourceId}`);
|
|
26
|
+
return { config, client };
|
|
27
|
+
}
|
|
28
|
+
async put(key, value, options = {}, ...args) {
|
|
29
|
+
const { log } = (await this.logCtx(args, "put", true)).for(this.put);
|
|
30
|
+
log.verbose(`Putting blob ${key}`);
|
|
31
|
+
const physicalKey = this.physicalKey(key);
|
|
32
|
+
if (this.config.encryptedOnly && options.metadata?.encrypted !== "true") {
|
|
33
|
+
throw new db_decorators_1.ValidationError("IPFS blob store requires encrypted payloads");
|
|
34
|
+
}
|
|
35
|
+
if (options.ifNotExists && (await this.has(key))) {
|
|
36
|
+
throw new db_decorators_1.ConflictError(`Blob already exists: ${key}`);
|
|
37
|
+
}
|
|
38
|
+
const buffer = await (0, BlobValue_js_1.collectToBuffer)(value);
|
|
39
|
+
if (options.expectedSha256) {
|
|
40
|
+
const sha256 = await (0, BlobValue_js_1.computeSha256)(buffer);
|
|
41
|
+
if (options.expectedSha256 !== sha256) {
|
|
42
|
+
throw new db_decorators_1.ValidationError(`Checksum mismatch for ${key}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const addResult = await this.client.add(buffer);
|
|
47
|
+
const cid = addResult.cid.toString();
|
|
48
|
+
const size = addResult.size;
|
|
49
|
+
if (this.config.pinByDefault !== false) {
|
|
50
|
+
try {
|
|
51
|
+
await this.client.pin.add(cid);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
log.silly(`Pin failed for ${cid}: ${e.message}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const metadata = {
|
|
58
|
+
contentLength: size,
|
|
59
|
+
sha256: undefined,
|
|
60
|
+
cid,
|
|
61
|
+
contentType: options.contentType,
|
|
62
|
+
custom: options.metadata,
|
|
63
|
+
};
|
|
64
|
+
await this.index.set(physicalKey, cid, metadata);
|
|
65
|
+
return {
|
|
66
|
+
key,
|
|
67
|
+
uri: `ipfs://${cid}`,
|
|
68
|
+
provider: this.provider,
|
|
69
|
+
sourceId: this.sourceId,
|
|
70
|
+
metadata,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw this.parseError(error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async get(key, options = {}, ...args) {
|
|
78
|
+
const { log } = (await this.logCtx(args, "get", true)).for(this.get);
|
|
79
|
+
log.verbose(`Getting blob ${key}`);
|
|
80
|
+
const physicalKey = this.physicalKey(key);
|
|
81
|
+
const cid = await this.index.get(physicalKey);
|
|
82
|
+
if (!cid) {
|
|
83
|
+
throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
|
|
84
|
+
}
|
|
85
|
+
const metadata = await this.index.stat(physicalKey);
|
|
86
|
+
const catIterable = this.client.cat(cid);
|
|
87
|
+
void options;
|
|
88
|
+
return {
|
|
89
|
+
key,
|
|
90
|
+
value: (0, BlobValue_js_1.toAsyncIterable)(catIterable),
|
|
91
|
+
uri: `ipfs://${cid}`,
|
|
92
|
+
provider: this.provider,
|
|
93
|
+
sourceId: this.sourceId,
|
|
94
|
+
metadata,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async has(key, ...args) {
|
|
98
|
+
const { log } = (await this.logCtx(args, "has", true)).for(this.has);
|
|
99
|
+
log.verbose(`Checking blob ${key}`);
|
|
100
|
+
const physicalKey = this.physicalKey(key);
|
|
101
|
+
return Boolean(await this.index.get(physicalKey));
|
|
102
|
+
}
|
|
103
|
+
async stat(key, ...args) {
|
|
104
|
+
const { log } = (await this.logCtx(args, "stat", true)).for(this.stat);
|
|
105
|
+
log.verbose(`Statting blob ${key}`);
|
|
106
|
+
const physicalKey = this.physicalKey(key);
|
|
107
|
+
try {
|
|
108
|
+
return await this.index.stat(physicalKey);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async delete(key, ...args) {
|
|
115
|
+
const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
|
|
116
|
+
log.verbose(`Deleting blob ${key}`);
|
|
117
|
+
const physicalKey = this.physicalKey(key);
|
|
118
|
+
const cid = await this.index.get(physicalKey);
|
|
119
|
+
if (cid) {
|
|
120
|
+
try {
|
|
121
|
+
await this.client.pin.rm(cid);
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
log.silly(`Unpin failed for ${cid}: ${e.message}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
await this.index.delete(physicalKey);
|
|
128
|
+
}
|
|
129
|
+
async copy(fromKey, toKey, options = {}, ...args) {
|
|
130
|
+
const { log } = (await this.logCtx(args, "copy", true)).for(this.copy);
|
|
131
|
+
log.verbose(`Copying blob ${fromKey} to ${toKey}`);
|
|
132
|
+
const source = await this.get(fromKey);
|
|
133
|
+
return this.put(toKey, source.value, options);
|
|
134
|
+
}
|
|
135
|
+
async list(options = {}, ...args) {
|
|
136
|
+
const { log } = (await this.logCtx(args, "list", true)).for(this.list);
|
|
137
|
+
log.verbose("Listing blobs");
|
|
138
|
+
const prefix = options.prefix ? this.physicalKey(options.prefix) : undefined;
|
|
139
|
+
return this.index.list(prefix, options.limit, options.cursor);
|
|
140
|
+
}
|
|
141
|
+
async url(key, options = {}, ...args) {
|
|
142
|
+
const { log } = (await this.logCtx(args, "url", true)).for(this.url);
|
|
143
|
+
log.verbose(`Building url for blob ${key}`);
|
|
144
|
+
if (options.operation && options.operation !== "get") {
|
|
145
|
+
throw new core_1.UnsupportedError("IPFS does not support PUT urls through this API");
|
|
146
|
+
}
|
|
147
|
+
const physicalKey = this.physicalKey(key);
|
|
148
|
+
const cid = await this.index.get(physicalKey);
|
|
149
|
+
if (!cid) {
|
|
150
|
+
throw new db_decorators_1.NotFoundError(`Blob not found: ${key}`);
|
|
151
|
+
}
|
|
152
|
+
if (!this.config.gatewayUrl) {
|
|
153
|
+
throw new core_1.UnsupportedError("No IPFS gateway configured");
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
url: `${this.config.gatewayUrl.replace(/\/$/, "")}/ipfs/${cid}`,
|
|
157
|
+
method: "GET",
|
|
158
|
+
expiresAt: new Date(Date.now() + (options.expiresInSeconds ?? 300) * 1000),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
parseError(error) {
|
|
162
|
+
const err = error;
|
|
163
|
+
if (err instanceof db_decorators_1.NotFoundError ||
|
|
164
|
+
err instanceof db_decorators_1.ConflictError ||
|
|
165
|
+
err instanceof db_decorators_1.ValidationError ||
|
|
166
|
+
err instanceof db_decorators_1.InternalError) {
|
|
167
|
+
return err;
|
|
168
|
+
}
|
|
169
|
+
const message = err.message || "Unknown error";
|
|
170
|
+
const lower = message.toLowerCase();
|
|
171
|
+
if (lower.includes("not found") || lower.includes("does not exist")) {
|
|
172
|
+
return new db_decorators_1.NotFoundError(err);
|
|
173
|
+
}
|
|
174
|
+
if (lower.includes("already exists") || lower.includes("conflict")) {
|
|
175
|
+
return new db_decorators_1.ConflictError(err);
|
|
176
|
+
}
|
|
177
|
+
return new db_decorators_1.InternalError(`IPFS error: ${message}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.IpfsBlobStoreService = IpfsBlobStoreService;
|
|
181
|
+
//# sourceMappingURL=IpfsBlobStoreService.js.map
|
|
182
|
+
//# sourceMappingURL=IpfsBlobStoreService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/IpfsBlobStoreService.cjs","sourceRoot":"","sources":["blob/ipfs/IpfsBlobStoreService.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createIpfsKeyIndex = createIpfsKeyIndex;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/blob/ipfs/key-index
|
|
6
|
+
* @summary IPFS key index abstraction.
|
|
7
|
+
* @description Maps logical blob keys to content-addressed CIDs since the blob API is key/value CRUD-like
|
|
8
|
+
* while IPFS is content-addressed.
|
|
9
|
+
*/
|
|
10
|
+
const core_1 = require("@decaf-ts/core");
|
|
11
|
+
const MemoryIpfsKeyIndex_js_1 = require("./MemoryIpfsKeyIndex.cjs");
|
|
12
|
+
const PostgresIpfsKeyIndex_js_1 = require("./PostgresIpfsKeyIndex.cjs");
|
|
13
|
+
const LocalJsonIpfsKeyIndex_js_1 = require("./LocalJsonIpfsKeyIndex.cjs");
|
|
14
|
+
function createIpfsKeyIndex(config) {
|
|
15
|
+
switch (config.provider) {
|
|
16
|
+
case "memory":
|
|
17
|
+
return new MemoryIpfsKeyIndex_js_1.MemoryIpfsKeyIndex();
|
|
18
|
+
case "postgres":
|
|
19
|
+
return new PostgresIpfsKeyIndex_js_1.PostgresIpfsKeyIndex(config.connectionRef);
|
|
20
|
+
case "local-json":
|
|
21
|
+
return new LocalJsonIpfsKeyIndex_js_1.LocalJsonIpfsKeyIndex(config.path);
|
|
22
|
+
default:
|
|
23
|
+
throw new core_1.UnsupportedError(`Unsupported IPFS key index provider: ${config.provider}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=IpfsKeyIndex.js.map
|
|
27
|
+
//# sourceMappingURL=IpfsKeyIndex.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/IpfsKeyIndex.cjs","sourceRoot":"","sources":["blob/ipfs/IpfsKeyIndex.js"],"names":[],"mappings":";;AAUA,gDAWC;AArBD;;;;;GAKG;AACH,yCAAkD;AAClD,mEAA6D;AAC7D,uEAAiE;AACjE,yEAAmE;AACnE,SAAgB,kBAAkB,CAAC,MAAM;IACrC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,QAAQ;YACT,OAAO,IAAI,0CAAkB,EAAE,CAAC;QACpC,KAAK,UAAU;YACX,OAAO,IAAI,8CAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1D,KAAK,YAAY;YACb,OAAO,IAAI,gDAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD;YACI,MAAM,IAAI,uBAAgB,CAAC,wCAAwC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC;AACD,wCAAwC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalJsonIpfsKeyIndex = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/blob/ipfs/local-json-index
|
|
6
|
+
* @summary Local JSON-file-backed IPFS key index (stub).
|
|
7
|
+
* @description Documented placeholder; full file implementation is deferred per the spec.
|
|
8
|
+
*/
|
|
9
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
10
|
+
class LocalJsonIpfsKeyIndex {
|
|
11
|
+
constructor(path) {
|
|
12
|
+
this.path = path;
|
|
13
|
+
if (!path) {
|
|
14
|
+
throw new db_decorators_1.InternalError("LocalJsonIpfsKeyIndex requires a path");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async get(key) {
|
|
18
|
+
throw new db_decorators_1.InternalError(`Implement local JSON IPFS key lookup for ${key} at ${this.path}`);
|
|
19
|
+
}
|
|
20
|
+
async set(key, cid, metadata) {
|
|
21
|
+
throw new db_decorators_1.InternalError(`Implement local JSON IPFS key set for ${key} (cid=${cid}, metadata=${JSON.stringify(metadata)}) at ${this.path}`);
|
|
22
|
+
}
|
|
23
|
+
async delete(key) {
|
|
24
|
+
throw new db_decorators_1.InternalError(`Implement local JSON IPFS key delete for ${key} at ${this.path}`);
|
|
25
|
+
}
|
|
26
|
+
async list(prefix, limit, cursor) {
|
|
27
|
+
throw new db_decorators_1.InternalError(`Implement local JSON IPFS key list (prefix=${prefix}, limit=${limit}, cursor=${cursor}) at ${this.path}`);
|
|
28
|
+
}
|
|
29
|
+
async stat(key) {
|
|
30
|
+
throw new db_decorators_1.InternalError(`Implement local JSON IPFS key stat for ${key} at ${this.path}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.LocalJsonIpfsKeyIndex = LocalJsonIpfsKeyIndex;
|
|
34
|
+
//# sourceMappingURL=LocalJsonIpfsKeyIndex.js.map
|
|
35
|
+
//# sourceMappingURL=LocalJsonIpfsKeyIndex.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/LocalJsonIpfsKeyIndex.cjs","sourceRoot":"","sources":["blob/ipfs/LocalJsonIpfsKeyIndex.js"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,2DAAwD;AACxD,MAAa,qBAAqB;IAC9B,YAAY,IAAI;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,6BAAa,CAAC,uCAAuC,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACT,MAAM,IAAI,6BAAa,CAAC,4CAA4C,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ;QACxB,MAAM,IAAI,6BAAa,CAAC,yCAAyC,GAAG,SAAS,GAAG,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/I,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAG;QACZ,MAAM,IAAI,6BAAa,CAAC,4CAA4C,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;QAC5B,MAAM,IAAI,6BAAa,CAAC,8CAA8C,MAAM,WAAW,KAAK,YAAY,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvI,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG;QACV,MAAM,IAAI,6BAAa,CAAC,0CAA0C,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;CACJ;AAtBD,sDAsBC;AACD,iDAAiD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryIpfsKeyIndex = void 0;
|
|
4
|
+
class MemoryIpfsKeyIndex {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.values = new Map();
|
|
7
|
+
}
|
|
8
|
+
async get(key) {
|
|
9
|
+
return this.values.get(key)?.cid;
|
|
10
|
+
}
|
|
11
|
+
async set(key, cid, metadata) {
|
|
12
|
+
this.values.set(key, {
|
|
13
|
+
cid,
|
|
14
|
+
metadata: { ...metadata, cid },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async delete(key) {
|
|
18
|
+
this.values.delete(key);
|
|
19
|
+
}
|
|
20
|
+
async list(prefix = "", limit = 1000, cursor) {
|
|
21
|
+
const all = Array.from(this.values.keys())
|
|
22
|
+
.filter((k) => (prefix ? k.startsWith(prefix) : true))
|
|
23
|
+
.sort();
|
|
24
|
+
const startIndex = cursor ? Number(cursor) : 0;
|
|
25
|
+
const slice = all.slice(startIndex, startIndex + limit);
|
|
26
|
+
const nextCursor = startIndex + limit < all.length ? String(startIndex + limit) : undefined;
|
|
27
|
+
return {
|
|
28
|
+
items: slice.map((key) => ({
|
|
29
|
+
key,
|
|
30
|
+
metadata: this.values.get(key)?.metadata,
|
|
31
|
+
})),
|
|
32
|
+
cursor: nextCursor,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async stat(key) {
|
|
36
|
+
const entry = this.values.get(key);
|
|
37
|
+
if (!entry) {
|
|
38
|
+
throw new Error(`Blob not found: ${key}`);
|
|
39
|
+
}
|
|
40
|
+
return entry.metadata;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.MemoryIpfsKeyIndex = MemoryIpfsKeyIndex;
|
|
44
|
+
//# sourceMappingURL=MemoryIpfsKeyIndex.js.map
|
|
45
|
+
//# sourceMappingURL=MemoryIpfsKeyIndex.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/MemoryIpfsKeyIndex.cjs","sourceRoot":"","sources":["blob/ipfs/MemoryIpfsKeyIndex.js"],"names":[],"mappings":";;;AAAA,MAAa,kBAAkB;IAC3B;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,GAAG;YACH,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE;SACjC,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAG;QACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrD,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,OAAO;YACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvB,GAAG;gBACH,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ;aAC3C,CAAC,CAAC;YACH,MAAM,EAAE,UAAU;SACrB,CAAC;IACN,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;CACJ;AAtCD,gDAsCC;AACD,8CAA8C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgresIpfsKeyIndex = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module integrations/blob/ipfs/postgres-index
|
|
6
|
+
* @summary Postgres-backed IPFS key index (stub).
|
|
7
|
+
* @description Documented placeholder; full SQL implementation is deferred per the spec.
|
|
8
|
+
*/
|
|
9
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
10
|
+
class PostgresIpfsKeyIndex {
|
|
11
|
+
constructor(connectionRef) {
|
|
12
|
+
this.connectionRef = connectionRef;
|
|
13
|
+
if (!connectionRef) {
|
|
14
|
+
throw new db_decorators_1.InternalError("PostgresIpfsKeyIndex requires a connectionRef");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async get(key) {
|
|
18
|
+
throw new db_decorators_1.InternalError(`Implement Postgres IPFS key lookup for ${key}`);
|
|
19
|
+
}
|
|
20
|
+
async set(key, cid, metadata) {
|
|
21
|
+
throw new db_decorators_1.InternalError(`Implement Postgres IPFS key set for ${key} (cid=${cid}, metadata=${JSON.stringify(metadata)})`);
|
|
22
|
+
}
|
|
23
|
+
async delete(key) {
|
|
24
|
+
throw new db_decorators_1.InternalError(`Implement Postgres IPFS key delete for ${key}`);
|
|
25
|
+
}
|
|
26
|
+
async list(prefix, limit, cursor) {
|
|
27
|
+
throw new db_decorators_1.InternalError(`Implement Postgres IPFS key list (prefix=${prefix}, limit=${limit}, cursor=${cursor})`);
|
|
28
|
+
}
|
|
29
|
+
async stat(key) {
|
|
30
|
+
throw new db_decorators_1.InternalError(`Implement Postgres IPFS key stat for ${key}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.PostgresIpfsKeyIndex = PostgresIpfsKeyIndex;
|
|
34
|
+
//# sourceMappingURL=PostgresIpfsKeyIndex.js.map
|
|
35
|
+
//# sourceMappingURL=PostgresIpfsKeyIndex.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/PostgresIpfsKeyIndex.cjs","sourceRoot":"","sources":["blob/ipfs/PostgresIpfsKeyIndex.js"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,2DAAwD;AACxD,MAAa,oBAAoB;IAC7B,YAAY,aAAa;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,MAAM,IAAI,6BAAa,CAAC,+CAA+C,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG;QACT,MAAM,IAAI,6BAAa,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ;QACxB,MAAM,IAAI,6BAAa,CAAC,uCAAuC,GAAG,SAAS,GAAG,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7H,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAG;QACZ,MAAM,IAAI,6BAAa,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;QAC5B,MAAM,IAAI,6BAAa,CAAC,4CAA4C,MAAM,WAAW,KAAK,YAAY,MAAM,GAAG,CAAC,CAAC;IACrH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG;QACV,MAAM,IAAI,6BAAa,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC;CACJ;AAtBD,oDAsBC;AACD,gDAAgD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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/ipfs
|
|
19
|
+
* @summary IPFS blob store exports.
|
|
20
|
+
* @description Re-exports the IPFS blob store service and key-index abstraction.
|
|
21
|
+
*/
|
|
22
|
+
__exportStar(require("./IpfsBlobStoreService.cjs"), exports);
|
|
23
|
+
__exportStar(require("./IpfsKeyIndex.cjs"), exports);
|
|
24
|
+
__exportStar(require("./MemoryIpfsKeyIndex.cjs"), exports);
|
|
25
|
+
__exportStar(require("./PostgresIpfsKeyIndex.cjs"), exports);
|
|
26
|
+
__exportStar(require("./LocalJsonIpfsKeyIndex.cjs"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
28
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob/ipfs/index.cjs","sourceRoot":"","sources":["blob/ipfs/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,4DAA0C;AAC1C,oDAAkC;AAClC,0DAAwC;AACxC,4DAA0C;AAC1C,6DAA2C;AAC3C,iCAAiC"}
|