@powersync/service-core 0.0.0-dev-20251015143910 → 0.0.0-dev-20251110113516

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,20 +1,45 @@
1
1
  # @powersync/service-core
2
2
 
3
- ## 0.0.0-dev-20251015143910
3
+ ## 0.0.0-dev-20251110113516
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - f1d187b: sdk reporting
8
- - 0fad466: Added sdk reporting to storage
9
- - a700ec9: Reporting mongo storage added to storage engine.
10
- - Updated dependencies [f1d187b]
11
- - Updated dependencies [0fad466]
12
- - Updated dependencies [a700ec9]
7
+ - 422ae99: General client connections analytics added
8
+ - Updated dependencies [422ae99]
9
+ - @powersync/service-types@0.0.0-dev-20251110113516
10
+
11
+ ## 1.16.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 80fd68b: Add SDK usage reporting support.
16
+
17
+ ### Patch Changes
18
+
19
+ - 88982d9: Migrate to trusted publishing
20
+ - Updated dependencies [b4fa979]
21
+ - Updated dependencies [80fd68b]
22
+ - Updated dependencies [c2bd0b0]
23
+ - Updated dependencies [0268858]
24
+ - Updated dependencies [88982d9]
25
+ - @powersync/service-sync-rules@0.29.6
26
+ - @powersync/lib-services-framework@0.7.9
27
+ - @powersync/service-types@0.13.1
28
+ - @powersync/service-jsonbig@0.17.12
29
+ - @powersync/service-rsocket-router@0.2.6
30
+
31
+ ## 1.15.8
32
+
33
+ ### Patch Changes
34
+
35
+ - da7ecc6: Upgrade mongodb driver to improve stability.
36
+ - 5328802: [MongoDB Storage] Only compact modified buckets. Add index on bucket_state to handle large numbers of buckets when pre-calculating checksums or compacting, and skip small buckets.
37
+ - Updated dependencies [a98cecb]
38
+ - Updated dependencies [da7ecc6]
13
39
  - Updated dependencies [704553e]
14
- - @powersync/service-types@0.0.0-dev-20251015143910
15
- - @powersync/lib-services-framework@0.0.0-dev-20251015143910
16
- - @powersync/service-sync-rules@0.0.0-dev-20251015143910
17
- - @powersync/service-rsocket-router@0.0.0-dev-20251015143910
40
+ - @powersync/service-sync-rules@0.29.5
41
+ - @powersync/service-rsocket-router@0.2.5
42
+ - @powersync/lib-services-framework@0.7.8
18
43
 
19
44
  ## 1.15.7
20
45
 
