@gscdump/cloudflare 0.25.11 → 0.25.12
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/dist/server-tail/index.mjs +4 -12
- package/package.json +6 -6
|
@@ -14,14 +14,6 @@ function metricExpr(metric) {
|
|
|
14
14
|
case "position": return "SUM(sum_position) / NULLIF(SUM(impressions), 0) AS position";
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
function orderMetricExpr(metric) {
|
|
18
|
-
switch (metric) {
|
|
19
|
-
case "clicks": return "SUM(clicks)";
|
|
20
|
-
case "impressions": return "SUM(impressions)";
|
|
21
|
-
case "ctr": return "SUM(clicks) / NULLIF(SUM(impressions), 0)";
|
|
22
|
-
case "position": return "SUM(sum_position) / NULLIF(SUM(impressions), 0)";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
17
|
const DEVICE_SUFFIXES = [
|
|
26
18
|
"desktop",
|
|
27
19
|
"mobile",
|
|
@@ -138,8 +130,8 @@ function buildTopNBreakdown(q) {
|
|
|
138
130
|
};
|
|
139
131
|
}
|
|
140
132
|
const col = dimColumn(q.dimension);
|
|
141
|
-
const metrics = q.metrics.map(metricExpr).join(", ");
|
|
142
|
-
const order = `${
|
|
133
|
+
const metrics = (q.metrics.includes(q.orderBy.metric) ? q.metrics : [...q.metrics, q.orderBy.metric]).map(metricExpr).join(", ");
|
|
134
|
+
const order = `${q.orderBy.metric} ${q.orderBy.dir.toUpperCase()}`;
|
|
143
135
|
const facet = facetPredicate(q);
|
|
144
136
|
let sql = `SELECT ${col}, ${metrics} FROM ${TABLE_PLACEHOLDER} WHERE ${w.clause}${facet.sql} GROUP BY ${col} ORDER BY ${order} LIMIT ${Math.max(0, Math.floor(q.limit))}`;
|
|
145
137
|
if (q.offset && q.offset > 0) sql += ` OFFSET ${Math.floor(q.offset)}`;
|
|
@@ -203,8 +195,8 @@ function buildTwoDimensionDetail(q) {
|
|
|
203
195
|
const facet = facetPredicate(q);
|
|
204
196
|
clause += facet.sql;
|
|
205
197
|
params.push(...facet.params);
|
|
206
|
-
let sql = `SELECT url, query, ${q.metrics.map(metricExpr).join(", ")} FROM ${TABLE_PLACEHOLDER} WHERE ${clause} GROUP BY url, query`;
|
|
207
|
-
if (q.orderBy) sql += ` ORDER BY ${
|
|
198
|
+
let sql = `SELECT url, query, ${(q.orderBy && !q.metrics.includes(q.orderBy.metric) ? [...q.metrics, q.orderBy.metric] : q.metrics).map(metricExpr).join(", ")} FROM ${TABLE_PLACEHOLDER} WHERE ${clause} GROUP BY url, query`;
|
|
199
|
+
if (q.orderBy) sql += ` ORDER BY ${q.orderBy.metric} ${q.orderBy.dir.toUpperCase()}`;
|
|
208
200
|
if (q.limit && q.limit > 0) sql += ` LIMIT ${Math.floor(q.limit)}`;
|
|
209
201
|
return {
|
|
210
202
|
table: "page_queries",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gscdump/cloudflare",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.25.
|
|
4
|
+
"version": "0.25.12",
|
|
5
5
|
"description": "Cloudflare-Workers-flavored helpers for the gscdump analytics stack: AnalyticsEnv binding contract, R2 SigV4 presigner, size-hint HMAC, DuckDB Workers shims, engine factory.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -46,11 +46,11 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@uwdata/flechette": "^2.5.0",
|
|
48
48
|
"aws4fetch": "^1.0.20",
|
|
49
|
-
"@gscdump/engine": "0.25.
|
|
50
|
-
"@gscdump/
|
|
51
|
-
"@gscdump/sdk": "0.25.
|
|
52
|
-
"gscdump": "0.25.
|
|
53
|
-
"
|
|
49
|
+
"@gscdump/engine": "0.25.12",
|
|
50
|
+
"@gscdump/engine-sqlite": "0.25.12",
|
|
51
|
+
"@gscdump/sdk": "0.25.12",
|
|
52
|
+
"@gscdump/contracts": "0.25.12",
|
|
53
|
+
"gscdump": "0.25.12"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@cloudflare/vitest-pool-workers": "^0.16.10",
|