@opendatalabs/personal-server-ts-lite 0.0.1-canary.01ca694 → 0.0.1-canary.052d47e

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/browser-runtime.d.ts +26 -1
  2. package/dist/browser-runtime.d.ts.map +1 -1
  3. package/dist/browser-runtime.js +130 -26
  4. package/dist/browser-runtime.js.map +1 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +40 -8
  7. package/dist/client.js.map +1 -1
  8. package/dist/derivatives.d.ts +51 -0
  9. package/dist/derivatives.d.ts.map +1 -0
  10. package/dist/derivatives.js +85 -0
  11. package/dist/derivatives.js.map +1 -0
  12. package/dist/index.d.ts +8 -5
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +8 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/persistence.d.ts +69 -0
  17. package/dist/persistence.d.ts.map +1 -0
  18. package/dist/persistence.js +58 -0
  19. package/dist/persistence.js.map +1 -0
  20. package/dist/relay-tls.d.ts +42 -0
  21. package/dist/relay-tls.d.ts.map +1 -1
  22. package/dist/relay-tls.js +176 -86
  23. package/dist/relay-tls.js.map +1 -1
  24. package/dist/relay.d.ts +83 -4
  25. package/dist/relay.d.ts.map +1 -1
  26. package/dist/relay.js +299 -21
  27. package/dist/relay.js.map +1 -1
  28. package/dist/runtime.d.ts +97 -4
  29. package/dist/runtime.d.ts.map +1 -1
  30. package/dist/runtime.js +208 -44
  31. package/dist/runtime.js.map +1 -1
  32. package/dist/state.d.ts +11 -1
  33. package/dist/state.d.ts.map +1 -1
  34. package/dist/state.js +77 -7
  35. package/dist/state.js.map +1 -1
  36. package/dist/storage.d.ts +6 -2
  37. package/dist/storage.d.ts.map +1 -1
  38. package/dist/storage.js +182 -39
  39. package/dist/storage.js.map +1 -1
  40. package/dist/sync.d.ts +23 -0
  41. package/dist/sync.d.ts.map +1 -1
  42. package/dist/sync.js +56 -6
  43. package/dist/sync.js.map +1 -1
  44. package/package.json +4 -4
package/dist/storage.js CHANGED
@@ -1,4 +1,5 @@
1
- import { DataBlockStorageError, encodeDataBlockCursor, validateDataBlockCursor, } from "@opendatalabs/personal-server-ts-core/storage/blocks";
1
+ import { buildDataBlocksAsync } from "@opendatalabs/personal-server-ts-core/storage/blocks";
2
+ import { DataBlockStorageError, encodeDataBlockCursor, selectScopeBlocksByIds, validateDataBlockCursor, } from "@opendatalabs/personal-server-ts-core/storage/blocks";
2
3
  import { createStorageReadMethods, sortEntries } from "./storage-utils.js";
3
4
  import { previewEnvelopeValue, previewJsonEnvelopePrefix, } from "@opendatalabs/personal-server-ts-core/storage/preview";
4
5
  const DEFAULT_INDEXED_DB_NAME = "personal-server-lite-storage";
@@ -7,6 +8,10 @@ const DEFAULT_INDEXED_DB_KEY = "data-storage-v1";
7
8
  const TEXT_PAGE_MEDIA_TYPE = "text/plain; charset=utf-8";
8
9
  const textEncoder = new TextEncoder();
9
10
  const textDecoder = new TextDecoder();
11
+ function schemaIdFromEnvelope(envelope) {
12
+ const schemaId = envelope.schemaId;
13
+ return typeof schemaId === "string" ? schemaId : undefined;
14
+ }
10
15
  function initialState() {
11
16
  return {
12
17
  version: 1,
@@ -88,6 +93,12 @@ function deleteMapPrefix(map, pathPrefix) {
88
93
  }
89
94
  }
90
95
  }
