@wovin/core 0.1.13 → 0.1.16

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 (35) hide show
  1. package/dist/applog.min.js +2 -2
  2. package/dist/{chunk-5T5HSBRE.min.js → chunk-AIITTHC6.min.js} +2 -2
  3. package/dist/{chunk-ULDVYEPF.min.js → chunk-C22YMCSL.min.js} +3 -3
  4. package/dist/{chunk-5LVRXH2F.min.js → chunk-DUAUQKBV.min.js} +2 -2
  5. package/dist/{chunk-L5ONTLHW.min.js → chunk-I73T6OVV.min.js} +2 -2
  6. package/dist/{chunk-MSRY6NTA.min.js → chunk-IFB3AKYA.min.js} +2 -2
  7. package/dist/{chunk-CMYPWG2N.min.js → chunk-MPOFY7NX.min.js} +26 -7
  8. package/dist/{chunk-CMYPWG2N.min.js.map → chunk-MPOFY7NX.min.js.map} +1 -1
  9. package/dist/chunk-TPV3JAXV.min.js +112 -0
  10. package/dist/chunk-TPV3JAXV.min.js.map +1 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.min.js +18 -12
  14. package/dist/ipfs.min.js +5 -5
  15. package/dist/pubsub.min.js +5 -5
  16. package/dist/query.min.js +4 -4
  17. package/dist/retrieve/index.d.ts +2 -0
  18. package/dist/retrieve/index.d.ts.map +1 -0
  19. package/dist/retrieve/update-thread.d.ts +50 -0
  20. package/dist/retrieve/update-thread.d.ts.map +1 -0
  21. package/dist/retrieve.d.ts +2 -0
  22. package/dist/retrieve.d.ts.map +1 -0
  23. package/dist/retrieve.min.js +14 -0
  24. package/dist/retrieve.min.js.map +1 -0
  25. package/dist/thread/filters.d.ts +2 -0
  26. package/dist/thread/filters.d.ts.map +1 -1
  27. package/dist/thread/mapped.d.ts +3 -1
  28. package/dist/thread/mapped.d.ts.map +1 -1
  29. package/dist/thread.min.js +4 -2
  30. package/package.json +5 -1
  31. /package/dist/{chunk-5T5HSBRE.min.js.map → chunk-AIITTHC6.min.js.map} +0 -0
  32. /package/dist/{chunk-ULDVYEPF.min.js.map → chunk-C22YMCSL.min.js.map} +0 -0
  33. /package/dist/{chunk-5LVRXH2F.min.js.map → chunk-DUAUQKBV.min.js.map} +0 -0
  34. /package/dist/{chunk-L5ONTLHW.min.js.map → chunk-I73T6OVV.min.js.map} +0 -0
  35. /package/dist/{chunk-MSRY6NTA.min.js.map → chunk-IFB3AKYA.min.js.map} +0 -0
