@powersync/service-module-postgres-storage 0.0.0-dev-20250729154612 → 0.0.0-dev-20250730064253

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.
@@ -88,72 +88,100 @@ export class PostgresReportStorageFactory {
88
88
  }
89
89
  }
90
90
  }
91
- listConnectionsDateRangeQuery(data) {
91
+ async listConnectionsDateRangeQuery(data) {
92
92
  const { range } = data;
93
93
  if (!range) {
94
- const query = `
95
- WITH filtered AS (
96
- SELECT *
97
- FROM sdk_report_events
98
- WHERE disconnect_at IS NULL
94
+ return this.db.sql `
95
+ WITH
96
+ filtered AS (
97
+ SELECT
98
+ *
99
+ FROM
100
+ sdk_report_events
101
+ WHERE
102
+ disconnect_at IS NULL
99
103
  AND jwt_exp > NOW()
100
- ),
101
- unique_users AS (
102
- SELECT COUNT(DISTINCT user_id) AS count
103
- FROM filtered
104
- ),
105
- sdk_versions_array AS (
106
- SELECT sdk,
104
+ ),
105
+ unique_users AS (
106
+ SELECT
107
+ COUNT(DISTINCT user_id) AS count
108
+ FROM
109
+ filtered
110
+ ),
111
+ sdk_versions_array AS (
112
+ SELECT
113
+ sdk,
107
114
  COUNT(*) AS total,
108
115
  COUNT(DISTINCT client_id) AS clients,
109
116
  COUNT(DISTINCT user_id) AS users
110
- FROM filtered
111
- GROUP BY sdk
112
- )
117
+ FROM
118
+ filtered
119
+ GROUP BY
120
+ sdk
121
+ )
113
122
  SELECT
114
- (SELECT COALESCE(count, 0) FROM unique_users) AS users,
115
- (SELECT JSON_AGG(ROW_TO_JSON(s)) FROM sdk_versions_array s) AS sdks;
116
- `;
117
- return {
118
- statement: query
119
- };
123
+ (
124
+ SELECT
125
+ COALESCE(count, 0)
126
+ FROM
127
+ unique_users
128
+ ) AS users,
129
+ (
130
+ SELECT
131
+ JSON_AGG(ROW_TO_JSON(s))
132
+ FROM
133
+ sdk_versions_array s
134
+ ) AS sdks;
135
+ `.first();
120
136
  }
121
137
  const endDate = data.range?.end_date ? new Date(data.range.end_date) : new Date();
122
138
  const startDate = new Date(range.start_date);
123
- const query = `
124
- WITH filtered AS (
125
- SELECT *
126
- FROM sdk_report_events
127
- WHERE disconnect_at IS NULL
128
- AND jwt_exp > NOW()
129
- AND connect_at > CAST($1 AS TIMESTAMP WITH TIME ZONE)
130
- AND connect_at <= CAST($2 AS TIMESTAMP WITH TIME ZONE)
131
- ),
132
- unique_users AS (
133
- SELECT COUNT(DISTINCT user_id) AS count
134
- FROM filtered
135
- ),
136
- sdk_versions_array AS (
137
- SELECT sdk,
138
- COUNT(*) AS total,
139
- COUNT(DISTINCT client_id) AS clients,
140
- COUNT(DISTINCT user_id) AS users
141
- FROM filtered
142
- GROUP BY sdk
143
- )
144
- SELECT
145
- (SELECT COALESCE(count, 0) FROM unique_users) AS users,
146
- (SELECT JSON_AGG(ROW_TO_JSON(s)) FROM sdk_versions_array s) AS sdks;
147
- `;
148
139
  const lt = endDate.toISOString();
149
140
  const gt = startDate.toISOString();
150
- return {
151
- statement: query,
152
- params: [
153
- { type: 1184, value: gt },
154
- { type: 1184, value: lt }
155
- ]
156
- };
141
+ return await this.db.sql `
142
+ WITH
143
+ filtered AS (
144
+ SELECT
145
+ *
146
+ FROM
147
+ sdk_report_events
148
+ WHERE
149
+ disconnect_at IS NULL
150
+ AND jwt_exp > NOW()
151
+ AND connect_at > ${{ type: 1184, value: gt }}
152
+ AND connect_at <= ${{ type: 1184, value: lt }}
153
+ ),
154
+ unique_users AS (
155
+ SELECT
156
+ COUNT(DISTINCT user_id) AS count
157
+ FROM
158
+ filtered
159
+ ),
160
+ sdk_versions_array AS (
161
+ SELECT
162
+ sdk,
163
+ COUNT(*) AS total,
164
+ COUNT(DISTINCT client_id) AS clients,
165
+ COUNT(DISTINCT user_id) AS users
166
+ FROM
167
+ filtered
168
+ GROUP BY
169
+ sdk
170
+ )
171
+ SELECT
172
+ (
173
+ SELECT
174
+ COALESCE(count, 0)
175
+ FROM
176
+ unique_users
177
+ ) AS users,
178
+ (
179
+ SELECT
180
+ JSON_AGG(ROW_TO_JSON(s))
181
+ FROM
182
+ sdk_versions_array s
183
+ ) AS sdks;
184
+ `.first();
157
185
  }
