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

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-20250721100912
3
+ ## 0.0.0-dev-20250721105041
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-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
11
+ - @powersync/service-core@0.0.0-dev-20250721105041
12
+ - @powersync/service-types@0.0.0-dev-20250721105041
13
+ - @powersync/lib-services-framework@0.0.0-dev-20250721105041
14
+ - @powersync/lib-service-mongodb@0.0.0-dev-20250721105041
15
15
 
16
16
  ## 0.10.4
17
17
 
@@ -7,7 +7,7 @@ export declare class MongoReportStorage implements storage.ReportStorageFactory
7
7
  private readonly client;
8
8
  readonly db: PowerSyncMongo;
9
9
  constructor(db: PowerSyncMongo);
10
- scrapeSdkData(data: event_types.InstanceRequest): Promise<void>;
10
+ scrapeSdkData(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse>;
11
11
  reportSdkConnect(data: SdkConnectDocument): Promise<void>;
12
12
  reportSdkDisconnect(data: SdkConnectDocument): Promise<void>;
13
13
  listCurrentConnections(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse>;
@@ -6,7 +6,31 @@ export class MongoReportStorage {
6
6
  this.db = db;
7
7
  }
8
8
  async scrapeSdkData(data) {
9
- console.log('MongoReportStorage.scrapeSdkData', data);
9
+ const result = await this.db.sdk_report_events
10
+ .aggregate([
11
+ {
12
+ $group: {
13
+ _id: null,
14
+ user_ids: { $addToSet: '$user_id' },
15
+ client_ids: { $addToSet: '$client_id' },
16
+ sdks: { $addToSet: '$sdk' }
17
+ }
18
+ },
19
+ {
20
+ $project: {
21
+ _id: 0,
22
+ users: '$user_ids',
23
+ clients: '$client_ids',
24
+ sdks: '$sdks'
25
+ }
26
+ }
27
+ ])
28
+ .toArray();
29
+ return {
30
+ app_id: data.app_id,
31
+ org_id: data.org_id,
32
+ ...result[0]
33
+ };
10
34
  }
11
35
  async reportSdkConnect(data) {
12
36
  await this.db.sdk_report_events.findOneAndUpdate({ user_id: data.user_id, client_id: data.client_id }, {
@@ -32,16 +56,16 @@ export class MongoReportStorage {
32
56
  {
33
57
  $project: {
34
58
  _id: 0,
35
- user_count: { $size: '$user_ids' },
36
- client_id_count: { $size: '$client_ids' },
37
- sdk: '$sdks'
59
+ users: '$user_ids',
60
+ clients: '$client_ids',
61
+ sdks: '$sdks'
38
62
  }
39
63
  }
40
64
  ])
41
65
  .toArray();
42
- console.log(result);
43
66
  return {
44
- ...data,
67
+ app_id: data.app_id,
68
+ org_id: data.org_id,
45
69
  ...result[0]
46
70
  };
47
71
  }
@@ -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;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"}
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,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB;aAC3C,SAAS,CAAyB;YACjC;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,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,OAAO;iBACd;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,MAAM,CAAC,CAAC,CAAC;SACb,CAAC;IACJ,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,CAAyB;YACjC;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,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,OAAO;iBACd;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,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-20250721100912",
5
+ "version": "0.0.0-dev-20250721105041",
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-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",
30
+ "@powersync/lib-service-mongodb": "0.0.0-dev-20250721105041",
31
+ "@powersync/lib-services-framework": "0.0.0-dev-20250721105041",
32
+ "@powersync/service-core": "0.0.0-dev-20250721105041",
33
+ "@powersync/service-types": "0.0.0-dev-20250721105041",
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-20250721100912"
38
+ "@powersync/service-core-tests": "0.0.0-dev-20250721105041"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b",
@@ -3,7 +3,7 @@ import { storage } from '@powersync/service-core';
3
3
  import { event_types } from '@powersync/service-types';
4
4
  import { PowerSyncMongo } from './implementation/db.js';
5
5
  import { SdkConnectDocument } from './implementation/models.js';
6
- import { ListCurrentConnectionsResponse } from '@powersync/service-types/dist/events.js';
6
+ import { ListCurrentConnections, ListCurrentConnectionsResponse } from '@powersync/service-types/dist/events.js';
7
7
 
8
8
  export class MongoReportStorage implements storage.ReportStorageFactory {
9
9
  private readonly client: mongo.MongoClient;
@@ -14,8 +14,32 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
14
14
  this.db = db;
15
15
  }
16
16
 
17
- async scrapeSdkData(data: event_types.InstanceRequest): Promise<void> {
18
- console.log('MongoReportStorage.scrapeSdkData', data);
17
+ async scrapeSdkData(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse> {
18
+ const result = await this.db.sdk_report_events
19
+ .aggregate<ListCurrentConnections>([
20
+ {
21
+ $group: {
22
+ _id: null,
23
+ user_ids: { $addToSet: '$user_id' },
24
+ client_ids: { $addToSet: '$client_id' },
25
+ sdks: { $addToSet: '$sdk' }
26
+ }
27
+ },
28
+ {
29
+ $project: {
30
+ _id: 0,
31
+ users: '$user_ids',
32
+ clients: '$client_ids',
33
+ sdks: '$sdks'
34
+ }
35
+ }
36
+ ])
37
+ .toArray();
38
+ return {
39
+ app_id: data.app_id,
40
+ org_id: data.org_id,
41
+ ...result[0]
42
+ };
19
43
  }
20
44
 
21
45
  async reportSdkConnect(data: SdkConnectDocument): Promise<void> {
@@ -34,7 +58,7 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
34
58
  }
35
59
  async listCurrentConnections(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse> {
36
60
  const result = await this.db.sdk_report_events
37
- .aggregate([
61
+ .aggregate<ListCurrentConnections>([
38
62
  {
39
63
  $group: {
40
64
  _id: null,
@@ -46,16 +70,16 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
46
70
  {
47
71
  $project: {
48
72
  _id: 0,
49
- user_count: { $size: '$user_ids' },
50
- client_id_count: { $size: '$client_ids' },
51
- sdk: '$sdks'
73
+ users: '$user_ids',
74
+ clients: '$client_ids',
75
+ sdks: '$sdks'
52
76
  }
53
77
  }
54
78
  ])
55
79
  .toArray();
56
- console.log(result);
57
80
  return {
58
- ...data,
81
+ app_id: data.app_id,
82
+ org_id: data.org_id,
59
83
  ...result[0]
60
84
  };
61
85
  }