@uptimizr/db 2.0.1 → 2.1.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.
- package/AGENTS.md +228 -3
- package/README.md +13 -0
- package/dist/duckdb/migrations.d.ts.map +1 -1
- package/dist/duckdb/migrations.js +169 -0
- package/dist/duckdb/migrations.js.map +1 -1
- package/dist/duckdb/panelSpecs.d.ts +29 -0
- package/dist/duckdb/panelSpecs.d.ts.map +1 -0
- package/dist/duckdb/panelSpecs.js +104 -0
- package/dist/duckdb/panelSpecs.js.map +1 -0
- package/dist/duckdb/projectMetadata.d.ts +43 -0
- package/dist/duckdb/projectMetadata.d.ts.map +1 -0
- package/dist/duckdb/projectMetadata.js +222 -0
- package/dist/duckdb/projectMetadata.js.map +1 -0
- package/dist/duckdb/subscriptions.d.ts +45 -0
- package/dist/duckdb/subscriptions.d.ts.map +1 -0
- package/dist/duckdb/subscriptions.js +202 -0
- package/dist/duckdb/subscriptions.js.map +1 -0
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -3
- package/dist/index.js.map +1 -1
- package/dist/insights/anomalies.d.ts +213 -0
- package/dist/insights/anomalies.d.ts.map +1 -0
- package/dist/insights/anomalies.js +340 -0
- package/dist/insights/anomalies.js.map +1 -0
- package/dist/insights/baseline.d.ts +51 -0
- package/dist/insights/baseline.d.ts.map +1 -0
- package/dist/insights/baseline.js +48 -0
- package/dist/insights/baseline.js.map +1 -0
- package/dist/insights/buckets.d.ts +114 -0
- package/dist/insights/buckets.d.ts.map +1 -0
- package/dist/insights/buckets.js +220 -0
- package/dist/insights/buckets.js.map +1 -0
- package/dist/insights/changepoint.d.ts +130 -0
- package/dist/insights/changepoint.d.ts.map +1 -0
- package/dist/insights/changepoint.js +209 -0
- package/dist/insights/changepoint.js.map +1 -0
- package/dist/insights/evaluate.d.ts +63 -0
- package/dist/insights/evaluate.d.ts.map +1 -0
- package/dist/insights/evaluate.js +158 -0
- package/dist/insights/evaluate.js.map +1 -0
- package/dist/insights/health.d.ts +219 -0
- package/dist/insights/health.d.ts.map +1 -0
- package/dist/insights/health.js +349 -0
- package/dist/insights/health.js.map +1 -0
- package/dist/insights/index.d.ts +45 -0
- package/dist/insights/index.d.ts.map +1 -0
- package/dist/insights/index.js +40 -0
- package/dist/insights/index.js.map +1 -0
- package/dist/insights/measures.d.ts +222 -0
- package/dist/insights/measures.d.ts.map +1 -0
- package/dist/insights/measures.js +431 -0
- package/dist/insights/measures.js.map +1 -0
- package/dist/insights/movers.d.ts +123 -0
- package/dist/insights/movers.d.ts.map +1 -0
- package/dist/insights/movers.js +166 -0
- package/dist/insights/movers.js.map +1 -0
- package/dist/insights/significance.d.ts +221 -0
- package/dist/insights/significance.d.ts.map +1 -0
- package/dist/insights/significance.js +531 -0
- package/dist/insights/significance.js.map +1 -0
- package/dist/insights/stats.d.ts +104 -0
- package/dist/insights/stats.d.ts.map +1 -0
- package/dist/insights/stats.js +181 -0
- package/dist/insights/stats.js.map +1 -0
- package/dist/insights/windows.d.ts +95 -0
- package/dist/insights/windows.d.ts.map +1 -0
- package/dist/insights/windows.js +97 -0
- package/dist/insights/windows.js.map +1 -0
- package/dist/metadata.d.ts +178 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +80 -0
- package/dist/metadata.js.map +1 -1
- package/dist/narrative/build.d.ts +78 -0
- package/dist/narrative/build.d.ts.map +1 -0
- package/dist/narrative/build.js +437 -0
- package/dist/narrative/build.js.map +1 -0
- package/dist/narrative/index.d.ts +14 -0
- package/dist/narrative/index.d.ts.map +1 -0
- package/dist/narrative/index.js +13 -0
- package/dist/narrative/index.js.map +1 -0
- package/dist/narrative/text.d.ts +25 -0
- package/dist/narrative/text.d.ts.map +1 -0
- package/dist/narrative/text.js +41 -0
- package/dist/narrative/text.js.map +1 -0
- package/dist/parity/cases.d.ts +3 -0
- package/dist/parity/cases.d.ts.map +1 -1
- package/dist/parity/cases.js +387 -7
- package/dist/parity/cases.js.map +1 -1
- package/dist/parity/compare.d.ts +19 -0
- package/dist/parity/compare.d.ts.map +1 -1
- package/dist/parity/compare.js +19 -0
- package/dist/parity/compare.js.map +1 -1
- package/dist/parity/fixtures.d.ts.map +1 -1
- package/dist/parity/fixtures.js +25 -0
- package/dist/parity/fixtures.js.map +1 -1
- package/dist/query/aggregations.d.ts +46 -1
- package/dist/query/aggregations.d.ts.map +1 -1
- package/dist/query/aggregations.js +86 -0
- package/dist/query/aggregations.js.map +1 -1
- package/dist/query/clickhouseDialect.d.ts.map +1 -1
- package/dist/query/clickhouseDialect.js +5 -1
- package/dist/query/clickhouseDialect.js.map +1 -1
- package/dist/query/customEventVocabulary.d.ts +46 -0
- package/dist/query/customEventVocabulary.d.ts.map +1 -0
- package/dist/query/customEventVocabulary.js +127 -0
- package/dist/query/customEventVocabulary.js.map +1 -0
- package/dist/query/dsl/builders.d.ts +38 -0
- package/dist/query/dsl/builders.d.ts.map +1 -0
- package/dist/query/dsl/builders.js +35 -0
- package/dist/query/dsl/builders.js.map +1 -0
- package/dist/query/dsl/compare.d.ts +167 -0
- package/dist/query/dsl/compare.d.ts.map +1 -0
- package/dist/query/dsl/compare.js +358 -0
- package/dist/query/dsl/compare.js.map +1 -0
- package/dist/query/dsl/compile.d.ts +89 -0
- package/dist/query/dsl/compile.d.ts.map +1 -0
- package/dist/query/dsl/compile.js +174 -0
- package/dist/query/dsl/compile.js.map +1 -0
- package/dist/query/dsl/explain.d.ts +115 -0
- package/dist/query/dsl/explain.d.ts.map +1 -0
- package/dist/query/dsl/explain.js +143 -0
- package/dist/query/dsl/explain.js.map +1 -0
- package/dist/query/dsl/generic.d.ts +127 -0
- package/dist/query/dsl/generic.d.ts.map +1 -0
- package/dist/query/dsl/generic.js +323 -0
- package/dist/query/dsl/generic.js.map +1 -0
- package/dist/query/dsl/index.d.ts +30 -0
- package/dist/query/dsl/index.d.ts.map +1 -0
- package/dist/query/dsl/index.js +23 -0
- package/dist/query/dsl/index.js.map +1 -0
- package/dist/query/dsl/order.d.ts +41 -0
- package/dist/query/dsl/order.d.ts.map +1 -0
- package/dist/query/dsl/order.js +55 -0
- package/dist/query/dsl/order.js.map +1 -0
- package/dist/query/dsl/significance.d.ts +130 -0
- package/dist/query/dsl/significance.d.ts.map +1 -0
- package/dist/query/dsl/significance.js +224 -0
- package/dist/query/dsl/significance.js.map +1 -0
- package/dist/query/index.d.ts +2 -0
- package/dist/query/index.d.ts.map +1 -1
- package/dist/query/index.js +8 -0
- package/dist/query/index.js.map +1 -1
- package/dist/query/summary/index.d.ts +4 -2
- package/dist/query/summary/index.d.ts.map +1 -1
- package/dist/query/summary/index.js +2 -1
- package/dist/query/summary/index.js.map +1 -1
- package/dist/query/summary/labels.d.ts +101 -0
- package/dist/query/summary/labels.d.ts.map +1 -0
- package/dist/query/summary/labels.js +261 -0
- package/dist/query/summary/labels.js.map +1 -0
- package/dist/query/summary/reading.d.ts.map +1 -1
- package/dist/query/summary/reading.js +21 -2
- package/dist/query/summary/reading.js.map +1 -1
- package/dist/query/summary/schema.d.ts +250 -20
- package/dist/query/summary/schema.d.ts.map +1 -1
- package/dist/query/summary/schema.js +135 -123
- package/dist/query/summary/schema.js.map +1 -1
- package/dist/query/summary/summarize.d.ts.map +1 -1
- package/dist/query/summary/summarize.js +91 -5
- package/dist/query/summary/summarize.js.map +1 -1
- package/dist/query/summary/types.d.ts +77 -2
- package/dist/query/summary/types.d.ts.map +1 -1
- package/dist/query/types.d.ts +47 -1
- package/dist/query/types.d.ts.map +1 -1
- package/dist/subscriptions.d.ts +208 -0
- package/dist/subscriptions.d.ts.map +1 -0
- package/dist/subscriptions.js +153 -0
- package/dist/subscriptions.js.map +1 -0
- package/llms.txt +9 -0
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,gFAAgF;AAChF,KAAK,kBAAkB,GAAG;IACxB,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,SAAS,YAAY,GAAG,IAAI,GAAG,KAAK;IACtE,YAAY,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG,IAAI,GAAG,KAAK;CACvE,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAiCpD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAwB,CAAC;AAEzD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAE7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAE/E;AAsDD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAS9E"}
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Zod mirrors of the three result envelopes.
|
|
2
|
+
* Zod mirrors of the three result envelopes — **re-exported**, not redefined.
|
|
3
3
|
*
|
|
4
4
|
* The collector attaches each route's 200 response schema from the registry so
|
|
5
5
|
* the Zod type provider **serialises through it** — which means the `table` and
|
|
6
6
|
* `summary` envelopes need schemas too, or a formatted response would be
|
|
7
|
-
* stripped down to nothing on its way out. `resultEnvelopeSchema(row)`
|
|
8
|
-
* the union a formatted route responds with: the untouched `full` shape
|
|
9
|
-
* so a default request is validated by exactly the schema it has always
|
|
10
|
-
* validated by, then the two envelopes.
|
|
7
|
+
* stripped down to nothing on its way out. `resultEnvelopeSchema(full, row)`
|
|
8
|
+
* builds the union a formatted route responds with: the untouched `full` shape
|
|
9
|
+
* first, so a default request is validated by exactly the schema it has always
|
|
10
|
+
* been validated by, then the two envelopes.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* The definitions themselves now live in `@uptimizr/metrics`, next to the row
|
|
13
|
+
* schemas they wrap (#350): `@uptimizr/agent-core` and `@uptimizr/mcp` need the
|
|
14
|
+
* same shapes to describe a tool's result, and neither may depend on this
|
|
15
|
+
* package — it carries the DuckDB driver. This module keeps the names and the
|
|
16
|
+
* signatures `@uptimizr/db` has always exported, so nothing downstream changes.
|
|
14
17
|
*/
|
|
15
18
|
import { z } from "zod";
|
|
16
|
-
import { METRIC_IDS } from "@uptimizr/metrics";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
import { METRIC_IDS, resultEnvelopeSchema as envelopeSchema, resultFormatSchema, summaryEnvelopeSchema, tableEnvelopeSchema, } from "@uptimizr/metrics";
|
|
20
|
+
export { resultFormatSchema };
|
|
21
|
+
// --- shapes the compare / explain envelopes below are built from -----------
|
|
22
|
+
//
|
|
23
|
+
// The four `format` digests moved to `@uptimizr/metrics` with #350 and are
|
|
24
|
+
// re-exported above. These five fragments stayed behind because only the
|
|
25
|
+
// DSL-specific envelopes at the bottom of this file use them, and a comparison
|
|
26
|
+
// is not something `@uptimizr/metrics` describes.
|
|
24
27
|
/** Any registry metric id. */
|
|
25
28
|
const metricIdSchema = z.enum(METRIC_IDS);
|
|
26
29
|
const rangeSchema = z.object({
|
|
@@ -33,10 +36,6 @@ const sampleSizeSchema = z.object({
|
|
|
33
36
|
sessions: z.number().nullable(),
|
|
34
37
|
events: z.number().nullable(),
|
|
35
38
|
});
|
|
36
|
-
const limitsSchema = z.object({
|
|
37
|
-
maxRows: z.number().int(),
|
|
38
|
-
maxSummaryRows: z.number().int(),
|
|
39
|
-
});
|
|
40
39
|
const measureSchema = z
|
|
41
40
|
.object({
|
|
42
41
|
column: z.string(),
|
|
@@ -44,112 +43,11 @@ const measureSchema = z
|
|
|
44
43
|
additive: z.boolean(),
|
|
45
44
|
})
|
|
46
45
|
.nullable();
|
|
47
|
-
const shareIntervalSchema = z.object({ low: z.number(), high: z.number() });
|
|
48
|
-
const confidenceSchema = z.object({
|
|
49
|
-
kind: z.literal("wilson"),
|
|
50
|
-
level: z.number(),
|
|
51
|
-
note: z.string(),
|
|
52
|
-
});
|
|
53
|
-
const drillSchema = z.record(z.string(), z.string());
|
|
54
|
-
const restSchema = z.object({
|
|
55
|
-
rows: z.number().int(),
|
|
56
|
-
value: z.number().nullable(),
|
|
57
|
-
share: z.number().nullable(),
|
|
58
|
-
});
|
|
59
|
-
/** Fields every summary carries, whatever its grain. */
|
|
60
|
-
const summaryBase = {
|
|
61
|
-
metric: metricIdSchema,
|
|
62
|
-
range: rangeSchema,
|
|
63
|
-
filters: filtersSchema,
|
|
64
|
-
sampleSize: sampleSizeSchema,
|
|
65
|
-
total: z.number().nullable(),
|
|
66
|
-
measure: measureSchema,
|
|
67
|
-
confidence: confidenceSchema.optional(),
|
|
68
|
-
reading: z.string(),
|
|
69
|
-
caveats: z.array(z.string()),
|
|
70
|
-
};
|
|
71
|
-
const rankedSummarySchema = z.object({
|
|
72
|
-
...summaryBase,
|
|
73
|
-
kind: z.literal("ranked"),
|
|
74
|
-
top: z.array(z.object({
|
|
75
|
-
label: z.string(),
|
|
76
|
-
value: z.number().nullable(),
|
|
77
|
-
share: z.number().nullable(),
|
|
78
|
-
shareInterval: shareIntervalSchema.optional(),
|
|
79
|
-
drill: drillSchema.optional(),
|
|
80
|
-
})),
|
|
81
|
-
rest: restSchema,
|
|
82
|
-
});
|
|
83
|
-
const seriesSummarySchema = z.object({
|
|
84
|
-
...summaryBase,
|
|
85
|
-
kind: z.literal("series"),
|
|
86
|
-
series: z.object({
|
|
87
|
-
axis: z.string(),
|
|
88
|
-
points: z.number().int(),
|
|
89
|
-
first: z.number().nullable(),
|
|
90
|
-
last: z.number().nullable(),
|
|
91
|
-
min: z.number().nullable(),
|
|
92
|
-
max: z.number().nullable(),
|
|
93
|
-
firstLabel: z.string().nullable(),
|
|
94
|
-
lastLabel: z.string().nullable(),
|
|
95
|
-
minLabel: z.string().nullable(),
|
|
96
|
-
maxLabel: z.string().nullable(),
|
|
97
|
-
trend: z.enum(["up", "down", "flat"]),
|
|
98
|
-
slope: z.number().nullable(),
|
|
99
|
-
}),
|
|
100
|
-
});
|
|
101
|
-
const clusterSummarySchema = z.object({
|
|
102
|
-
...summaryBase,
|
|
103
|
-
kind: z.literal("clusters"),
|
|
104
|
-
axes: z.array(z.string()),
|
|
105
|
-
occupiedCells: z.number().int(),
|
|
106
|
-
densityThreshold: z.number(),
|
|
107
|
-
clusters: z.array(z.object({
|
|
108
|
-
centroid: z.array(z.number()),
|
|
109
|
-
extent: z.object({ min: z.array(z.number()), max: z.array(z.number()) }),
|
|
110
|
-
cells: z.number().int(),
|
|
111
|
-
weight: z.number(),
|
|
112
|
-
share: z.number().nullable(),
|
|
113
|
-
drill: drillSchema.optional(),
|
|
114
|
-
})),
|
|
115
|
-
rest: z.object({
|
|
116
|
-
clusters: z.number().int(),
|
|
117
|
-
cells: z.number().int(),
|
|
118
|
-
weight: z.number().nullable(),
|
|
119
|
-
share: z.number().nullable(),
|
|
120
|
-
}),
|
|
121
|
-
});
|
|
122
|
-
const recordSummarySchema = z.object({
|
|
123
|
-
...summaryBase,
|
|
124
|
-
kind: z.literal("record"),
|
|
125
|
-
record: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])),
|
|
126
|
-
rates: z.record(z.string(), z.object({
|
|
127
|
-
value: z.number().nullable(),
|
|
128
|
-
numerator: z.string(),
|
|
129
|
-
denominator: z.string(),
|
|
130
|
-
})),
|
|
131
|
-
});
|
|
132
46
|
/** `format=summary`: one of the four grain-driven shapes. */
|
|
133
|
-
export const resultSummarySchema =
|
|
134
|
-
rankedSummarySchema,
|
|
135
|
-
seriesSummarySchema,
|
|
136
|
-
clusterSummarySchema,
|
|
137
|
-
recordSummarySchema,
|
|
138
|
-
]);
|
|
47
|
+
export const resultSummarySchema = summaryEnvelopeSchema;
|
|
139
48
|
/** `format=table`: the `meta` envelope around a metric's own row schema. */
|
|
140
49
|
export function tableResultSchema(row) {
|
|
141
|
-
return
|
|
142
|
-
meta: z.object({
|
|
143
|
-
metric: metricIdSchema,
|
|
144
|
-
range: rangeSchema,
|
|
145
|
-
filters: filtersSchema,
|
|
146
|
-
sampleSize: sampleSizeSchema,
|
|
147
|
-
rows: z.number().int(),
|
|
148
|
-
truncated: z.boolean(),
|
|
149
|
-
limits: limitsSchema,
|
|
150
|
-
}),
|
|
151
|
-
rows: z.array(row),
|
|
152
|
-
});
|
|
50
|
+
return tableEnvelopeSchema(row);
|
|
153
51
|
}
|
|
154
52
|
/**
|
|
155
53
|
* The 200 response schema of a route that honours `format`: the union of the
|
|
@@ -160,8 +58,122 @@ export function tableResultSchema(row) {
|
|
|
160
58
|
* The envelopes are unambiguous against it — `table` is an object with `meta`
|
|
161
59
|
* and `rows`, `summary` an object with `kind` and `reading`, and neither can
|
|
162
60
|
* satisfy a row array or a stats row's required numeric columns.
|
|
61
|
+
*
|
|
62
|
+
* A route's own `full` schema is passed explicitly because a single-record
|
|
63
|
+
* endpoint (the spatial `stats` routes) answers with a bare object rather than
|
|
64
|
+
* an array of rows.
|
|
163
65
|
*/
|
|
164
66
|
export function resultEnvelopeSchema(full, row) {
|
|
165
|
-
return
|
|
67
|
+
return envelopeSchema(row, full);
|
|
68
|
+
}
|
|
69
|
+
// --- compare / explain (ADR 0051 §3, #304) --------------------------------
|
|
70
|
+
const scoreIntervalSchema = z.object({ low: z.number(), high: z.number() });
|
|
71
|
+
const proportionSignificanceSchema = z.object({
|
|
72
|
+
test: z.literal("two-proportion-z"),
|
|
73
|
+
current: z.number(),
|
|
74
|
+
previous: z.number(),
|
|
75
|
+
diff: z.number(),
|
|
76
|
+
z: z.number(),
|
|
77
|
+
pValue: z.number(),
|
|
78
|
+
significant: z.boolean(),
|
|
79
|
+
currentInterval: scoreIntervalSchema,
|
|
80
|
+
previousInterval: scoreIntervalSchema,
|
|
81
|
+
});
|
|
82
|
+
const meanSignificanceSchema = z.object({
|
|
83
|
+
test: z.literal("welch-t"),
|
|
84
|
+
current: z.number(),
|
|
85
|
+
previous: z.number(),
|
|
86
|
+
diff: z.number(),
|
|
87
|
+
t: z.number(),
|
|
88
|
+
df: z.number(),
|
|
89
|
+
pValue: z.number(),
|
|
90
|
+
significant: z.boolean(),
|
|
91
|
+
currentSamples: z.number().int(),
|
|
92
|
+
previousSamples: z.number().int(),
|
|
93
|
+
});
|
|
94
|
+
const significanceSchema = z.discriminatedUnion("test", [
|
|
95
|
+
proportionSignificanceSchema,
|
|
96
|
+
meanSignificanceSchema,
|
|
97
|
+
]);
|
|
98
|
+
const comparisonSideSchema = z.object({
|
|
99
|
+
range: rangeSchema,
|
|
100
|
+
segment: filtersSchema,
|
|
101
|
+
rows: z.number().int(),
|
|
102
|
+
total: z.number().nullable(),
|
|
103
|
+
sampleSize: sampleSizeSchema,
|
|
104
|
+
});
|
|
105
|
+
const comparisonRowSchema = z.object({
|
|
106
|
+
key: z.record(z.string(), z.string()),
|
|
107
|
+
label: z.string(),
|
|
108
|
+
current: z.number().nullable(),
|
|
109
|
+
previous: z.number().nullable(),
|
|
110
|
+
delta: z.number().nullable(),
|
|
111
|
+
deltaPct: z.number().nullable(),
|
|
112
|
+
significance: significanceSchema.optional(),
|
|
113
|
+
});
|
|
114
|
+
/** `format=full | table` on a `compare` query: the envelope plus joined rows. */
|
|
115
|
+
export const comparisonResultSchema = z.object({
|
|
116
|
+
meta: z.object({
|
|
117
|
+
metric: metricIdSchema,
|
|
118
|
+
basis: z.enum(["range", "segment"]),
|
|
119
|
+
keys: z.array(z.string()),
|
|
120
|
+
measure: measureSchema,
|
|
121
|
+
current: comparisonSideSchema,
|
|
122
|
+
previous: comparisonSideSchema,
|
|
123
|
+
rows: z.number().int(),
|
|
124
|
+
truncated: z.boolean(),
|
|
125
|
+
overall: meanSignificanceSchema.optional(),
|
|
126
|
+
caveats: z.array(z.string()),
|
|
127
|
+
}),
|
|
128
|
+
rows: z.array(comparisonRowSchema),
|
|
129
|
+
});
|
|
130
|
+
/** `format=summary` on a `compare` query: the biggest movers, with a reading. */
|
|
131
|
+
export const moversSummarySchema = z.object({
|
|
132
|
+
kind: z.literal("movers"),
|
|
133
|
+
metric: metricIdSchema,
|
|
134
|
+
basis: z.enum(["range", "segment"]),
|
|
135
|
+
measure: measureSchema,
|
|
136
|
+
current: comparisonSideSchema,
|
|
137
|
+
previous: comparisonSideSchema,
|
|
138
|
+
top: z.array(comparisonRowSchema),
|
|
139
|
+
rest: z.object({ rows: z.number().int(), delta: z.number().nullable() }),
|
|
140
|
+
overall: meanSignificanceSchema.optional(),
|
|
141
|
+
reading: z.string(),
|
|
142
|
+
caveats: z.array(z.string()),
|
|
143
|
+
});
|
|
144
|
+
/**
|
|
145
|
+
* `explain: true`: the plan instead of the rows.
|
|
146
|
+
*
|
|
147
|
+
* `params` carries names and logical types only — never values. That is not a
|
|
148
|
+
* redaction step applied afterwards; the DSL binds every caller-supplied value,
|
|
149
|
+
* so there is nothing in `sql` to redact and nothing in `params` worth echoing.
|
|
150
|
+
*/
|
|
151
|
+
export const queryPlanSchema = z.object({
|
|
152
|
+
metric: metricIdSchema,
|
|
153
|
+
tier: z.enum(["delegated", "generic"]),
|
|
154
|
+
dialect: z.string(),
|
|
155
|
+
sql: z.string(),
|
|
156
|
+
params: z.array(z.object({ name: z.string(), type: z.string() })),
|
|
157
|
+
rowsScanned: z.number().nullable(),
|
|
158
|
+
sampleSize: sampleSizeSchema,
|
|
159
|
+
warnings: z.array(z.string()),
|
|
160
|
+
});
|
|
161
|
+
/**
|
|
162
|
+
* The 200 response schema of the query DSL endpoint: everything
|
|
163
|
+
* {@link resultEnvelopeSchema} answers with, plus the three envelopes only the
|
|
164
|
+
* DSL can produce — a comparison, a movers digest and a plan.
|
|
165
|
+
*
|
|
166
|
+
* Order matters for the same reason it does there: the plain-rows shape is
|
|
167
|
+
* matched first so a `format=full` response cannot be reshaped on its way out.
|
|
168
|
+
*/
|
|
169
|
+
export function queryEnvelopeSchema(full, row) {
|
|
170
|
+
return z.union([
|
|
171
|
+
full,
|
|
172
|
+
tableResultSchema(row),
|
|
173
|
+
resultSummarySchema,
|
|
174
|
+
comparisonResultSchema,
|
|
175
|
+
moversSummarySchema,
|
|
176
|
+
queryPlanSchema,
|
|
177
|
+
]);
|
|
166
178
|
}
|
|
167
179
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,UAAU,EACV,oBAAoB,IAAI,cAAc,EACtC,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAS9B,8EAA8E;AAC9E,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,kDAAkD;AAElD,8BAA8B;AAC9B,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAA8C,CAAC,CAAC;AAE9E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAExD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,GAAc;IAC9C,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAe,EAAE,GAAc;IAClE,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,6EAA6E;AAE7E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE5E,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,mBAAmB;CACtC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtD,4BAA4B;IAC5B,sBAAsB;CACvB,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,oBAAoB;QAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QACtB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACnC,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,oBAAoB;IAC9B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IACxE,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAe,EAAE,GAAc;IACjE,OAAO,CAAC,CAAC,KAAK,CAAC;QACb,IAAI;QACJ,iBAAiB,CAAC,GAAG,CAAC;QACtB,mBAAmB;QACnB,sBAAsB;QACtB,mBAAmB;QACnB,eAAe;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAkB3B,OAAO,KAAK,EAWV,aAAa,EAKb,cAAc,EAEd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AA0L1D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,SAAS,SAAS,EAC/C,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,GAAG,EAAE,EACpB,GAAG,GAAE,cAAmB,GACvB,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAezB;AAqTD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,GAAG,GAAE,cAAmB,GACvB,aAAa,GAAG,IAAI,CAkBtB"}
|
|
@@ -35,10 +35,11 @@
|
|
|
35
35
|
* That is the whole point of the envelope: a 500-bin heatmap must cost the same
|
|
36
36
|
* number of tokens as a 5-bin one.
|
|
37
37
|
*/
|
|
38
|
-
import { getMetric } from "@uptimizr/metrics";
|
|
38
|
+
import { dimensionColumn, genericDimensions, getMetric, } from "@uptimizr/metrics";
|
|
39
39
|
import { clusterCells } from "./cluster.js";
|
|
40
40
|
import { axisColumn, columnsOf, gridColumns, labelColumn, measureColumn, numberAt, sampleSizeOf, sumColumn, weightColumn, } from "./columns.js";
|
|
41
41
|
import { isAdditiveUnit } from "./format.js";
|
|
42
|
+
import { labelClusters } from "./labels.js";
|
|
42
43
|
import { readingFor } from "./reading.js";
|
|
43
44
|
import { leastSquaresSlope, trendOf, wilsonInterval, Z_95 } from "./stats.js";
|
|
44
45
|
/**
|
|
@@ -47,6 +48,22 @@ import { leastSquaresSlope, trendOf, wilsonInterval, Z_95 } from "./stats.js";
|
|
|
47
48
|
* endpoint would silently ignore is worse than no hint.
|
|
48
49
|
*/
|
|
49
50
|
const DRILL_FILTERS = ["scene", "session", "mesh", "source"];
|
|
51
|
+
/**
|
|
52
|
+
* Dimensions a **runnable** drill query can hold fixed, in the order a reader
|
|
53
|
+
* would narrow by. Wider than {@link DRILL_FILTERS} because `segment` reaches
|
|
54
|
+
* further than `filters` does: `top_meshes` is a leaderboard *of meshes* whose
|
|
55
|
+
* builder has never taken a `mesh` filter, so before #304 its own rows were the
|
|
56
|
+
* one thing it could not be narrowed to. `segment: { mesh }` on the generic tier
|
|
57
|
+
* is exactly that narrowing.
|
|
58
|
+
*/
|
|
59
|
+
const DRILL_DIMENSIONS = [
|
|
60
|
+
"scene",
|
|
61
|
+
"session",
|
|
62
|
+
"mesh",
|
|
63
|
+
"source",
|
|
64
|
+
"name",
|
|
65
|
+
"event_type",
|
|
66
|
+
];
|
|
50
67
|
/** Resolve an id or a definition to a definition. */
|
|
51
68
|
function resolve(metric) {
|
|
52
69
|
return typeof metric === "string" ? getMetric(metric) : metric;
|
|
@@ -102,6 +119,55 @@ function caveatsFor(metric, rows, ctx, extra = []) {
|
|
|
102
119
|
}
|
|
103
120
|
return caveats;
|
|
104
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* The whole query, narrowed to one summarised row (#304).
|
|
124
|
+
*
|
|
125
|
+
* The filter *names* were already here; what was missing is the thing a caller
|
|
126
|
+
* actually needs next, which is the query to run. Reconstructing it is where a
|
|
127
|
+
* model loses the range it was looking at, the scene it had already scoped to,
|
|
128
|
+
* or the `format` it was reading — so the summary hands it over complete.
|
|
129
|
+
*
|
|
130
|
+
* `explain` is dropped: a drill-down is meant to return the narrower rows, not a
|
|
131
|
+
* plan for them. Everything else is carried through, `compare` included, so
|
|
132
|
+
* drilling into a mover keeps comparing.
|
|
133
|
+
*/
|
|
134
|
+
function drillQueryFor(metric, ctx, row, hints) {
|
|
135
|
+
if (ctx.query == null)
|
|
136
|
+
return undefined;
|
|
137
|
+
const segment = drillSegmentFor(metric, row, hints);
|
|
138
|
+
if (hints == null && Object.keys(segment).length === 0)
|
|
139
|
+
return undefined;
|
|
140
|
+
const { explain: _explain, ...rest } = ctx.query;
|
|
141
|
+
const filters = (rest.filters ?? {});
|
|
142
|
+
const existing = (rest.segment ?? {});
|
|
143
|
+
return {
|
|
144
|
+
...rest,
|
|
145
|
+
filters: { ...filters, ...(hints ?? {}) },
|
|
146
|
+
...(Object.keys(segment).length > 0 ? { segment: { ...existing, ...segment } } : {}),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The dimensions a drill query holds fixed with `segment` because the metric has
|
|
151
|
+
* no filter for them. Only dimensions the generic tier can actually render, so
|
|
152
|
+
* every drill query the summary hands out is one the collector will answer;
|
|
153
|
+
* anything already covered by a `filters` hint is left alone.
|
|
154
|
+
*/
|
|
155
|
+
function drillSegmentFor(metric, row, hints) {
|
|
156
|
+
const groupable = new Set(genericDimensions(metric));
|
|
157
|
+
const segment = {};
|
|
158
|
+
for (const dimension of DRILL_DIMENSIONS) {
|
|
159
|
+
if (!groupable.has(dimension))
|
|
160
|
+
continue;
|
|
161
|
+
if (hints != null && dimension in hints)
|
|
162
|
+
continue;
|
|
163
|
+
if (metric.filters.includes(dimension))
|
|
164
|
+
continue;
|
|
165
|
+
const value = row[dimensionColumn(metric, dimension)];
|
|
166
|
+
if (typeof value === "string" && value.length > 0)
|
|
167
|
+
segment[dimension] = value;
|
|
168
|
+
}
|
|
169
|
+
return segment;
|
|
170
|
+
}
|
|
105
171
|
/** Filters that would narrow a subsequent query to this row. */
|
|
106
172
|
function drillFor(metric, row) {
|
|
107
173
|
const hints = {};
|
|
@@ -199,12 +265,14 @@ function rankedSummary(metric, rows, ctx, cap) {
|
|
|
199
265
|
const share = total != null && total > 0 && value != null ? value / total : null;
|
|
200
266
|
const interval = proportional && value != null && total != null ? wilsonInterval(value, total, Z_95) : null;
|
|
201
267
|
const drill = drillFor(metric, row);
|
|
268
|
+
const drillQuery = drillQueryFor(metric, ctx, row, drill);
|
|
202
269
|
return {
|
|
203
270
|
label: labelCol == null ? "" : String(row[labelCol[0]] ?? ""),
|
|
204
271
|
value,
|
|
205
272
|
share,
|
|
206
273
|
...(interval != null ? { shareInterval: interval } : {}),
|
|
207
274
|
...(drill != null ? { drill } : {}),
|
|
275
|
+
...(drillQuery != null ? { drillQuery } : {}),
|
|
208
276
|
};
|
|
209
277
|
});
|
|
210
278
|
const listedValue = measureCol == null ? null : sumColumn(listed, measureCol[0]);
|
|
@@ -313,7 +381,7 @@ function clusterSummary(metric, rows, ctx, cap) {
|
|
|
313
381
|
ctx.cellSize > 0 &&
|
|
314
382
|
axes.length === 3 &&
|
|
315
383
|
metric.filters.includes("region");
|
|
316
|
-
const
|
|
384
|
+
const boxed = result.clusters.map((cluster) => {
|
|
317
385
|
if (!canDrillRegion)
|
|
318
386
|
return cluster;
|
|
319
387
|
const size = ctx.cellSize;
|
|
@@ -323,14 +391,32 @@ function clusterSummary(metric, rows, ctx, cap) {
|
|
|
323
391
|
];
|
|
324
392
|
return { ...cluster, drill: { region: box.join(",") } };
|
|
325
393
|
});
|
|
394
|
+
// Spatial labelling (ADR 0051 §2, sketch §B.2): when the collector handed us
|
|
395
|
+
// the scene's regions and proxy boxes, each hotspot is named — the region it
|
|
396
|
+
// falls in and the mesh it sits on — and a containing region upgrades the
|
|
397
|
+
// `drill.region` hint from an ad-hoc box to the region's own id.
|
|
398
|
+
const labelled = ctx.scene != null && ctx.cellSize != null
|
|
399
|
+
? labelClusters(boxed, {
|
|
400
|
+
axes: axes.map(([name]) => name),
|
|
401
|
+
cellSize: ctx.cellSize,
|
|
402
|
+
scene: ctx.scene,
|
|
403
|
+
})
|
|
404
|
+
: null;
|
|
405
|
+
const clusters = labelled?.clusters ?? boxed;
|
|
326
406
|
const extraCaveats = result.occupiedCells > 0
|
|
327
407
|
? [
|
|
328
408
|
`Hotspots are merged from cells at or above a density threshold of ` +
|
|
329
409
|
`${result.densityThreshold} (the mean weight per occupied cell); looser cells are ` +
|
|
330
410
|
"reported in `rest` rather than clustered.",
|
|
331
|
-
|
|
332
|
-
"
|
|
333
|
-
|
|
411
|
+
labelled?.labelled === true
|
|
412
|
+
? "Cluster coordinates are grid indices, not world coordinates — multiply by the " +
|
|
413
|
+
"effective `cellSize` to place them (ADR 0040 §1). `region` / `nearestMesh` label " +
|
|
414
|
+
"each hotspot against the scene registry; `distance` is in world units and `0` " +
|
|
415
|
+
"means the mesh box contains the hotspot."
|
|
416
|
+
: "Cluster coordinates are grid indices, not world coordinates — multiply by the " +
|
|
417
|
+
"effective `cellSize` to place them (ADR 0040 §1). Spatial labelling (nearest " +
|
|
418
|
+
"mesh, named region) is not part of this envelope.",
|
|
419
|
+
...(labelled?.caveats ?? []),
|
|
334
420
|
]
|
|
335
421
|
: [];
|
|
336
422
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,SAAS,EAAwC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,UAAU,EACV,SAAS,EAET,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAwB9E;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEtE,qDAAqD;AACrD,SAAS,OAAO,CAAC,MAAmC;IAClD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,SAAS,OAAO,CAAC,GAAmB;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAwB,EAAE,GAAmB;IAC9D,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,KAAK,QAAQ;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,MAAwB;IACxC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;AAC1F,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAClB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;AACpD,CAAC;AAED,gEAAgE;AAChE,SAAS,SAAS,CAAC,MAA0B;IAC3C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CACjB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,QAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CACV,uBAAuB,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,qCAAqC;YAC5F,8CAA8C,CACjD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gEAAgE;AAChE,SAAS,QAAQ,CAAC,MAAwB,EAAE,GAAc;IACxD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/C,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,IAAI,GAAG,CAC/D,CAAC;QACF,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CACpB,OAA8B,EAC9B,KAAoB;IAEpB,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EACF,6BAA6B,KAAK,IAAI,IAAI,iDAAiD;YAC3F,6EAA6E;KAChF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,MAAmC,EACnC,IAAoB,EACpB,MAAsB,EAAE;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO;QACL,IAAI,EAAE;YACJ,MAAM,EAAE,UAAU,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;YACnB,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;YAC7C,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;SAC7B;QACD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,kDAAkD;AAClD,SAAS,MAAM,CACb,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,OAA8B,EAC9B,KAAoB,EACpB,eAAkC,EAAE;IAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;QACnB,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;QAC/B,UAAU,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QACtC,KAAK;QACL,OAAO;QACP,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,GAAW;IAEX,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,+EAA+E;IAC/E,iFAAiF;IACjF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC3B,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,GAAG,GAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,QAAQ,GACZ,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,KAAK;YACL,KAAK;YACL,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;SAClF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtC,8EAA8E;IAC9E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwD,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI;YAAE,SAAS;QAC5B,MAAM,EAAE,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK;KAC3E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC1E,SAAS,CACV,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC1E,SAAS,CACV,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAiB,EAAE,CACrE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtE,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI;YAC3B,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;YACzB,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;YAC1B,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;YAC3B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;YAC1B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7B,KAAK;SACN;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,GAAW;IAEX,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC;YAAE,SAAS;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,cAAc,GAClB,GAAG,CAAC,QAAQ,IAAI,IAAI;QACpB,GAAG,CAAC,QAAQ,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAqB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACjE,IAAI,CAAC,cAAc;YAAE,OAAO,OAAO,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAkB,CAAC;QACpC,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;YAClD,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;SACzD,CAAC;QACF,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAChB,MAAM,CAAC,aAAa,GAAG,CAAC;QACtB,CAAC,CAAC;YACE,oEAAoE;gBAClE,GAAG,MAAM,CAAC,gBAAgB,yDAAyD;gBACnF,2CAA2C;YAC7C,gFAAgF;gBAC9E,qFAAqF;gBACrF,6CAA6C;SAChD;QACH,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC;QAC1D,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,QAAQ;QACR,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;YACjD,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;SACtE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAqD,EAAE,CAAC;IACpE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBAAE,SAAS;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,IAAI,IAAI;oBACX,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;wBACpF,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI;YAAE,SAAS;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,KAAK,EACH,SAAS,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC;gBACzD,CAAC,CAAC,SAAS,GAAG,WAAW;gBACzB,CAAC,CAAC,IAAI;YACV,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,SAAS,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,MAAM,0DAA0D,CAAC;QAC9F,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;QACnD,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAmC,EACnC,IAA0B,EAC1B,MAAsB,EAAE;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzE,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACtE,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7E,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,wEAAwE;IACxE,2EAA2E;IAC3E,OAAO,KAAK,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEtD,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,EAAmB,CAAC;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"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"}
|