@gscdump/cloudflare 5.9.0 → 6.0.0

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.
@@ -213,7 +213,8 @@ function buildTopNBreakdown(q, pruned, mode, separateComparisonTable = false) {
213
213
  const table = tableForTopNBreakdown(q);
214
214
  const w = partitionWhere(q, pruned, mode);
215
215
  if (!q.orderBy || !q.orderBy.metric || !q.orderBy.dir) throw new Error(`[archetype-sql] top-n-breakdown requires orderBy.{metric,dir}, got: ${JSON.stringify(q.orderBy)}`);
216
- const order = `${metricAlias(q.orderBy.metric)} ${q.orderBy.dir.toUpperCase()}`;
216
+ const orderKey = q.dimension === "page" && !q.compareRange ? "url" : q.dimension;
217
+ const order = `${metricAlias(q.orderBy.metric)} ${q.orderBy.dir.toUpperCase()}, ${orderKey} ASC`;
217
218
  const limit = `LIMIT ${Math.max(0, Math.floor(q.limit))}`;
218
219
  const offset = q.offset && q.offset > 0 ? ` OFFSET ${Math.floor(q.offset)}` : "";
219
220
  const metricList0 = q.metrics.includes(q.orderBy.metric) ? q.metrics : [...q.metrics, q.orderBy.metric];
@@ -267,7 +268,7 @@ function buildTopNBreakdown(q, pruned, mode, separateComparisonTable = false) {
267
268
  const prevCols = STD_METRICS.map((m) => coalesceMetric(m, "p", prevAlias(m))).join(", ");
268
269
  const variantOut = q.dimension === "queryCanonical" ? ", c.variantCount AS variantCount" : "";
269
270
  const moverWhere = q.movers ? `WHERE ${moverClause(q.movers).where} ` : "";
270
- const outerOrder = q.movers ? moverOrderByAlias(q.movers) : order;
271
+ const outerOrder = q.movers ? `${moverOrderByAlias(q.movers)}, ${q.dimension} ASC` : order;
271
272
  const inner = `SELECT COALESCE(c.k, p.k) AS ${q.dimension}, ${curCols}, ${prevCols}${variantOut}${totalCol} FROM cur c FULL OUTER JOIN prev p ON c.k = p.k ${moverWhere}`;
272
273
  const sql = `WITH cur AS (SELECT ${col} AS k, ${curMetrics}${variantSel} FROM ${factTableRef()} WHERE ${w.clause}${facet.sql} GROUP BY ${col}), prev AS (SELECT ${col} AS k, ${prevMetrics} FROM ${factTableRef(previousTable)} WHERE ${wPrev.clause}${facet.sql} GROUP BY ${col}) SELECT * FROM (${inner}) t ORDER BY ${outerOrder} ${limit}${offset}`;
273
274
  return {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/cloudflare",
3
3
  "type": "module",
4
- "version": "5.9.0",
4
+ "version": "6.0.0",
5
5
  "description": "Cloudflare Workers helpers for server-tail queries and in-flight request deduplication.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -39,9 +39,9 @@
39
39
  "node": ">=22.13.0"
40
40
  },
41
41
  "dependencies": {
42
- "@gscdump/contracts": "^5.9.0",
43
- "@gscdump/engine": "^5.9.0",
44
- "gscdump": "^5.9.0"
42
+ "@gscdump/contracts": "^6.0.0",
43
+ "@gscdump/engine": "^6.0.0",
44
+ "gscdump": "^6.0.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@cloudflare/vitest-pool-workers": "^0.22.0",