@uptimizr/db 0.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 +109 -0
- package/LICENSE +201 -0
- package/README.md +89 -0
- package/dist/cli/createProject.d.ts +3 -0
- package/dist/cli/createProject.d.ts.map +1 -0
- package/dist/cli/createProject.js +41 -0
- package/dist/cli/createProject.js.map +1 -0
- package/dist/cli/migrate.d.ts +3 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +21 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/seed.d.ts +2 -0
- package/dist/cli/seed.d.ts.map +1 -0
- package/dist/cli/seed.js +175 -0
- package/dist/cli/seed.js.map +1 -0
- package/dist/duckdb/client.d.ts +42 -0
- package/dist/duckdb/client.d.ts.map +1 -0
- package/dist/duckdb/client.js +93 -0
- package/dist/duckdb/client.js.map +1 -0
- package/dist/duckdb/events.d.ts +44 -0
- package/dist/duckdb/events.d.ts.map +1 -0
- package/dist/duckdb/events.js +225 -0
- package/dist/duckdb/events.js.map +1 -0
- package/dist/duckdb/migrations.d.ts +20 -0
- package/dist/duckdb/migrations.d.ts.map +1 -0
- package/dist/duckdb/migrations.js +323 -0
- package/dist/duckdb/migrations.js.map +1 -0
- package/dist/duckdb/projects.d.ts +23 -0
- package/dist/duckdb/projects.d.ts.map +1 -0
- package/dist/duckdb/projects.js +55 -0
- package/dist/duckdb/projects.js.map +1 -0
- package/dist/duckdb/queries.d.ts +10 -0
- package/dist/duckdb/queries.d.ts.map +1 -0
- package/dist/duckdb/queries.js +10 -0
- package/dist/duckdb/queries.js.map +1 -0
- package/dist/duckdb/sceneRegistry.d.ts +15 -0
- package/dist/duckdb/sceneRegistry.d.ts.map +1 -0
- package/dist/duckdb/sceneRegistry.js +98 -0
- package/dist/duckdb/sceneRegistry.js.map +1 -0
- package/dist/env.d.ts +25 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +55 -0
- package/dist/env.js.map +1 -0
- package/dist/events.d.ts +107 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +153 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata.d.ts +84 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +23 -0
- package/dist/metadata.js.map +1 -0
- package/dist/parity/cases.d.ts +31 -0
- package/dist/parity/cases.d.ts.map +1 -0
- package/dist/parity/cases.js +524 -0
- package/dist/parity/cases.js.map +1 -0
- package/dist/parity/compare.d.ts +47 -0
- package/dist/parity/compare.d.ts.map +1 -0
- package/dist/parity/compare.js +90 -0
- package/dist/parity/compare.js.map +1 -0
- package/dist/parity/fixtures.d.ts +45 -0
- package/dist/parity/fixtures.d.ts.map +1 -0
- package/dist/parity/fixtures.js +157 -0
- package/dist/parity/fixtures.js.map +1 -0
- package/dist/parity/index.d.ts +12 -0
- package/dist/parity/index.d.ts.map +1 -0
- package/dist/parity/index.js +12 -0
- package/dist/parity/index.js.map +1 -0
- package/dist/query/aggregations.d.ts +393 -0
- package/dist/query/aggregations.d.ts.map +1 -0
- package/dist/query/aggregations.js +1412 -0
- package/dist/query/aggregations.js.map +1 -0
- package/dist/query/dialect.d.ts +100 -0
- package/dist/query/dialect.d.ts.map +1 -0
- package/dist/query/dialect.js +88 -0
- package/dist/query/dialect.js.map +1 -0
- package/dist/query/duckdbDialect.d.ts +27 -0
- package/dist/query/duckdbDialect.d.ts.map +1 -0
- package/dist/query/duckdbDialect.js +83 -0
- package/dist/query/duckdbDialect.js.map +1 -0
- package/dist/query/index.d.ts +22 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +30 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/types.d.ts +388 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/query/types.js +11 -0
- package/dist/query/types.js.map +1 -0
- package/llms.txt +21 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregations.js","sourceRoot":"","sources":["../../src/query/aggregations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialect-agnostic query layer (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* Each analytics aggregation is authored *once* in `aggregations.ts` against the
|
|
5
|
+
* {@link Dialect} interface, and rendered to a {@link QuerySpec} per SQL engine.
|
|
6
|
+
* Everything that genuinely differs between engines — bound-parameter syntax,
|
|
7
|
+
* `quantile`, vector norm, time bucketing, ASOF joins, and the rollup `-Merge`
|
|
8
|
+
* combinators — is funnelled through this interface so the bulk of each query
|
|
9
|
+
* stays shared. The OSS default engine is DuckDB; a single-tenant ClickHouse
|
|
10
|
+
* dialect serves the optional scale tier (and may be re-homed to OSS later).
|
|
11
|
+
*
|
|
12
|
+
* Invariant: this layer carries **no multi-tenant concepts** (no `org_id`, no
|
|
13
|
+
* tenant isolation). Those live only in the proprietary scale layer, which keeps
|
|
14
|
+
* the single-tenant dialects relocatable across the open-core boundary.
|
|
15
|
+
*/
|
|
16
|
+
import type { QuerySpec, CameraModeOptions, RangeOptions, SceneOptions, SourceOptions, SessionOptions } from "./types.js";
|
|
17
|
+
export type { QuerySpec };
|
|
18
|
+
/** Logical bound-parameter type, mapped to an engine-specific type by the dialect. */
|
|
19
|
+
export type ParamType = "string" | "u32" | "f64" | "timestamp" | "date";
|
|
20
|
+
/**
|
|
21
|
+
* Renders the engine-specific fragments of a query. Implementations must be pure
|
|
22
|
+
* string builders — no I/O, no client coupling — so they stay unit-testable
|
|
23
|
+
* without a live database.
|
|
24
|
+
*/
|
|
25
|
+
export interface Dialect {
|
|
26
|
+
/** Stable identifier for the engine (e.g. `"clickhouse"`, `"duckdb"`). */
|
|
27
|
+
readonly name: string;
|
|
28
|
+
/** Render a bound-parameter placeholder for the given logical type. */
|
|
29
|
+
placeholder(name: string, type: ParamType): string;
|
|
30
|
+
/** Convert an epoch-ms timestamp into the value bound for a `timestamp` param. */
|
|
31
|
+
timestampValue(epochMs: number): unknown;
|
|
32
|
+
/** Aggregate: the `q`-quantile (0..1) of `expr`. */
|
|
33
|
+
quantile(expr: string, q: number): string;
|
|
34
|
+
/** L2 (Euclidean) norm of an array-valued `expr`. */
|
|
35
|
+
vectorNorm(expr: string): string;
|
|
36
|
+
/** Conditional average: mean of `value` over rows where `cond` holds. */
|
|
37
|
+
avgIf(value: string, cond: string): string;
|
|
38
|
+
/** Aggregate: an arbitrary (any) value of `expr` within the group. */
|
|
39
|
+
anyValue(expr: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Bucket timestamp column `tsExpr` into fixed windows of `intervalPlaceholder`
|
|
42
|
+
* seconds and return the bucket start as epoch **milliseconds**.
|
|
43
|
+
*/
|
|
44
|
+
timeBucketMs(tsExpr: string, intervalPlaceholder: string): string;
|
|
45
|
+
/** Convert a timestamp expression into an integer epoch **milliseconds** value. */
|
|
46
|
+
epochMs(tsExpr: string): string;
|
|
47
|
+
/** Truncate a timestamp expression to a date. */
|
|
48
|
+
toDate(expr: string): string;
|
|
49
|
+
/** Cast an expression to text. */
|
|
50
|
+
toText(expr: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Extract a nested string value from a JSON text column by key path, e.g.
|
|
53
|
+
* `jsonText("payload", "scene", "cameraType")`. Used to filter on fields that
|
|
54
|
+
* are not promoted to dedicated columns (they live only in the `payload` JSON).
|
|
55
|
+
* Path components are trusted compile-time constants, never user input.
|
|
56
|
+
*/
|
|
57
|
+
jsonText(column: string, ...path: string[]): string;
|
|
58
|
+
countMerge(stateExpr: string): string;
|
|
59
|
+
avgMerge(stateExpr: string): string;
|
|
60
|
+
quantileMerge(stateExpr: string, q: number): string;
|
|
61
|
+
/** ASOF inner-join keyword/clause introducer. */
|
|
62
|
+
readonly asofInnerJoin: string;
|
|
63
|
+
/**
|
|
64
|
+
* ASOF left-join keyword/clause introducer. Like {@link asofInnerJoin} but
|
|
65
|
+
* keeps left rows that have no matching right row (their right-side columns
|
|
66
|
+
* are NULL on DuckDB and engine defaults on ClickHouse), so callers must guard
|
|
67
|
+
* unmatched rows explicitly.
|
|
68
|
+
*/
|
|
69
|
+
readonly asofLeftJoin: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Accumulates bound parameters while a query is rendered, delegating placeholder
|
|
73
|
+
* syntax and value coercion to the {@link Dialect}. One bag per built query.
|
|
74
|
+
*/
|
|
75
|
+
export declare class ParamBag {
|
|
76
|
+
private readonly dialect;
|
|
77
|
+
readonly values: Record<string, unknown>;
|
|
78
|
+
constructor(dialect: Dialect);
|
|
79
|
+
/** Bind `value` to `name` (typed) and return its placeholder for the SQL text. */
|
|
80
|
+
add(name: string, type: ParamType, value: unknown): string;
|
|
81
|
+
}
|
|
82
|
+
/** Build a `ts` range predicate (epoch-ms bounds), or `""` when unbounded. */
|
|
83
|
+
export declare function rangeClause(bag: ParamBag, opts: RangeOptions): string;
|
|
84
|
+
/** Build a `day` range predicate (for rollup tables), or `""` when unbounded. */
|
|
85
|
+
export declare function dayRangeClause(bag: ParamBag, dialect: Dialect, opts: RangeOptions): string;
|
|
86
|
+
/** Build a `scene_id` equality predicate, or `""` when no scene is given. */
|
|
87
|
+
export declare function sceneClause(bag: ParamBag, opts: SceneOptions): string;
|
|
88
|
+
/** Build a `source` equality predicate, or `""` when no source is given. */
|
|
89
|
+
export declare function sourceClause(bag: ParamBag, opts: SourceOptions): string;
|
|
90
|
+
/** Build a `session_id` equality predicate, or `""` when no session is given. */
|
|
91
|
+
export declare function sessionClause(bag: ParamBag, opts: SessionOptions): string;
|
|
92
|
+
/**
|
|
93
|
+
* Build a camera-mode predicate (ADR 0026): restrict to sessions whose
|
|
94
|
+
* `session_start` declares the given `scene.cameraType`. Rendered as a
|
|
95
|
+
* `session_id IN (sub-select)` so it composes with the other clauses; returns
|
|
96
|
+
* `""` when no camera type is requested. `projectId` is bound again here so the
|
|
97
|
+
* sub-select is scoped to the same project as the outer query.
|
|
98
|
+
*/
|
|
99
|
+
export declare function cameraModeClause(bag: ParamBag, d: Dialect, projectId: string, opts: CameraModeOptions): string;
|
|
100
|
+
//# sourceMappingURL=dialect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/query/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialect-agnostic query layer (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* Each analytics aggregation is authored *once* in `aggregations.ts` against the
|
|
5
|
+
* {@link Dialect} interface, and rendered to a {@link QuerySpec} per SQL engine.
|
|
6
|
+
* Everything that genuinely differs between engines — bound-parameter syntax,
|
|
7
|
+
* `quantile`, vector norm, time bucketing, ASOF joins, and the rollup `-Merge`
|
|
8
|
+
* combinators — is funnelled through this interface so the bulk of each query
|
|
9
|
+
* stays shared. The OSS default engine is DuckDB; a single-tenant ClickHouse
|
|
10
|
+
* dialect serves the optional scale tier (and may be re-homed to OSS later).
|
|
11
|
+
*
|
|
12
|
+
* Invariant: this layer carries **no multi-tenant concepts** (no `org_id`, no
|
|
13
|
+
* tenant isolation). Those live only in the proprietary scale layer, which keeps
|
|
14
|
+
* the single-tenant dialects relocatable across the open-core boundary.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Accumulates bound parameters while a query is rendered, delegating placeholder
|
|
18
|
+
* syntax and value coercion to the {@link Dialect}. One bag per built query.
|
|
19
|
+
*/
|
|
20
|
+
export class ParamBag {
|
|
21
|
+
dialect;
|
|
22
|
+
values = {};
|
|
23
|
+
constructor(dialect) {
|
|
24
|
+
this.dialect = dialect;
|
|
25
|
+
}
|
|
26
|
+
/** Bind `value` to `name` (typed) and return its placeholder for the SQL text. */
|
|
27
|
+
add(name, type, value) {
|
|
28
|
+
this.values[name] = type === "timestamp" ? this.dialect.timestampValue(value) : value;
|
|
29
|
+
return this.dialect.placeholder(name, type);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Build a `ts` range predicate (epoch-ms bounds), or `""` when unbounded. */
|
|
33
|
+
export function rangeClause(bag, opts) {
|
|
34
|
+
const parts = [];
|
|
35
|
+
if (opts.since != null)
|
|
36
|
+
parts.push(`ts >= ${bag.add("since", "timestamp", opts.since)}`);
|
|
37
|
+
if (opts.until != null)
|
|
38
|
+
parts.push(`ts < ${bag.add("until", "timestamp", opts.until)}`);
|
|
39
|
+
return parts.length ? ` AND ${parts.join(" AND ")}` : "";
|
|
40
|
+
}
|
|
41
|
+
/** Build a `day` range predicate (for rollup tables), or `""` when unbounded. */
|
|
42
|
+
export function dayRangeClause(bag, dialect, opts) {
|
|
43
|
+
const parts = [];
|
|
44
|
+
if (opts.since != null) {
|
|
45
|
+
parts.push(`day >= ${dialect.toDate(bag.add("since", "timestamp", opts.since))}`);
|
|
46
|
+
}
|
|
47
|
+
if (opts.until != null) {
|
|
48
|
+
parts.push(`day < ${dialect.toDate(bag.add("until", "timestamp", opts.until))}`);
|
|
49
|
+
}
|
|
50
|
+
return parts.length ? ` AND ${parts.join(" AND ")}` : "";
|
|
51
|
+
}
|
|
52
|
+
/** Build a `scene_id` equality predicate, or `""` when no scene is given. */
|
|
53
|
+
export function sceneClause(bag, opts) {
|
|
54
|
+
if (opts.scene == null || opts.scene.length === 0)
|
|
55
|
+
return "";
|
|
56
|
+
return ` AND scene_id = ${bag.add("scene", "string", opts.scene)}`;
|
|
57
|
+
}
|
|
58
|
+
/** Build a `source` equality predicate, or `""` when no source is given. */
|
|
59
|
+
export function sourceClause(bag, opts) {
|
|
60
|
+
if (opts.source == null || opts.source.length === 0)
|
|
61
|
+
return "";
|
|
62
|
+
return ` AND source = ${bag.add("source", "string", opts.source)}`;
|
|
63
|
+
}
|
|
64
|
+
/** Build a `session_id` equality predicate, or `""` when no session is given. */
|
|
65
|
+
export function sessionClause(bag, opts) {
|
|
66
|
+
if (opts.session == null || opts.session.length === 0)
|
|
67
|
+
return "";
|
|
68
|
+
return ` AND session_id = ${bag.add("session", "string", opts.session)}`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build a camera-mode predicate (ADR 0026): restrict to sessions whose
|
|
72
|
+
* `session_start` declares the given `scene.cameraType`. Rendered as a
|
|
73
|
+
* `session_id IN (sub-select)` so it composes with the other clauses; returns
|
|
74
|
+
* `""` when no camera type is requested. `projectId` is bound again here so the
|
|
75
|
+
* sub-select is scoped to the same project as the outer query.
|
|
76
|
+
*/
|
|
77
|
+
export function cameraModeClause(bag, d, projectId, opts) {
|
|
78
|
+
if (opts.cameraType == null || opts.cameraType.length === 0)
|
|
79
|
+
return "";
|
|
80
|
+
const pid = bag.add("cmProjectId", "string", projectId);
|
|
81
|
+
const ct = bag.add("cameraType", "string", opts.cameraType);
|
|
82
|
+
const extract = d.jsonText("payload", "scene", "cameraType");
|
|
83
|
+
return ` AND session_id IN (
|
|
84
|
+
SELECT session_id FROM events
|
|
85
|
+
WHERE project_id = ${pid} AND event_type = 'session_start' AND ${extract} = ${ct}
|
|
86
|
+
)`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=dialect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/query/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuckDB dialect for the query layer (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* DuckDB is the OSS default engine: a single, persisted file with ACID + WAL,
|
|
5
|
+
* in-process and zero-service. This dialect renders the engine-specific
|
|
6
|
+
* fragments of each shared aggregation (`aggregations.ts`) to DuckDB SQL.
|
|
7
|
+
*
|
|
8
|
+
* Like the ClickHouse dialect, it is *single-tenant* — it carries no
|
|
9
|
+
* `org_id`/tenant-isolation concerns — which keeps it relocatable across the
|
|
10
|
+
* open-core boundary.
|
|
11
|
+
*
|
|
12
|
+
* Binding model: parameters are emitted as DuckDB named placeholders (`$name`)
|
|
13
|
+
* and supplied as a `query_params` record. Timestamp params are bound as
|
|
14
|
+
* naive-UTC strings (see {@link toDuckdbTimestamp}) and cast in-place with
|
|
15
|
+
* `::TIMESTAMP`; DuckDB treats naive `TIMESTAMP` as UTC, matching the
|
|
16
|
+
* ClickHouse store's epoch handling.
|
|
17
|
+
*/
|
|
18
|
+
import type { Dialect } from "./dialect.js";
|
|
19
|
+
/**
|
|
20
|
+
* Format an epoch-millisecond timestamp as a naive-UTC `YYYY-MM-DD HH:MM:SS.mmm`
|
|
21
|
+
* string for binding to a DuckDB `TIMESTAMP` column/param. Mirrors the
|
|
22
|
+
* ClickHouse `DateTime64(3)` literal format so both stores order and bucket time
|
|
23
|
+
* identically.
|
|
24
|
+
*/
|
|
25
|
+
export declare function toDuckdbTimestamp(epochMs: number): string;
|
|
26
|
+
export declare const duckdbDialect: Dialect;
|
|
27
|
+
//# sourceMappingURL=duckdbDialect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdbDialect.d.ts","sourceRoot":"","sources":["../../src/query/duckdbDialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,eAAO,MAAM,aAAa,EAAE,OAoD3B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuckDB dialect for the query layer (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* DuckDB is the OSS default engine: a single, persisted file with ACID + WAL,
|
|
5
|
+
* in-process and zero-service. This dialect renders the engine-specific
|
|
6
|
+
* fragments of each shared aggregation (`aggregations.ts`) to DuckDB SQL.
|
|
7
|
+
*
|
|
8
|
+
* Like the ClickHouse dialect, it is *single-tenant* — it carries no
|
|
9
|
+
* `org_id`/tenant-isolation concerns — which keeps it relocatable across the
|
|
10
|
+
* open-core boundary.
|
|
11
|
+
*
|
|
12
|
+
* Binding model: parameters are emitted as DuckDB named placeholders (`$name`)
|
|
13
|
+
* and supplied as a `query_params` record. Timestamp params are bound as
|
|
14
|
+
* naive-UTC strings (see {@link toDuckdbTimestamp}) and cast in-place with
|
|
15
|
+
* `::TIMESTAMP`; DuckDB treats naive `TIMESTAMP` as UTC, matching the
|
|
16
|
+
* ClickHouse store's epoch handling.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Format an epoch-millisecond timestamp as a naive-UTC `YYYY-MM-DD HH:MM:SS.mmm`
|
|
20
|
+
* string for binding to a DuckDB `TIMESTAMP` column/param. Mirrors the
|
|
21
|
+
* ClickHouse `DateTime64(3)` literal format so both stores order and bucket time
|
|
22
|
+
* identically.
|
|
23
|
+
*/
|
|
24
|
+
export function toDuckdbTimestamp(epochMs) {
|
|
25
|
+
const d = new Date(epochMs);
|
|
26
|
+
const p = (n, w = 2) => String(n).padStart(w, "0");
|
|
27
|
+
return (`${d.getUTCFullYear()}-${p(d.getUTCMonth() + 1)}-${p(d.getUTCDate())} ` +
|
|
28
|
+
`${p(d.getUTCHours())}:${p(d.getUTCMinutes())}:${p(d.getUTCSeconds())}.${p(d.getUTCMilliseconds(), 3)}`);
|
|
29
|
+
}
|
|
30
|
+
export const duckdbDialect = {
|
|
31
|
+
name: "duckdb",
|
|
32
|
+
placeholder(name, type) {
|
|
33
|
+
// Timestamp params are bound as naive-UTC strings and cast in-place. Other
|
|
34
|
+
// logical types bind directly; DuckDB infers the concrete type from the value.
|
|
35
|
+
return type === "timestamp" ? `$${name}::TIMESTAMP` : `$${name}`;
|
|
36
|
+
},
|
|
37
|
+
timestampValue(epochMs) {
|
|
38
|
+
return toDuckdbTimestamp(epochMs);
|
|
39
|
+
},
|
|
40
|
+
quantile(expr, q) {
|
|
41
|
+
return `quantile_cont(${expr}, ${q})`;
|
|
42
|
+
},
|
|
43
|
+
vectorNorm(expr) {
|
|
44
|
+
return `sqrt(list_dot_product(${expr}, ${expr}))`;
|
|
45
|
+
},
|
|
46
|
+
avgIf(value, cond) {
|
|
47
|
+
return `avg(${value}) FILTER (WHERE ${cond})`;
|
|
48
|
+
},
|
|
49
|
+
anyValue(expr) {
|
|
50
|
+
return `any_value(${expr})`;
|
|
51
|
+
},
|
|
52
|
+
timeBucketMs(tsExpr, intervalPlaceholder) {
|
|
53
|
+
// epoch_ms(ts) yields integer milliseconds (UTC); floor to the interval grid.
|
|
54
|
+
return `floor(epoch_ms(${tsExpr}) / (${intervalPlaceholder} * 1000)) * (${intervalPlaceholder} * 1000)`;
|
|
55
|
+
},
|
|
56
|
+
epochMs(tsExpr) {
|
|
57
|
+
return `epoch_ms(${tsExpr})`;
|
|
58
|
+
},
|
|
59
|
+
toDate(expr) {
|
|
60
|
+
return `CAST(${expr} AS DATE)`;
|
|
61
|
+
},
|
|
62
|
+
toText(expr) {
|
|
63
|
+
return `CAST(${expr} AS VARCHAR)`;
|
|
64
|
+
},
|
|
65
|
+
jsonText(column, ...path) {
|
|
66
|
+
return `json_extract_string(${column}, '$.${path.join(".")}')`;
|
|
67
|
+
},
|
|
68
|
+
// Rollup tables are exposed as DuckDB views (see migrations) that pre-group by
|
|
69
|
+
// `(project_id, …, day)`, so each read GROUP BY yields exactly one source row
|
|
70
|
+
// per group. The "merge" of a single precomputed value is the value itself.
|
|
71
|
+
countMerge(stateExpr) {
|
|
72
|
+
return `sum(${stateExpr})`;
|
|
73
|
+
},
|
|
74
|
+
avgMerge(stateExpr) {
|
|
75
|
+
return `avg(${stateExpr})`;
|
|
76
|
+
},
|
|
77
|
+
quantileMerge(stateExpr, q) {
|
|
78
|
+
return `quantile_cont(${stateExpr}, ${q})`;
|
|
79
|
+
},
|
|
80
|
+
asofInnerJoin: "ASOF INNER JOIN",
|
|
81
|
+
asofLeftJoin: "ASOF LEFT JOIN",
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=duckdbDialect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdbDialect.js","sourceRoot":"","sources":["../../src/query/duckdbDialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,CACL,GAAG,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG;QACvE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,CACxG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,IAAI,EAAE,QAAQ;IACd,WAAW,CAAC,IAAI,EAAE,IAAe;QAC/B,2EAA2E;QAC3E,+EAA+E;QAC/E,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACnE,CAAC;IACD,cAAc,CAAC,OAAO;QACpB,OAAO,iBAAiB,CAAC,OAAiB,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,iBAAiB,IAAI,KAAK,CAAC,GAAG,CAAC;IACxC,CAAC;IACD,UAAU,CAAC,IAAI;QACb,OAAO,yBAAyB,IAAI,KAAK,IAAI,IAAI,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,KAAK,EAAE,IAAI;QACf,OAAO,OAAO,KAAK,mBAAmB,IAAI,GAAG,CAAC;IAChD,CAAC;IACD,QAAQ,CAAC,IAAI;QACX,OAAO,aAAa,IAAI,GAAG,CAAC;IAC9B,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,mBAAmB;QACtC,8EAA8E;QAC9E,OAAO,kBAAkB,MAAM,QAAQ,mBAAmB,gBAAgB,mBAAmB,UAAU,CAAC;IAC1G,CAAC;IACD,OAAO,CAAC,MAAM;QACZ,OAAO,YAAY,MAAM,GAAG,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,IAAI;QACT,OAAO,QAAQ,IAAI,WAAW,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,IAAI;QACT,OAAO,QAAQ,IAAI,cAAc,CAAC;IACpC,CAAC;IACD,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI;QACtB,OAAO,uBAAuB,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACjE,CAAC;IACD,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,UAAU,CAAC,SAAS;QAClB,OAAO,OAAO,SAAS,GAAG,CAAC;IAC7B,CAAC;IACD,QAAQ,CAAC,SAAS;QAChB,OAAO,OAAO,SAAS,GAAG,CAAC;IAC7B,CAAC;IACD,aAAa,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,iBAAiB,SAAS,KAAK,CAAC,GAAG,CAAC;IAC7C,CAAC;IACD,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;CAC/B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe entry point for `@uptimizr/db` (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* The package's root `index.js` re-exports Node-only helpers (`metadata.ts` pulls
|
|
5
|
+
* in `node:crypto`), so importing the root would drag Node code into a browser
|
|
6
|
+
* bundle. This subpath (`@uptimizr/db/query`) exposes ONLY the pure, isomorphic
|
|
7
|
+
* pieces — the dialect-agnostic query builders, the DuckDB dialect, the option /
|
|
8
|
+
* row types, and the engine-neutral event-row mapping — all of which depend only
|
|
9
|
+
* on `@uptimizr/schema`. It carries no `node:`/DOM imports and is safe to bundle
|
|
10
|
+
* into a Service Worker or the browser (e.g. the in-browser DuckDB-Wasm demo
|
|
11
|
+
* store, see `docs/phases/demo-in-browser-design.md`).
|
|
12
|
+
*
|
|
13
|
+
* Do NOT add re-exports here that transitively import Node built-ins.
|
|
14
|
+
*/
|
|
15
|
+
export * from "./types.js";
|
|
16
|
+
export * from "./dialect.js";
|
|
17
|
+
export * from "./duckdbDialect.js";
|
|
18
|
+
export * from "./aggregations.js";
|
|
19
|
+
export { toEventRow, formatUtcTimestamp, toNodeSampleRow, nodeSampleRowToEvent, } from "../events.js";
|
|
20
|
+
export type { EventRow, NodeSampleRow, SessionMeta } from "../events.js";
|
|
21
|
+
export { DUCKDB_MIGRATIONS } from "../duckdb/migrations.js";
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe entry point for `@uptimizr/db` (ADR 0020).
|
|
3
|
+
*
|
|
4
|
+
* The package's root `index.js` re-exports Node-only helpers (`metadata.ts` pulls
|
|
5
|
+
* in `node:crypto`), so importing the root would drag Node code into a browser
|
|
6
|
+
* bundle. This subpath (`@uptimizr/db/query`) exposes ONLY the pure, isomorphic
|
|
7
|
+
* pieces — the dialect-agnostic query builders, the DuckDB dialect, the option /
|
|
8
|
+
* row types, and the engine-neutral event-row mapping — all of which depend only
|
|
9
|
+
* on `@uptimizr/schema`. It carries no `node:`/DOM imports and is safe to bundle
|
|
10
|
+
* into a Service Worker or the browser (e.g. the in-browser DuckDB-Wasm demo
|
|
11
|
+
* store, see `docs/phases/demo-in-browser-design.md`).
|
|
12
|
+
*
|
|
13
|
+
* Do NOT add re-exports here that transitively import Node built-ins.
|
|
14
|
+
*/
|
|
15
|
+
// Dialect-agnostic option/row types + the QuerySpec contract.
|
|
16
|
+
export * from "./types.js";
|
|
17
|
+
// Dialect interface + shared WHERE-clause helpers.
|
|
18
|
+
export * from "./dialect.js";
|
|
19
|
+
// The DuckDB dialect (the OSS default engine).
|
|
20
|
+
export * from "./duckdbDialect.js";
|
|
21
|
+
// Every `build*` aggregation (renders a QuerySpec for a given Dialect).
|
|
22
|
+
export * from "./aggregations.js";
|
|
23
|
+
// Engine-neutral event → row mapping (isomorphic; imports only @uptimizr/schema).
|
|
24
|
+
export { toEventRow, formatUtcTimestamp, toNodeSampleRow, nodeSampleRowToEvent, } from "../events.js";
|
|
25
|
+
// The DuckDB schema DDL. `migrations.ts` only imports the `DuckdbClient` *type*
|
|
26
|
+
// (erased at runtime), so the statement array is browser-safe to replay into a
|
|
27
|
+
// DuckDB-Wasm database. Re-exported here so the in-browser store stays a single
|
|
28
|
+
// source of truth with the Node store (no duplicated/drifting schema).
|
|
29
|
+
export { DUCKDB_MIGRATIONS } from "../duckdb/migrations.js";
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8DAA8D;AAC9D,cAAc,YAAY,CAAC;AAE3B,mDAAmD;AACnD,cAAc,cAAc,CAAC;AAE7B,+CAA+C;AAC/C,cAAc,oBAAoB,CAAC;AAEnC,wEAAwE;AACxE,cAAc,mBAAmB,CAAC;AAElC,kFAAkF;AAClF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,uEAAuE;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|