@@ -0,0 +1,112 @@
1
+ import {
2
+ unchunkApplogsBlock
3
+ } from "./chunk-C22YMCSL.min.js";
4
+ import {
5
+ CID,
6
+ areCidsEqual,
7
+ decode,
8
+ g,
9
+ removeDuplicateAppLogs
10
+ } from "./chunk-MPOFY7NX.min.js";
11
+
12
+ // src/retrieve/update-thread.ts
13
+ var { WARN, LOG, DEBUG, VERBOSE, ERROR } = g.setup(g.INFO);
14
+ function createMemoryBlockStore() {
15
+ const blocks = /* @__PURE__ */ new Map();
16
+ return {
17
+ get(cid) {
18
+ return blocks.get(cid.toV1().toString());
19
+ },
20
+ put(cid, bytes) {
21
+ blocks.set(cid.toV1().toString(), bytes);
22
+ }
23
+ };
24
+ }
25
+ async function getDecodedBlock(blockStore, cid) {
26
+ const bytes = blockStore.get(cid);
27
+ if (!bytes) return null;
28
+ return decode(bytes);
29
+ }
30
+ async function updateThreadFromSnapshot(thread, cid, retriever, options) {
31
+ const { excludeSnapshotCID, maxDepth = 100 } = options ?? {};
32
+ DEBUG("[updateThreadFromSnapshot] starting from", cid.toString(), {
33
+ excludeSnapshotCID: excludeSnapshotCID?.toString(),
34
+ maxDepth
35
+ });
36
+ const blockStore = createMemoryBlockStore();
37
+ const visited = /* @__PURE__ */ new Set();
38
+ let currentCID = cid;
39
+ let snapshotCount = 0;
40
+ const allApplogs = [];
41
+ while (currentCID && snapshotCount < maxDepth) {
42
+ const cidStr = currentCID.toString();
43
+ if (visited.has(cidStr)) {
44
+ throw ERROR("[updateThreadFromSnapshot] snapshot chain has a loop", {
45
+ currentCID: cidStr,
46
+ visited: [...visited]
47
+ });
48
+ }
49
+ visited.add(cidStr);
50
+ if (excludeSnapshotCID && areCidsEqual(currentCID, excludeSnapshotCID)) {
51
+ DEBUG("[updateThreadFromSnapshot] reached excludeSnapshotCID, stopping", excludeSnapshotCID.toString());
52
+ break;
53
+ }
54
+ DEBUG("[updateThreadFromSnapshot] fetching root block", cidStr);
55
+ const rootBytes = await retriever.getBlock(currentCID);
56
+ blockStore.put(currentCID, rootBytes);
57
+ const root = decode(rootBytes);
58
+ DEBUG("[updateThreadFromSnapshot] fetching applogs", root.applogs.toString());
59
+ for await (const { cid: blockCid, bytes } of retriever.getDag(root.applogs)) {
60
+ blockStore.put(blockCid, bytes);
61
+ }
62
+ DEBUG("[updateThreadFromSnapshot] fetching info", root.info.toString());
63
+ for await (const { cid: blockCid, bytes } of retriever.getDag(root.info)) {
64
+ blockStore.put(blockCid, bytes);
65
+ }
66
+ const applogsBlock = await getDecodedBlock(blockStore, root.applogs);
67
+ if (!applogsBlock) {
68
+ throw ERROR("[updateThreadFromSnapshot] applogs block not found", { cid: root.applogs.toString() });
69
+ }
70
+ const applogCIDs = await unchunkApplogsBlock(applogsBlock, {
71
+ get: async (cid2) => blockStore.get(cid2)
72
+ });
73
+ for (const applogCID of applogCIDs) {
74
+ const applog = await getDecodedBlock(blockStore, applogCID);
75
+ if (!applog) {
76
+ WARN("[updateThreadFromSnapshot] applog not found:", applogCID.toString());
77
+ continue;
78
+ }
79
+ if (applog.pv instanceof CID) {
80
+ applog.pv = applog.pv.toV1().toString();
81
+ }
82
+ allApplogs.push({
83
+ ...applog,
84
+ cid: applogCID.toV1().toString()
85
+ });
86
+ }
87
+ snapshotCount++;
88
+ currentCID = root.prev;
89
+ }
90
+ DEBUG("[updateThreadFromSnapshot] fetched", {
91
+ snapshotCount,
92
+ applogCount: allApplogs.length,
93
+ rootCID: cid.toString()
94
+ });
95
+ const deduplicated = removeDuplicateAppLogs(allApplogs, "cleanup");
96
+ const inserted = thread.insertMissing(deduplicated, false);
97
+ DEBUG("[updateThreadFromSnapshot] inserted", {
98
+ insertedCount: inserted.length,
99
+ duplicateCount: deduplicated.length - inserted.length
100
+ });
101
+ return {
102
+ cid,
103
+ applogs: deduplicated,
104
+ insertedCount: inserted.length,
105
+ snapshotCount
106
+ };
107
+ }
108
+
109
+ export {
110
+ updateThreadFromSnapshot
111
+ };
112
+ //# sourceMappingURL=chunk-TPV3JAXV.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/retrieve/update-thread.ts"],"sourcesContent":["import { CarReader } from '@ipld/car'\nimport * as dagJson from '@ipld/dag-json'\nimport { Logger } from 'besonders-logger'\nimport { CID } from 'multiformats/cid'\nimport type { Applog } from '../applog/datom-types'\nimport { removeDuplicateAppLogs } from '../applog/applog-utils'\nimport type { SnapRootBlock, SnapBlockLogsOrChunks } from '../pubsub/pubsub-types'\nimport { unchunkApplogsBlock } from '../pubsub/snap-push'\nimport { areCidsEqual } from '../ipfs/ipfs-utils'\nimport type { WriteableThread } from '../thread/writeable'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line no-unused-vars\n\n/**\n * Block retrieval abstraction - fetch or get blocks.\n * Implemented by gateway retriever or local blockstore.\n */\nexport interface BlockRetriever {\n\t/** Get single block by CID */\n\tgetBlock(cid: CID): Promise<Uint8Array>\n\t/** Get all blocks in DAG rooted at CID (for applogs/info sub-DAGs) */\n\tgetDag(cid: CID): AsyncIterable<{ cid: CID; bytes: Uint8Array }>\n}\n\n/**\n * Options for updateThreadFromSnapshot\n */\nexport interface UpdateOptions {\n\t/** CID of last included snapshot - exclude this and older snapshots */\n\texcludeSnapshotCID?: CID\n\t/** Maximum number of snapshots to traverse (default: 100) */\n\tmaxDepth?: number\n}\n\n/**\n * Result from updateThreadFromSnapshot\n */\nexport interface UpdateResult {\n\t/** Root CID that was fetched */\n\tcid: CID\n\t/** All applogs decoded from the chain */\n\tapplogs: Applog[]\n\t/** Count of applogs actually inserted (not duplicates) */\n\tinsertedCount: number\n\t/** Number of snapshots traversed */\n\tsnapshotCount: number\n}\n\n/**\n * Simple in-memory block store used during snapshot chain fetch.\n */\ninterface MemoryBlockStore {\n\tget(cid: CID): Uint8Array | undefined\n\tput(cid: CID, bytes: Uint8Array): void\n}\n\nfunction createMemoryBlockStore(): MemoryBlockStore {\n\tconst blocks = new Map<string, Uint8Array>()\n\treturn {\n\t\tget(cid: CID) {\n\t\t\treturn blocks.get(cid.toV1().toString())\n\t\t},\n\t\tput(cid: CID, bytes: Uint8Array) {\n\t\t\tblocks.set(cid.toV1().toString(), bytes)\n\t\t},\n\t}\n}\n\nasync function getDecodedBlock<T>(blockStore: MemoryBlockStore, cid: CID): Promise<T | null> {\n\tconst bytes = blockStore.get(cid)\n\tif (!bytes) return null\n\treturn dagJson.decode(bytes) as T\n}\n\n/**\n * Fetch snapshot chain from CID using a BlockRetriever, decode applogs, insert into thread.\n * Stops before excludeSnapshotCID if provided (incremental update).\n *\n * @param thread - WriteableThread to insert applogs into\n * @param cid - Root CID of the snapshot to start from\n * @param retriever - BlockRetriever for fetching blocks\n * @param options - Optional configuration\n * @returns UpdateResult with applogs and counts\n */\nexport async function updateThreadFromSnapshot(\n\tthread: WriteableThread,\n\tcid: CID,\n\tretriever: BlockRetriever,\n\toptions?: UpdateOptions\n): Promise<UpdateResult> {\n\tconst { excludeSnapshotCID, maxDepth = 100 } = options ?? {}\n\n\tDEBUG('[updateThreadFromSnapshot] starting from', cid.toString(), {\n\t\texcludeSnapshotCID: excludeSnapshotCID?.toString(),\n\t\tmaxDepth,\n\t})\n\n\tconst blockStore = createMemoryBlockStore()\n\tconst visited = new Set<string>()\n\tlet currentCID: CID | undefined = cid\n\tlet snapshotCount = 0\n\tconst allApplogs: Applog[] = []\n\n\twhile (currentCID && snapshotCount < maxDepth) {\n\t\tconst cidStr = currentCID.toString()\n\n\t\t// Loop detection\n\t\tif (visited.has(cidStr)) {\n\t\t\tthrow ERROR('[updateThreadFromSnapshot] snapshot chain has a loop', {\n\t\t\t\tcurrentCID: cidStr,\n\t\t\t\tvisited: [...visited],\n\t\t\t})\n\t\t}\n\t\tvisited.add(cidStr)\n\n\t\t// Check stop condition BEFORE fetching content\n\t\tif (excludeSnapshotCID && areCidsEqual(currentCID, excludeSnapshotCID)) {\n\t\t\tDEBUG('[updateThreadFromSnapshot] reached excludeSnapshotCID, stopping', excludeSnapshotCID.toString())\n\t\t\tbreak\n\t\t}\n\n\t\t// 1. Fetch root block\n\t\tDEBUG('[updateThreadFromSnapshot] fetching root block', cidStr)\n\t\tconst rootBytes = await retriever.getBlock(currentCID)\n\t\tblockStore.put(currentCID, rootBytes)\n\n\t\t// Parse root to get applogs, info, prev CIDs\n\t\tconst root = dagJson.decode(rootBytes) as SnapRootBlock\n\n\t\t// 2. Fetch applogs DAG\n\t\tDEBUG('[updateThreadFromSnapshot] fetching applogs', root.applogs.toString())\n\t\tfor await (const { cid: blockCid, bytes } of retriever.getDag(root.applogs)) {\n\t\t\tblockStore.put(blockCid, bytes)\n\t\t}\n\n\t\t// 3. Fetch info DAG\n\t\tDEBUG('[updateThreadFromSnapshot] fetching info', root.info.toString())\n\t\tfor await (const { cid: blockCid, bytes } of retriever.getDag(root.info)) {\n\t\t\tblockStore.put(blockCid, bytes)\n\t\t}\n\n\t\t// Decode applogs from this snapshot\n\t\tconst applogsBlock = await getDecodedBlock<SnapBlockLogsOrChunks>(blockStore, root.applogs)\n\t\tif (!applogsBlock) {\n\t\t\tthrow ERROR('[updateThreadFromSnapshot] applogs block not found', { cid: root.applogs.toString() })\n\t\t}\n\n\t\t// Use the unchunk helper which handles both chunked and non-chunked formats\n\t\tconst applogCIDs = await unchunkApplogsBlock(applogsBlock, {\n\t\t\tget: async (cid: CID) => blockStore.get(cid)!,\n\t\t})\n\n\t\t// Resolve each applog CID to actual applog data\n\t\tfor (const applogCID of applogCIDs) {\n\t\t\tconst applog = await getDecodedBlock<Applog>(blockStore, applogCID)\n\t\t\tif (!applog) {\n\t\t\t\tWARN('[updateThreadFromSnapshot] applog not found:', applogCID.toString())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Normalize pv field if it's a CID instance\n\t\t\tif ((applog.pv as any) instanceof CID) {\n\t\t\t\tapplog.pv = (applog.pv as any as CID).toV1().toString()\n\t\t\t}\n\t\t\tallApplogs.push({\n\t\t\t\t...applog,\n\t\t\t\tcid: applogCID.toV1().toString(),\n\t\t\t})\n\t\t}\n\n\t\tsnapshotCount++\n\t\tcurrentCID = root.prev // Move to previous snapshot\n\t}\n\n\tDEBUG('[updateThreadFromSnapshot] fetched', {\n\t\tsnapshotCount,\n\t\tapplogCount: allApplogs.length,\n\t\trootCID: cid.toString(),\n\t})\n\n\t// Deduplicate applogs (in case of overlapping snapshots)\n\tconst deduplicated = removeDuplicateAppLogs(allApplogs, 'cleanup')\n\n\t// Insert into thread\n\tconst inserted = thread.insertMissing(deduplicated, false)\n\n\tDEBUG('[updateThreadFromSnapshot] inserted', {\n\t\tinsertedCount: inserted.length,\n\t\tduplicateCount: deduplicated.length - inserted.length,\n\t})\n\n\treturn {\n\t\tcid,\n\t\tapplogs: deduplicated,\n\t\tinsertedCount: inserted.length,\n\t\tsnapshotCount,\n\t}\n}\n"],"mappings":"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","names":["cid"]}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './applog';
2
2
  export * from './ipfs';