158
186
  updateTableFilter() {
159
187
  const { year, month, today } = this.parseJsDate(new Date());
@@ -169,9 +197,8 @@ export class PostgresReportStorageFactory {
169
197
  const jwtExpIsoString = jwt_exp.toISOString();
170
198
  const { gte, lt } = this.updateTableFilter();
171
199
  const uuid = v4();
172
- try {
173
- const result = await this.db.query({
174
- statement: `
200
+ const result = await this.db.query({
201
+ statement: `
175
202
  UPDATE sdk_report_events
176
203
  SET connect_at = $1::timestamptz,
177
204
  sdk = $2,
@@ -183,21 +210,20 @@ export class PostgresReportStorageFactory {
183
210
  AND connect_at >= $7::timestamptz
184
211
  AND connect_at < $8::timestamptz;
185
212
  `,
186
- params: [
187
- { type: 1184, value: connectIsoString },
188
- { type: 'varchar', value: sdk },
189
- { type: 'varchar', value: user_agent },
190
- { type: 1184, value: jwtExpIsoString },
191
- { type: 'varchar', value: user_id },
192
- { type: 'varchar', value: client_id },
193
- { type: 1184, value: gte },
194
- { type: 1184, value: lt }
195
- ]
196
- });
197
- console.log(result.rows);
198
- if (result.rows.length === 0) {
199
- const result = await this.db.query({
200
- statement: `
213
+ params: [
214
+ { type: 1184, value: connectIsoString },
215
+ { type: 'varchar', value: sdk },
216
+ { type: 'varchar', value: user_agent },
217
+ { type: 1184, value: jwtExpIsoString },
218
+ { type: 'varchar', value: user_id },
219
+ { type: 'varchar', value: client_id },
220
+ { type: 1184, value: gte },
221
+ { type: 1184, value: lt }
222
+ ]
223
+ });
224
+ if (result.rows.length === 0) {
225
+ await this.db.query({
226
+ statement: `
201
227
  INSERT INTO sdk_report_events (
202
228
  user_id, client_id, connect_at, sdk, user_agent, jwt_exp, id
203
229
  )
@@ -209,23 +235,18 @@ export class PostgresReportStorageFactory {
209
235
  AND connect_at >= $8::timestamptz
210
236
  AND connect_at < $9::timestamptz
211
237
  );`,
212
- params: [
213
- { type: 'varchar', value: user_id },
214
- { type: 'varchar', value: client_id },
215
- { type: 1184, value: connectIsoString },
216
- { type: 'varchar', value: sdk },
217
- { type: 'varchar', value: user_agent },
218
- { type: 1184, value: jwtExpIsoString },
219
- { type: 'varchar', value: uuid },
220
- { type: 1184, value: gte },
221
- { type: 1184, value: lt }
222
- ]
223
- });
224
- console.log(result.rows);
225
- }
226
- }
227
- catch (error) {
228
- console.log(error);
238
+ params: [
239
+ { type: 'varchar', value: user_id },
240
+ { type: 'varchar', value: client_id },
241
+ { type: 1184, value: connectIsoString },
242
+ { type: 'varchar', value: sdk },
243
+ { type: 'varchar', value: user_agent },
244
+ { type: 1184, value: jwtExpIsoString },
245
+ { type: 'varchar', value: uuid },
246
+ { type: 1184, value: gte },
247
+ { type: 1184, value: lt }
248
+ ]
249
+ });
229
250
  }
230
251
  }
