@powersync/service-core 0.0.0-dev-20250903111505 → 0.0.0-dev-20250910154512

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @powersync/service-core
2
2
 
3
- ## 0.0.0-dev-20250903111505
3
+ ## 0.0.0-dev-20250910154512
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -10,9 +10,49 @@
10
10
  - Updated dependencies [f1d187b]
11
11
  - Updated dependencies [0fad466]
12
12
  - Updated dependencies [a700ec9]
13
- - @powersync/service-types@0.0.0-dev-20250903111505
14
- - @powersync/lib-services-framework@0.0.0-dev-20250903111505
15
- - @powersync/service-rsocket-router@0.0.0-dev-20250903111505
13
+ - @powersync/service-types@0.0.0-dev-20250910154512
14
+ - @powersync/lib-services-framework@0.0.0-dev-20250910154512
15
+ - @powersync/service-rsocket-router@0.0.0-dev-20250910154512
16
+
17
+ ## 1.15.6
18
+
19
+ ### Patch Changes
20
+
21
+ - 221289d: Correctly handle custom types in primary keys.
22
+ - Updated dependencies [221289d]
23
+ - @powersync/service-sync-rules@0.29.4
24
+ - @powersync/lib-services-framework@0.7.7
25
+ - @powersync/service-rsocket-router@0.2.4
26
+
27
+ ## 1.15.5
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies [f34da91]
32
+ - @powersync/service-sync-rules@0.29.3
33
+ - @powersync/lib-services-framework@0.7.6
34
+ - @powersync/service-rsocket-router@0.2.3
35
+
36
+ ## 1.15.4
37
+
38
+ ### Patch Changes
39
+
40
+ - a2b8bb0: Avoid frequent write checkpoint lookups when the user does not have one.
41
+ - f400b0f: Protocol: Allow `null` as stream parameter.
42
+ - Updated dependencies [17aae6d]
43
+ - @powersync/service-sync-rules@0.29.2
44
+ - @powersync/lib-services-framework@0.7.5
45
+ - @powersync/service-rsocket-router@0.2.2
46
+
47
+ ## 1.15.3
48
+
49
+ ### Patch Changes
50
+
51
+ - f1b4cef: Fix checksum calculation issues with large buckets.
52
+ - Updated dependencies [9681b4c]
53
+ - @powersync/service-sync-rules@0.29.1
54
+ - @powersync/lib-services-framework@0.7.4
55
+ - @powersync/service-rsocket-router@0.2.1
16
56
 
17
57
  ## 1.15.2
18
58
 
@@ -686,9 +686,9 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
686
686
  client_id?: string | undefined;
687
687
  streams?: {
688
688
  subscriptions: {
689
+ parameters: Record<string, any> | null;
689
690
  stream: string;
690
691
  override_priority: number | null;
691
- parameters?: Record<string, any> | undefined;
692
692
  }[];
693
693
  include_defaults?: boolean | undefined;
694
694
  } | undefined;
@@ -704,9 +704,9 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
704
704
  client_id?: string | undefined;
705
705
  streams?: {
706
706
  subscriptions: {
707
+ parameters: Record<string, any> | null;
707
708
  stream: string;
708
709
  override_priority: number | null;
709
- parameters?: Record<string, any> | undefined;
710
710
  }[];
711
711
  include_defaults?: boolean | undefined;
712
712
  } | undefined;
@@ -722,9 +722,9 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
722
722
  client_id?: string | undefined;
723
723
  streams?: {
724
724
  subscriptions: {
725
+ parameters: Record<string, any> | null;
725
726
  stream: string;
726
727
  override_priority: number | null;
727
- parameters?: Record<string, any> | undefined;
728
728
  }[];
729
729
  include_defaults?: boolean | undefined;
730
730
  } | undefined;
@@ -744,9 +744,9 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
744
744
  client_id?: string | undefined;
745
745
  streams?: {
746
746
  subscriptions: {
747
+ parameters: Record<string, any> | null;
747
748
  stream: string;
748
749
  override_priority: number | null;
749
- parameters?: Record<string, any> | undefined;
750
750
  }[];
751
751
  include_defaults?: boolean | undefined;
752
752
  } | undefined;