@@ -18,7 +18,7 @@ const COMPACT_MEMORY_LIMIT_MB = Math.min(HEAP_LIMIT / 1024 / 1024 - 128, 1024);
18
18
  export function registerCompactAction(program) {
19
19
  const compactCommand = program
20
20
  .command(COMMAND_NAME)
21
- .option(`-b, --buckets [buckets]`, 'Bucket or bucket definition name (optional, comma-separate multiple names)');
21
+ .option(`-b, --buckets [buckets]`, 'Bucket name (optional, comma-separate multiple names)');
22
22
  wrapConfigCommand(compactCommand);
23
23
  return compactCommand.description('Compact storage').action(async (options) => {
24
24
  const buckets = options.buckets?.split(',');
@@ -1 +1 @@
1
- {"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,cAAc,GAAG,OAAO;SAC3B,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,uDAAuD,CAAC,CAAC;IAE9F,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,uBAAuB,CAAC;YACxD,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO;YAC9C,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE/C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,4EAA4E;YAC5E,MAAM,cAAc,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,mBAAmB,CAAC;YAEvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,MAAM,CAAC,OAAO,CAAC;oBACnB,aAAa,EAAE,uBAAuB;oBACtC,cAAc,EAAE,OAAO;oBACvB,oBAAoB,EAAE,KAAK;iBAC5B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnD,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -28,6 +28,11 @@ export interface ReportStorage extends AsyncDisposable {
28
28
  * as well as uniques currently connected clients.
29
29
  */
30
30
  getClientConnectionReports(data: event_types.ClientConnectionReportRequest): Promise<event_types.ClientConnectionReportResponse>;
31
+ /**
32
+ * Get a paginated list of connections
33
+ * This will return a paginated list of connections for a specific client ID within a date range if provided
34
+ */
35
+ getClientConnections(data: event_types.ClientConnectionsRequest): Promise<event_types.PaginatedResponse<event_types.ClientConnection>>;
31
36
  /**
32
37
  * Delete old connection data based on a specific date.
33
38
  * This is used to clean up old connection data that is no longer needed.
@@ -49,7 +49,7 @@ export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketSt
49
49
  /**
50
50
  * Lightweight "compact" process to populate the checksum cache, if any.
51
51
  */
52
- populatePersistentChecksumCache(options?: Pick<CompactOptions, 'signal' | 'maxOpId'>): Promise<void>;
52
+ populatePersistentChecksumCache(options: PopulateChecksumCacheOptions): Promise<PopulateChecksumCacheResults>;
53
53
  getCheckpoint(): Promise<ReplicationCheckpoint>;
54
54
  /**
55
55
  * Given two checkpoints, return the changes in bucket data and parameters that may have occurred
@@ -179,6 +179,17 @@ export interface CompactOptions {
179
179
  compactParameterCacheLimit?: number;
180
180
  signal?: AbortSignal;
181
181
  }
182
+ export interface PopulateChecksumCacheOptions {
183
+ maxOpId: util.InternalOpId;
184
+ minBucketChanges?: number;
185
+ signal?: AbortSignal;
186
+ }
187
+ export interface PopulateChecksumCacheResults {
188
+ /**
189
+ * Number of buckets we have calculated checksums for.
190
+ */
191
+ buckets: number;
192
+ }
182
193
  export interface ClearStorageOptions {
183
194
  signal?: AbortSignal;
184
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"AAkTA,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kBAAkB,EAAE,IAAI,GAAG,EAAU;IACrC,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI,GAAG,EAAU;IAC1C,0BAA0B,EAAE,IAAI;CACjC,CAAC"}
1
+ {"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"AA+TA,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kBAAkB,EAAE,IAAI,GAAG,EAAU;IACrC,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI,GAAG,EAAU;IAC1C,0BAA0B,EAAE,IAAI;CACjC,CAAC"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "0.0.0-dev-20251015143910",
8
+ "version": "0.0.0-dev-20251110113516",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "@opentelemetry/sdk-metrics": "^2.0.1",
19
19
  "async": "^3.2.4",
20
20
  "async-mutex": "^0.5.0",
21
- "bson": "^6.10.3",
21
+ "bson": "^6.10.4",
22
22
  "commander": "^12.0.0",
23
23
  "cors": "^2.8.5",
24
24
  "ipaddr.js": "^2.1.0",
@@ -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-20251015143910",
37
- "@powersync/service-jsonbig": "0.17.11",
38
- "@powersync/service-rsocket-router": "0.0.0-dev-20251015143910",
39
- "@powersync/service-sync-rules": "0.0.0-dev-20251015143910",
40
- "@powersync/service-types": "0.0.0-dev-20251015143910"
36
+ "@powersync/lib-services-framework": "0.7.9",
37
+ "@powersync/service-jsonbig": "0.17.12",
38
+ "@powersync/service-rsocket-router": "0.2.6",
39
+ "@powersync/service-sync-rules": "0.29.6",
40
+ "@powersync/service-types": "0.0.0-dev-20251110113516"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/async": "^3.2.24",
@@ -25,7 +25,7 @@ const COMPACT_MEMORY_LIMIT_MB = Math.min(HEAP_LIMIT / 1024 / 1024 - 128, 1024);
25
25
  export function registerCompactAction(program: Command) {
26
26
  const compactCommand = program
27
27
  .command(COMMAND_NAME)
28
- .option(`-b, --buckets [buckets]`, 'Bucket or bucket definition name (optional, comma-separate multiple names)');
28
+ .option(`-b, --buckets [buckets]`, 'Bucket name (optional, comma-separate multiple names)');
29
29
 
30
30
  wrapConfigCommand(compactCommand);
31
31
 
@@ -31,6 +31,13 @@ export interface ReportStorage extends AsyncDisposable {
31
31
  getClientConnectionReports(
32
32
  data: event_types.ClientConnectionReportRequest
33
33
  ): Promise<event_types.ClientConnectionReportResponse>;
34
+ /**
35
+ * Get a paginated list of connections
36
+ * This will return a paginated list of connections for a specific client ID within a date range if provided
37
+ */
38
+ getClientConnections(
39
+ data: event_types.ClientConnectionsRequest
40
+ ): Promise<event_types.PaginatedResponse<event_types.ClientConnection>>;
34
41
  /**
35
42
  * Delete old connection data based on a specific date.
36
43
  * This is used to clean up old connection data that is no longer needed.
@@ -65,7 +65,7 @@ export interface SyncRulesBucketStorage
65
65
  /**
66
66
  * Lightweight "compact" process to populate the checksum cache, if any.
67
67
  */
68
- populatePersistentChecksumCache(options?: Pick<CompactOptions, 'signal' | 'maxOpId'>): Promise<void>;
68
+ populatePersistentChecksumCache(options: PopulateChecksumCacheOptions): Promise<PopulateChecksumCacheResults>;
69
69
 
70
70
  // ## Read operations
71
71
 
@@ -225,6 +225,19 @@ export interface CompactOptions {
225
225
  signal?: AbortSignal;
226
226
  }
227
227
 
228
+ export interface PopulateChecksumCacheOptions {
229
+ maxOpId: util.InternalOpId;
230
+ minBucketChanges?: number;
231
+ signal?: AbortSignal;
232
+ }
233
+
234
+ export interface PopulateChecksumCacheResults {
235
+ /**
236
+ * Number of buckets we have calculated checksums for.
237
+ */
238
+ buckets: number;
239
+ }
240
+
228
241
  export interface ClearStorageOptions {
229
242
  signal?: AbortSignal;
230
243
  }