3
3
  export * from './pubsub';
4
4
  export * from './query';
5
+ export * from './retrieve';
5
6
  export * from './thread';
6
7
  export * from './types';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
package/dist/index.min.js CHANGED
@@ -1,13 +1,22 @@
1
+ import "./chunk-5MMGBK2U.min.js";
1
2
  import "./chunk-7IDQIMQO.min.js";
2
3
  import {
3
4
  fetchSnapshotChainUntil
4
- } from "./chunk-L5ONTLHW.min.js";
5
+ } from "./chunk-I73T6OVV.min.js";
5
6
  import {
6
7
  agentToShortHash,
7
8
  integratePub,
8
9
  isShare,
9
10
  isSubscription
10
- } from "./chunk-5LVRXH2F.min.js";
11
+ } from "./chunk-DUAUQKBV.min.js";
12
+ import {
13
+ includedIn,
14
+ includes,
15
+ queryDivergencesByPrev
16
+ } from "./chunk-IFB3AKYA.min.js";
17
+ import {
18
+ updateThreadFromSnapshot
19
+ } from "./chunk-TPV3JAXV.min.js";
11
20
  import {
12
21
  carFromBlob,
13
22
  chunkApplogs,
@@ -23,13 +32,8 @@ import {
23
32
  prepareSnapshotForPush,
24
33
  streamReaderToIterable,
25
34
  unchunkApplogsBlock
26
- } from "./chunk-ULDVYEPF.min.js";
35
+ } from "./chunk-C22YMCSL.min.js";
27
36
  import "./chunk-QPGEBDMJ.min.js";
