@powersync/service-module-mongodb-storage 0.0.0-dev-20250721091612 → 0.0.0-dev-20250721100912

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-module-mongodb-storage
2
2
 
3
- ## 0.0.0-dev-20250721091612
3
+ ## 0.0.0-dev-20250721100912
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -8,10 +8,10 @@
8
8
  - a700ec9: Reporting mongo storage added to storage engine.
9
9
  - Updated dependencies [f1d187b]
10
10
  - Updated dependencies [a700ec9]
11
- - @powersync/service-core@0.0.0-dev-20250721091612
12
- - @powersync/service-types@0.0.0-dev-20250721091612
13
- - @powersync/lib-services-framework@0.0.0-dev-20250721091612
14
- - @powersync/lib-service-mongodb@0.0.0-dev-20250721091612
11
+ - @powersync/service-core@0.0.0-dev-20250721100912
12
+ - @powersync/service-types@0.0.0-dev-20250721100912
13
+ - @powersync/lib-services-framework@0.0.0-dev-20250721100912
14
+ - @powersync/lib-service-mongodb@0.0.0-dev-20250721100912
15
15
 
16
16
  ## 0.10.4
17
17
 
@@ -10,26 +10,40 @@ export class MongoReportStorage {
10
10
  }
11
11
  async reportSdkConnect(data) {
12
12
  await this.db.sdk_report_events.findOneAndUpdate({ user_id: data.user_id, client_id: data.client_id }, {
13
- $set: data,
14
- $unset: {
15
- disconnect_at: ''
16
- }
13
+ $set: data
17
14
  }, {
18
15
  upsert: true
19
16
  });
20
17
  }
21
18
  async reportSdkDisconnect(data) {
22
- await this.db.sdk_report_events.findOneAndUpdate({ user_id: data.user_id, client_id: data.client_id }, {
23
- $set: {
24
- disconnect_at: data.disconnect_at
25
- },
26
- $unset: {
27
- jwt_exp: ''
28
- }
29
- }, { upsert: true });
19
+ await this.db.sdk_report_events.findOneAndDelete({ user_id: data.user_id, client_id: data.client_id });
30
20
  }
31
21
  async listCurrentConnections(data) {
32
- return this.db.sdk_report_events.aggregate([{ $match: {} }]);
22
+ const result = await this.db.sdk_report_events
23
+ .aggregate([
24
+ {
25
+ $group: {
26
+ _id: null,
27
+ user_ids: { $addToSet: '$user_id' },
28
+ client_ids: { $addToSet: '$client_id' },
29
+ sdks: { $addToSet: '$sdk' }
30
+ }
31
+ },
32
+ {
33
+ $project: {
34
+ _id: 0,
35
+ user_count: { $size: '$user_ids' },
36
+ client_id_count: { $size: '$client_ids' },
37
+ sdk: '$sdks'
38
+ }
39
+ }
40
+ ])
41
+ .toArray();
42
+ console.log(result);
43
+ return {
44
+ ...data,
45
+ ...result[0]
46
+ };
33
47
  }
