@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.
- package/CHANGELOG.md +11 -6
- package/dist/entry/cli-entry.js +2 -2
- package/dist/entry/cli-entry.js.map +1 -1
- package/dist/replication/AbstractReplicator.d.ts +2 -1
- package/dist/replication/AbstractReplicator.js +8 -3
- package/dist/replication/AbstractReplicator.js.map +1 -1
- package/dist/storage/BucketStorageBatch.d.ts +9 -7
- package/dist/storage/StorageEngine.d.ts +3 -2
- package/dist/storage/StorageEngine.js +3 -0
- package/dist/storage/StorageEngine.js.map +1 -1
- package/dist/storage/StorageProvider.d.ts +2 -0
- package/dist/storage/SyncRulesBucketStorage.d.ts +7 -4
- package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
- package/dist/storage/WriteCheckpointAPI.d.ts +0 -26
- package/dist/storage/WriteCheckpointAPI.js.map +1 -1
- package/dist/streams/BroadcastIterable.d.ts +1 -1
- package/dist/streams/streams-index.d.ts +0 -1
- package/dist/streams/streams-index.js +0 -1
- package/dist/streams/streams-index.js.map +1 -1
- package/dist/system/ServiceContext.js +6 -0
- package/dist/system/ServiceContext.js.map +1 -1
- package/package.json +4 -4
- package/src/entry/cli-entry.ts +2 -2
- package/src/replication/AbstractReplicator.ts +10 -4
- package/src/storage/BucketStorageBatch.ts +10 -8
- package/src/storage/StorageEngine.ts +6 -2
- package/src/storage/StorageProvider.ts +3 -0
- package/src/storage/SyncRulesBucketStorage.ts +8 -4
- package/src/storage/WriteCheckpointAPI.ts +0 -30
- package/src/streams/BroadcastIterable.ts +1 -1
- package/src/streams/streams-index.ts +0 -1
- package/src/system/ServiceContext.ts +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/streams/Demultiplexer.d.ts +0 -52
- package/dist/streams/Demultiplexer.js +0 -128
- package/dist/streams/Demultiplexer.js.map +0 -1
- package/src/streams/Demultiplexer.ts +0 -165
- 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):
|
|
100
|
+
async *[Symbol.asyncIterator](signal?: AbortSignal): AsyncIterableIterator<T> {
|
|
101
101
|
const sink = new LastValueSink(this.last);
|
|
102
102
|
this.addSink(sink);
|
|
103
103
|
try {
|
|
@@ -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(),
|