@powersync/service-module-postgres-storage 0.0.0-dev-20250729155424 → 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
|
-
|
|
95
|
-
WITH
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
FROM
|
|
118
|
+
filtered
|
|
119
|
+
GROUP BY
|
|
120
|
+
sdk
|
|
121
|
+
)
|
|
113
122
|
SELECT
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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());
|
|
@@ -246,16 +274,8 @@ export class PostgresReportStorageFactory {
|
|
|
246
274
|
});
|
|
247
275
|
}
|
|
248
276
|
async listCurrentConnections(data) {
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
console.log(result.results.map((result) => {
|
|
252
|
-
if (result.rows.length > 0) {
|
|
253
|
-
console.log(result.columns);
|
|
254
|
-
console.log(result.rows);
|
|
255
|
-
}
|
|
256
|
-
}));
|
|
257
|
-
const parsedResult = result.results[1].rows[1];
|
|
258
|
-
console.log(parsedResult);
|
|
277
|
+
const rows = await this.listConnectionsDateRangeQuery(data);
|
|
278
|
+
console.log(rows);
|
|
259
279
|
return {
|
|
260
280
|
users: 0,
|
|
261
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-
|
|
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-
|
|
33
|
-
"@powersync/lib-services-framework": "0.0.0-dev-
|
|
34
|
-
"@powersync/service-core": "0.0.0-dev-
|
|
35
|
-
"@powersync/service-types": "0.0.0-dev-
|
|
36
|
-
"@powersync/service-core-tests": "0.0.0-dev-
|
|
37
|
-
"@powersync/service-jpgwire": "0.0.0-dev-
|
|
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
|
-
|
|
115
|
-
WITH
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
FROM
|
|
138
|
+
filtered
|
|
139
|
+
GROUP BY
|
|
140
|
+
sdk
|
|
141
|
+
)
|
|
133
142
|
SELECT
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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() {
|
|
@@ -269,18 +297,8 @@ export class PostgresReportStorageFactory implements storage.ReportStorageFactor
|
|
|
269
297
|
});
|
|
270
298
|
}
|
|
271
299
|
async listCurrentConnections(data: ListCurrentConnectionsRequest): Promise<ListCurrentConnections> {
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
console.log(
|
|
275
|
-
result.results.map((result) => {
|
|
276
|
-
if (result.rows.length > 0) {
|
|
277
|
-
console.log(result.columns);
|
|
278
|
-
console.log(result.rows);
|
|
279
|
-
}
|
|
280
|
-
})
|
|
281
|
-
);
|
|
282
|
-
const parsedResult = result.results[1].rows[1];
|
|
283
|
-
console.log(parsedResult);
|
|
300
|
+
const rows = await this.listConnectionsDateRangeQuery(data);
|
|
301
|
+
console.log(rows);
|
|
284
302
|
return {
|
|
285
303
|
users: 0,
|
|
286
304
|
sdks: []
|