@powersync/service-module-mongodb-storage 0.0.0-dev-20250721152112 → 0.0.0-dev-20250722085017

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,17 +1,19 @@
1
1
  # @powersync/service-module-mongodb-storage
2
2
 
3
- ## 0.0.0-dev-20250721152112
3
+ ## 0.0.0-dev-20250722085017
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - f1d187b: sdk reporting
8
8
  - a700ec9: Reporting mongo storage added to storage engine.
9
9
  - Updated dependencies [f1d187b]
10
+ - Updated dependencies [4ebc3bf]
11
+ - Updated dependencies [1aafdaf]
10
12
  - Updated dependencies [a700ec9]
11
- - @powersync/service-core@0.0.0-dev-20250721152112
12
- - @powersync/service-types@0.0.0-dev-20250721152112
13
- - @powersync/lib-services-framework@0.0.0-dev-20250721152112
14
- - @powersync/lib-service-mongodb@0.0.0-dev-20250721152112
13
+ - @powersync/service-core@0.0.0-dev-20250722085017
14
+ - @powersync/service-types@0.0.0-dev-20250722085017
15
+ - @powersync/lib-services-framework@0.0.0-dev-20250722085017
16
+ - @powersync/lib-service-mongodb@0.0.0-dev-20250722085017
15
17
 
16
18
  ## 0.10.4
17
19
 
@@ -1,3 +1,17 @@
1
+ function dateFilter(userId, clientId) {
2
+ const date = new Date();
3
+ const year = date.getFullYear();
4
+ const month = date.getMonth() + 1;
5
+ const day = date.getDate();
6
+ return {
7
+ user_id: userId,
8
+ client_id: clientId,
9
+ connect_at: {
10
+ $gte: new Date(year, month, day, 0, 0, 0),
11
+ $lt: new Date(year, month, day + 1, 0, 0, 0)
12
+ }
13
+ };
14
+ }
1
15
  export class MongoReportStorage {
2
16
  client;
3
17
  db;
@@ -36,16 +50,19 @@ export class MongoReportStorage {
36
50
  };
37
51
  }
38
52
  async reportSdkConnect(data) {
39
- await this.db.sdk_report_events.findOneAndUpdate({ _id: data.id }, {
40
- $set: data.data
53
+ await this.db.sdk_report_events.findOneAndUpdate(dateFilter(data.user_id, data.client_id), {
54
+ $set: data,
55
+ $unset: {
56
+ disconnect_at: ''
57
+ }
41
58
  }, {
42
59
  upsert: true
43
60
  });
44
61
  }
45
62
  async reportSdkDisconnect(data) {
46
- await this.db.sdk_report_events.findOneAndUpdate({ _id: data.id }, {
63
+ await this.db.sdk_report_events.findOneAndUpdate(dateFilter(data.user_id, data.client_id), {
47
64
  $set: {
48
- disconnect_at: data.data.disconnect_at
65
+ disconnect_at: data.disconnect_at
49
66
  },
50
67
  $unset: {
51
68
  jwt_exp: ''
@@ -1 +1 @@
1
- {"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"AAWA,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,gBAAgB,CAAC,IAAkC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,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,IAA0B;QAC/C,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAChB;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,EACD;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,IAA4B;QACpD,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAChB;YACE,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;aACvC;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;aACZ;SACF,CACF,CAAC;IACJ,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"}
1
+ {"version":3,"file":"MongoReportStorage.js","sourceRoot":"","sources":["../../src/storage/MongoReportStorage.ts"],"names":[],"mappings":"AAWA,SAAS,UAAU,CAAC,MAAc,EAAE,QAAgB;IAClD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,OAAO;QACL,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC;AAED,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,gBAAgB,CAAC,IAAkC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,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,IAA0B;QAC/C,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAU,CAAC,EACzC;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,IAA4B;QACpD,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAU,CAAC,EAAE;YAC1F,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;aACZ;SACF,CAAC,CAAC;IACL,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-20250721152112",
5
+ "version": "0.0.0-dev-20250722085017",
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-20250721152112",
31
- "@powersync/lib-services-framework": "0.0.0-dev-20250721152112",
32
- "@powersync/service-core": "0.0.0-dev-20250721152112",
33
- "@powersync/service-types": "0.0.0-dev-20250721152112",
30
+ "@powersync/lib-service-mongodb": "0.0.0-dev-20250722085017",
31
+ "@powersync/lib-services-framework": "0.0.0-dev-20250722085017",
32
+ "@powersync/service-core": "0.0.0-dev-20250722085017",
33
+ "@powersync/service-types": "0.0.0-dev-20250722085017",
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-20250721152112"
38
+ "@powersync/service-core-tests": "0.0.0-dev-20250722085017"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b",
@@ -9,6 +9,21 @@ import {
9
9
  SdkDisconnectEventData
10
10
  } from '@powersync/service-types/dist/events.js';
11
11
 
12
+ function dateFilter(userId: string, clientId: string): mongo.Filter<mongo.Document> {
13
+ const date = new Date();
14
+ const year = date.getFullYear();
15
+ const month = date.getMonth() + 1;
16
+ const day = date.getDate();
17
+ return {
18
+ user_id: userId,
19
+ client_id: clientId,
20
+ connect_at: {
21
+ $gte: new Date(year, month, day, 0, 0, 0),
22
+ $lt: new Date(year, month, day + 1, 0, 0, 0)
23
+ }
24
+ };
25
+ }
26
+
12
27
  export class MongoReportStorage implements storage.ReportStorageFactory {
13
28
  private readonly client: mongo.MongoClient;
14
29
  public readonly db: PowerSyncMongo;
@@ -52,9 +67,12 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
52
67
 
53
68
  async reportSdkConnect(data: SdkConnectBucketData): Promise<void> {
54
69
  await this.db.sdk_report_events.findOneAndUpdate(
55
- { _id: data.id },
70
+ dateFilter(data.user_id, data.client_id!),
56
71
  {
57
- $set: data.data
72
+ $set: data,
73
+ $unset: {
74
+ disconnect_at: ''
75
+ }
58
76
  },
59
77
  {
60
78
  upsert: true
@@ -62,17 +80,14 @@ export class MongoReportStorage implements storage.ReportStorageFactory {
62
80
  );
63
81
  }
64
82
  async reportSdkDisconnect(data: SdkDisconnectEventData): Promise<void> {
65
- await this.db.sdk_report_events.findOneAndUpdate(
66
- { _id: data.id },
67
- {
68
- $set: {
69
- disconnect_at: data.data.disconnect_at
70
- },
71
- $unset: {
72
- jwt_exp: ''
73
- }
83
+ await this.db.sdk_report_events.findOneAndUpdate(dateFilter(data.user_id, data.client_id!), {
84
+ $set: {
85
+ disconnect_at: data.disconnect_at
86
+ },
87
+ $unset: {
88
+ jwt_exp: ''
74
89
  }
75
- );
90
+ });
76
91
  }
77
92
  async listCurrentConnections(data: event_types.InstanceRequest): Promise<ListCurrentConnectionsResponse> {
78
93
  const result = await this.db.sdk_report_events