28
- import {
29
- includedIn,
30
- includes,
31
- queryDivergencesByPrev
32
- } from "./chunk-MSRY6NTA.min.js";
33
37
  import {
34
38
  QueryNode,
35
39
  QueryResult,
@@ -56,7 +60,7 @@ import {
56
60
  throwOnTimeout,
57
61
  withTimeout,
58
62
  withoutDeleted
59
- } from "./chunk-5T5HSBRE.min.js";
63
+ } from "./chunk-AIITTHC6.min.js";
60
64
  import {
61
65
  AppLogNoCidTB,
62
66
  AppLogNoCidTBC,
@@ -80,6 +84,7 @@ import {
80
84
  areCidsEqual,
81
85
  arrStats,
82
86
  arraysContainSameElements,
87
+ asReadOnly,
83
88
  assertOnlyCurrent,
84
89
  assertRaw,
85
90
  autorunButAlsoImmediately,
@@ -155,9 +160,7 @@ import {
155
160
  variableNameWithoutQuestionmark,
156
161
  withPvFrom,
157
162
  withTs
158
- } from "./chunk-CMYPWG2N.min.js";
159
- import "./chunk-KEHU7HGZ.min.js";
160
- import "./chunk-5MMGBK2U.min.js";
163
+ } from "./chunk-MPOFY7NX.min.js";
161
164
  import {
162
165
  BOOL,
163
166
  Bool,
@@ -170,6 +173,7 @@ import {
170
173
  arrayIfSingle,
171
174
  checkParityTB
172
175
  } from "./chunk-HYMC7W6S.min.js";
176
+ import "./chunk-KEHU7HGZ.min.js";
173
177
  import "./chunk-PHITDXZT.min.js";
174
178
  export {
175
179
  AppLogNoCidTB,
@@ -207,6 +211,7 @@ export {
207
211
  arrStats,
208
212
  arrayIfSingle,
209
213
  arraysContainSameElements,
214
+ asReadOnly,
210
215
  assertOnlyCurrent,
211
216
  assertRaw,
212
217
  autorunButAlsoImmediately,
@@ -321,6 +326,7 @@ export {
321
326
  tsNearlySame,
322
327
  unchunkApplogsBlock,
323
328
  uniqueEnFromAppLogs,
329
+ updateThreadFromSnapshot,
324
330
  variableNameWithoutQuestionmark,
325
331
  withPvFrom,
326
332
  withTimeout,
package/dist/ipfs.min.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fetchSnapshotChainUntil
3
- } from "./chunk-L5ONTLHW.min.js";
3
+ } from "./chunk-I73T6OVV.min.js";
4
4
  import {
5
5
  carFromBlob,
6
6
  decodePubFromBlocks,
@@ -10,9 +10,9 @@ import {
10
10
  makeCarBlob,
11
11
  makeCarOut,
12
12
  streamReaderToIterable
13
- } from "./chunk-ULDVYEPF.min.js";
13
+ } from "./chunk-C22YMCSL.min.js";
14
14
  import "./chunk-QPGEBDMJ.min.js";
15
- import "./chunk-5T5HSBRE.min.js";
15
+ import "./chunk-AIITTHC6.min.js";
16
16
  import {
17
17
  MULTICODEC_IPNS_KEY,
18
18
  areCidsEqual,
@@ -28,9 +28,9 @@ import {
28
28
  prepareForPub,
29
29
  toIpnsString,
30
30
  tryParseCID
31
- } from "./chunk-CMYPWG2N.min.js";
32
- import "./chunk-KEHU7HGZ.min.js";
31
+ } from "./chunk-MPOFY7NX.min.js";
33
32
  import "./chunk-HYMC7W6S.min.js";
33
+ import "./chunk-KEHU7HGZ.min.js";
34
34
  import "./chunk-PHITDXZT.min.js";
35
35
  export {
36
36
  MULTICODEC_IPNS_KEY,
@@ -3,7 +3,7 @@ import {
3
3
  integratePub,
4
4
  isShare,
5
5
  isSubscription
6
- } from "./chunk-5LVRXH2F.min.js";
6
+ } from "./chunk-DUAUQKBV.min.js";
7
7
  import {
8
8
  chunkApplogs,
9
9
  encodeSnapshotApplogsAsCar,
@@ -11,12 +11,12 @@ import {
11
11
  isSnapBlockChunks,
12
12
  prepareSnapshotForPush,
13
13
  unchunkApplogsBlock
14
- } from "./chunk-ULDVYEPF.min.js";
14
+ } from "./chunk-C22YMCSL.min.js";
15
15
  import "./chunk-QPGEBDMJ.min.js";
16
- import "./chunk-5T5HSBRE.min.js";
17
- import "./chunk-CMYPWG2N.min.js";
18
- import "./chunk-KEHU7HGZ.min.js";
16
+ import "./chunk-AIITTHC6.min.js";
17
+ import "./chunk-MPOFY7NX.min.js";
19
18
  import "./chunk-HYMC7W6S.min.js";
19
+ import "./chunk-KEHU7HGZ.min.js";
20
20
  import "./chunk-PHITDXZT.min.js";
21
21
  export {
22
22
  agentToShortHash,
package/dist/query.min.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  includedIn,
3
3
  includes,
4
4
  queryDivergencesByPrev
5
- } from "./chunk-MSRY6NTA.min.js";
5
+ } from "./chunk-IFB3AKYA.min.js";
6
6
  import {
7
7
  QueryNode,
8
8
  QueryResult,
@@ -29,7 +29,7 @@ import {
29
29
  throwOnTimeout,
30
30
  withTimeout,
31
31
  withoutDeleted
32
- } from "./chunk-5T5HSBRE.min.js";
32
+ } from "./chunk-AIITTHC6.min.js";
33
33
  import {
34
34
  applogThreadComparer,
35
35
  autorunButAlsoImmediately,
@@ -45,9 +45,9 @@ import {
45
45
  prettifyThreadName,
46
46
  queryNodesComparer,
47
47
  rootsQueries
48
- } from "./chunk-CMYPWG2N.min.js";
49
- import "./chunk-KEHU7HGZ.min.js";
48
+ } from "./chunk-MPOFY7NX.min.js";
50
49
  import "./chunk-HYMC7W6S.min.js";
50
+ import "./chunk-KEHU7HGZ.min.js";
51
51
  import "./chunk-PHITDXZT.min.js";
52
52
  export {
53
53
  QueryNode,
@@ -0,0 +1,2 @@
1
+ export * from './update-thread';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retrieve/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { CID } from 'multiformats/cid';
2
+ import type { Applog } from '../applog/datom-types';
3
+ import type { WriteableThread } from '../thread/writeable';
4
+ /**
5
+ * Block retrieval abstraction - fetch or get blocks.
6
+ * Implemented by gateway retriever or local blockstore.
7
+ */
8
+ export interface BlockRetriever {
9
+ /** Get single block by CID */
10
+ getBlock(cid: CID): Promise<Uint8Array>;
11
+ /** Get all blocks in DAG rooted at CID (for applogs/info sub-DAGs) */
12
+ getDag(cid: CID): AsyncIterable<{
13
+ cid: CID;
14
+ bytes: Uint8Array;
15
+ }>;
16
+ }
17
+ /**
18
+ * Options for updateThreadFromSnapshot
19
+ */
20
+ export interface UpdateOptions {
21
+ /** CID of last included snapshot - exclude this and older snapshots */
22
+ excludeSnapshotCID?: CID;
23
+ /** Maximum number of snapshots to traverse (default: 100) */
24
+ maxDepth?: number;
25
+ }
26
+ /**
27
+ * Result from updateThreadFromSnapshot
28
+ */
29
+ export interface UpdateResult {
30
+ /** Root CID that was fetched */
31
+ cid: CID;
32
+ /** All applogs decoded from the chain */
33
+ applogs: Applog[];
34
+ /** Count of applogs actually inserted (not duplicates) */
35
+ insertedCount: number;
36
+ /** Number of snapshots traversed */
37
+ snapshotCount: number;
38
+ }
39
+ /**
40
+ * Fetch snapshot chain from CID using a BlockRetriever, decode applogs, insert into thread.
41
+ * Stops before excludeSnapshotCID if provided (incremental update).
42
+ *
43
+ * @param thread - WriteableThread to insert applogs into
44
+ * @param cid - Root CID of the snapshot to start from
45
+ * @param retriever - BlockRetriever for fetching blocks
46
+ * @param options - Optional configuration
47
+ * @returns UpdateResult with applogs and counts
48
+ */
49
+ export declare function updateThreadFromSnapshot(thread: WriteableThread, cid: CID, retriever: BlockRetriever, options?: UpdateOptions): Promise<UpdateResult>;
50
+ //# sourceMappingURL=update-thread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-thread.d.ts","sourceRoot":"","sources":["../../src/retrieve/update-thread.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAKnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,sEAAsE;IACtE,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,GAAG,CAAA;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,gCAAgC;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAA;CACrB;AA4BD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2GvB"}
@@ -0,0 +1,2 @@
1
+ export * from './retrieve/update-thread';
2
+ //# sourceMappingURL=retrieve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieve.d.ts","sourceRoot":"","sources":["../src/retrieve.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import {
2
+ updateThreadFromSnapshot
3
+ } from "./chunk-TPV3JAXV.min.js";
4
+ import "./chunk-C22YMCSL.min.js";
5
+ import "./chunk-QPGEBDMJ.min.js";
6
+ import "./chunk-AIITTHC6.min.js";
7
+ import "./chunk-MPOFY7NX.min.js";
8
+ import "./chunk-HYMC7W6S.min.js";
9
+ import "./chunk-KEHU7HGZ.min.js";
10
+ import "./chunk-PHITDXZT.min.js";
11
+ export {
12
+ updateThreadFromSnapshot
13
+ };
14
+ //# sourceMappingURL=retrieve.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -39,6 +39,8 @@ export type ThreadOnlyCurrentNoDeleted = ThreadWithFilter<'lastWriteWins' | 'wit
39
39
  export type ThreadWithoutFilters = Thread & {
40
40
  filters: [];
41
41
  };
42
+ /** Re-export for convenience */
43
+ export declare const asReadOnly: typeof MappedThread.asReadOnly;
42
44
  export type ApplogMapper = (log: Applog, sourceThread: Thread) => ApplogForInsert;
43
45
  export declare const simpleApplogMapper: (thread: Thread, logMapper: ApplogMapper, opts?: {
44
46
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/thread/filters.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,gBAAgB,EAEhB,aAAa,EACb,aAAa,EAKb,MAAM,MAAM,CAAA;AAIb,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAkB,MAAM,uBAAuB,CAAA;AAE5H,OAAO,EAAe,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI1D,eAAO,MAAM,aAAa,WACjB,MAAM,WACL,mBAAmB,SACtB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmEhD,CAAA;AAEF,eAAO,MAAM,aAAa,WACjB,MAAM,eACD,iBAAiB,SACxB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmBhD,CAAA;AAEF,eAAO,MAAM,UAAU,GAEF,GAAG,SAAS,gBAAgB,GAAG,aAAa,GAAG,aAAa,UACvE,MAAM,OACT,GAAG,eACK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,SAC7C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,QAYxB,CAAA;AAwBD,eAAO,MAAM,mBAAmB,GAC/B,SAAS,mBAAmB;;CAS5B,CAAA;AACD,wBAAgB,UAAU,CACzB,OAAO,EAAE,mBAAmB,IAED,MAAM,SAAS,MAAM,EAAE,cAclD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACrC,QAAQ,MAAM,EACd,SAAS,mBAAmB,EAC5B,OAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,aAK5B,CAAA;AAKD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,GAAG;IACzD,OAAO,EAAE,SAAS,CAAC,EAAE,CAAA;CACrB,CAAA;AACD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAEpG;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAItB,oBAAoB,CACrC;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM;;;;EAM/C;AACD,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;AACjE,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;AAChE,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAA;AAC7F,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,EAAE,CAAA;CAAE,CAAA;AAM3D,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,eAAe,CAAA;AACjF,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,MAAM,EACd,WAAW,YAAY,EACvB,OAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,iBAwDtD,CAAA"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/thread/filters.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,gBAAgB,EAEhB,aAAa,EACb,aAAa,EAKb,MAAM,MAAM,CAAA;AAIb,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAkB,MAAM,uBAAuB,CAAA;AAE5H,OAAO,EAAe,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI1D,eAAO,MAAM,aAAa,WACjB,MAAM,WACL,mBAAmB,SACtB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmEhD,CAAA;AAEF,eAAO,MAAM,aAAa,WACjB,MAAM,eACD,iBAAiB,SACxB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmBhD,CAAA;AAEF,eAAO,MAAM,UAAU,GAEF,GAAG,SAAS,gBAAgB,GAAG,aAAa,GAAG,aAAa,UACvE,MAAM,OACT,GAAG,eACK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,SAC7C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,QAYxB,CAAA;AAwBD,eAAO,MAAM,mBAAmB,GAC/B,SAAS,mBAAmB;;CAS5B,CAAA;AACD,wBAAgB,UAAU,CACzB,OAAO,EAAE,mBAAmB,IAED,MAAM,SAAS,MAAM,EAAE,cAclD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACrC,QAAQ,MAAM,EACd,SAAS,mBAAmB,EAC5B,OAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,aAK5B,CAAA;AAKD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,GAAG;IACzD,OAAO,EAAE,SAAS,CAAC,EAAE,CAAA;CACrB,CAAA;AACD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAEpG;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAItB,oBAAoB,CACrC;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM;;;;EAM/C;AACD,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;AACjE,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;AAChE,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAA;AAC7F,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,EAAE,CAAA;CAAE,CAAA;AAE3D,gCAAgC;AAChC,eAAO,MAAM,UAAU,gCAA0B,CAAA;AAMjD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,eAAe,CAAA;AACjF,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,MAAM,EACd,WAAW,YAAY,EACvB,OAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,iBAwDtD,CAAA"}
@@ -7,9 +7,11 @@ export declare class MappedThread extends Thread {
7
7
  readonly _initialLogs: Applog[];
8
8
  private _eventMapper;
9
9
  private _writeMapper;
10
+ private _readOnly?;
10
11
  static mapWrites(parent: Thread, name: string, mapper: ApplogWriteMapper): MappedThread;
12
+ static asReadOnly(parent: Thread): Thread;
11
13
  private _parentSubscriptions;
12
- constructor(name: string, parents: Thread | readonly Thread[], filters: readonly string[], _initialLogs: Applog[], _eventMapper: ApplogEventMapper | null, _writeMapper?: ApplogWriteMapper);
14
+ constructor(name: string, parents: Thread | readonly Thread[], filters: readonly string[], _initialLogs: Applog[], _eventMapper: ApplogEventMapper | null, _writeMapper?: ApplogWriteMapper, _readOnly?: boolean);
13
15
  insert(appLogsToInsert: ApplogForInsert[]): void;
14
16
  insertRaw(appLogsToInsert: Applog[]): void;
15
17
  private subscribeToParents;
@@ -1 +1 @@
1
- {"version":3,"file":"mapped.d.ts","sourceRoot":"","sources":["../../src/thread/mapped.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAe,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,KAAK,WAAW,CAAA;AAE7G,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,KAAK,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,IAAI,CAAA;AAElI,qBAAa,YAAa,SAAQ,MAAM;IAetC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAGrB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;IAC/B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAnBrB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAWxE,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,EAAE,SAAS,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,iBAAiB,GAAG,IAAI,EACtC,YAAY,GAAE,iBAAwB;IAsBxC,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE;IAKzC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE;IAM1C,OAAO,CAAC,kBAAkB;IA0C1B,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;IAQhD;;;OAGG;IACH,YAAY;IAWZ,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAgC3D,IAAI,QAAQ,YAEX;CACD"}
1
+ {"version":3,"file":"mapped.d.ts","sourceRoot":"","sources":["../../src/thread/mapped.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAe,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,KAAK,WAAW,CAAA;AAE7G,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,KAAK,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,IAAI,CAAA;AAElI,qBAAa,YAAa,SAAQ,MAAM;IA4BtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAGrB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;IAC/B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS,CAAC;IAjCnB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAWxE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;IAahC,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,EAAE,SAAS,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,iBAAiB,GAAG,IAAI,EACtC,YAAY,GAAE,iBAAwB,EACtC,SAAS,CAAC,EAAE,OAAO;IAsBrB,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE;IAMzC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE;IAO1C,OAAO,CAAC,kBAAkB;IA0C1B,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;IAQhD;;;OAGG;IACH,YAAY;IAWZ,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAgC3D,IAAI,QAAQ,YAEX;CACD"}
@@ -5,6 +5,7 @@ import {
5
5
  ThreadInMemory,
6
6
  WriteableThread,
7
7
  allEntityIDs,
8
+ asReadOnly,
8
9
  assertOnlyCurrent,
9
10
  assertRaw,
10
11
  debounceWrites,
@@ -22,9 +23,9 @@ import {
22
23
  rollingFilter,
23
24
  rollingMapper,
24
25
  simpleApplogMapper
25
- } from "./chunk-CMYPWG2N.min.js";
26
- import "./chunk-KEHU7HGZ.min.js";
26
+ } from "./chunk-MPOFY7NX.min.js";
27
27
  import "./chunk-HYMC7W6S.min.js";
28
+ import "./chunk-KEHU7HGZ.min.js";
28
29
  import "./chunk-PHITDXZT.min.js";
29
30
  export {
30
31
  MappedThread,
@@ -33,6 +34,7 @@ export {
33
34
  ThreadInMemory,
34
35
  WriteableThread,
35
36
  allEntityIDs,
37
+ asReadOnly,
36
38
  assertOnlyCurrent,
37
39
  assertRaw,
38
40
  debounceWrites,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wovin/core",
3
- "version": "0.1.13",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "main": "./dist/index.min.js",
6
6
  "module": "./dist/index.min.js",
@@ -27,6 +27,10 @@
27
27
  "import": "./dist/query.min.js",
28
28
  "types": "./dist/query.d.ts"
29
29
  },
30
+ "./retrieve": {
31
+ "import": "./dist/retrieve.min.js",
32
+ "types": "./dist/retrieve.d.ts"
33
+ },
30
34
  "./thread": {
31
35
  "import": "./dist/thread.min.js",
32
36
  "types": "./dist/thread.d.ts"