34
48
  async [Symbol.asyncDispose]() {
35
49
  // No-op
@@ -1 +1 @@
1
- {"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAoB;IAC3B,EAAE,CAAiB;IAEnC,YAAY,EAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAiC;QACnD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAwB;QAC7C,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EACpD;YACE,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN,aAAa,EAAE,EAAE;aAClB;SACF,EACD;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,IAAwB;QAChD,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EACpD;YACE,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;aACZ;SACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,sBAAsB,CAAC,IAAiC;QAC5D,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,QAAQ;IACV,CAAC;CACF"}
1
+ {"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAoB;IAC3B,EAAE,CAAiB;IAEnC,YAAY,EAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAiC;QACnD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAwB;QAC7C,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EACpD;YACE,IAAI,EAAE,IAAI;SACX,EACD;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,IAAwB;QAChD,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,KAAK,CAAC,sBAAsB,CAAC,IAAiC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB;aAC3C,SAAS,CAAC;YACT;gBACE,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE;oBACnC,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;oBACvC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;iBAC5B;aACF;YACD;gBACE,QAAQ,EAAE;oBACR,GAAG,EAAE,CAAC;oBACN,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;oBAClC,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;oBACzC,GAAG,EAAE,OAAO;iBACb;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO;YACL,GAAG,IAAI;YACP,GAAG,MAAM,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,QAAQ;IACV,CAAC;CACF"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@powersync/service-module-mongodb-storage",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
4
  "types": "dist/index.d.ts",
5
- "version": "0.0.0-dev-20250721091612",
5
+ "version": "0.0.0-dev-20250721100912",
6
6
  "main": "dist/index.js",
7
7
  "license": "FSL-1.1-Apache-2.0",
8
8
  "type": "module",
@@ -27,15 +27,15 @@
27
27
  "lru-cache": "^10.2.2",
28
28
  "ts-codec": "^1.3.0",
29
29
  "uuid": "^11.1.0",
30
- "@powersync/lib-service-mongodb": "0.0.0-dev-20250721091612",
31
- "@powersync/lib-services-framework": "0.0.0-dev-20250721091612",
32
- "@powersync/service-core": "0.0.0-dev-20250721091612",
33
- "@powersync/service-types": "0.0.0-dev-20250721091612",
30
+ "@powersync/lib-service-mongodb": "0.0.0-dev-20250721100912",
31
+ "@powersync/lib-services-framework": "0.0.0-dev-20250721100912",
32
+ "@powersync/service-core": "0.0.0-dev-20250721100912",
33
+ "@powersync/service-types": "0.0.0-dev-20250721100912",
34
34
  "@powersync/service-jsonbig": "0.17.10",
35
35
  "@powersync/service-sync-rules": "0.27.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@powersync/service-core-tests": "0.0.0-dev-20250721091612"
38
+ "@powersync/service-core-tests": "0.0.0-dev-20250721100912"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b",
@@ -22,10 +22,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
22
22
  await this.db.sdk_report_events.findOneAndUpdate(
23
23
  { user_id: data.user_id, client_id: data.client_id },
24
24
  {
25
- $set: data,
26
- $unset: {
27
- disconnect_at: ''
28
- }
25
+ $set: data
29
26
  },
30
27
  {
31
28
  upsert: true
@@ -33,21 +30,34 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
33
30
  );
34
31
  }
35
32
  async reportSdkDisconnect(data: SdkConnectDocument): Promise<void> {
36
- await this.db.sdk_report_events.findOneAndUpdate(
37
- { user_id: data.user_id, client_id: data.client_id },
38
- {
39
- $set: {
40
- disconnect_at: data.disconnect_at
41
- },
42
- $unset: {
43
- jwt_exp: ''
44
- }
45
- },
46
- { upsert: true }
47
- );
33
+ await this.db.sdk_report_events.findOneAndDelete({ user_id: data.user_id, client_id: data.client_id });
48
34
  }
49
35
  async listCurrentConnections(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse> {
50
- return this.db.sdk_report_events.aggregate([{ $match: {} }]);
36
+ const result = await this.db.sdk_report_events
37
+ .aggregate([
38
+ {
39
+ $group: {
40
+ _id: null,
41
+ user_ids: { $addToSet: '$user_id' },
42
+ client_ids: { $addToSet: '$client_id' },
43
+ sdks: { $addToSet: '$sdk' }
44
+ }
45
+ },
46
+ {
47
+ $project: {
48
+ _id: 0,
49
+ user_count: { $size: '$user_ids' },
50
+ client_id_count: { $size: '$client_ids' },
51
+ sdk: '$sdks'
52
+ }
53
+ }
54
+ ])
55
+ .toArray();
56
+ console.log(result);
57
+ return {
58
+ ...data,
59
+ ...result[0]
60
+ };
51
61
  }
52
62
 
53
63
  async [Symbol.asyncDispose]() {