96
+ function describeStorageError(error) {
97
+ if (error instanceof Error) {
98
+ return { errorClass: error.name, message: error.message };
99
+ }
100
+ return { errorClass: typeof error, message: String(error) };
101
+ }
91
102
  async function getOrCreateOpfsDirectory(root, parts) {
92
103
  let dir = root;
93
104
  for (const part of parts) {
@@ -294,12 +305,8 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
294
305
  envelopes: fileStore.kind === "indexeddb"
295
306
  ? Array.from(fallbackEnvelopes.values())
296
307
  : [],
297
- blockManifests: fileStore.kind === "indexeddb"
298
- ? Array.from(fallbackBlockManifests.entries()).map(([path, manifest]) => ({ path, manifest }))
299
- : [],
300
- blockPayloads: fileStore.kind === "indexeddb"
301
- ? Array.from(fallbackBlockPayloads.entries()).map(([path, block]) => ({ path, block }))
302
- : [],
308
+ blockManifests: Array.from(fallbackBlockManifests.entries()).map(([path, manifest]) => ({ path, manifest })),
309
+ blockPayloads: Array.from(fallbackBlockPayloads.entries()).map(([path, block]) => ({ path, block })),
303
310
  };
304
311
  const write = persistQueue.then(() => persistence.write(snapshot));
305
312
  persistQueue = write.catch(() => undefined);
@@ -315,9 +322,12 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
315
322
  findByFileId(fileId) {
316
323
  return state.entries.find((entry) => entry.fileId === fileId);
317
324
  },
325
+ findByDataPointId(dataPointId) {
326
+ return state.entries.find((entry) => entry.dataPointId === dataPointId);
327
+ },
318
328
  findUnsynced(options) {
319
329
  const entries = state.entries
320
- .filter((entry) => entry.fileId === null)
330
+ .filter((entry) => entry.dataPointId === null)
321
331
  .sort((a, b) => a.createdAt.localeCompare(b.createdAt));
322
332
  return options?.limit === undefined
323
333
  ? entries
@@ -347,13 +357,44 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
347
357
  },
348
358
  async readScopeBlocks(scope, collectedAt, options) {
349
359
  const manifestPath = blockManifestPath(scope, collectedAt);
350
- const manifest = (await fileStore.readBlockManifest?.(manifestPath)) ??
360
+ let manifest = (await fileStore.readBlockManifest?.(manifestPath)) ??
351
361
  (fileStore === fallbackStore
352
362
  ? null
353
363
  : await fallbackStore.readBlockManifest?.(manifestPath)) ??
354
364
  null;
365
+ let inMemoryBlocks = null;
355
366
  if (!manifest) {
356
- throw new DataBlockStorageError("block_manifest_not_found", `Block manifest not found for ${scope} at ${collectedAt}`);
367
+ const envelope = await storagePort.readEnvelope(scope, collectedAt);
368
+ const built = await buildDataBlocksAsync({
369
+ scope,
370
+ collectedAt,
371
+ schemaId: schemaIdFromEnvelope(envelope),
372
+ content: envelope,
373
+ });
374
+ manifest = built.manifest;
375
+ inMemoryBlocks = built.blocks;
376
+ try {
377
+ await storagePort.writeBlockManifest?.(scope, collectedAt, built.manifest, built.blocks);
378
+ }
379
+ catch (error) {
380
+ console.warn({
381
+ scope,
382
+ collectedAt,
383
+ ...describeStorageError(error),
384
+ }, "Block sidecar cache write failed; serving read from local envelope");
385
+ }
386
+ }
387
+ if (options.blockIds?.length) {
388
+ const selection = await selectScopeBlocksByIds(manifest, options.blockIds, { maxBytes: options.maxBytes }, async (blockId) => inMemoryBlocks?.find((candidate) => candidate.id === blockId) ??
389
+ (await readBlockPayloadFromStores(fileStore, fallbackStore, blockPayloadPath(scope, collectedAt, blockId))));
390
+ return {
391
+ scope: manifest.scope,
392
+ collectedAt: manifest.collectedAt,
393
+ ...(manifest.schemaId ? { schemaId: manifest.schemaId } : {}),
394
+ contentKind: manifest.contentKind,
395
+ blocks: selection.blocks,
396
+ warnings: [...manifest.warnings, ...selection.warnings],
397
+ };
357
398
  }
358
399
  const cursorResult = options.cursor
359
400
  ? validateDataBlockCursor(options.cursor, { scope, collectedAt })
@@ -384,9 +425,23 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
384
425
  bytes + ref.sizeBytes > maxBytes) {
385
426
  break;
386
427
  }
387
- const block = await readBlockPayloadFromStores(fileStore, fallbackStore, blockPayloadPath(scope, collectedAt, ref.id));
428
+ const block = inMemoryBlocks?.find((candidate) => candidate.id === ref.id) ??
429
+ (await readBlockPayloadFromStores(fileStore, fallbackStore, blockPayloadPath(scope, collectedAt, ref.id)));
388
430
  if (!block) {
389
- throw new DataBlockStorageError("block_payload_not_found", `Block payload not found for ${scope} at ${collectedAt}: ${ref.id}`);
431
+ const envelope = await storagePort.readEnvelope(scope, collectedAt);
432
+ const rebuilt = await buildDataBlocksAsync({
433
+ scope,
434
+ collectedAt,
435
+ schemaId: schemaIdFromEnvelope(envelope),
436
+ content: envelope,
437
+ });
438
+ manifest = rebuilt.manifest;
439
+ inMemoryBlocks = rebuilt.blocks;
440
+ nextIndex = startIndex;
441
+ nextOffset = undefined;
442
+ bytes = 0;
443
+ blocks.length = 0;
444
+ continue;
390
445
  }
391
446
  const page = pageBlock(block, offset, maxBytes - bytes);
392
447
  blocks.push(page.block);
@@ -418,33 +473,77 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
418
473
  warnings: manifest.warnings,
419
474
  };
