society-protocol 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/bootstrap.d.ts +8 -3
  2. package/dist/bootstrap.d.ts.map +1 -1
  3. package/dist/bootstrap.js +52 -9
  4. package/dist/bootstrap.js.map +1 -1
  5. package/dist/content-store.d.ts +77 -0
  6. package/dist/content-store.d.ts.map +1 -0
  7. package/dist/content-store.js +178 -0
  8. package/dist/content-store.js.map +1 -0
  9. package/dist/index.js +174 -39
  10. package/dist/index.js.map +1 -1
  11. package/dist/knowledge.d.ts +100 -1
  12. package/dist/knowledge.d.ts.map +1 -1
  13. package/dist/knowledge.js +437 -2
  14. package/dist/knowledge.js.map +1 -1
  15. package/dist/lib.d.ts +4 -2
  16. package/dist/lib.d.ts.map +1 -1
  17. package/dist/lib.js +3 -1
  18. package/dist/lib.js.map +1 -1
  19. package/dist/p2p.d.ts +25 -0
  20. package/dist/p2p.d.ts.map +1 -1
  21. package/dist/p2p.js +159 -69
  22. package/dist/p2p.js.map +1 -1
  23. package/dist/planner.d.ts +1 -0
  24. package/dist/planner.d.ts.map +1 -1
  25. package/dist/planner.js +26 -4
  26. package/dist/planner.js.map +1 -1
  27. package/dist/proactive/watcher.d.ts +76 -0
  28. package/dist/proactive/watcher.d.ts.map +1 -0
  29. package/dist/proactive/watcher.js +246 -0
  30. package/dist/proactive/watcher.js.map +1 -0
  31. package/dist/registry.d.ts +4 -0
  32. package/dist/registry.d.ts.map +1 -1
  33. package/dist/registry.js +21 -0
  34. package/dist/registry.js.map +1 -1
  35. package/dist/rooms.d.ts +24 -0
  36. package/dist/rooms.d.ts.map +1 -1
  37. package/dist/rooms.js +90 -0
  38. package/dist/rooms.js.map +1 -1
  39. package/dist/sdk/index.d.ts +1 -1
  40. package/dist/sdk/index.js +1 -1
  41. package/dist/swp.d.ts +1 -1
  42. package/dist/swp.d.ts.map +1 -1
  43. package/dist/swp.js.map +1 -1
  44. package/package.json +1 -1
@@ -2,10 +2,11 @@
2
2
  * Zero-Config Bootstrap Module
3
3
  *
4
4
  * Auto-discovery de peers via:
5
- * 1. DNS TXT records (bootstrap.society.dev)
6
- * 2. Hardcoded fallback list
5
+ * 1. Registry API (api.society.computer)
6
+ * 2. DNS TXT records (bootstrap.society.dev)
7
7
  * 3. Cache local de peers funcionais
8
- * 4. mDNS para LAN discovery
8
+ * 4. Hardcoded fallback list
9
+ * 5. mDNS para LAN discovery
9
10
  */