231
252
  async reportSdkDisconnect(data) {
@@ -241,32 +262,20 @@ export class PostgresReportStorageFactory {
241
262
  AND client_id = $3
242
263
  AND connect_at >= CAST($4 AS TIMESTAMP WITH TIME ZONE)
243
264
  AND connect_at < CAST($5 AS TIMESTAMP WITH TIME ZONE);`;
244
- try {
245
- const result = await this.db.query({
246
- statement: query,
247
- params: [
248
- { type: 1184, value: disconnectIsoString },
249
- { type: 'varchar', value: user_id },
250
- { type: 'varchar', value: client_id },
251
- { type: 1184, value: gte },
252
- { type: 1184, value: lt }
253
- ]
254
- });
255
- console.log(result.rows);
256
- }
257
- catch (error) {
258
- console.log(error);
259
- }
265
+ const result = await this.db.query({
266
+ statement: query,
267
+ params: [
268
+ { type: 1184, value: disconnectIsoString },
269
+ { type: 'varchar', value: user_id },
270
+ { type: 'varchar', value: client_id },
271
+ { type: 1184, value: gte },
272
+ { type: 1184, value: lt }
273
+ ]
274
+ });
260
275
  }
261
276
  async listCurrentConnections(data) {
262
- const statement = this.listConnectionsDateRangeQuery(data);
263
- const result = await this.db.query(statement);
264
- console.log(result.results.map((result) => {
265
- if (result.rows.length > 0) {
266
- console.log(result.columns);
267
- console.log(result.rows);
268
- }
269
- }));
277
+ const rows = await this.listConnectionsDateRangeQuery(data);
278
+ console.log(rows);
270
279
  return {
271
280
  users: 0,
272
281
  sdks: []
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresReportStorageFactory.js","sourceRoot":"","sources":["../../src/storage/PostgresReportStorageFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresReportStorageFactory.js","sourceRoot":"","sources":["../../src/storage/PostgresReportStorageFactory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@powersync/service-module-postgres-storage",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
4
  "types": "dist/@types/index.d.ts",
5
- "version": "0.0.0-dev-20250729154612",
5
+ "version": "0.0.0-dev-20250730064253",
6
6
  "main": "dist/index.js",
7
7
  "type": "module",
8
8
  "publishConfig": {
@@ -29,12 +29,12 @@
29
29
  "p-defer": "^4.0.1",
30
30
  "ts-codec": "^1.3.0",
31
31
  "uuid": "^11.1.0",
32
- "@powersync/lib-service-postgres": "0.0.0-dev-20250729154612",
33
- "@powersync/lib-services-framework": "0.0.0-dev-20250729154612",
34
- "@powersync/service-core": "0.0.0-dev-20250729154612",
35
- "@powersync/service-types": "0.0.0-dev-20250729154612",
36
- "@powersync/service-core-tests": "0.0.0-dev-20250729154612",
37
- "@powersync/service-jpgwire": "0.0.0-dev-20250729154612",
32
+ "@powersync/lib-service-postgres": "0.0.0-dev-20250730064253",
33
+ "@powersync/lib-services-framework": "0.0.0-dev-20250730064253",
34
+ "@powersync/service-core": "0.0.0-dev-20250730064253",
35
+ "@powersync/service-types": "0.0.0-dev-20250730064253",
36
+ "@powersync/service-core-tests": "0.0.0-dev-20250730064253",
37
+ "@powersync/service-jpgwire": "0.0.0-dev-20250730064253",
38
38
  "@powersync/service-sync-rules": "0.27.0"
39
39
  },
40
40
  "devDependencies": {
@@ -108,72 +108,100 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
108
108
  }
109
109
  }
110
110
 
111
- private listConnectionsDateRangeQuery(data: event_types.ListCurrentConnectionsRequest) {
111
+ private async listConnectionsDateRangeQuery(data: event_types.ListCurrentConnectionsRequest) {
112
112
  const { range } = data;
113
113
  if (!range) {
114
- const query = `
115
- WITH filtered AS (
116
- SELECT *
117
- FROM sdk_report_events
118
- WHERE disconnect_at IS NULL
114
+ return this.db.sql`
115
+ WITH
116
+ filtered AS (
117
+ SELECT
118
+ *
119
+ FROM
120
+ sdk_report_events
121
+ WHERE
122
+ disconnect_at IS NULL
119
123
  AND jwt_exp > NOW()
120
- ),
121
- unique_users AS (
122
- SELECT COUNT(DISTINCT user_id) AS count
123
- FROM filtered
124
- ),
125
- sdk_versions_array AS (
126
- SELECT sdk,
124
+ ),
125
+ unique_users AS (
126
+ SELECT
127
+ COUNT(DISTINCT user_id) AS count
128
+ FROM
129
+ filtered
130
+ ),
131
+ sdk_versions_array AS (
132
+ SELECT
133
+ sdk,
127
134
  COUNT(*) AS total,
128
135
  COUNT(DISTINCT client_id) AS clients,
129
136
  COUNT(DISTINCT user_id) AS users
130
- FROM filtered
131
- GROUP BY sdk
132
- )
137
+ FROM
138
+ filtered
139
+ GROUP BY
140
+ sdk
141
+ )
133
142
  SELECT
134
- (SELECT COALESCE(count, 0) FROM unique_users) AS users,
135
- (SELECT JSON_AGG(ROW_TO_JSON(s)) FROM sdk_versions_array s) AS sdks;
136
- `;
137
- return {
138
- statement: query
139
- };
143
+ (
144
+ SELECT
145
+ COALESCE(count, 0)
146
+ FROM
147
+ unique_users
148
+ ) AS users,
149
+ (
150
+ SELECT
151
+ JSON_AGG(ROW_TO_JSON(s))
152
+ FROM
153
+ sdk_versions_array s
154
+ ) AS sdks;
155
+ `.first();
140
156
  }
141
157
  const endDate = data.range?.end_date ? new Date(data.range.end_date) : new Date();
142
158
  const startDate = new Date(range.start_date);
143
- const query = `
144
- WITH filtered AS (
145
- SELECT *
146
- FROM sdk_report_events
147
- WHERE disconnect_at IS NULL
148
- AND jwt_exp > NOW()
149
- AND connect_at > CAST($1 AS TIMESTAMP WITH TIME ZONE)
150
- AND connect_at <= CAST($2 AS TIMESTAMP WITH TIME ZONE)
151
- ),
152
- unique_users AS (
153
- SELECT COUNT(DISTINCT user_id) AS count
154
- FROM filtered
155
- ),
156
- sdk_versions_array AS (
157
- SELECT sdk,
158
- COUNT(*) AS total,
159
- COUNT(DISTINCT client_id) AS clients,
160
- COUNT(DISTINCT user_id) AS users
161
- FROM filtered
162
- GROUP BY sdk
163
- )
164
- SELECT
165
- (SELECT COALESCE(count, 0) FROM unique_users) AS users,
166
- (SELECT JSON_AGG(ROW_TO_JSON(s)) FROM sdk_versions_array s) AS sdks;
167
- `;
168
159
  const lt = endDate.toISOString();
169
160
  const gt = startDate.toISOString();
170
- return {
171
- statement: query,
172
- params: [
173
- { type: 1184, value: gt },
174
- { type: 1184, value: lt }
175
- ]
176
- };
161
+ return await this.db.sql`
162
+ WITH
163
+ filtered AS (
164
+ SELECT
165
+ *
166
+ FROM
167
+ sdk_report_events
168
+ WHERE
169
+ disconnect_at IS NULL
170
+ AND jwt_exp > NOW()
171
+ AND connect_at > ${{ type: 1184, value: gt }}
172
+ AND connect_at <= ${{ type: 1184, value: lt }}
173
+ ),
174
+ unique_users AS (
175
+ SELECT
176
+ COUNT(DISTINCT user_id) AS count
177
+ FROM
178
+ filtered
179
+ ),
180
+ sdk_versions_array AS (
181
+ SELECT
182
+ sdk,
183
+ COUNT(*) AS total,
184
+ COUNT(DISTINCT client_id) AS clients,
185
+ COUNT(DISTINCT user_id) AS users
186
+ FROM
187
+ filtered
188
+ GROUP BY
189
+ sdk
190
+ )
191
+ SELECT
192
+ (
193
+ SELECT
194
+ COALESCE(count, 0)
195
+ FROM
196
+ unique_users
197
+ ) AS users,
198
+ (
199
+ SELECT
200
+ JSON_AGG(ROW_TO_JSON(s))
201
+ FROM
202
+ sdk_versions_array s
203
+ ) AS sdks;
204
+ `.first();
177
205
  }
178
206
 
179
207
  private updateTableFilter() {
@@ -191,9 +219,8 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
191
219
  const jwtExpIsoString = jwt_exp!.toISOString();
192
220
  const { gte, lt } = this.updateTableFilter();
193
221
  const uuid = v4();
194
- try {
195
- const result = await this.db.query({
196
- statement: `
222
+ const result = await this.db.query({
223
+ statement: `
197
224
  UPDATE sdk_report_events
198
225
  SET connect_at = $1::timestamptz,
199
226
  sdk = $2,
@@ -205,21 +232,20 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
205
232
  AND connect_at >= $7::timestamptz
206
233
  AND connect_at < $8::timestamptz;
207
234
  `,
208
- params: [
209
- { type: 1184, value: connectIsoString },
210
- { type: 'varchar', value: sdk },
211
- { type: 'varchar', value: user_agent },
212
- { type: 1184, value: jwtExpIsoString },
213
- { type: 'varchar', value: user_id },
214
- { type: 'varchar', value: client_id },
215
- { type: 1184, value: gte },
216
- { type: 1184, value: lt }
217
- ]
218
- });
219
- console.log(result.rows);
220
- if (result.rows.length === 0) {
221
- const result = await this.db.query({
222
- statement: `
235
+ params: [
236
+ { type: 1184, value: connectIsoString },
237
+ { type: 'varchar', value: sdk },
238
+ { type: 'varchar', value: user_agent },
239
+ { type: 1184, value: jwtExpIsoString },
240
+ { type: 'varchar', value: user_id },
241
+ { type: 'varchar', value: client_id },
242
+ { type: 1184, value: gte },
243
+ { type: 1184, value: lt }
244
+ ]
245
+ });
246
+ if (result.rows.length === 0) {
247
+ await this.db.query({
248
+ statement: `
223
249
  INSERT INTO sdk_report_events (
224
250
  user_id, client_id, connect_at, sdk, user_agent, jwt_exp, id
225
251
  )
@@ -231,22 +257,18 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
231
257
  AND connect_at >= $8::timestamptz
232
258
  AND connect_at < $9::timestamptz
233
259
  );`,
234
- params: [
235
- { type: 'varchar', value: user_id },
236
- { type: 'varchar', value: client_id },
237
- { type: 1184, value: connectIsoString },
238
- { type: 'varchar', value: sdk },
239
- { type: 'varchar', value: user_agent },
240
- { type: 1184, value: jwtExpIsoString },
241
- { type: 'varchar', value: uuid },
242
- { type: 1184, value: gte },
243
- { type: 1184, value: lt }
244
- ]
245
- });
246
- console.log(result.rows);
247
- }
248
- } catch (error) {
249
- console.log(error);
260
+ params: [
261
+ { type: 'varchar', value: user_id },
262
+ { type: 'varchar', value: client_id },
263
+ { type: 1184, value: connectIsoString },
264
+ { type: 'varchar', value: sdk },
265
+ { type: 'varchar', value: user_agent },
266
+ { type: 1184, value: jwtExpIsoString },
267
+ { type: 'varchar', value: uuid },
268
+ { type: 1184, value: gte },
269
+ { type: 1184, value: lt }
270
+ ]
271
+ });
250
272
  }
251
273
  }
252
274
  async reportSdkDisconnect(data: SdkDisconnectEventData): Promise<void> {
@@ -263,33 +285,20 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
263
285
  AND connect_at >= CAST($4 AS TIMESTAMP WITH TIME ZONE)
264
286
  AND connect_at < CAST($5 AS TIMESTAMP WITH TIME ZONE);`;
265
287
 
266
- try {
267
- const result = await this.db.query({
268
- statement: query,
269
- params: [
270
- { type: 1184, value: disconnectIsoString },
271
- { type: 'varchar', value: user_id },
272
- { type: 'varchar', value: client_id },
273
- { type: 1184, value: gte },
274
- { type: 1184, value: lt }
275
- ]
276
- });
277
- console.log(result.rows);
278
- } catch (error) {
279
- console.log(error);
280
- }
288
+ const result = await this.db.query({
289
+ statement: query,
290
+ params: [
291
+ { type: 1184, value: disconnectIsoString },
292
+ { type: 'varchar', value: user_id },
293
+ { type: 'varchar', value: client_id },
294
+ { type: 1184, value: gte },
295
+ { type: 1184, value: lt }
296
+ ]
297
+ });
281
298
  }
282
299
  async listCurrentConnections(data: ListCurrentConnectionsRequest): Promise<ListCurrentConnections> {
283
- const statement = this.listConnectionsDateRangeQuery(data);
284
- const result = await this.db.query(statement);
285
- console.log(
286
- result.results.map((result) => {
287
- if (result.rows.length > 0) {
288
- console.log(result.columns);
289
- console.log(result.rows);
290
- }
291
- })
292
- );
300
+ const rows = await this.listConnectionsDateRangeQuery(data);
301
+ console.log(rows);
293
302
  return {
294
303
  users: 0,
295
304
  sdks: []