@powersync/service-core 0.0.0-dev-20250611110033 → 0.0.0-dev-20250618131818

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 (38) hide show
  1. package/CHANGELOG.md +11 -6
  2. package/dist/entry/cli-entry.js +2 -2
  3. package/dist/entry/cli-entry.js.map +1 -1
  4. package/dist/replication/AbstractReplicator.d.ts +2 -1
  5. package/dist/replication/AbstractReplicator.js +8 -3
  6. package/dist/replication/AbstractReplicator.js.map +1 -1
  7. package/dist/storage/BucketStorageBatch.d.ts +9 -7
  8. package/dist/storage/StorageEngine.d.ts +3 -2
  9. package/dist/storage/StorageEngine.js +3 -0
  10. package/dist/storage/StorageEngine.js.map +1 -1
  11. package/dist/storage/StorageProvider.d.ts +2 -0
  12. package/dist/storage/SyncRulesBucketStorage.d.ts +7 -4
  13. package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
  14. package/dist/storage/WriteCheckpointAPI.d.ts +0 -26
  15. package/dist/storage/WriteCheckpointAPI.js.map +1 -1
  16. package/dist/streams/BroadcastIterable.d.ts +1 -1
  17. package/dist/streams/streams-index.d.ts +0 -1
  18. package/dist/streams/streams-index.js +0 -1
  19. package/dist/streams/streams-index.js.map +1 -1
  20. package/dist/system/ServiceContext.js +6 -0
  21. package/dist/system/ServiceContext.js.map +1 -1
  22. package/package.json +4 -4
  23. package/src/entry/cli-entry.ts +2 -2
  24. package/src/replication/AbstractReplicator.ts +10 -4
  25. package/src/storage/BucketStorageBatch.ts +10 -8
  26. package/src/storage/StorageEngine.ts +6 -2
  27. package/src/storage/StorageProvider.ts +3 -0
  28. package/src/storage/SyncRulesBucketStorage.ts +8 -4
  29. package/src/storage/WriteCheckpointAPI.ts +0 -30
  30. package/src/streams/BroadcastIterable.ts +1 -1
  31. package/src/streams/streams-index.ts +0 -1
  32. package/src/system/ServiceContext.ts +6 -0
  33. package/tsconfig.tsbuildinfo +1 -1
  34. package/dist/streams/Demultiplexer.d.ts +0 -52
  35. package/dist/streams/Demultiplexer.js +0 -128
  36. package/dist/streams/Demultiplexer.js.map +0 -1
  37. package/src/streams/Demultiplexer.ts +0 -165
  38. package/test/src/demultiplexer.test.ts +0 -205
@@ -50,37 +50,11 @@ export interface ManagedWriteCheckpointFilters extends BaseWriteCheckpointIdenti
50
50
  heads: Record<string, string>;
51
51
  }
52
52
 
53
- export interface WriteCheckpointResult {
54
- /**
55
- * Write checkpoint id (also referred to as client_id).
56
- *
57
- * If null, there is no write checkpoint for the client.
58
- */
59
- id: bigint | null;
60
-
61
- /**
62
- * LSN for the checkpoint.
63
- *
64
- * This will change when we support multiple connections.
65
- *
66
- * For managed write checkpoints, this LSN must be exceeded by the checkpoint / replication head to be valid.
67
- *
68
- * For custom write checkpoints, this will be null, and the write checkpoint is valid for all LSNs.
69
- */
70
- lsn: string | null;
71
- }
72
-
73
53
  export type ManagedWriteCheckpointOptions = ManagedWriteCheckpointFilters;
74
54
 
75
55
  export type SyncStorageLastWriteCheckpointFilters = BaseWriteCheckpointIdentifier | ManagedWriteCheckpointFilters;
76
56
  export type LastWriteCheckpointFilters = CustomWriteCheckpointFilters | ManagedWriteCheckpointFilters;
77
57
 
78
- export interface WatchUserWriteCheckpointOptions {
79
- user_id: string;
80
- sync_rules_id: number;
81
- signal: AbortSignal;
82
- }
83
-
84
58
  export interface BaseWriteCheckpointAPI {
85
59
  readonly writeCheckpointMode: WriteCheckpointMode;
86
60
  setWriteCheckpointMode(mode: WriteCheckpointMode): void;
@@ -93,7 +67,6 @@ export interface BaseWriteCheckpointAPI {
93
67
  * sync rules id.
94
68
  */
95
69
  export interface SyncStorageWriteCheckpointAPI extends BaseWriteCheckpointAPI {
96
- batchCreateCustomWriteCheckpoints(checkpoints: BatchedCustomWriteCheckpointOptions[]): Promise<void>;
97
70
  lastWriteCheckpoint(filters: SyncStorageLastWriteCheckpointFilters): Promise<bigint | null>;
98
71
  }
99
72
 
@@ -102,10 +75,7 @@ export interface SyncStorageWriteCheckpointAPI extends BaseWriteCheckpointAPI {
102
75
  * sync rules identifiers for custom write checkpoints.
103
76
  */
104
77
  export interface WriteCheckpointAPI extends BaseWriteCheckpointAPI {
105
- batchCreateCustomWriteCheckpoints(checkpoints: CustomWriteCheckpointOptions[]): Promise<void>;
106
78
  lastWriteCheckpoint(filters: LastWriteCheckpointFilters): Promise<bigint | null>;
107
-
108
- watchUserWriteCheckpoint(options: WatchUserWriteCheckpointOptions): AsyncIterable<WriteCheckpointResult>;
109
79
  }
110
80
 
111
81
  export const DEFAULT_WRITE_CHECKPOINT_MODE = WriteCheckpointMode.MANAGED;
@@ -97,7 +97,7 @@ export class BroadcastIterable<T> implements AsyncIterable<T> {
97
97
  }
98
98
  }
99
99
 
100
- async *[Symbol.asyncIterator](signal?: AbortSignal): AsyncIterator<T> {
100
+ async *[Symbol.asyncIterator](signal?: AbortSignal): AsyncIterableIterator<T> {
101
101
  const sink = new LastValueSink(this.last);
102
102
  this.addSink(sink);
103
103
  try {
@@ -1,4 +1,3 @@
1
1
  export * from './merge.js';
2
- export * from './Demultiplexer.js';
3
2
  export * from './LastValueSink.js';
4
3
  export * from './BroadcastIterable.js';
@@ -59,6 +59,12 @@ export class ServiceContextContainer implements ServiceContext {
59
59
  this.storageEngine = new storage.StorageEngine({
60
60
  configuration
61
61
  });
62
+ this.storageEngine.registerListener({
63
+ storageFatalError: (error) => {
64
+ // Propagate the error to the lifecycle engine
65
+ this.lifeCycleEngine.stopWithError(error);
66
+ }
67
+ });
62
68
 
63
69
  this.lifeCycleEngine.withLifecycle(this.storageEngine, {
64
70
  start: (storageEngine) => storageEngine.start(),