@@ -763,9 +763,9 @@ export declare const DEFAULT_ROUTE_OPTIONS: {
763
763
  client_id?: string | undefined;
764
764
  streams?: {
765
765
  subscriptions: {
766
+ parameters: Record<string, any> | null;
766
767
  stream: string;
767
768
  override_priority: number | null;
768
- parameters?: Record<string, any> | undefined;
769
769
  }[];
770
770
  include_defaults?: boolean | undefined;
771
771
  } | undefined;
@@ -15,9 +15,9 @@ export declare const syncStreamed: router.Endpoint<{
15
15
  client_id?: string | undefined;
16
16
  streams?: {
17
17
  subscriptions: {
18
+ parameters: Record<string, any> | null;
18
19
  stream: string;
19
20
  override_priority: number | null;
20
- parameters?: Record<string, any> | undefined;
21
21
  }[];
22
22
  include_defaults?: boolean | undefined;
23
23
  } | undefined;
@@ -33,9 +33,9 @@ export declare const syncStreamed: router.Endpoint<{
33
33
  client_id?: string | undefined;
34
34
  streams?: {
35
35
  subscriptions: {
36
+ parameters: Record<string, any> | null;
36
37
  stream: string;
37
38
  override_priority: number | null;
38
- parameters?: Record<string, any> | undefined;
39
39
  }[];
40
40
  include_defaults?: boolean | undefined;
41
41
  } | undefined;
@@ -51,9 +51,9 @@ export declare const syncStreamed: router.Endpoint<{
51
51
  client_id?: string | undefined;
52
52
  streams?: {
53
53
  subscriptions: {
54
+ parameters: Record<string, any> | null;
54
55
  stream: string;
55
56
  override_priority: number | null;
56
- parameters?: Record<string, any> | undefined;
57
57
  }[];
58
58
  include_defaults?: boolean | undefined;
59
59
  } | undefined;
@@ -73,9 +73,9 @@ export declare const syncStreamed: router.Endpoint<{
73
73
  client_id?: string | undefined;
74
74
  streams?: {
75
75
  subscriptions: {
76
+ parameters: Record<string, any> | null;
76
77
  stream: string;
77
78
  override_priority: number | null;
78
- parameters?: Record<string, any> | undefined;
79
79
  }[];
80
80
  include_defaults?: boolean | undefined;
81
81
  } | undefined;
@@ -92,9 +92,9 @@ export declare const syncStreamed: router.Endpoint<{
92
92
  client_id?: string | undefined;
93
93
  streams?: {
94
94
  subscriptions: {
95
+ parameters: Record<string, any> | null;
95
96
  stream: string;
96
97
  override_priority: number | null;
97
- parameters?: Record<string, any> | undefined;
98
98
  }[];
99
99
  include_defaults?: boolean | undefined;
100
100
  } | undefined;
@@ -112,9 +112,9 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
112
112
  client_id?: string | undefined;
113
113
  streams?: {
114
114
  subscriptions: {
115
+ parameters: Record<string, any> | null;
115
116
  stream: string;
116
117
  override_priority: number | null;
117
- parameters?: Record<string, any> | undefined;
118
118
  }[];
119
119
  include_defaults?: boolean | undefined;
120
120
  } | undefined;
@@ -130,9 +130,9 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
130
130
  client_id?: string | undefined;
131
131
  streams?: {
132
132
  subscriptions: {
133
+ parameters: Record<string, any> | null;
133
134
  stream: string;
134
135
  override_priority: number | null;
135
- parameters?: Record<string, any> | undefined;
136
136
  }[];
137
137
  include_defaults?: boolean | undefined;
138
138
  } | undefined;
@@ -148,9 +148,9 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
148
148
  client_id?: string | undefined;
149
149
  streams?: {
150
150
  subscriptions: {
151
+ parameters: Record<string, any> | null;
151
152
  stream: string;
152
153
  override_priority: number | null;
153
- parameters?: Record<string, any> | undefined;
154
154
  }[];
155
155
  include_defaults?: boolean | undefined;
156
156
  } | undefined;
@@ -170,9 +170,9 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
170
170
  client_id?: string | undefined;
171
171
  streams?: {
172
172
  subscriptions: {
173
+ parameters: Record<string, any> | null;
173
174
  stream: string;
174
175
  override_priority: number | null;
175
- parameters?: Record<string, any> | undefined;
176
176
  }[];
177
177
  include_defaults?: boolean | undefined;
178
178
  } | undefined;
@@ -189,9 +189,9 @@ export declare const SYNC_STREAM_ROUTES: (router.Endpoint<{
189
189
  client_id?: string | undefined;
190
190
  streams?: {
191
191
  subscriptions: {
192
+ parameters: Record<string, any> | null;
192
193
  stream: string;
193
194
  override_priority: number | null;
194
- parameters?: Record<string, any> | undefined;
195
195
  }[];
196
196
  include_defaults?: boolean | undefined;
197
197
  } | undefined;
@@ -1,5 +1,5 @@
1
1
  import { ObserverClient } from '@powersync/lib-services-framework';
2
- import { EvaluatedParameters, EvaluatedRow, SqliteInputRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
2
+ import { EvaluatedParameters, EvaluatedRow, SqliteRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
3
3
  import { BSON } from 'bson';
4
4
  import { ReplicationEventPayload } from './ReplicationEventPayload.js';
5
5
  import { SourceTable, TableSnapshotStatus } from './SourceTable.js';
@@ -108,7 +108,7 @@ export interface SaveInsert {
108
108
  sourceTable: SourceTable;
109
109
  before?: undefined;
110
110
  beforeReplicaId?: undefined;
111
- after: SqliteInputRow;
111
+ after: SqliteRow;
112
112
  afterReplicaId: ReplicaId;
113
113
  }
114
114
  export interface SaveUpdate {
@@ -117,7 +117,7 @@ export interface SaveUpdate {
117
117
  /**
118
118
  * This is only present when the id has changed, and will only contain replica identity columns.
119
119
  */
120
- before?: SqliteInputRow;
120
+ before?: SqliteRow;
121
121
  beforeReplicaId?: ReplicaId;
122
122
  /**
123
123
  * A null value means null column.
@@ -130,7 +130,7 @@ export interface SaveUpdate {
130
130
  export interface SaveDelete {
131
131
  tag: SaveOperationTag.DELETE;
132
132
  sourceTable: SourceTable;
133
- before?: SqliteInputRow;
133
+ before?: SqliteRow;
134
134
  beforeReplicaId: ReplicaId;
135
135
  after?: undefined;
136
136
  afterReplicaId?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"BucketStorageBatch.js","sourceRoot":"","sources":["../../src/storage/BucketStorageBatch.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,mCAAmC,GAAqC;IACnF,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;CAC9B,CAAC;AAgHF,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B"}
1
+ {"version":3,"file":"BucketStorageBatch.js","sourceRoot":"","sources":["../../src/storage/BucketStorageBatch.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mCAAmC,GAAqC;IACnF,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;CAC9B,CAAC;AAgHF,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B"}
@@ -20,7 +20,7 @@ export declare const RequestedStreamSubscription: t.ObjectCodec<{
20
20
  /**
21
21
  * An optional dictionary of parameters to pass to this specific stream.
22
22
  */
23
- parameters: t.OptionalCodec<t.Codec<Record<string, any>, Record<string, any>, string, t.CodecProps>>;
23
+ parameters: t.Union<t.RecordCodec<t.Codec<any, any, t.CodecType.Any, t.CodecProps>>, t.Codec<null, null, t.CodecType.Null, t.CodecProps>>;
24
24
  /**
25
25
  * Set when the client wishes to re-assign a different priority to this stream.
26
26
  *
@@ -51,7 +51,7 @@ export declare const StreamSubscriptionRequest: t.ObjectCodec<{
51
51
  /**
52
52
  * An optional dictionary of parameters to pass to this specific stream.
53
53
  */
54
- parameters: t.OptionalCodec<t.Codec<Record<string, any>, Record<string, any>, string, t.CodecProps>>;
54
+ parameters: t.Union<t.RecordCodec<t.Codec<any, any, t.CodecType.Any, t.CodecProps>>, t.Codec<null, null, t.CodecType.Null, t.CodecProps>>;
55
55
  /**
56
56
  * Set when the client wishes to re-assign a different priority to this stream.
57
57
  *
@@ -98,16 +98,16 @@ export declare const StreamingSyncRequest: t.ObjectCodec<{
98
98
  */
99
99
  streams: t.OptionalCodec<t.Codec<{
100
100
  subscriptions: {
101
+ parameters: Record<string, any> | null;
101
102
  stream: string;
102
103
  override_priority: number | null;
103
- parameters?: Record<string, any> | undefined;
104
104
  }[];
105
105
  include_defaults?: boolean | undefined;
106
106
  }, {
107
107
  subscriptions: {
108
+ parameters: Record<string, any> | null;
108
109
  stream: string;
109
110
  override_priority: number | null;
110
- parameters?: Record<string, any> | undefined;
111
111
  }[];
112
112
  include_defaults?: boolean | undefined;
113
113
  }, string, t.CodecProps>>;
@@ -17,7 +17,7 @@ export const RequestedStreamSubscription = t.object({
17
17
  /**
18
18
  * An optional dictionary of parameters to pass to this specific stream.
19
19
  */
20
- parameters: t.record(t.any).optional(),
20
+ parameters: t.union(t.record(t.any), t.Null),
21
21
  /**
22
22
  * Set when the client wishes to re-assign a different priority to this stream.
23
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-types.js","sourceRoot":"","sources":["../../src/util/protocol-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM;IAEd;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM;CAChB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;CAC7C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IAE1C;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAElC;;OAEG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"protocol-types.js","sourceRoot":"","sources":["../../src/util/protocol-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM;IAEd;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM;CAChB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;CAC7C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IAE1C;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAElC;;OAEG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAE9B;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}
@@ -42,13 +42,13 @@ export declare function addBucketChecksums(a: BucketChecksum, b: PartialChecksum
42
42
  export declare function addPartialChecksums(bucket: string, a: PartialChecksum | BucketChecksum | null, b: PartialChecksum | BucketChecksum | null): PartialChecksum | BucketChecksum;
43
43
  export declare function getUuidReplicaIdentityBson(tuple: sync_rules.ToastableSqliteRow, columns: storage.ColumnDescriptor[]): bson.UUID;
44
44
  export declare function uuidForRowBson(row: sync_rules.SqliteRow): bson.UUID;
45
- export declare function hasToastedValues(row: sync_rules.ToastableSqliteRow): boolean;
45
+ export declare function hasToastedValues<V>(row: sync_rules.ToastableSqliteRow<V>): boolean;
46
46
  /**
47
47
  * Returns true if we have a complete row.
48
48
  *
49
49
  * If we don't store data, we assume we always have a complete row.
50
50
  */
51
- export declare function isCompleteRow(storeData: boolean, row: sync_rules.ToastableSqliteRow): row is sync_rules.SqliteInputRow;
51
+ export declare function isCompleteRow<V>(storeData: boolean, row: sync_rules.ToastableSqliteRow<V>): row is sync_rules.SqliteRow<V>;
52
52
  /**
53
53
  * Reduce a bucket to the final state as stored on the client.
54
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "0.0.0-dev-20250903111505",
8
+ "version": "0.0.0-dev-20250910154512",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
@@ -33,11 +33,11 @@
33
33
  "uuid": "^11.1.0",
34
34
  "winston": "^3.13.0",
35
35
  "yaml": "^2.3.2",
36
- "@powersync/lib-services-framework": "0.0.0-dev-20250903111505",
36
+ "@powersync/lib-services-framework": "0.0.0-dev-20250910154512",
37
37
  "@powersync/service-jsonbig": "0.17.11",
38
- "@powersync/service-rsocket-router": "0.0.0-dev-20250903111505",
39
- "@powersync/service-sync-rules": "0.29.0",
40
- "@powersync/service-types": "0.0.0-dev-20250903111505"
38
+ "@powersync/service-rsocket-router": "0.0.0-dev-20250910154512",
39
+ "@powersync/service-sync-rules": "0.29.4",
40
+ "@powersync/service-types": "0.0.0-dev-20250910154512"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/async": "^3.2.24",
@@ -1,11 +1,5 @@
1
1
  import { ObserverClient } from '@powersync/lib-services-framework';
2
- import {
3
- EvaluatedParameters,
4
- EvaluatedRow,
5
- SqliteInputRow,
6
- SqliteRow,
7
- ToastableSqliteRow
8
- } from '@powersync/service-sync-rules';
2
+ import { EvaluatedParameters, EvaluatedRow, SqliteRow, ToastableSqliteRow } from '@powersync/service-sync-rules';
9
3
  import { BSON } from 'bson';
10
4
  import { ReplicationEventPayload } from './ReplicationEventPayload.js';
11
5
  import { SourceTable, TableSnapshotStatus } from './SourceTable.js';
@@ -138,7 +132,7 @@ export interface SaveInsert {
138
132
  sourceTable: SourceTable;
139
133
  before?: undefined;
140
134
  beforeReplicaId?: undefined;
141
- after: SqliteInputRow;
135
+ after: SqliteRow;
142
136
  afterReplicaId: ReplicaId;
143
137
  }
144
138
 
@@ -149,7 +143,7 @@ export interface SaveUpdate {
149
143
  /**
150
144
  * This is only present when the id has changed, and will only contain replica identity columns.
151
145
  */
152
- before?: SqliteInputRow;
146
+ before?: SqliteRow;
153
147
  beforeReplicaId?: ReplicaId;
154
148
 
155
149
  /**
@@ -164,7 +158,7 @@ export interface SaveUpdate {
164
158
  export interface SaveDelete {
165
159
  tag: SaveOperationTag.DELETE;
166
160
  sourceTable: SourceTable;
167
- before?: SqliteInputRow;
161
+ before?: SqliteRow;
168
162
  beforeReplicaId: ReplicaId;
169
163
  after?: undefined;
170
164
  afterReplicaId?: undefined;
@@ -1,5 +1,5 @@
1
1
  import * as t from 'ts-codec';
2
- import { BucketDescription, BucketPriority, SqliteJsonRow } from '@powersync/service-sync-rules';
2
+ import { BucketPriority, SqliteJsonRow } from '@powersync/service-sync-rules';
3
3
  import { JsonContainer } from '@powersync/service-jsonbig';
4
4
 
5
5
  export const BucketRequest = t.object({
@@ -24,7 +24,7 @@ export const RequestedStreamSubscription = t.object({
24
24
  /**
25
25
  * An optional dictionary of parameters to pass to this specific stream.
26
26
  */
27
- parameters: t.record(t.any).optional(),
27
+ parameters: t.union(t.record(t.any), t.Null),
28
28
  /**
29
29
  * Set when the client wishes to re-assign a different priority to this stream.
30
30
  *
package/src/util/utils.ts CHANGED
@@ -182,7 +182,7 @@ export function uuidForRowBson(row: sync_rules.SqliteRow): bson.UUID {
182
182
  return new bson.UUID(uuid.v5(repr, ID_NAMESPACE, buffer));
183
183
  }
184
184
 
185
- export function hasToastedValues(row: sync_rules.ToastableSqliteRow) {
185
+ export function hasToastedValues<V>(row: sync_rules.ToastableSqliteRow<V>) {
186
186
  for (let key in row) {
187
187
  if (typeof row[key] == 'undefined') {
188
188
  return true;
@@ -196,10 +196,10 @@ export function hasToastedValues(row: sync_rules.ToastableSqliteRow) {
196
196
  *
197
197
  * If we don't store data, we assume we always have a complete row.
198
198
  */
199
- export function isCompleteRow(
199
+ export function isCompleteRow<V>(
200
200
  storeData: boolean,
201
- row: sync_rules.ToastableSqliteRow
202
- ): row is sync_rules.SqliteInputRow {
201
+ row: sync_rules.ToastableSqliteRow<V>
202
+ ): row is sync_rules.SqliteRow<V> {
203
203
  if (!storeData) {
204
204
  // Assume the row is complete - no need to check
205
205
  return true;
@@ -0,0 +1,43 @@
1
+ import { StreamingSyncRequest } from '@/index.js';
2
+ import { schema } from '@powersync/lib-services-framework';
3
+ import { describe, test, expect, it } from 'vitest';
4
+
5
+ describe('protocol types', () => {
6
+ describe('StreamingSyncRequest', () => {
7
+ const validator = schema.createTsCodecValidator(StreamingSyncRequest, { allowAdditional: true });
8
+
9
+ test('with streams', () => {
10
+ expect(
11
+ validator.validate({
12
+ buckets: [],
13
+ include_checksum: true,
14
+ raw_data: true,
15
+ binary_data: true,
16
+ client_id: '0da33a94-c140-4b42-b3b3-a1df3b1352a3',
17
+ parameters: {},
18
+ streams: {
19
+ include_defaults: true,
20
+ subscriptions: [{ stream: 'does_not_exist', parameters: null, override_priority: null }]
21
+ }
22
+ } as any)
23
+ ).toMatchObject({ valid: true });
24
+ });
25
+
26
+ test('does not allow missing parameters', () => {
27
+ expect(
28
+ validator.validate({
29
+ buckets: [],
30
+ include_checksum: true,
31
+ raw_data: true,
32
+ binary_data: true,
33
+ client_id: '0da33a94-c140-4b42-b3b3-a1df3b1352a3',
34
+ parameters: {},
35
+ streams: {
36
+ include_defaults: true,
37
+ subscriptions: [{ stream: 'a', override_priority: null }]
38
+ }
39
+ } as any)
40
+ ).toMatchObject({ valid: false });
41
+ });
42
+ });
43
+ });