420
475
  },
421
- async hasScopeBlocks(scope, collectedAt) {
476
+ async readBlockManifest(scope, collectedAt) {
422
477
  const manifestPath = blockManifestPath(scope, collectedAt);
423
- const manifest = (await fileStore.readBlockManifest?.(manifestPath)) ??
478
+ return ((await fileStore.readBlockManifest?.(manifestPath)) ??
424
479
  (fileStore === fallbackStore
425
480
  ? null
426
481
  : await fallbackStore.readBlockManifest?.(manifestPath)) ??
427
- null;
428
- return Boolean(manifest);
482
+ null);
483
+ },
484
+ async hasScopeBlocks(scope, collectedAt) {
485
+ return Boolean(await storagePort.readBlockManifest?.(scope, collectedAt));
486
+ },
487
+ async canReadScopeBlocks(scope, collectedAt) {
488
+ if (await storagePort.hasScopeBlocks?.(scope, collectedAt)) {
489
+ return true;
490
+ }
491
+ const path = envelopePath(scope, collectedAt);
492
+ const preview = (await readPreviewFromFileStore(fileStore, path, 1)) ??
493
+ (fileStore === fallbackStore
494
+ ? null
495
+ : await readPreviewFromFileStore(fallbackStore, path, 1));
496
+ if (preview)
497
+ return true;
498
+ const envelope = (await fileStore.readEnvelope(path)) ??
499
+ (fileStore === fallbackStore
500
+ ? null
501
+ : await fallbackStore.readEnvelope(path));
502
+ return Boolean(envelope);
429
503
  },
430
504
  async writeBlockManifest(scope, collectedAt, manifest, blocks) {
431
- if (!fileStore.writeBlockManifest || !fileStore.writeBlockPayload) {
432
- throw new Error("Block sidecar storage is not available");
505
+ const writeTree = async (store) => {
506
+ if (!store.writeBlockManifest || !store.writeBlockPayload) {
507
+ throw new Error("Block sidecar storage is not available");
508
+ }
509
+ await store.deleteBlockTree?.(blockTreePath(scope, collectedAt));
510
+ for (const block of blocks) {
511
+ await store.writeBlockPayload(blockPayloadPath(scope, collectedAt, block.id), block);
512
+ }
513
+ await store.writeBlockManifest(blockManifestPath(scope, collectedAt), manifest);
514
+ };
515
+ let wrotePrimary = false;
516
+ try {
517
+ await writeTree(fileStore);
518
+ wrotePrimary = true;
433
519
  }
434
- await fileStore.deleteBlockTree?.(blockTreePath(scope, collectedAt));
435
- for (const block of blocks) {
436
- await fileStore.writeBlockPayload(blockPayloadPath(scope, collectedAt, block.id), block);
520
+ catch (error) {
521
+ if (fileStore === fallbackStore) {
522
+ throw error;
523
+ }
524
+ console.warn({
525
+ scope,
526
+ collectedAt,
527
+ fileStoreKind: fileStore.kind,
528
+ fallbackStoreKind: fallbackStore.kind,
529
+ ...describeStorageError(error),
530
+ }, "Primary block sidecar write failed; using IndexedDB fallback");
531
+ await writeTree(fallbackStore);
437
532
  }
438
- await fileStore.writeBlockManifest(blockManifestPath(scope, collectedAt), manifest);
439
- if (fileStore.kind !== "indexeddb") {
533
+ if (wrotePrimary && fileStore.kind !== "indexeddb") {
440
534
  await fallbackStore.deleteBlockTree?.(blockTreePath(scope, collectedAt));
441
535
  }
442
536
  await persist();
443
537
  },
444
538
  async insertEntry(entry) {
539
+ const version = entry.version ??
540
+ state.entries.reduce((max, e) => e.scope === entry.scope && e.version > max ? e.version : max, 0) + 1;
445
541
  const indexed = {
446
542
  ...entry,
447
543
  schemaId: entry.schemaId ?? null,
544
+ version,
545
+ dataPointId: entry.dataPointId ?? null,
546
+ afterTombstoneVersion: entry.afterTombstoneVersion ?? null,
448
547
  id: state.nextId,
449
548
  createdAt: new Date().toISOString(),
450
549
  };
@@ -475,6 +574,41 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
475
574
  }
476
575
  return updated;
477
576
  },
577
+ findLatestVersionByScope(scope) {
578
+ return state.entries.reduce((max, e) => (e.scope === scope && e.version > max ? e.version : max), 0);
579
+ },
580
+ async updateDataPointId(path, dataPointId) {
581
+ let updated = false;
582
+ state = {
583
+ ...state,
584
+ entries: state.entries.map((entry) => {
585
+ if (entry.path !== path)
586
+ return entry;
587
+ updated = true;
588
+ return { ...entry, dataPointId };
589
+ }),
590
+ };
591
+ if (updated) {
592
+ await persist();
593
+ }
594
+ return updated;
595
+ },
596
+ async updateEntryVersion(path, version) {
597
+ let updated = false;
598
+ state = {
599
+ ...state,
600
+ entries: state.entries.map((entry) => {
601
+ if (entry.path !== path)
602
+ return entry;
603
+ updated = true;
604
+ return { ...entry, version };
605
+ }),
606
+ };
607
+ if (updated) {
608
+ await persist();
609
+ }
610
+ return updated;
611
+ },
478
612
  async deleteScope(scope) {
479
613
  let deleted = 0;
480
614
  const deletedPaths = [];
@@ -503,28 +637,37 @@ export async function createPersistentPsLiteStorage(adapter, persistence = creat
503
637
  await persist();
504
638
  return deleted;
505
639
  },
640
+ async deleteVersion(scope, collectedAt) {
641
+ const entry = state.entries.find((e) => e.scope === scope && e.collectedAt === collectedAt);
642
+ if (!entry)
643
+ return false;
644
+ return removeEntry(entry);
645
+ },
506
646
  async deleteByFileId(fileId) {
507
647
  const entry = state.entries.find((e) => e.fileId === fileId);
508
648
  if (!entry)
509
649
  return false;
510
- const blobPath = envelopePath(entry.scope, entry.collectedAt);
511
- // Delete the blob FIRST (both stores tolerate a missing blob); only drop the index row once
512
- // the blob is gone. If blob deletion throws for a real reason, the row is preserved so the
513
- // next sync retry re-attempts instead of orphaning the local blob.
514
- await Promise.all([
515
- fileStore.deleteEnvelope(blobPath),
516
- fallbackStore.deleteEnvelope(blobPath),
517
- fileStore.deleteBlockTree?.(blockTreePath(entry.scope, entry.collectedAt)) ?? Promise.resolve(),
518
- fallbackStore.deleteBlockTree?.(blockTreePath(entry.scope, entry.collectedAt)) ?? Promise.resolve(),
519
- ]);
520
- state = {
521
- ...state,
522
- entries: state.entries.filter((e) => e !== entry),
523
- };
524
- await persist();
525
- return true;
650
+ return removeEntry(entry);
526
651
  },
527
652
  };
653
+ async function removeEntry(entry) {
654
+ const blobPath = envelopePath(entry.scope, entry.collectedAt);
655
+ // Delete the blob FIRST (both stores tolerate a missing blob); only drop the index row once
656
+ // the blob is gone. If blob deletion throws for a real reason, the row is preserved so the
657
+ // next sync retry re-attempts instead of orphaning the local blob.
658
+ await Promise.all([
659
+ fileStore.deleteEnvelope(blobPath),
660
+ fallbackStore.deleteEnvelope(blobPath),
661
+ fileStore.deleteBlockTree?.(blockTreePath(entry.scope, entry.collectedAt)) ?? Promise.resolve(),
662
+ fallbackStore.deleteBlockTree?.(blockTreePath(entry.scope, entry.collectedAt)) ?? Promise.resolve(),
663
+ ]);
664
+ state = {
665
+ ...state,
666
+ entries: state.entries.filter((e) => e !== entry),
667
+ };
668
+ await persist();
669
+ return true;
670
+ }
528
671
  if (fileStore.readEnvelopePreview) {
529
672
  storagePort.readEnvelopePreview = async (scope, collectedAt, { maxBytes }) => {
530
673
  const path = envelopePath(scope, collectedAt);
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/sync.d.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  import type { ServerConfig } from "@opendatalabs/personal-server-ts-core/schemas";
2
2
  import type { DataStoragePort } from "@opendatalabs/personal-server-ts-core/ports";
3
+ import type { Logger } from "@opendatalabs/personal-server-ts-core/logger";
3
4
  import { type SyncManager } from "@opendatalabs/personal-server-ts-core/sync/manager";
5
+ import { type ScopeDeletionTracker } from "@opendatalabs/personal-server-ts-core/sync";
6
+ import type { DataPointFeedPort, PendingBlobDeletionStore } from "@opendatalabs/personal-server-ts-core/ports";
4
7
  import type { ServerAccount } from "@opendatalabs/personal-server-ts-core/keys";
5
8
  import { type GatewayClient } from "@opendatalabs/vana-sdk/browser";
9
+ import type { DownloadWorkerDeps } from "@opendatalabs/personal-server-ts-core/sync";
10
+ import type { LineageGatewayPort } from "@opendatalabs/personal-server-ts-core/lineage";
6
11
  import type { PsLiteStateStore } from "./state.js";
7
12
  import type { DiagnosticsRecorder } from "./diagnostics.js";
8
13
  interface SyncCursor {
@@ -17,12 +22,30 @@ export interface PsLiteSyncOptions {
17
22
  ownerSignature: `0x${string}`;
18
23
  serverAccount: ServerAccount;
19
24
  gateway?: GatewayClient;
25
+ /**
26
+ * Deletion-aware gateway feed. Defaults to a REST feed on the configured
27
+ * gateway URL; inject alongside a mock `gateway` in tests.
28
+ */
29
+ dataPointFeed?: DataPointFeedPort;
30
+ /**
31
+ * Read-side tombstone memory shared with the runtime's data API. Built
32
+ * here by default so the sync workers and the reads see the same state.
33
+ */
34
+ scopeDeletions?: ScopeDeletionTracker;
20
35
  diagnostics?: DiagnosticsRecorder;
36
+ logger?: Logger;
37
+ /** Registers derivatives (envelopes carrying `$lineage`) with their lineage. */
38
+ lineageGateway?: Pick<LineageGatewayPort, "registerDataPoint">;
39
+ /** Post-index download hook (derivative recompute on refresh). */
40
+ onDataPointIndexed?: DownloadWorkerDeps["onDataPointIndexed"];
21
41
  }
22
42
  export declare function createPsLiteSyncCursor(stateStore: PsLiteStateStore): SyncCursor;
43
+ export declare function createPsLitePendingBlobDeletionStore(stateStore: PsLiteStateStore): PendingBlobDeletionStore;
23
44
  export declare function createPsLiteSyncManager(options: PsLiteSyncOptions): Promise<{
24
45
  syncManager: SyncManager;
25
46
  serverOwner: `0x${string}`;
47
+ dataPointFeed: DataPointFeedPort;
48
+ scopeDeletions: ScopeDeletionTracker;
26
49
  }>;
27
50
  export {};
28
51
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,oDAAoD,CAAC;AAG5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,UAAU,UAAU;IAClB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAWD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,gBAAgB,GAC3B,UAAU,CAaZ;AAwED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,CAAC,CAmEnE"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,iBAAiB,EAEjB,wBAAwB,EACzB,MAAM,6CAA6C,CAAC;AAMrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAe5D,UAAU,UAAU;IAClB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,cAAc,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IAC/D,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;CAC/D;AAoBD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,gBAAgB,GAC3B,UAAU,CAaZ;AAED,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,gBAAgB,GAC3B,wBAAwB,CAgB1B;AAwED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,oBAAoB,CAAC;CACtC,CAAC,CAoGD"}
package/dist/sync.js CHANGED
@@ -1,16 +1,27 @@
1
1
  import { createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync/manager";
2
- import { createVanaSyncStorageAdapter } from "@opendatalabs/personal-server-ts-core/storage/adapters";
2
+ import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createPendingBlobDeletionStore, createScopeDeletionTracker, normalizePendingBlobDeletions, } from "@opendatalabs/personal-server-ts-core/sync";
3
+ import { createVanaSyncStorageAdapter, resolveVanaStorageEndpoint, } from "@opendatalabs/personal-server-ts-core/storage/adapters";
3
4
  import { createServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
4
5
  import { createGatewayClient, deriveMasterKey, } from "@opendatalabs/vana-sdk/browser";
5
6
  import { resolvePsLiteOwner } from "./owner-binding.js";
6
7
  const SYNC_CURSOR_KEY = "sync-cursor-v1";
7
- function createBrowserLogger() {
8
- return {
8
+ const PENDING_BLOB_DELETIONS_KEY = "pending-blob-deletions-v1";
9
+ function createBrowserLogger(logger) {
10
+ const fallback = {
9
11
  info: console.info.bind(console),
10
12
  error: console.error.bind(console),
11
13
  warn: console.warn.bind(console),
12
14
  debug: console.debug.bind(console),
13
15
  };
16
+ if (!logger) {
17
+ return fallback;
18
+ }
19
+ return {
20
+ debug: logger.debug?.bind(logger) ?? fallback.debug,
21
+ info: logger.info?.bind(logger) ?? fallback.info,
22
+ warn: logger.warn?.bind(logger) ?? fallback.warn,
23
+ error: logger.error?.bind(logger) ?? fallback.error,
24
+ };
14
25
  }
15
26
  export function createPsLiteSyncCursor(stateStore) {
16
27
  return {
@@ -25,6 +36,19 @@ export function createPsLiteSyncCursor(stateStore) {
25
36
  },
26
37
  };
27
38
  }
39
+ export function createPsLitePendingBlobDeletionStore(stateStore) {
40
+ return createPendingBlobDeletionStore({
41
+ async read() {
42
+ const state = await stateStore.get(PENDING_BLOB_DELETIONS_KEY);
43
+ if (!state)
44
+ return null;
45
+ return normalizePendingBlobDeletions(state.keys ?? state.scopes);
46
+ },
47
+ async write(keys) {
48
+ await stateStore.set(PENDING_BLOB_DELETIONS_KEY, { keys });
49
+ },
50
+ });
51
+ }
28
52
  function buildDownloadDiagnosticsHook(recorder) {
29
53
  return {
30
54
  onDownloadStart(fileId) {
@@ -109,7 +133,25 @@ export async function createPsLiteSyncManager(options) {
109
133
  contracts: options.config.gateway.contracts,
110
134
  });
111
135
  const cursor = createPsLiteSyncCursor(options.stateStore);
112
- const logger = createBrowserLogger();
136
+ const logger = createBrowserLogger(options.logger);
137
+ const dataPointFeed = options.dataPointFeed ??
138
+ createGatewayDataPointFeed({ gatewayUrl: options.config.gateway.url });
139
+ const scopeDeletions = options.scopeDeletions ??
140
+ createScopeDeletionTracker({ feed: dataPointFeed, serverOwner, logger });
141
+ // Durable deletion: same AddData signer as uploads, same Web3Signed
142
+ // account as the storage provider.
143
+ const deleteData = createGatewayDeleteDataPort({
144
+ gatewayUrl: options.config.gateway.url,
145
+ dataPointFeed,
146
+ serverOwner,
147
+ signer,
148
+ storage: {
149
+ endpoint: resolveVanaStorageEndpoint(options.config),
150
+ chainId: options.config.gateway.chainId,
151
+ signMessage: (message) => options.serverAccount.signMessage(message),
152
+ },
153
+ });
154
+ const pendingBlobDeletions = createPsLitePendingBlobDeletionStore(options.stateStore);
113
155
  const downloadDiagnostics = options.diagnostics
114
156
  ? buildDownloadDiagnosticsHook(options.diagnostics)
115
157
  : undefined;
@@ -121,6 +163,9 @@ export async function createPsLiteSyncManager(options) {
121
163
  masterKey,
122
164
  serverOwner,
123
165
  logger: logger,
166
+ lineageGateway: options.lineageGateway,
167
+ dataPointFeed,
168
+ scopeDeletions,
124
169
  }, {
125
170
  storage: options.storage,
126
171
  storageAdapter,
@@ -130,7 +175,12 @@ export async function createPsLiteSyncManager(options) {
130
175
  serverOwner,
131
176
  logger: logger,
132
177
  diagnostics: downloadDiagnostics,
178
+ dataPointFeed,
179
+ scopeDeletions,
180
+ onDataPointIndexed: options.onDataPointIndexed,
133
181
  }, {
182
+ deleteData,
183
+ pendingBlobDeletions,
134
184
  async canSync() {
135
185
  try {
136
186
  const serverInfo = await gateway.getServer(options.serverAccount.address);
@@ -143,7 +193,7 @@ export async function createPsLiteSyncManager(options) {
143
193
  };
144
194
  }
145
195
  catch (err) {
146
- logger.warn("Could not verify server registration for sync", err);
196
+ logger.warn({ error: err instanceof Error ? err.message : String(err) }, "Could not verify server registration for sync");
147
197
  return {
148
198
  ok: false,
149
199
  reason: "registration_check_failed",
@@ -153,6 +203,6 @@ export async function createPsLiteSyncManager(options) {
153
203
  },
154
204
  });
155
205
  syncManager.start();
156
- return { syncManager, serverOwner };
206
+ return { syncManager, serverOwner, dataPointFeed, scopeDeletions };
157
207
  }
158
208
  //# sourceMappingURL=sync.js.map
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}