10
11
  export interface BootstrapPeer {
11
12
  id: string;
@@ -33,6 +34,10 @@ export declare class BootstrapManager {
33
34
  * Query DNS TXT records for peer lists
34
35
  */
35
36
  private queryDnsPeers;
37
+ /**
38
+ * Query the registry API for registered nodes
39
+ */
40
+ private queryRegistryPeers;
36
41
  /**
37
42
  * Test connectivity to a peer
38
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA8BD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAenD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAYjB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;YACW,QAAQ;IAuBtB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA2E1C;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAK1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,CA6B3F"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA8BD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAenD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAYjB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;YACW,kBAAkB;IAmChC;;OAEG;YACW,QAAQ;IAuBtB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAqF1C;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAK1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,CA6B3F"}
package/dist/bootstrap.js CHANGED
@@ -2,10 +2,11 @@
2
2
  * Zero-Config Bootstrap Module
3
3
  *
4
4
  * Auto-discovery de peers via:
5
- * 1. DNS TXT records (bootstrap.society.dev)
6
- * 2. Hardcoded fallback list
5
+ * 1. Registry API (api.society.computer)
6
+ * 2. DNS TXT records (bootstrap.society.dev)
7
7
  * 3. Cache local de peers funcionais
8
- * 4. mDNS para LAN discovery
8
+ * 4. Hardcoded fallback list
9
+ * 5. mDNS para LAN discovery
9
10
  */
10
11
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
11
12
  import { join } from 'path';
@@ -13,6 +14,7 @@ import { homedir } from 'os';
13
14
  import { promisify } from 'util';
14
15
  import { exec } from 'child_process';
15
16
  const execAsync = promisify(exec);
17
+ const REGISTRY_URL = process.env.SOCIETY_REGISTRY_URL || 'https://api.society.computer';
16
18
  // Default bootstrap domain
17
19
  const SOCIETY_DOMAIN = 'society.computer';
18
20
  function parseFallbackPeersFromEnv() {
@@ -149,6 +151,37 @@ export class BootstrapManager {
149
151
  }
150
152
  return peers;
151
153
  }
154
+ /**
155
+ * Query the registry API for registered nodes
156
+ */
157
+ async queryRegistryPeers() {
158
+ const peers = [];
159
+ try {
160
+ const res = await fetch(`${REGISTRY_URL}/v1/nodes`, {
161
+ method: 'GET',
162
+ headers: { 'Accept': 'application/json' },
163
+ signal: AbortSignal.timeout(5_000),
164
+ });
165
+ if (!res.ok)
166
+ return peers;
167
+ const data = await res.json();
168
+ for (const node of data.nodes || []) {
169
+ if (node.data?.multiaddr) {
170
+ peers.push({
171
+ id: `registry_${node.name}`,
172
+ addrs: [node.data.multiaddr],
173
+ lastSeen: Date.now(),
174
+ latency: 0,
175
+ reliability: 0.8,
176
+ });
177
+ }
178
+ }
179
+ }
180
+ catch (err) {
181
+ console.warn('[bootstrap] Registry query failed:', err?.message);
182
+ }
183
+ return peers;
184
+ }
152
185
  /**
153
186
  * Test connectivity to a peer
154
187
  */
@@ -179,7 +212,17 @@ export class BootstrapManager {
179
212
  const allPeers = [];
180
213
  const testedPeers = new Set();
181
214
  const working = [];
182
- // 1. Try DNS first (most up-to-date)
215
+ // 1. Try registry API first (fastest, most reliable)
216
+ console.log('[bootstrap] Querying registry...');
217
+ try {
218
+ const registryPeers = await this.queryRegistryPeers();
219
+ allPeers.push(...registryPeers);
220
+ console.log(`[bootstrap] Registry returned ${registryPeers.length} peers`);
221
+ }
222
+ catch (err) {
223
+ console.warn('[bootstrap] Registry query failed:', err);
224
+ }
225
+ // 2. Try DNS (fallback)
183
226
  console.log('[bootstrap] Querying DNS...');
184
227
  try {
185
228
  const dnsPeers = await this.queryDnsPeers();
@@ -189,14 +232,14 @@ export class BootstrapManager {
189
232
  catch (err) {
190
233
  console.warn('[bootstrap] DNS discovery failed:', err);
191
234
  }
192
- // 2. Try cached peers
235
+ // 3. Try cached peers
193
236
  console.log('[bootstrap] Checking cache...');
194
237
  const cachedPeers = Array.from(this.cache.values());
195
238
  allPeers.push(...cachedPeers);
196
- // 3. Add fallback peers
239
+ // 4. Add fallback peers (env var)
197
240
  console.log('[bootstrap] Adding fallback peers...');
198
241
  allPeers.push(...this.config.fallbackPeers);
199
- // 4. Test peers in parallel (with concurrency limit)
242
+ // 5. Test peers in parallel (with concurrency limit)
200
243
  console.log(`[bootstrap] Testing ${allPeers.length} unique peers...`);
201
244
  const batchSize = 5;
202
245
  for (let i = 0; i < allPeers.length; i += batchSize) {
@@ -216,13 +259,13 @@ export class BootstrapManager {
216
259
  if (working.length >= 3)
217
260
  break;
218
261
  }
219
- // 5. Sort by reliability and latency
262
+ // 6. Sort by reliability and latency
220
263
  working.sort((a, b) => {
221
264
  const scoreA = a.reliability * 1000 - a.latency;
222
265
  const scoreB = b.reliability * 1000 - b.latency;
223
266
  return scoreB - scoreA;
224
267
  });
225
- // 6. Update cache with working peers
268
+ // 7. Update cache with working peers
226
269
  for (const peer of working) {
227
270
  this.cache.set(peer.id, peer);
228
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Content-Addressed Block Store
3
+ *
4
+ * IPFS-inspired content-addressed storage for Society Protocol.
5
+ * Uses blake3 hashing for CIDs and SQLite for block persistence.
6
+ * Supports chunked file storage with Merkle-like manifests.
7
+ *
8
+ * Based on: IPFS (arXiv:1407.3561) — content-addressed blocks with CID-based retrieval
9
+ */
10
+ import { type Storage } from './storage.js';
11
+ export interface FileManifest {
12
+ rootCid: string;
13
+ fileName: string;
14
+ totalSize: number;
15
+ blockSize: number;
16
+ blocks: Array<{
17
+ cid: string;
18
+ offset: number;
19
+ size: number;
20
+ }>;
21
+ mimeType?: string;
22
+ createdAt: number;
23
+ author: string;
24
+ }
25
+ export declare class ContentStore {
26
+ private storage;
27
+ private manifests;
28
+ constructor(storage: Storage);
29
+ private ensureTable;
30
+ /**
31
+ * Store a data block, returning its CID (blake3 hash).
32
+ */
33
+ put(data: Uint8Array): Promise<string>;
34
+ /**
35
+ * Retrieve a block by CID.
36
+ */
37
+ get(cid: string): Promise<Uint8Array | null>;
38
+ /**
39
+ * Check if a block exists locally.
40
+ */
41
+ has(cid: string): boolean;
42
+ /**
43
+ * Store a file from disk, chunking into blocks.
44
+ * Returns a manifest describing all blocks.
45
+ */
46
+ storeFile(filePath: string, author: string): Promise<FileManifest>;
47
+ /**
48
+ * Store raw buffer data, chunking into blocks.
49
+ */
50
+ storeBuffer(data: Buffer | Uint8Array, fileName: string, author: string): Promise<FileManifest>;
51
+ /**
52
+ * Reassemble a file from its manifest.
53
+ * All blocks must be locally available.
54
+ */
55
+ retrieveFile(manifest: FileManifest): Promise<Uint8Array>;
56
+ /**
57
+ * Save reassembled file to disk.
58
+ */
59
+ saveFile(manifest: FileManifest, outputPath: string): Promise<void>;
60
+ /**
61
+ * Get a manifest by root CID.
62
+ */
63
+ getManifest(rootCid: string): FileManifest | null;
64
+ /**
65
+ * List all stored file manifests.
66
+ */
67
+ listFiles(): FileManifest[];
68
+ /**
69
+ * List missing blocks for a manifest (for fetching from peers).
70
+ */
71
+ getMissingBlocks(manifest: FileManifest): string[];
72
+ /**
73
+ * Store a manifest received from a peer (without blocks).
74
+ */
75
+ addRemoteManifest(manifest: FileManifest): void;
76
+ }
77
+ //# sourceMappingURL=content-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-store.d.ts","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAmC;gBAExC,OAAO,EAAE,OAAO;IAK5B,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB5C;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQlD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOzB;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKxE;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCrG;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAc/D;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAkBjD;;OAEG;IACH,SAAS,IAAI,YAAY,EAAE;IAQ3B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE;IAMlD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;CAMlD"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Content-Addressed Block Store
3
+ *
4
+ * IPFS-inspired content-addressed storage for Society Protocol.
5
+ * Uses blake3 hashing for CIDs and SQLite for block persistence.
6
+ * Supports chunked file storage with Merkle-like manifests.
7
+ *
8
+ * Based on: IPFS (arXiv:1407.3561) — content-addressed blocks with CID-based retrieval
9
+ */
10
+ import { readFileSync, writeFileSync } from 'fs';
11
+ import { basename } from 'path';
12
+ // ─── Constants ──────────────────────────────────────────────────
13
+ const BLOCK_SIZE = 256 * 1024; // 256KB per block
14
+ // ─── ContentStore ───────────────────────────────────────────────
15
+ export class ContentStore {
16
+ storage;
17
+ manifests = new Map(); // rootCid → manifest
18
+ constructor(storage) {
19
+ this.storage = storage;
20
+ this.ensureTable();
21
+ }
22
+ ensureTable() {
23
+ this.storage.db.exec(`
24
+ CREATE TABLE IF NOT EXISTS content_blocks (
25
+ cid TEXT PRIMARY KEY,
26
+ data BLOB NOT NULL,
27
+ size INTEGER NOT NULL,
28
+ created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
29
+ );
30
+ CREATE TABLE IF NOT EXISTS file_manifests (
31
+ root_cid TEXT PRIMARY KEY,
32
+ manifest TEXT NOT NULL,
33
+ created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
34
+ );
35
+ `);
36
+ }
37
+ /**
38
+ * Store a data block, returning its CID (blake3 hash).
39
+ */
40
+ async put(data) {
41
+ const { blake3 } = await import('@noble/hashes/blake3');
42
+ const hash = blake3(data);
43
+ const cid = Buffer.from(hash).toString('hex');
44
+ // Idempotent: skip if already stored
45
+ const existing = this.storage.db
46
+ .prepare('SELECT cid FROM content_blocks WHERE cid = ?')
47
+ .get(cid);
48
+ if (!existing) {
49
+ this.storage.db
50
+ .prepare('INSERT INTO content_blocks (cid, data, size) VALUES (?, ?, ?)')
51
+ .run(cid, Buffer.from(data), data.byteLength);
52
+ }
53
+ return cid;
54
+ }
55
+ /**
56
+ * Retrieve a block by CID.
57
+ */
58
+ async get(cid) {
59
+ const row = this.storage.db
60
+ .prepare('SELECT data FROM content_blocks WHERE cid = ?')
61
+ .get(cid);
62
+ return row ? new Uint8Array(row.data) : null;
63
+ }
64
+ /**
65
+ * Check if a block exists locally.
66
+ */
67
+ has(cid) {
68
+ const row = this.storage.db
69
+ .prepare('SELECT 1 FROM content_blocks WHERE cid = ?')
70
+ .get(cid);
71
+ return !!row;
72
+ }
73
+ /**
74
+ * Store a file from disk, chunking into blocks.
75
+ * Returns a manifest describing all blocks.
76
+ */
77
+ async storeFile(filePath, author) {
78
+ const fileData = readFileSync(filePath);
79
+ return this.storeBuffer(fileData, basename(filePath), author);
80
+ }
81
+ /**
82
+ * Store raw buffer data, chunking into blocks.
83
+ */
84
+ async storeBuffer(data, fileName, author) {
85
+ const buf = Buffer.from(data);
86
+ const blocks = [];
87
+ for (let offset = 0; offset < buf.byteLength; offset += BLOCK_SIZE) {
88
+ const chunk = new Uint8Array(buf.subarray(offset, Math.min(offset + BLOCK_SIZE, buf.byteLength)));
89
+ const cid = await this.put(chunk);
90
+ blocks.push({ cid, offset, size: chunk.byteLength });
91
+ }
92
+ // Root CID = hash of all block CIDs concatenated
93
+ const { blake3 } = await import('@noble/hashes/blake3');
94
+ const rootData = new TextEncoder().encode(blocks.map(b => b.cid).join(':'));
95
+ const rootCid = Buffer.from(blake3(rootData)).toString('hex');
96
+ const manifest = {
97
+ rootCid,
98
+ fileName,
99
+ totalSize: buf.byteLength,
100
+ blockSize: BLOCK_SIZE,
101
+ blocks,
102
+ createdAt: Date.now(),
103
+ author,
104
+ };
105
+ // Persist manifest
106
+ this.manifests.set(rootCid, manifest);
107
+ this.storage.db
108
+ .prepare('INSERT OR REPLACE INTO file_manifests (root_cid, manifest) VALUES (?, ?)')
109
+ .run(rootCid, JSON.stringify(manifest));
110
+ return manifest;
111
+ }
112
+ /**
113
+ * Reassemble a file from its manifest.
114
+ * All blocks must be locally available.
115
+ */
116
+ async retrieveFile(manifest) {
117
+ const result = Buffer.alloc(manifest.totalSize);
118
+ for (const block of manifest.blocks) {
119
+ const data = await this.get(block.cid);
120
+ if (!data) {
121
+ throw new Error(`Missing block ${block.cid} for file ${manifest.fileName}`);
122
+ }
123
+ Buffer.from(data).copy(result, block.offset);
124
+ }
125
+ return new Uint8Array(result);
126
+ }
127
+ /**
128
+ * Save reassembled file to disk.
129
+ */
130
+ async saveFile(manifest, outputPath) {
131
+ const data = await this.retrieveFile(manifest);
132
+ writeFileSync(outputPath, data);
133
+ }
134
+ /**
135
+ * Get a manifest by root CID.
136
+ */
137
+ getManifest(rootCid) {
138
+ if (this.manifests.has(rootCid)) {
139
+ return this.manifests.get(rootCid);
140
+ }
141
+ const row = this.storage.db
142
+ .prepare('SELECT manifest FROM file_manifests WHERE root_cid = ?')
143
+ .get(rootCid);
144
+ if (row) {
145
+ const manifest = JSON.parse(row.manifest);
146
+ this.manifests.set(rootCid, manifest);
147
+ return manifest;
148
+ }
149
+ return null;
150
+ }
151
+ /**
152
+ * List all stored file manifests.
153
+ */
154
+ listFiles() {
155
+ const rows = this.storage.db
156
+ .prepare('SELECT manifest FROM file_manifests ORDER BY created_at DESC')
157
+ .all();
158
+ return rows.map(r => JSON.parse(r.manifest));
159
+ }
160
+ /**
161
+ * List missing blocks for a manifest (for fetching from peers).
162
+ */
163
+ getMissingBlocks(manifest) {
164
+ return manifest.blocks
165
+ .filter(b => !this.has(b.cid))
166
+ .map(b => b.cid);
167
+ }
168
+ /**
169
+ * Store a manifest received from a peer (without blocks).
170
+ */
171
+ addRemoteManifest(manifest) {
172
+ this.manifests.set(manifest.rootCid, manifest);
173
+ this.storage.db
174
+ .prepare('INSERT OR REPLACE INTO file_manifests (root_cid, manifest) VALUES (?, ?)')
175
+ .run(manifest.rootCid, JSON.stringify(manifest));
176
+ }
177
+ }
178
+ //# sourceMappingURL=content-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-store.js","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,mEAAmE;AAEnE,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,kBAAkB;AAejD,mEAAmE;AAEnE,MAAM,OAAO,YAAY;IACb,OAAO,CAAU;IACjB,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC,CAAC,qBAAqB;IAE1E,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;SAYpB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAgB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9C,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;aAC3B,OAAO,CAAC,8CAA8C,CAAC;aACvD,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,EAAE;iBACV,OAAO,CAAC,+DAA+D,CAAC;iBACxE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;aACtB,OAAO,CAAC,+CAA+C,CAAC;aACxD,GAAG,CAAC,GAAG,CAAiC,CAAC;QAE9C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;aACtB,OAAO,CAAC,4CAA4C,CAAC;aACrD,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,MAAc;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAyB,EAAE,QAAgB,EAAE,MAAc;QACzE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,iDAAiD;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAiB;YAC3B,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;SACT,CAAC;QAEF,mBAAmB;QACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,EAAE;aACV,OAAO,CAAC,0EAA0E,CAAC;aACnF,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,QAAsB;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,GAAG,aAAa,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAsB,EAAE,UAAkB;QACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;aACtB,OAAO,CAAC,wDAAwD,CAAC;aACjE,GAAG,CAAC,OAAO,CAAqC,CAAC;QAEtD,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtC,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;aACvB,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,EAAiC,CAAC;QAE1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAiB,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAsB;QACnC,OAAO,QAAQ,CAAC,MAAM;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAsB;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,EAAE;aACV,OAAO,CAAC,0EAA0E,CAAC;aACnF,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;CACJ"}