🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@kuindji/sql-type-parser

Package Overview
Dependencies
Maintainers
1
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kuindji/sql-type-parser - npm Package Compare versions

Comparing version
0.3.12
to
0.4.0
+105
dist/common/builder.d.ts
/**
* Common builder utilities shared across query builders.
*
* Phase 3: runtime ConditionTreeBuilder + base .when() helper.
*/
import type { WhereExpr } from "./ast.js";
export type ConditionTreePart = WhereExpr | ConditionTreeState;
export interface ConditionTreeState {
readonly operator: "and" | "or";
readonly parts: ReadonlyArray<{
readonly id: string;
readonly condition: WhereExpr | ConditionTreeState;
}>;
}
type UppercaseOperator<Op extends "and" | "or"> = Op extends "and" ? "AND" : "OR";
type AppendCondition<Current extends string, Part extends string, Op extends "and" | "or"> = string extends Current | Part ? string : Current extends "()" ? `(${Part})` : Current extends `(${infer Body})` ? `(${Body} ${UppercaseOperator<Op>} ${Part})` : string;
/**
* Immutable condition tree builder used by SELECT/UPDATE/DELETE.
*
* Runtime-only; type-level behavior is driven by WhereExpr types, but we also
* carry a lightweight string literal of the rendered expression when inputs
* are literal strings to keep BuilderSQL precise.
*/
export declare class ConditionTreeBuilder<Op extends "and" | "or" = "and" | "or", Expr extends string = string> {
private readonly state;
private constructor();
/** Create a new condition tree with the given operator. */
static create<Op extends "and" | "or">(operator: Op): ConditionTreeBuilder<Op, "()">;
/** Internal accessor used by query builders to read the tree state. */
getState(): ConditionTreeState;
/**
* Add a new condition part.
*
* Currently this treats string fragments as opaque expressions and uses them
* directly in toString(); query builders are responsible for validating &
* parsing them into WhereExpr when integrating with the type-level parser.
*/
add<Part extends string | ConditionTreeBuilder<any, any>>(part: Part, id?: string): ConditionTreeBuilder<Op, AppendCondition<Expr, Part extends ConditionTreeBuilder<any, infer PExpr extends string> ? PExpr : Part extends string ? Part : string, Op>>;
/** Remove a condition part by ID (no-op if not found). */
remove(id: string): ConditionTreeBuilder<Op, Expr>;
/**
* Conditional modification helper shared by all builders.
*
* Runtime semantics:
* - If condition is true: the callback is executed and its result returned.
* - If condition is false: the callback is skipped and `this` is returned.
*
* Type-level behavior for specific builders is implemented separately.
*/
when<Next extends ConditionTreeBuilder<any, any>>(condition: boolean, callback: (b: ConditionTreeBuilder<Op, Expr>) => Next): ConditionTreeBuilder<Op, Expr> | Next;
/**
* String representation used by query builders for WHERE/HAVING clauses.
*
* - Entire expression is wrapped in parentheses.
* - Logical operators rendered as uppercase AND/OR.
*/
toString(): Expr;
private static renderPart;
private static isConditionTreeState;
private static generateId;
}
/**
* Convenience helper for creating a condition tree.
* Prefer this over calling ConditionTreeBuilder.create directly.
*/
export declare function createConditionTree<Op extends "and" | "or">(operator: Op): ConditionTreeBuilder<Op, "()">;
/**
* Generic runtime `.when` helper for all builders.
*
* This is a small convenience wrapper that implements the shared
* runtime semantics:
*
* - If condition is true: execute callback and return its result.
* - If condition is false: skip callback and return builder unchanged.
*/
export declare function whenRuntime<B>(builder: B, condition: boolean, callback: (b: B) => B): B;
/** Runtime parameter value type supported by query builders. */
export type QueryParamValue = string | number | boolean | null;
type BuildArray<N extends number, Acc extends unknown[] = []> = number extends N ? unknown[] : Acc["length"] extends N ? Acc : BuildArray<N, [...Acc, unknown]>;
/**
* Compute the string literal representing the placeholders for a parameter
* tuple, offset by the number of existing parameters. Falls back to `string`
* when counts are not known as literals.
*/
export type ParamString<Params extends readonly QueryParamValue[], Offset extends number = 0, Seen extends unknown[] = BuildArray<Offset>, Acc extends string = ""> = Params extends readonly [
any,
...infer Rest extends readonly QueryParamValue[]
] ? ParamString<Rest, Offset, [
...Seen,
unknown
], Acc extends "" ? `$${[...Seen, unknown]["length"]}` : `${Acc}, $${[...Seen, unknown]["length"]}`> : Acc;
/**
* Append new parameters onto an existing list and return both the combined
* params and the positional placeholder string (e.g. "$1, $2").
*/
export declare function appendParamsRuntime(existing: readonly QueryParamValue[], params: readonly QueryParamValue[]): {
readonly params: readonly QueryParamValue[];
readonly paramString: string;
};
/**
* Build the placeholder string for a set of parameters with a given offset.
*/
export declare function buildParamString(params: readonly QueryParamValue[], offset: number): string;
export {};
//# sourceMappingURL=builder.d.ts.map
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/common/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,CAAC;KACtD,CAAC,CAAC;CACN;AAED,KAAK,iBAAiB,CAAC,EAAE,SAAS,KAAK,GAAG,IAAI,IAAI,EAAE,SAAS,KAAK,GAAG,KAAK,GACpE,IAAI,CAAC;AAEX,KAAK,eAAe,CAChB,OAAO,SAAS,MAAM,EACtB,IAAI,SAAS,MAAM,EACnB,EAAE,SAAS,KAAK,GAAG,IAAI,IACvB,MAAM,SAAS,OAAO,GAAG,IAAI,GAAG,MAAM,GACpC,OAAO,SAAS,IAAI,GAAG,IAAI,IAAI,GAAG,GAClC,OAAO,SAAS,IAAI,MAAM,IAAI,GAAG,GAC7B,IAAI,IAAI,IAAI,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,GAChD,MAAM,CAAC;AAEb;;;;;;GAMG;AACH,qBAAa,oBAAoB,CAC7B,EAAE,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EACtC,IAAI,SAAS,MAAM,GAAG,MAAM;IAE5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,OAAO;IAIP,2DAA2D;IAC3D,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,GAAG,IAAI,EACjC,QAAQ,EAAE,EAAE,GACb,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC;IASjC,uEAAuE;IACvE,QAAQ,IAAI,kBAAkB;IAI9B;;;;;;OAMG;IACH,GAAG,CACC,IAAI,SAAS,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEpD,IAAI,EAAE,IAAI,EACV,EAAE,CAAC,EAAE,MAAM,GACZ,oBAAoB,CACnB,EAAE,EACF,eAAe,CACX,IAAI,EACJ,IAAI,SAAS,oBAAoB,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC,GAC5D,KAAK,GACL,IAAI,SAAS,MAAM,GAAG,IAAI,GAC1B,MAAM,EACZ,EAAE,CACL,CACJ;IAoCD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC;IAalD;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5C,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,GACtD,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAkBhB,OAAO,CAAC,MAAM,CAAC,UAAU;IAWzB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAWnC,OAAO,CAAC,MAAM,CAAC,UAAU;CAI5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,KAAK,GAAG,IAAI,EACvD,QAAQ,EAAE,EAAE,GACb,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,CAEhC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACtB,CAAC,CAEH;AAMD,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE/D,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE,IAAI,MAAM,SAAS,CAAC,GAC1E,OAAO,EAAE,GACT,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,GAC7B,UAAU,CAAC,CAAC,EAAE,CAAE,GAAG,GAAG,EAAE,OAAO,CAAE,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,WAAW,CACnB,MAAM,SAAS,SAAS,eAAe,EAAE,EACzC,MAAM,SAAS,MAAM,GAAG,CAAC,EACzB,IAAI,SAAS,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAC3C,GAAG,SAAS,MAAM,GAAG,EAAE,IACvB,MAAM,SAAS,SAAS;IACxB,GAAG;IACH,GAAG,MAAM,IAAI,SAAS,SAAS,eAAe,EAAE;CACnD,GAAG,WAAW,CACP,IAAI,EACJ,MAAM,EACN;IAAE,GAAG,IAAI;IAAE,OAAO;CAAE,EACpB,GAAG,SAAS,EAAE,GAAG,IAAI,CAAE,GAAG,IAAI,EAAE,OAAO,CAAE,CAAC,QAAQ,CAAC,EAAE,GAC/C,GAAG,GAAG,MAAM,CAAE,GAAG,IAAI,EAAE,OAAO,CAAE,CAAC,QAAQ,CAAC,EAAE,CACrD,GACC,GAAG,CAAC;AAEV;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,MAAM,EAAE,SAAS,eAAe,EAAE,GACnC;IACC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAQA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,MAAM,EAAE,MAAM,GACf,MAAM,CAKR"}
/**
* Common builder utilities shared across query builders.
*
* Phase 3: runtime ConditionTreeBuilder + base .when() helper.
*/
/**
* Immutable condition tree builder used by SELECT/UPDATE/DELETE.
*
* Runtime-only; type-level behavior is driven by WhereExpr types, but we also
* carry a lightweight string literal of the rendered expression when inputs
* are literal strings to keep BuilderSQL precise.
*/
export class ConditionTreeBuilder {
state;
constructor(state) {
this.state = state;
}
/** Create a new condition tree with the given operator. */
static create(operator) {
return new ConditionTreeBuilder({
operator,
parts: [],
});
}
/** Internal accessor used by query builders to read the tree state. */
getState() {
return this.state;
}
/**
* Add a new condition part.
*
* Currently this treats string fragments as opaque expressions and uses them
* directly in toString(); query builders are responsible for validating &
* parsing them into WhereExpr when integrating with the type-level parser.
*/
add(part, id) {
const partId = id ?? ConditionTreeBuilder.generateId();
const condition = part instanceof ConditionTreeBuilder
? part.getState()
: part;
// Replace existing part with same ID, or append if not found.
const existingIndex = this.state.parts.findIndex(p => p.id === partId);
const nextParts = existingIndex === -1
? [...this.state.parts, { id: partId, condition }]
: this.state.parts.map((p, idx) => idx === existingIndex ? { id: partId, condition } : p);
return new ConditionTreeBuilder({
operator: this.state.operator,
parts: nextParts,
});
}
/** Remove a condition part by ID (no-op if not found). */
remove(id) {
const nextParts = this.state.parts.filter(p => p.id !== id);
if (nextParts.length === this.state.parts.length) {
return this;
}
return new ConditionTreeBuilder({
operator: this.state.operator,
parts: nextParts,
});
}
/**
* Conditional modification helper shared by all builders.
*
* Runtime semantics:
* - If condition is true: the callback is executed and its result returned.
* - If condition is false: the callback is skipped and `this` is returned.
*
* Type-level behavior for specific builders is implemented separately.
*/
when(condition, callback) {
return condition ? callback(this) : this;
}
/**
* String representation used by query builders for WHERE/HAVING clauses.
*
* - Entire expression is wrapped in parentheses.
* - Logical operators rendered as uppercase AND/OR.
*/
toString() {
if (this.state.parts.length === 0) {
return "()";
}
const op = this.state.operator.toUpperCase();
const rendered = this.state.parts
.map(part => ConditionTreeBuilder.renderPart(part.condition))
.filter(s => s.length > 0)
.join(` ${op} `);
return `(${rendered})`;
}
// ---------------------------------------------------------------------------
// Internal helpers
// ---------------------------------------------------------------------------
static renderPart(condition) {
if (ConditionTreeBuilder.isConditionTreeState(condition)) {
const nested = new ConditionTreeBuilder(condition).toString();
return nested;
}
// For now treat WhereExpr as an opaque string at runtime.
return String(condition ?? "").trim();
}
static isConditionTreeState(value) {
return (typeof value === "object"
&& value !== null
&& value.operator !== undefined
&& Array.isArray(value.parts));
}
static generateId() {
// Simple, stable ID for runtime usage; callers can override via explicit id.
return `cond_${Math.random().toString(36).slice(2, 10)}`;
}
}
/**
* Convenience helper for creating a condition tree.
* Prefer this over calling ConditionTreeBuilder.create directly.
*/
export function createConditionTree(operator) {
return ConditionTreeBuilder.create(operator);
}
/**
* Generic runtime `.when` helper for all builders.
*
* This is a small convenience wrapper that implements the shared
* runtime semantics:
*
* - If condition is true: execute callback and return its result.
* - If condition is false: skip callback and return builder unchanged.
*/
export function whenRuntime(builder, condition, callback) {
return condition ? callback(builder) : builder;
}
/**
* Append new parameters onto an existing list and return both the combined
* params and the positional placeholder string (e.g. "$1, $2").
*/
export function appendParamsRuntime(existing, params) {
const base = existing ?? [];
const nextParams = [...base, ...params];
const paramString = buildParamString(params, base.length);
return {
params: nextParams,
paramString,
};
}
/**
* Build the placeholder string for a set of parameters with a given offset.
*/
export function buildParamString(params, offset) {
if (!params || params.length === 0) {
return "";
}
return params.map((_, idx) => `$${offset + idx + 1}`).join(", ");
}
//# sourceMappingURL=builder.js.map
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/common/builder.ts"],"names":[],"mappings":"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"}
/**
* SELECT Query Builder - Type-Level State & Utilities
*
* Phase 2 focuses on type-level pieces only:
* - Core builder state types
* - Join strictness and replacement rules
* - State-to-AST conversion scaffolding
*
* Runtime builder implementation is added in Phase 3 and later.
*/
import { ConditionTreeBuilder } from "../common/builder.js";
import type { ParamString, QueryParamValue } from "../common/builder.js";
import type { ColumnRefType, CTEDefinition, JoinClause, OrderByItem, TableSource, WhereExpr } from "../common/ast.js";
import type { Flatten, MatchError } from "../common/utils.js";
import type { SelectClause, SelectItem, UnionClause, UnionOperatorType } from "./ast.js";
import type { DatabaseSchema } from "../common/schema.js";
import type { ParseTableRef } from "./parser.js";
/**
* Lightweight, non-AST builder state tag used for result typing.
*
* This deliberately does NOT mirror the full SQL AST. It only tracks:
* - `fromTable`: the primary table name (for simple table-driven cases)
* - `row`: the current inferred result row type
* - `contextSQL`: the FROM/JOIN fragment used to build a per-column
* synthetic query for `QueryResult`, so that aliasing and joins are
* resolved by the existing parser + matcher.
*
* The heavy AST-centric state types (`SelectBuilderState`, etc.) below
* remain available for future, more advanced builder phases, but are not
* threaded through the runtime builder generics to keep TypeScript
* instantiation depth manageable.
*/
export interface BuilderStateTag<FromTable extends string | undefined = string | undefined, Row = unknown, ContextSQL extends string | undefined = string | undefined> {
readonly fromTable: FromTable;
readonly row: Row;
readonly contextSQL: ContextSQL;
}
/**
* Lightweight type-level tag that tracks the assembled SQL fragments for a
* builder. This is used only for type-level SQL reconstruction and optional
* validation; it has no runtime representation.
*
* All fields store clause *fragments* (for example, `select` stores the column
* list without the SELECT keyword) so that assembly logic can mirror
* `assembleSelectSQL` closely.
*/
export interface BuilderSqlTag<Select extends string | ClauseList | undefined = undefined, From extends string | undefined = undefined, Joins extends string | ClauseList | undefined = undefined, Where extends string | undefined = undefined, GroupBy extends string | undefined = undefined, Having extends string | undefined = undefined, OrderBy extends string | undefined = undefined, Limit extends number | undefined = undefined, Params extends readonly QueryParamValue[] = readonly []> {
readonly select: Select;
readonly from: From;
readonly joins: Joins;
readonly where: Where;
readonly groupBy: GroupBy;
readonly having: Having;
readonly orderBy: OrderBy;
readonly limit: Limit;
readonly params: Params;
}
/**
* Initial empty SQL tag: no clauses present.
*/
export type EmptySqlState = BuilderSqlTag;
/**
* Initial lightweight builder state: no FROM table, no context, and an
* empty result row.
*/
export type EmptyBuilderState = BuilderStateTag<undefined, {}, undefined>;
type DefaultSchemaName<Schema extends DatabaseSchema> = Schema["defaultSchema"] extends infer D extends string ? D : never;
type SchemaTables<Schema extends DatabaseSchema> = Schema["schemas"][DefaultSchemaName<Schema>];
export type TableNameOf<Schema extends DatabaseSchema> = Extract<keyof SchemaTables<Schema>, string>;
type IsTuple<T extends readonly any[]> = number extends T["length"] ? false : true;
/**
* Convert a union of types into an intersection (A | B -> A & B).
* Used to merge column rows derived from non-tuple string arrays.
*/
type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
type ToStringArray<T extends string | readonly string[]> = T extends readonly [infer First extends string, ...infer Rest extends string[]] ? [First, ...Rest] : T extends readonly (infer S extends string)[] ? S[] : [T];
/**
* Helper to detect literal string types (as opposed to plain `string`).
*/
type IsLiteralString<T> = T extends string ? string extends T ? false : true : false;
/** Strip simple PostgreSQL-style casts (`expr::type`). */
type StripCast<S extends string> = S extends `${infer Base}::${string}` ? Base : S;
type TrimStr<S extends string> = S extends ` ${infer T}` ? TrimStr<T> : S extends `${infer T} ` ? TrimStr<T> : S;
type LastAlias<S extends string> = TrimStr<S> extends `${infer _Head} AS ${infer Rest}` ? LastAlias<Rest> : TrimStr<S>;
type ExtractAlias<S extends string> = TrimStr<S> extends `${string} AS ${string}` ? LastAlias<S> : undefined;
type ExprWithoutAlias<S extends string> = ExtractAlias<S> extends infer A ? A extends string ? TrimStr<S> extends `${infer Expr} AS ${A}` ? TrimStr<Expr> : TrimStr<S> : TrimStr<S> : TrimStr<S>;
type SplitAlias<S extends string> = [
ExprWithoutAlias<S>,
ExtractAlias<S>
];
/** Extract the final identifier part of a column expression (alias wins). */
type ExtractColumnIdentifier<S extends string> = SplitAlias<S> extends [
infer Expr extends string,
infer Alias extends string | undefined
] ? Alias extends string ? Alias : StripCast<Expr> extends `${string}.${infer Tail}` ? Tail : StripCast<Expr> : StripCast<S>;
/** Look up a column's TS type from the default schema tables. */
type ColumnTypeFromSchema<Schema extends DatabaseSchema, ColName extends string> = {
[Table in keyof SchemaTables<Schema>]: ColName extends keyof SchemaTables<Schema>[Table] ? SchemaTables<Schema>[Table][ColName] : never;
}[keyof SchemaTables<Schema>] extends infer R ? [R] extends [never] ? unknown : R : unknown;
/** Compute the result type for a simple column expression. */
type ColumnTypeForExpr<Schema extends DatabaseSchema, Expr extends string> = Expr extends `${string}::${string}` ? string : ColumnTypeFromSchema<Schema, ExtractColumnIdentifier<Expr>>;
type ExpressionType<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Expr extends string> = Expr extends `${string}::${string}` ? string : Expr extends `CAST${string}` ? string : Expr extends `COUNT${string}` ? number : Expr extends `(SELECT COUNT${string})` ? number : ColumnTypeForExpr<Schema, Expr> extends never ? unknown : ColumnTypeForExpr<Schema, Expr>;
type ColumnRow<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Col extends string> = SplitAlias<Col> extends [
infer Expr extends string,
infer Alias extends string | undefined
] ? {
[K in Alias extends string ? Alias : ExtractColumnIdentifier<Expr>]: ExpressionType<Schema, State, Expr>;
} : {
[K in ExtractColumnIdentifier<Col>]: ExpressionType<Schema, State, Col>;
};
type ColumnsArrayToRow<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Cols extends readonly string[], Acc = {}> = Cols extends readonly [
infer First extends string,
...infer Rest extends readonly string[]
] ? ColumnsArrayToRow<Schema, State, Rest, Acc & ColumnRow<Schema, State, First>> : Acc;
type ColumnsToRow<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, ColSpec extends string | readonly string[]> = ColSpec extends string ? ColumnRow<Schema, State, ColSpec> : ColSpec extends readonly (infer S extends string)[] ? IsTuple<ColSpec> extends true ? ColumnsArrayToRow<Schema, State, ColSpec> : UnionToIntersection<ColumnRow<Schema, State, S>> : {};
type AddColumnsForSchema<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, ColSpec extends string | readonly string[]> = BuilderStateTag<State["fromTable"], State["row"] & ColumnsToRow<Schema, State, ColSpec>, State["contextSQL"]>;
/**
* Join an array of string literal parts with a separator.
*/
type JoinWith<Parts extends string[], Sep extends string, Acc extends string = ""> = Parts extends [infer First extends string, ...infer Rest extends string[]] ? JoinWith<Rest, Sep, Acc extends "" ? First : `${Acc}${Sep}${First}`> : Acc;
/**
* Convert column spec (string or string[]) into a comma-separated column list.
*/
type ColsToString<Cols extends string | readonly string[]> = ToStringArray<Cols> extends infer Arr extends string[] ? JoinWith<Arr, ", "> : "";
export type SqlClausePart = {
readonly id: string;
readonly sql: string;
};
type ClauseList = readonly SqlClausePart[];
type NormalizeClauseList<Value> = Value extends ClauseList ? Value : Value extends string ? readonly [
{
readonly id: "__legacy";
readonly sql: Value;
}
] : readonly [];
type ClauseListOrUndefined<Parts extends ClauseList> = Parts["length"] extends 0 ? undefined : Parts;
type ClauseListToString<Parts extends ClauseList, Sep extends string, Acc extends string = ""> = Parts extends readonly [
infer First extends SqlClausePart,
...infer Rest extends ClauseList
] ? ClauseListToString<Rest, Sep, Acc extends "" ? First["sql"] : `${Acc}${Sep}${First["sql"]}`> : Acc;
type ClauseListStringOrUndefined<Parts extends ClauseList, Sep extends string> = Parts["length"] extends 0 ? undefined : ClauseListToString<Parts, Sep>;
type UpsertClausePart<Parts extends ClauseList, Id extends string, Sql extends string, Seen extends boolean = false, Acc extends ClauseList = readonly []> = Parts extends readonly [
infer First extends SqlClausePart,
...infer Rest extends ClauseList
] ? First["id"] extends Id ? UpsertClausePart<Rest, Id, Sql, true, readonly [
...Acc,
{
readonly id: Id;
readonly sql: Sql;
}
]> : UpsertClausePart<Rest, Id, Sql, Seen, readonly [...Acc, First]> : Seen extends true ? Acc : readonly [...Acc, {
readonly id: Id;
readonly sql: Sql;
}];
type RemoveClausePart<Parts extends ClauseList, Id extends string, Acc extends ClauseList = readonly []> = Parts extends readonly [
infer First extends SqlClausePart,
...infer Rest extends ClauseList
] ? RemoveClausePart<Rest, Id, First["id"] extends Id ? Acc : readonly [...Acc, First]> : Acc;
type ClauseValueToString<Value, Sep extends string> = Value extends string ? Value : Value extends ClauseList ? ClauseListStringOrUndefined<Value, Sep> : undefined;
type SelectClauseString<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = ClauseValueToString<Sql["select"], ", ">;
type JoinClauseString<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = ClauseValueToString<Sql["joins"], " ">;
type ContextSqlFromTag<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = Sql["from"] extends infer From extends string ? JoinClauseString<Sql> extends infer Joins extends string ? Joins extends "" ? `FROM ${From}` : `FROM ${From} ${Joins}` : `FROM ${From}` : JoinClauseString<Sql> extends infer Joins extends string ? Joins : undefined;
/**
* Add columns to the SELECT fragment in the SQL tag.
*/
type WithSelectSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Cols extends string | readonly string[], Id extends string | undefined> = BuilderSqlTag<ClauseListOrUndefined<UpsertClausePart<NormalizeClauseList<Sql["select"]>, Id extends string ? Id : `select_${NormalizeClauseList<Sql["select"]>["length"]}`, ColsToString<Cols>>>, Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
/**
* Set or replace the FROM fragment in the SQL tag.
*
* For subqueries we conservatively fall back to `string`, which will prevent
* full SQL literal reconstruction but keeps types sound.
*/
type WithFromSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Src> = BuilderSqlTag<Sql["select"], Src extends string ? Src : string, Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
/**
* Append a JOIN fragment to the SQL tag.
*/
type WithJoinSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, JoinSql extends string, Id extends string | undefined> = BuilderSqlTag<Sql["select"], Sql["from"], ClauseListOrUndefined<UpsertClausePart<NormalizeClauseList<Sql["joins"]>, Id extends string ? Id : `join_${NormalizeClauseList<Sql["joins"]>["length"]}`, JoinSql>>, Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
type WithoutSelectSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Id extends string> = BuilderSqlTag<ClauseListOrUndefined<RemoveClausePart<NormalizeClauseList<Sql["select"]>, Id>>, Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
type WithoutJoinSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Id extends string> = BuilderSqlTag<Sql["select"], Sql["from"], ClauseListOrUndefined<RemoveClausePart<NormalizeClauseList<Sql["joins"]>, Id>>, Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
type StateFromSql<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = BuilderStateTag<State["fromTable"], BuilderFullRow<Schema, Sql>, ContextSqlFromTag<Sql>>;
/**
* Normalize a WHERE / HAVING condition to a string fragment.
*/
type ConditionToSql<Cond> = Cond extends ConditionTreeBuilder<any, infer Expr extends string> ? Expr : Cond extends string ? Cond : string;
/**
* Append a WHERE fragment (combined with AND) to the SQL tag.
*/
type WithWhereSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Cond> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"] extends string ? `${Sql["where"]} AND ${ConditionToSql<Cond>}` : ConditionToSql<Cond>, Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
/**
* Append a GROUP BY fragment (combined with commas) to the SQL tag.
*/
type WithGroupBySql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Cols extends string | readonly string[], Id extends string | undefined> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"] extends string ? `${Sql["groupBy"]}, ${ColsToString<Cols>}` : ColsToString<Cols>, Sql["having"], Sql["orderBy"], Sql["limit"], Sql["params"]>;
/**
* Append a HAVING fragment (combined with AND) to the SQL tag.
*/
type WithHavingSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Cond> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"] extends string ? `${Sql["having"]} AND ${ConditionToSql<Cond>}` : ConditionToSql<Cond>, Sql["orderBy"], Sql["limit"], Sql["params"]>;
/**
* Append an ORDER BY fragment (combined with commas) to the SQL tag.
*/
type WithOrderBySql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Cols extends string | readonly string[], Id extends string | undefined> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"] extends string ? `${Sql["orderBy"]}, ${ColsToString<Cols>}` : ColsToString<Cols>, Sql["limit"], Sql["params"]>;
/**
* Set or replace the LIMIT fragment in the SQL tag.
*/
type WithLimitSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Limit extends number> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Limit, Sql["params"]>;
/**
* Append parameter values to the SQL tag metadata while keeping all other
* clause fragments unchanged.
*/
type WithParamsSql<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, Params extends readonly QueryParamValue[]> = BuilderSqlTag<Sql["select"], Sql["from"], Sql["joins"], Sql["where"], Sql["groupBy"], Sql["having"], Sql["orderBy"], Sql["limit"], readonly [...Sql["params"], ...Params]>;
/**
* Assemble a SQL string from a BuilderSqlTag. This mirrors the core ordering
* of `assembleSelectSQL` for SELECT/FROM/JOIN/WHERE/GROUP BY/HAVING/ORDER BY
* and LIMIT.
*/
export type AssembleBuilderSql<P extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = (SelectClauseString<P> extends string ? `SELECT ${SelectClauseString<P>}` : "SELECT *") extends infer Sel extends string ? (P["from"] extends string ? `${Sel} FROM ${P["from"]}` : Sel) extends infer SelFrom extends string ? (JoinClauseString<P> extends string ? `${SelFrom} ${JoinClauseString<P>}` : SelFrom) extends infer SelFromJoin extends string ? (P["where"] extends string ? `${SelFromJoin} WHERE ${P["where"]}` : SelFromJoin) extends infer SelWhere extends string ? (P["groupBy"] extends string ? `${SelWhere} GROUP BY ${P["groupBy"]}` : SelWhere) extends infer SelGroup extends string ? (P["having"] extends string ? `${SelGroup} HAVING ${P["having"]}` : SelGroup) extends infer SelHaving extends string ? (P["orderBy"] extends string ? `${SelHaving} ORDER BY ${P["orderBy"]}` : SelHaving) extends infer SelOrder extends string ? P["limit"] extends number ? `${SelOrder} LIMIT ${P["limit"]}` : SelOrder : never : never : never : never : never : never : never;
type WithFromForSchema<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Src> = Src extends string ? ParseTableRef<Src> extends infer Ref ? Ref extends {
table: infer T extends string;
} ? T extends TableNameOf<Schema> ? BuilderStateTag<T, State["row"], `FROM ${Src}`> : BuilderStateTag<State["fromTable"], State["row"], `FROM ${Src}`> : BuilderStateTag<State["fromTable"], State["row"], `FROM ${Src}`> : BuilderStateTag<State["fromTable"], State["row"], `FROM ${Src}`> : Src extends SelectQueryBuilder<Schema, BuilderStateTag<any, any, any>, any> ? BuilderStateTag<State["fromTable"], State["row"], State["contextSQL"]> : State;
type WithJoinContext<State extends BuilderStateTag<any, any, any>, JoinSql extends string> = BuilderStateTag<State["fromTable"], State["row"], State["contextSQL"] extends string ? `${State["contextSQL"]} ${JoinSql}` : JoinSql>;
type OptionalizeNewKeys<BeforeRow, AfterRow> = {
[K in keyof AfterRow]-?: K extends keyof BeforeRow ? AfterRow[K] : AfterRow[K] | undefined;
};
type MergeConditionalState<Before extends BuilderStateTag<any, any, any>, After extends BuilderStateTag<any, any, any>> = BuilderStateTag<Before["fromTable"] | After["fromTable"], Flatten<Before["row"] & OptionalizeNewKeys<Before["row"], After["row"]>>, Before["contextSQL"] | After["contextSQL"]>;
type CallbackResultState<Schema extends DatabaseSchema, S extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, CB> = CB extends (b: SelectQueryBuilder<Schema, S, Sql>, ...args: any[]) => SelectQueryBuilder<Schema, infer AfterState extends BuilderStateTag<any, any, any>, any> ? AfterState : S;
type CallbackResultSql<Schema extends DatabaseSchema, S extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>, CB> = CB extends (b: SelectQueryBuilder<Schema, S, Sql>, ...args: any[]) => SelectQueryBuilder<Schema, any, infer AfterSql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> ? AfterSql : Sql;
/**
* Runtime representation of builder state mirrors SelectBuilderState but
* can store raw string fragments for SQL assembly alongside AST fragments
* tracked at the type level.
*/
export interface RuntimeSelectState extends SelectBuilderState {
/**
* Raw SELECT fragments by ID (used for SQL string assembly).
* The type-level part continues to use SelectBuilderState["select"].
*/
readonly selectSql: {
readonly [id: string]: string[];
};
/** Raw FROM fragment (if present) */
readonly fromSql?: string;
/** Raw JOIN fragments by ID (preserving order via joins array) */
readonly joinSql: {
readonly [id: string]: string;
};
/** Raw WHERE fragments by ID (can include ConditionTreeBuilder usage) */
readonly whereSql: {
readonly [id: string]: string;
};
/** Raw GROUP BY fragments by ID */
readonly groupBySql: {
readonly [id: string]: string;
};
/** Raw HAVING fragments by ID */
readonly havingSql: {
readonly [id: string]: string;
};
/** Raw ORDER BY fragments by ID */
readonly orderBySql: {
readonly [id: string]: string;
};
/** Raw CTE fragments by ID */
readonly cteSql: {
readonly [id: string]: string;
};
/** Raw UNION fragment (if any) */
readonly unionSql?: string;
/** Collected query parameter values (positional) */
readonly params: ReadonlyArray<QueryParamValue>;
}
/**
* Public SELECT builder interface.
*
* - `Schema` is the database schema used for type inference.
* - `State` is a lightweight tag (`BuilderStateTag`) that tracks the
* primary FROM table and the currently inferred result row type.
* - `Sql` is a lightweight tag (`BuilderSqlTag`) that tracks assembled SQL
* fragments for type-level reconstruction and validation.
*/
export interface SelectQueryBuilder<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any> = EmptySqlState> {
/**
* Optional runtime-only accessor for debugging / tests.
*/
readonly _state: RuntimeSelectState;
/**
* Add columns to the SELECT list.
*
* Type-level: updates SelectBuilderState.select using ParseColumnList.
*/
select<const Cols extends string | readonly string[], Id extends string | undefined = undefined>(columns: Cols, id?: Id): SelectQueryBuilder<Schema, AddColumnsForSchema<Schema, State, Cols>, WithSelectSql<Sql, Cols, Id>>;
/**
* Set the FROM source (table or subquery as raw SQL).
*
* Type-level: updates SelectBuilderState.from using ParseTableRef.
*/
from<Src extends string | SelectQueryBuilder<Schema, BuilderStateTag<any, any, any>, any>>(source: Src): SelectQueryBuilder<Schema, WithFromForSchema<Schema, State, Src>, WithFromSql<Sql, Src>>;
/**
* Add a raw JOIN fragment.
*
* Phase 7 note: this currently affects only the runtime SQL string. The
* lightweight type-level state tag does not track join structure; columns
* from joined tables are inferred purely from their qualified names when
* selected (for example, "orders.total").
*/
join<JoinSql extends string, Id extends string | undefined = undefined>(joinSql: JoinSql, id?: Id): SelectQueryBuilder<Schema, WithJoinContext<State, JoinSql>, WithJoinSql<Sql, JoinSql, Id>>;
/**
* Remove SELECT fragments by ID (runtime) while updating type-level SQL.
*
* Type-level: on the top level, removes the referenced SELECT fragment; when
* used inside `.when()`, MergeConditionalState preserves prior columns so
* conditional removals are effectively no-ops.
*/
removeSelect<Id extends string>(id: Id): SelectQueryBuilder<Schema, StateFromSql<Schema, State, WithoutSelectSql<Sql, Id>>, WithoutSelectSql<Sql, Id>>;
/**
* Remove JOIN fragments by ID (runtime) while updating type-level SQL and
* context string for column inference.
*
* Type-level: same semantics as removeSelect regarding conditional usage.
*/
removeJoin<Id extends string>(id: Id): SelectQueryBuilder<Schema, StateFromSql<Schema, State, WithoutJoinSql<Sql, Id>>, WithoutJoinSql<Sql, Id>>;
/**
* Add a WHERE condition (string or ConditionTreeBuilder).
*/
where<Cond extends string | ConditionTreeBuilder>(condition: Cond, id?: string): SelectQueryBuilder<Schema, State, WithWhereSql<Sql, Cond>>;
/**
* Add GROUP BY columns (string or array).
*/
groupBy<const Cols extends string | readonly string[], Id extends string | undefined = undefined>(columns: Cols, id?: Id): SelectQueryBuilder<Schema, State, WithGroupBySql<Sql, Cols, Id>>;
/**
* Add a HAVING condition (string or ConditionTreeBuilder).
*/
having<Cond extends string | ConditionTreeBuilder>(condition: Cond, id?: string): SelectQueryBuilder<Schema, State, WithHavingSql<Sql, Cond>>;
/**
* Add ORDER BY columns (string or array).
*/
orderBy<const Cols extends string | readonly string[], Id extends string | undefined = undefined>(columns: Cols, id?: Id): SelectQueryBuilder<Schema, State, WithOrderBySql<Sql, Cols, Id>>;
/**
* Set LIMIT value.
*/
limit<const L extends number>(limit: L): SelectQueryBuilder<Schema, State, WithLimitSql<Sql, L>>;
/**
* Add positional parameters and receive their placeholder string.
*
* Parameters are accumulated on the builder and exposed via `getParams()`.
*/
withParams<const Params extends readonly QueryParamValue[], CB extends (b: SelectQueryBuilder<Schema, State, WithParamsSql<Sql, Params>>, paramString: ParamString<Params, Sql["params"]["length"]>) => SelectQueryBuilder<Schema, any, any>>(params: Params, callback: CB): SelectQueryBuilder<Schema, CallbackResultState<Schema, State, WithParamsSql<Sql, Params>, CB>, CallbackResultSql<Schema, State, WithParamsSql<Sql, Params>, CB>>;
/**
* Conditional execution helper; runtime behavior is shared via whenRuntime.
*
* Type-level: the callback is treated as always-executed. Columns and joins
* added inside `.when()` are merged into State, with new columns marked as
* optional (their types unioned with `undefined`).
*/
when<CB extends (b: SelectQueryBuilder<Schema, State, Sql>) => SelectQueryBuilder<Schema, any, any>>(condition: boolean, callback: CB): SelectQueryBuilder<Schema, MergeConditionalState<State, CallbackResultState<Schema, State, Sql, CB>>, CallbackResultSql<Schema, State, Sql, CB>>;
/**
* Generate the SQL string from the internal runtime state.
* Branded return type exposes the inferred result type.
*/
toBrandedString(): string & {
__type: BuilderResultBrand<Schema, State, Sql>;
};
/** Retrieve accumulated positional query parameters. */
getParams(): ReadonlyArray<QueryParamValue>;
/**
* Generate the SQL string from the internal runtime state without branding.
*/
toString(): string;
}
/**
* Entry point for creating a new SELECT builder.
*
* Schema is a generic-only parameter; there is no runtime schema value.
*/
export declare function createSelectQuery<Schema extends DatabaseSchema>(): SelectQueryBuilder<Schema, EmptyBuilderState, EmptySqlState>;
/**
* Assemble a SQL string from runtime builder state.
*
* This utility:
* - Uses user-provided fragments as-is (no parsing or normalization).
* - Inserts SQL keywords (SELECT, FROM, WHERE, etc.) in uppercase.
* - Skips empty clauses entirely.
* - Defaults to SELECT * when no select fragments are present.
*/
export declare function assembleSelectSQL(state: RuntimeSelectState): string;
/**
* Empty initial state for the SELECT builder.
*
* Mirrors the specification in BUILDER_SPECIFICATION.md.
*/
export type EmptyState = {
select: {};
from: undefined;
joins: [];
where: {};
groupBy: {};
having: {};
orderBy: {};
limit: undefined;
offset: undefined;
ctes: {};
distinct: false;
union: undefined;
};
/**
* Join strictness levels used for replacement validation.
*
* Derived from JoinType but flattened to the minimal hierarchy used
* by the builder (INNER > LEFT = RIGHT > FULL > CROSS).
*/
export type JoinStrictness = "INNER" | "LEFT" | "RIGHT" | "FULL" | "CROSS";
/**
* Main builder state interface for SELECT queries.
*
* All fields are purely type-level; runtime representation is added later.
*/
export interface SelectBuilderState {
/**
* Map of user-provided IDs to select item arrays.
* ID-based replacement overwrites the array at the given key.
*/
readonly select: {
readonly [id: string]: SelectItem[];
};
/** FROM clause source (table or derived table) */
readonly from: TableSource | undefined;
/**
* Ordered list of JOIN clauses with metadata for replacement rules.
*/
readonly joins: ReadonlyArray<{
readonly id: string;
readonly ast: JoinClause;
readonly strictness: JoinStrictness;
readonly optional: boolean;
}>;
/** WHERE clause fragments, keyed by ID */
readonly where: {
readonly [id: string]: WhereExpr;
};
/** GROUP BY fragments, keyed by ID */
readonly groupBy: {
readonly [id: string]: ColumnRefType[];
};
/** HAVING clause fragments, keyed by ID */
readonly having: {
readonly [id: string]: WhereExpr;
};
/** ORDER BY fragments, keyed by ID */
readonly orderBy: {
readonly [id: string]: OrderByItem[];
};
/** LIMIT value */
readonly limit: number | undefined;
/** OFFSET value */
readonly offset: number | undefined;
/** CTE definitions, keyed by ID */
readonly ctes: {
readonly [id: string]: CTEDefinition;
};
/** DISTINCT flag */
readonly distinct: boolean;
/** Union clause with another query (if any) */
readonly union: UnionClause | undefined;
}
/**
* Error state used when validation fails at the builder level.
*
* Matches MatchError<string> from common/utils for consistency, and
* preserves the previous valid state for tooling.
*/
export type ErrorState = MatchError<string> & {
readonly previousState: SelectBuilderState;
};
/**
* Convenience union for "any" builder state.
*/
export type SelectBuilderAnyState = SelectBuilderState | ErrorState;
/**
* Result type of builder `.toBrandedString()` branding.
*
* We keep the lightweight row accumulated in `BuilderStateTag["row"]`, but
* enrich it with any additional columns that appear in the assembled SQL
* fragments (for example, columns selected only inside `.when()` blocks),
* using the existing `QueryResult` matcher.
*/
export type BuilderResultType<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = Flatten<State["row"]> & {
[K in Exclude<keyof BuilderFullRow<Schema, Sql>, keyof Flatten<State["row"]>>]: BuilderFullRow<Schema, Sql>[K] | undefined;
};
/**
* Extract the assembled SQL string literal for a given builder type.
*/
export type BuilderSQL<B> = B extends SelectQueryBuilder<any, any, infer Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> ? AssembleBuilderSql<Sql> : never;
/**
* Extract the internal lightweight builder state tag from a builder type.
*/
export type BuilderStateOf<B> = B extends SelectQueryBuilder<any, infer S extends BuilderStateTag<any, any, any>, any> ? S : never;
/**
* Internal helper: validate that all referenced tables in the assembled
* SQL fragments exist in the schema. This is a shallow, table-only check
* (no column or expression validation) to avoid hitting type recursion
* limits while still surfacing obvious FROM/JOIN mistakes.
*/
type BuilderFromTableSpec<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = Sql["from"] extends infer F extends string ? F extends `${infer T} ${string}` ? T : F : never;
type BuilderJoinTablesSpec<Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = JoinClauseString<Sql> extends infer J extends string ? ExtractJoinTables<J> : never;
type ExtractJoinTables<S extends string> = S extends `${string}JOIN ${infer Rest}` ? Rest extends `${infer TableSpec} ${infer Tail}` ? TableSpec | ExtractJoinTables<Tail> : Rest : never;
type BuilderCheckTable<Schema extends DatabaseSchema, TableSpec extends string> = IsLiteralString<TableSpec> extends false ? true : TableSpec extends `${infer SchemaName}.${infer TableName}` ? SchemaName extends keyof Schema["schemas"] ? TableName extends keyof Schema["schemas"][SchemaName] ? true : `Table '${TableName}' not found in schema '${SchemaName}'` : `Schema '${SchemaName}' not found` : TableSpec extends keyof SchemaTables<Schema> ? true : `Table '${TableSpec}' not found in default schema '${DefaultSchemaName<Schema>}'`;
type BuilderCheckTables<Schema extends DatabaseSchema, Specs extends string> = [Specs] extends [never] ? true : true extends {
[K in Specs]: BuilderCheckTable<Schema, K> extends true ? true : never;
}[Specs] ? true : {
[K in Specs]: BuilderCheckTable<Schema, K> extends true ? never : BuilderCheckTable<Schema, K>;
}[Specs];
type BuilderTablesValid<Schema extends DatabaseSchema, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = BuilderCheckTable<Schema, BuilderFromTableSpec<Sql>> extends infer FromResult ? FromResult extends true ? BuilderCheckTables<Schema, BuilderJoinTablesSpec<Sql> & string> : FromResult : true;
/** Split a comma-separated SELECT list into individual column expressions. */
type SplitSelectList<S extends string> = S extends `${infer First}, ${infer Rest}` ? [First, ...SplitSelectList<Rest>] : [S];
/** Map a SELECT list string into a row type using ColumnRow. */
type SelectListToRow<Schema extends DatabaseSchema, Sel extends string> = SplitSelectList<Sel> extends infer Cols extends readonly string[] ? ColumnsArrayToRow<Schema, BuilderStateTag<any, any, any>, Cols> : {};
/** Helper: row inferred from the assembled SELECT fragment. */
type BuilderFullRow<Schema extends DatabaseSchema, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = SelectClauseString<Sql> extends infer Sel extends string ? SelectListToRow<Schema, Sel> : {};
type BuilderReturnForParts<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = BuilderTablesValid<Schema, Sql> extends true ? Flatten<State["row"]> : MatchError<BuilderTablesValid<Schema, Sql> & string>;
/**
* Result type of the builder query string.
*/
export type BuilderReturnType<B> = B extends SelectQueryBuilder<infer Schema extends DatabaseSchema, infer State extends BuilderStateTag<any, any, any>, infer Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> ? BuilderReturnForParts<Schema, State, Sql> : never;
/**
* Internal helper: branded result type for `.toBrandedString()`.
*
* It reuses the lightweight row stored on the BuilderStateTag. Table-level
* errors (FROM/JOIN) are surfaced as a MatchError on the branded `__type`.
*/
type BuilderResultBrand<Schema extends DatabaseSchema, State extends BuilderStateTag<any, any, any>, Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> = BuilderReturnForParts<Schema, State, Sql>;
/**
* Validate a builder by assembling its SQL string and running the existing
* ValidateSQL helper over it. This runs once per builder (when the type is
* referenced), not per method, to keep type instantiation depth manageable.
*/
export type ValidateBuilder<B> = B extends SelectQueryBuilder<infer Schema extends DatabaseSchema, any, infer Sql extends BuilderSqlTag<any, any, any, any, any, any, any, any, any>> ? BuilderTablesValid<Schema, Sql> : never;
/**
* Type-level predicate describing whether a join with OldStrictness
* may be replaced by a join with NewStrictness.
*
* Follows the hierarchy:
* INNER > LEFT = RIGHT > FULL > CROSS
*
* - You may tighten (weaken-or-equal → stricter).
* - You must not loosen (stricter → weaker).
*/
export type CanReplaceJoin<OldStrictness extends JoinStrictness, NewStrictness extends JoinStrictness> = OldStrictness extends "INNER" ? NewStrictness extends "INNER" ? true : false : OldStrictness extends "LEFT" | "RIGHT" ? NewStrictness extends "INNER" | "LEFT" | "RIGHT" ? true : false : OldStrictness extends "FULL" ? NewStrictness extends "FULL" | "LEFT" | "RIGHT" | "INNER" ? true : false : OldStrictness extends "CROSS" ? NewStrictness extends JoinStrictness ? true : false : false;
/**
* Utility for mapping a JoinType from the AST to JoinStrictness.
*
* This is only used at the type level; runtime mapping is added later
* alongside the concrete builder implementation.
*/
export type JoinTypeToStrictness<T extends string> = T extends "INNER" ? "INNER" : T extends "LEFT" | "LEFT OUTER" ? "LEFT" : T extends "RIGHT" | "RIGHT OUTER" ? "RIGHT" : T extends "FULL" | "FULL OUTER" ? "FULL" : T extends "CROSS" ? "CROSS" : never;
/**
* Extract all SELECT items from the state's select map and flatten them.
*
* Order is not preserved and is not semantically significant for
* type-level behavior; the result is modelled as a SelectItem[].
*
* When no select fragments exist, callers should treat this as
* "no explicit columns" and default to SELECT * at the SQL/string level.
*/
export type SelectItemsFromState<State extends SelectBuilderState> = State["select"][keyof State["select"]] extends infer V ? V extends SelectItem[] ? V[number][] : SelectItem[] : SelectItem[];
/**
* Convert a builder state into a SelectClause AST.
*
* This is a structural projection only; it does not perform validation
* or apply defaulting rules like "SELECT *" when no select() was called.
*
* - Columns: flattened select items (or "*" when explicitly requested
* by the caller via WithDefaultColumns).
* - FROM / JOIN / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT / OFFSET /
* DISTINCT / CTEs / UNION: mapped 1:1 from state fields.
*/
export type StateToSelectClause<State extends SelectBuilderState, Columns extends SelectItem[] | "*" = SelectItemsFromState<State>> = SelectClause<Columns, NonNullable<State["from"]>, State["joins"] extends ReadonlyArray<infer J> ? J extends {
ast: infer A extends JoinClause;
} ? A[] : undefined : undefined, State["where"][keyof State["where"]] | undefined, State["groupBy"][keyof State["groupBy"]] extends infer GB ? GB extends ColumnRefType[] ? GB[number][] : ColumnRefType[] | undefined : ColumnRefType[] | undefined, State["having"][keyof State["having"]] | undefined, State["orderBy"][keyof State["orderBy"]] extends infer OB ? OB extends OrderByItem[] ? OB[number][] : OrderByItem[] | undefined : OrderByItem[] | undefined, State["limit"], State["offset"], State["distinct"], State["ctes"][keyof State["ctes"]] extends infer C ? C extends CTEDefinition ? C[] : CTEDefinition[] | undefined : CTEDefinition[] | undefined>;
/**
* Helper to wrap a SelectClause produced from state in a UnionClause
* when the state's union field is present.
*
* This is a small convenience for later phases that need to pass a
* SelectClause-or-UnionClause into validator/matcher logic.
*/
export type StateToSelectQueryClause<State extends SelectBuilderState, Columns extends SelectItem[] | "*" = SelectItemsFromState<State>> = State["union"] extends UnionClause<infer Left extends SelectClause, infer Op extends UnionOperatorType, infer Right> ? UnionClause<Left, Op, Right> : StateToSelectClause<State, Columns>;
export {};
//# sourceMappingURL=builder.d.ts.map
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/select/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAEH,oBAAoB,EAEvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAa,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAER,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAMlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,eAAe,CAC5B,SAAS,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACzD,GAAG,GAAG,OAAO,EACb,UAAU,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAE1D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAC1B,MAAM,SAAS,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,EAC1D,IAAI,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC3C,KAAK,SAAS,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,EACzD,KAAK,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC5C,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC9C,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC7C,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC9C,KAAK,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAC5C,MAAM,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE;IAEvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AAM1E,KAAK,iBAAiB,CAAC,MAAM,SAAS,cAAc,IAChD,MAAM,CAAC,eAAe,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvE,KAAK,YAAY,CACb,MAAM,SAAS,cAAc,IAC7B,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,CACnB,MAAM,SAAS,cAAc,IAC7B,OAAO,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAOhD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,GACrE,IAAI,CAAC;AAEX;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC1B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAC7C,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAC5B,KAAK,CAAC;AAEZ,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAEnD,CAAC,SACG,SAAS,CAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAE,GACrE,CAAE,KAAK,EAAE,GAAG,IAAI,CAAE,GAClB,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GACnD,CAAE,CAAC,CAAE,CAAC;AAQhB;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,GACtE,KAAK,CAAC;AAEZ,0DAA0D;AAC1D,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,KAAK,MAAM,EAAE,GAAG,IAAI,GACxE,CAAC,CAAC;AAER,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAC/D,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GACpC,CAAC,CAAC;AAER,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,SACzC,GAAG,MAAM,KAAK,OAAO,MAAM,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GACjD,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjB,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,SAC5C,GAAG,MAAM,OAAO,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GACrC,SAAS,CAAC;AAEhB,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GACnE,CAAC,SAAS,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,GACd,OAAO,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjB,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IAChC,gBAAgB,CAAC,CAAC,CAAC;IACnB,YAAY,CAAC,CAAC,CAAC;CAClB,CAAC;AAMF,6EAA6E;AAC7E,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS;IACnE,MAAM,IAAI,SAAS,MAAM;IACzB,MAAM,KAAK,SAAS,MAAM,GAAG,SAAS;CACzC,GAAG,KAAK,SAAS,MAAM,GAAG,KAAK,GAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,EAAE,GAAG,IAAI,GACxD,SAAS,CAAC,IAAI,CAAC,GACf,SAAS,CAAC,CAAC,CAAC,CAAC;AAEnB,iEAAiE;AACjE,KAAK,oBAAoB,CACrB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,MAAM,IACtB;KACC,KAAK,IAAI,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,SAAS,MAAM,YAAY,CACrE,MAAM,CACT,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GACzC,KAAK;CACd,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GACvC,CAAE,CAAC,CAAE,SAAS,CAAE,KAAK,CAAE,GAAG,OAAO,GACjC,CAAC,GACD,OAAO,CAAC;AAEd,8DAA8D;AAC9D,KAAK,iBAAiB,CAClB,MAAM,SAAS,cAAc,EAC7B,IAAI,SAAS,MAAM,IACnB,IAAI,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,MAAM,GAC1C,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AAElE,KAAK,cAAc,CACf,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,IAAI,SAAS,MAAM,IACnB,IAAI,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,MAAM,GAC1C,IAAI,SAAS,OAAO,MAAM,EAAE,GAAG,MAAM,GACrC,IAAI,SAAS,QAAQ,MAAM,EAAE,GAAG,MAAM,GACtC,IAAI,SAAS,gBAAgB,MAAM,GAAG,GAAG,MAAM,GAC/C,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,GACvD,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEtC,KAAK,SAAS,CACV,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,MAAM,IAClB,UAAU,CAAC,GAAG,CAAC,SAAS;IACxB,MAAM,IAAI,SAAS,MAAM;IACzB,MAAM,KAAK,SAAS,MAAM,GAAG,SAAS;CACzC,GAAG;KACK,CAAC,IAAI,KAAK,SAAS,MAAM,GAAG,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAC9D,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;CAC1C,GACC;KACG,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,cAAc,CAC/C,MAAM,EACN,KAAK,EACL,GAAG,CACN;CACJ,CAAC;AAEN,KAAK,iBAAiB,CAClB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,IAAI,SAAS,SAAS,MAAM,EAAE,EAC9B,GAAG,GAAG,EAAE,IACR,IAAI,SAAS,SAAS;IACtB,MAAM,KAAK,SAAS,MAAM;IAC1B,GAAG,MAAM,IAAI,SAAS,SAAS,MAAM,EAAE;CAC1C,GAAG,iBAAiB,CACb,MAAM,EACN,KAAK,EACL,IAAI,EAIJ,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CACxC,GACC,GAAG,CAAC;AAEV,KAAK,YAAY,CACb,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,OAAO,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAG1C,OAAO,SAAS,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAIpD,OAAO,SAAS,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,GAC/C,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,GACzB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAC7C,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GACpD,EAAE,CAAC;AAEb,KAAK,mBAAmB,CACpB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,OAAO,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAC1C,eAAe,CACf,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EACnD,KAAK,CAAC,YAAY,CAAC,CACtB,CAAC;AAUF;;GAEG;AACH,KAAK,QAAQ,CACT,KAAK,SAAS,MAAM,EAAE,EACtB,GAAG,SAAS,MAAM,EAClB,GAAG,SAAS,MAAM,GAAG,EAAE,IACvB,KAAK,SAAS,CAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAE,GAC1E,QAAQ,CACN,IAAI,EACJ,GAAG,EACH,GAAG,SAAS,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,CAClD,GACC,GAAG,CAAC;AAEV;;GAEG;AACH,KAAK,YAAY,CACb,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IACvC,aAAa,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAC1E,EAAE,CAAC;AAGT,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CAAE,CAAC;AAC3E,KAAK,UAAU,GAAG,SAAS,aAAa,EAAE,CAAC;AAE3C,KAAK,mBAAmB,CAAC,KAAK,IAAI,KAAK,SAAS,UAAU,GAAG,KAAK,GAC5D,KAAK,SAAS,MAAM,GAAG,SAAS;IAC1B;QAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;KAAE;CACpD,GACH,SAAS,EAAE,CAAC;AAElB,KAAK,qBAAqB,CAAC,KAAK,SAAS,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC1E,SAAS,GACT,KAAK,CAAC;AAEZ,KAAK,kBAAkB,CACnB,KAAK,SAAS,UAAU,EACxB,GAAG,SAAS,MAAM,EAClB,GAAG,SAAS,MAAM,GAAG,EAAE,IACvB,KAAK,SAAS,SAAS;IACvB,MAAM,KAAK,SAAS,aAAa;IACjC,GAAG,MAAM,IAAI,SAAS,UAAU;CACnC,GAAG,kBAAkB,CACd,IAAI,EACJ,GAAG,EACH,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAChE,GACC,GAAG,CAAC;AAEV,KAAK,2BAA2B,CAC5B,KAAK,SAAS,UAAU,EACxB,GAAG,SAAS,MAAM,IAClB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE3E,KAAK,gBAAgB,CACjB,KAAK,SAAS,UAAU,EACxB,EAAE,SAAS,MAAM,EACjB,GAAG,SAAS,MAAM,EAClB,IAAI,SAAS,OAAO,GAAG,KAAK,EAC5B,GAAG,SAAS,UAAU,GAAG,SAAS,EAAE,IACpC,KAAK,SAAS,SAAS;IACvB,MAAM,KAAK,SAAS,aAAa;IACjC,GAAG,MAAM,IAAI,SAAS,UAAU;CACnC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,gBAAgB,CACjC,IAAI,EACJ,EAAE,EACF,GAAG,EACH,IAAI,EACJ,SAAS;IACL,GAAG,GAAG;IACN;QAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;KAAE;CAC1C,CACJ,GACH,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAE,GAAG,GAAG,EAAE,KAAK,CAAE,CAAC,GACjE,IAAI,SAAS,IAAI,GAAG,GAAG,GACvB,SAAS,CAAE,GAAG,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CAAE,CAAE,CAAC;AAEnE,KAAK,gBAAgB,CACjB,KAAK,SAAS,UAAU,EACxB,EAAE,SAAS,MAAM,EACjB,GAAG,SAAS,UAAU,GAAG,SAAS,EAAE,IACpC,KAAK,SAAS,SAAS;IACvB,MAAM,KAAK,SAAS,aAAa;IACjC,GAAG,MAAM,IAAI,SAAS,UAAU;CACnC,GAAG,gBAAgB,CACZ,IAAI,EACJ,EAAE,EACF,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,SAAS,CAAE,GAAG,GAAG,EAAE,KAAK,CAAE,CAC5D,GACC,GAAG,CAAC;AAEV,KAAK,mBAAmB,CAAC,KAAK,EAAE,GAAG,SAAS,MAAM,IAAI,KAAK,SAAS,MAAM,GACpE,KAAK,GACL,KAAK,SAAS,UAAU,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,GAClE,SAAS,CAAC;AAEhB,KAAK,kBAAkB,CACnB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AAE7C,KAAK,gBAAgB,CACjB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAE3C,KAAK,iBAAiB,CAClB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,GAAG,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GAC3C,gBAAgB,CAAC,GAAG,CAAC,SAAS,MAAM,KAAK,SAAS,MAAM,GACpD,KAAK,SAAS,EAAE,GAAG,QAAQ,IAAI,EAAE,GAAG,QAAQ,IAAI,IAAI,KAAK,EAAE,GAC/D,QAAQ,IAAI,EAAE,GACd,gBAAgB,CAAC,GAAG,CAAC,SAAS,MAAM,KAAK,SAAS,MAAM,GAAG,KAAK,GAChE,SAAS,CAAC;AAEhB;;GAEG;AACH,KAAK,aAAa,CACd,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EACvC,EAAE,SAAS,MAAM,GAAG,SAAS,IAC7B,aAAa,CACb,qBAAqB,CACjB,gBAAgB,CACZ,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAClC,EAAE,SAAS,MAAM,GAAG,EAAE,GAChB,UAAU,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAC9D,YAAY,CAAC,IAAI,CAAC,CACrB,CACJ,EACD,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;;;;GAKG;AACH,KAAK,WAAW,CACZ,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,GAAG,IACH,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,MAAM,EACjC,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;GAEG;AACH,KAAK,WAAW,CACZ,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,OAAO,SAAS,MAAM,EACtB,EAAE,SAAS,MAAM,GAAG,SAAS,IAC7B,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,qBAAqB,CACjB,gBAAgB,CACZ,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EACjC,EAAE,SAAS,MAAM,GAAG,EAAE,GAChB,QAAQ,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAC3D,OAAO,CACV,CACJ,EACD,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF,KAAK,gBAAgB,CACjB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,EAAE,SAAS,MAAM,IACjB,aAAa,CACb,qBAAqB,CACjB,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAC3D,EACD,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF,KAAK,cAAc,CACf,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,EAAE,SAAS,MAAM,IACjB,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,qBAAqB,CACjB,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1D,EACD,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF,KAAK,YAAY,CACb,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,eAAe,CACf,KAAK,CAAC,WAAW,CAAC,EAClB,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,iBAAiB,CAAC,GAAG,CAAC,CACzB,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,CAAC,IAAI,IAAI,IAAI,SAC5B,oBAAoB,CAAC,GAAG,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC,GAAG,IAAI,GACzD,IAAI,SAAS,MAAM,GAAG,IAAI,GAC1B,MAAM,CAAC;AAEb;;GAEG;AACH,KAAK,YAAY,CACb,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,IACJ,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,cAAc,CAAC,IAAI,CAAC,EAAE,GACrE,cAAc,CAAC,IAAI,CAAC,EAC1B,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,CACf,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EACvC,EAAE,SAAS,MAAM,GAAG,SAAS,IAC7B,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,GACpE,YAAY,CAAC,IAAI,CAAC,EACxB,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;GAEG;AACH,KAAK,aAAa,CACd,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,IACJ,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,SAAS,MAAM,GACtB,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,cAAc,CAAC,IAAI,CAAC,EAAE,GAC9C,cAAc,CAAC,IAAI,CAAC,EAC1B,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;GAEG;AACH,KAAK,cAAc,CACf,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EACvC,EAAE,SAAS,MAAM,GAAG,SAAS,IAC7B,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,GACpE,YAAY,CAAC,IAAI,CAAC,EACxB,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;GAEG;AACH,KAAK,YAAY,CACb,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,KAAK,SAAS,MAAM,IACpB,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,KAAK,EACL,GAAG,CAAC,QAAQ,CAAC,CAChB,CAAC;AAEF;;;GAGG;AACH,KAAK,aAAa,CACd,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,MAAM,SAAS,SAAS,eAAe,EAAE,IACzC,aAAa,CACb,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,MAAM,CAAC,EACX,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,QAAQ,CAAC,EACb,GAAG,CAAC,SAAS,CAAC,EACd,GAAG,CAAC,OAAO,CAAC,EACZ,SAAS,CAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAE,CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAC1B,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAGpE,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,UAAU,kBAAkB,CAAC,CAAC,CAAC,EAAE,GACnE,UAAU,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAE5C,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,SAC3D,MAAM,OAAO,SAAS,MAAM,GAE1B,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,MAAM,GAC/B,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,GACnC,OAAO,CAAC,SAAS,MAAM,WAAW,SAAS,MAAM,GAEjD,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,GACtB,GAAG,WAAW,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,GACpC,WAAW,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GAElD,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,GACxB,GAAG,QAAQ,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,GACtC,QAAQ,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GAE/C,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,MAAM,GACvB,GAAG,QAAQ,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,GACnC,QAAQ,CAAC,SAAS,MAAM,SAAS,SAAS,MAAM,GAEhD,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,GACxB,GAAG,SAAS,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,GACvC,SAAS,CAAC,SACZ,MAAM,QAAQ,SAAS,MAAM,GAE3B,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,GACrB,GAAG,QAAQ,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,GACrC,QAAQ,GACZ,KAAK,GACT,KAAK,GACT,KAAK,GACT,KAAK,GACT,KAAK,GACT,KAAK,GACL,KAAK,CAAC;AA6FhB,KAAK,iBAAiB,CAClB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,IACH,GAAG,SAAS,MAAM,GAChB,aAAa,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,GAChC,GAAG,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CAAE,GAC1C,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe,CACzC,CAAC,EACD,KAAK,CAAC,KAAK,CAAC,EACZ,QAAQ,GAAG,EAAE,CAChB,GACH,eAAe,CACb,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,EACZ,QAAQ,GAAG,EAAE,CAChB,GACH,eAAe,CACb,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,EACZ,QAAQ,GAAG,EAAE,CAChB,GACH,eAAe,CACb,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,EACZ,QAAQ,GAAG,EAAE,CAChB,GAKC,GAAG,SAAS,kBAAkB,CAC5B,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9B,GAAG,CACN,GAAG,eAAe,CACX,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,EACZ,KAAK,CAAC,YAAY,CAAC,CACtB,GACH,KAAK,CAAC;AAEZ,KAAK,eAAe,CAChB,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,OAAO,SAAS,MAAM,IACtB,eAAe,CACf,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,CAAC,KAAK,CAAC,EACZ,KAAK,CAAC,YAAY,CAAC,SAAS,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,OAAO,EAAE,GAClE,OAAO,CAChB,CAAC;AAIF,KAAK,kBAAkB,CACnB,SAAS,EACT,QAAQ,IACR;KACC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAC1D,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;CAChC,CAAC;AAEF,KAAK,qBAAqB,CACtB,MAAM,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAC5C,eAAe,CACf,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACxE,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAC7C,CAAC;AAEF,KAAK,mBAAmB,CACpB,MAAM,SAAS,cAAc,EAC7B,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,EAAE,IACF,EAAE,SAAS,CACX,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EACrC,GAAG,IAAI,EAAE,GAAG,EAAE,KACb,kBAAkB,CACnB,MAAM,EACN,MAAM,UAAU,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvD,GAAG,CACN,GAAG,UAAU,GACR,CAAC,CAAC;AAER,KAAK,iBAAiB,CAClB,MAAM,SAAS,cAAc,EAC7B,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,EAAE,IACF,EAAE,SAAS,CACX,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EACrC,GAAG,IAAI,EAAE,GAAG,EAAE,KACb,kBAAkB,CACnB,MAAM,EACN,GAAG,EACH,MAAM,QAAQ,SAAS,aAAa,CAChC,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACN,CACJ,GAAG,QAAQ,GACN,GAAG,CAAC;AAMV;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAAE,CAAC;IACzD,qCAAqC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACrD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACtD,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACxD,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACvD,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACxD,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;KAAE,CAAC;IACpD,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACnD;AA8BD;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB,CAC/B,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAClE,aAAa;IAEjB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAEpC;;;;OAIG;IACH,MAAM,CACF,KAAK,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EAC7C,EAAE,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAEzC,OAAO,EAAE,IAAI,EACb,EAAE,CAAC,EAAE,EAAE,GACR,kBAAkB,CACjB,MAAM,EACN,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,EACxC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAC/B,CAAC;IAEF;;;;OAIG;IACH,IAAI,CACA,GAAG,SACG,MAAM,GACN,kBAAkB,CAChB,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9B,GAAG,CACN,EAEL,MAAM,EAAE,GAAG,GACZ,kBAAkB,CACjB,MAAM,EACN,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,EACrC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CACxB,CAAC;IAEF;;;;;;;OAOG;IACH,IAAI,CACA,OAAO,SAAS,MAAM,EACtB,EAAE,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAEzC,OAAO,EAAE,OAAO,EAChB,EAAE,CAAC,EAAE,EAAE,GACR,kBAAkB,CACjB,MAAM,EACN,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAChC,CAAC;IAEF;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAC1B,EAAE,EAAE,EAAE,GACP,kBAAkB,CACjB,MAAM,EACN,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EACtD,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5B,CAAC;IAEF;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EACxB,EAAE,EAAE,EAAE,GACP,kBAAkB,CACjB,MAAM,EACN,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EACpD,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1B,CAAC;IAEF;;OAEG;IACH,KAAK,CACD,IAAI,SAAS,MAAM,GAAG,oBAAoB,EAE1C,SAAS,EAAE,IAAI,EACf,EAAE,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,OAAO,CACH,KAAK,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EAC7C,EAAE,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAEzC,OAAO,EAAE,IAAI,EACb,EAAE,CAAC,EAAE,EAAE,GACR,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpE;;OAEG;IACH,MAAM,CACF,IAAI,SAAS,MAAM,GAAG,oBAAoB,EAE1C,SAAS,EAAE,IAAI,EACf,EAAE,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,OAAO,CACH,KAAK,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EAC7C,EAAE,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EAEzC,OAAO,EAAE,IAAI,EACb,EAAE,CAAC,EAAE,EAAE,GACR,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpE;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EACxB,KAAK,EAAE,CAAC,GACT,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3D;;;;OAIG;IACH,UAAU,CACN,KAAK,CAAC,MAAM,SAAS,SAAS,eAAe,EAAE,EAC/C,EAAE,SAAS,CACP,CAAC,EAAE,kBAAkB,CACjB,MAAM,EACN,KAAK,EACL,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAC7B,EACD,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,KACxD,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAEzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,EAAE,GACb,kBAAkB,CACjB,MAAM,EACN,mBAAmB,CACf,MAAM,EACN,KAAK,EACL,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAC1B,EAAE,CACL,EACD,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CACnE,CAAC;IAEF;;;;;;OAMG;IACH,IAAI,CACA,EAAE,SAAS,CACP,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KACxC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAEzC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,EAAE,GACb,kBAAkB,CACjB,MAAM,EACN,qBAAqB,CACjB,KAAK,EACL,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAC9C,EACD,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,CAAC;IAEF;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG;QACxB,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAClD,CAAC;IAEF,wDAAwD;IACxD,SAAS,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;CACtB;AAofD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,SAAS,cAAc,KAC5B,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAYhE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAwGnE;AAMD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,EAAE,CAAC;IACZ,MAAM,EAAE,EAAE,CAAC;IACX,OAAO,EAAE,EAAE,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,EAAE,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;KAAE,CAAC;IAE1D,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;QACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE,CAAC;IAEtD,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;KAAE,CAAC;IAE9D,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE,CAAC;IAEvD,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAAE,CAAC;IAE5D,kBAAkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;KAAE,CAAC;IAEzD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG;IAC1C,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,UAAU,CAAC;AA+DpE;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CACzB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAEpE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GACrB;KAEM,CAAC,IAAI,OAAO,CACR,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9B,GACF,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CAChD,CAAC;AAMN;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,CACpD,GAAG,EACH,GAAG,EACH,MAAM,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/E,GAAG,kBAAkB,CAAC,GAAG,CAAC,GACrB,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,CACxD,GAAG,EACH,MAAM,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,GAAG,CACN,GAAG,CAAC,GACC,KAAK,CAAC;AAWZ;;;;;GAKG;AACH,KAAK,oBAAoB,CACrB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,GAAG,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GACxC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,GACpC,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,qBAAqB,CACtB,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,gBAAgB,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GACzE,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SACxC,GAAG,MAAM,QAAQ,MAAM,IAAI,EAAE,GAC3B,IAAI,SAAS,GAAG,MAAM,SAAS,IAAI,MAAM,IAAI,EAAE,GAC3C,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,GACvC,IAAI,GACJ,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAClB,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,MAAM,IACxB,eAAe,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,IAAI,GAC7C,SAAS,SAAS,GAAG,MAAM,UAAU,IAAI,MAAM,SAAS,EAAE,GACtD,UAAU,SAAS,MAAM,MAAM,CAAC,SAAS,CAAC,GACtC,SAAS,SAAS,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAC5D,UAAU,SAAS,0BAA0B,UAAU,GAAG,GAC9D,WAAW,UAAU,aAAa,GACtC,SAAS,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,GACnD,UAAU,SAAS,kCAAkC,iBAAiB,CACpE,MAAM,CACT,GAAG,CAAC;AAET,KAAK,kBAAkB,CACnB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,MAAM,IACpB,CAAE,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,GAAG,IAAI,GAChC,IAAI,SAAS;KACV,CAAC,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GACxD,KAAK;CACd,CAAC,KAAK,CAAC,GAAG,IAAI,GACb;KACG,CAAC,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GACzD,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;CACrC,CAAC,KAAK,CAAC,CAAC;AAEb,KAAK,kBAAkB,CACnB,MAAM,SAAS,cAAc,EAC7B,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,iBAAiB,CACjB,MAAM,EACN,oBAAoB,CAAC,GAAG,CAAC,CAC5B,SAAS,MAAM,UAAU,GAAG,UAAU,SAAS,IAAI,GAAG,kBAAkB,CAC7D,MAAM,EACN,qBAAqB,CAAC,GAAG,CAAC,GAAG,MAAM,CACtC,GACH,UAAU,GACV,IAAI,CAAC;AAOX,8EAA8E;AAC9E,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SACtC,GAAG,MAAM,KAAK,KAAK,MAAM,IAAI,EAAE,GAAG,CAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAE,GACnE,CAAE,CAAC,CAAE,CAAC;AAEZ,gEAAgE;AAChE,KAAK,eAAe,CAChB,MAAM,SAAS,cAAc,EAC7B,GAAG,SAAS,MAAM,IAClB,eAAe,CAAC,GAAG,CAAC,SAAS,MAAM,IAAI,SAAS,SAAS,MAAM,EAAE,GAC/D,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAC/D,EAAE,CAAC;AAET,+DAA+D;AAC/D,KAAK,cAAc,CACf,MAAM,SAAS,cAAc,EAC7B,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,kBAAkB,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GACtD,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,EAAE,CAAC;AAET,KAAK,qBAAqB,CACtB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAClE,UAAU,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,CAC3D,MAAM,MAAM,SAAS,cAAc,EACnC,MAAM,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClD,MAAM,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/E,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,GACvC,KAAK,CAAC;AAEZ;;;;;GAKG;AACH,KAAK,kBAAkB,CACnB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACvB,CAAC,IACD,CAAC,SAAS,kBAAkB,CAC5B,MAAM,MAAM,SAAS,cAAc,EACnC,GAAG,EACH,MAAM,GAAG,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/E,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,KAAK,CAAC;AAMZ;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CACtB,aAAa,SAAS,cAAc,EACpC,aAAa,SAAS,cAAc,IAGpC,aAAa,SAAS,OAAO,GAAG,aAAa,SAAS,OAAO,GAAG,IAAI,GAAG,KAAK,GAEtE,aAAa,SAAS,MAAM,GAAG,OAAO,GAClC,aAAa,SAAS,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAEnE,aAAa,SAAS,MAAM,GAAG,aAAa,SACpC,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GAAG,IAAI,GAClB,KAAK,GAET,aAAa,SAAS,OAAO,GACzB,aAAa,SAAS,cAAc,GAAG,IAAI,GAAG,KAAK,GACvD,KAAK,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC5B,CAAC,SAAS,MAAM,IAChB,CAAC,SAAS,OAAO,GAAG,OAAO,GACzB,CAAC,SAAS,MAAM,GAAG,YAAY,GAAG,MAAM,GACxC,CAAC,SAAS,OAAO,GAAG,aAAa,GAAG,OAAO,GAC3C,CAAC,SAAS,MAAM,GAAG,YAAY,GAAG,MAAM,GACxC,CAAC,SAAS,OAAO,GAAG,OAAO,GAC3B,KAAK,CAAC;AAMZ;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAC5B,KAAK,SAAS,kBAAkB,IAChC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GACpD,CAAC,SAAS,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GACpC,UAAU,EAAE,GACZ,UAAU,EAAE,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,CAC3B,KAAK,SAAS,kBAAkB,EAChC,OAAO,SAAS,UAAU,EAAE,GAAG,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAChE,YAAY,CACZ,OAAO,EACP,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAC1B,KAAK,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GACvC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC,SAAS,UAAU,CAAC;CAAE,GAAG,CAAC,EAAE,GAAG,SAAS,GAChE,SAAS,EAKf,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAChD,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GACnD,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,GACzC,aAAa,EAAE,GAAG,SAAS,GAC3B,aAAa,EAAE,GAAG,SAAS,EACjC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,EAClD,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GACnD,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,GACvC,WAAW,EAAE,GAAG,SAAS,GACzB,WAAW,EAAE,GAAG,SAAS,EAC/B,KAAK,CAAC,OAAO,CAAC,EACd,KAAK,CAAC,QAAQ,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,EACjB,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAC5C,CAAC,SAAS,aAAa,GAAG,CAAC,EAAE,GAC7B,aAAa,EAAE,GAAG,SAAS,GAC3B,aAAa,EAAE,GAAG,SAAS,CACpC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,CAChC,KAAK,SAAS,kBAAkB,EAChC,OAAO,SAAS,UAAU,EAAE,GAAG,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAChE,KAAK,CAAC,OAAO,CAAC,SAAS,WAAW,CAClC,MAAM,IAAI,SAAS,YAAY,EAC/B,MAAM,EAAE,SAAS,iBAAiB,EAClC,MAAM,KAAK,CACd,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,GAC1B,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC"}
/**
* SELECT Query Builder - Type-Level State & Utilities
*
* Phase 2 focuses on type-level pieces only:
* - Core builder state types
* - Join strictness and replacement rules
* - State-to-AST conversion scaffolding
*
* Runtime builder implementation is added in Phase 3 and later.
*/
import { appendParamsRuntime, } from "../common/builder.js";
/**
* Default empty runtime state corresponding to EmptyState.
*/
const EMPTY_RUNTIME_STATE = {
select: {},
from: undefined,
joins: [],
where: {},
groupBy: {},
having: {},
orderBy: {},
limit: undefined,
offset: undefined,
ctes: {},
distinct: false,
union: undefined,
params: [],
selectSql: {},
fromSql: undefined,
joinSql: {},
whereSql: {},
groupBySql: {},
havingSql: {},
orderBySql: {},
cteSql: {},
unionSql: undefined,
};
/**
* Internal concrete implementation. Methods always return a new instance
* to preserve immutability and allow type-level State to progress.
*/
class SelectQueryBuilderImpl {
_state;
constructor(state) {
this._state = state ?? EMPTY_RUNTIME_STATE;
}
// -----------------------------------------------------------------------
// Immutable state cloning helper
// -----------------------------------------------------------------------
clone(patch) {
return {
...this._state,
...patch,
};
}
// -----------------------------------------------------------------------
// Core builder methods
// -----------------------------------------------------------------------
select(columns, id) {
const rawCols = Array.isArray(columns)
? columns
: [columns];
// Keep all provided columns for runtime SQL so array selects are fully
// rendered; type-level typing continues to use AddColumnsForSchema.
const cols = rawCols.length > 0 ? [...rawCols] : [];
const key = id
?? `select_${Object.keys(this._state.selectSql).length.toString()}`;
const nextSelectSql = {
...this._state.selectSql,
[key]: cols,
};
const nextState = this.clone({ selectSql: nextSelectSql });
return new SelectQueryBuilderImpl(nextState);
}
from(source) {
let fromSql;
if (typeof source === "string") {
fromSql = source;
}
else {
// Runtime subquery: we only embed the SQL string; type-level
// typing for subqueries is handled separately via QueryResult
// when using string-based APIs.
fromSql = `(${source.toString()})`;
}
const nextState = this.clone({ fromSql });
return new SelectQueryBuilderImpl(nextState);
}
where(condition, id) {
const key = id
?? `where_${Object.keys(this._state.whereSql).length.toString()}`;
const sql = typeof condition === "string"
? condition
: condition.toString();
const nextWhereSql = {
...this._state.whereSql,
[key]: sql,
};
const nextState = this.clone({ whereSql: nextWhereSql });
return new SelectQueryBuilderImpl(nextState);
}
groupBy(columns, id) {
const rawCols = Array.isArray(columns) ? [...columns] : [columns];
const key = id
?? `group_${Object.keys(this._state.groupBySql).length.toString()}`;
const nextGroupBySql = {
...this._state.groupBySql,
[key]: rawCols.join(", "),
};
const nextState = this.clone({ groupBySql: nextGroupBySql });
return new SelectQueryBuilderImpl(nextState);
}
having(condition, id) {
const key = id
?? `having_${Object.keys(this._state.havingSql).length.toString()}`;
const sql = typeof condition === "string"
? condition
: condition.toString();
const nextHavingSql = {
...this._state.havingSql,
[key]: sql,
};
const nextState = this.clone({ havingSql: nextHavingSql });
return new SelectQueryBuilderImpl(nextState);
}
orderBy(columns, id) {
const rawCols = Array.isArray(columns) ? [...columns] : [columns];
const key = id
?? `order_${Object.keys(this._state.orderBySql).length.toString()}`;
const nextOrderBySql = {
...this._state.orderBySql,
[key]: rawCols.join(", "),
};
const nextState = this.clone({ orderBySql: nextOrderBySql });
return new SelectQueryBuilderImpl(nextState);
}
join(joinSql, id) {
const key = id
?? `join_${this._state.joins.length.toString()}`;
const nextJoinSql = {
...this._state.joinSql,
[key]: joinSql,
};
const existing = this._state.joins.find(j => j.id === key);
const newEntry = existing ?? {
id: key,
ast: undefined,
strictness: "INNER",
optional: false,
};
const filtered = this._state.joins.filter(j => j.id !== key);
const nextJoins = [
...filtered,
newEntry,
];
const nextState = this.clone({
joinSql: nextJoinSql,
joins: nextJoins,
});
return new SelectQueryBuilderImpl(nextState);
}
removeSelect(id) {
const nextSelectSql = { ...this._state.selectSql };
if (!(id in nextSelectSql)) {
return this;
}
delete nextSelectSql[id];
const nextState = this.clone({ selectSql: nextSelectSql });
return new SelectQueryBuilderImpl(nextState);
}
removeJoin(id) {
const nextJoinSql = { ...this._state.joinSql };
const hadSql = id in nextJoinSql;
delete nextJoinSql[id];
const nextJoins = this._state.joins.filter(j => j.id !== id);
if (!hadSql && nextJoins.length === this._state.joins.length) {
return this;
}
const nextState = this.clone({
joinSql: nextJoinSql,
joins: nextJoins,
});
return new SelectQueryBuilderImpl(nextState);
}
limit(limit) {
const nextState = this.clone({ limit });
return new SelectQueryBuilderImpl(nextState);
}
withParams(params, callback) {
const { params: nextParams, paramString } = appendParamsRuntime(this._state.params, params);
const nextState = this.clone({ params: nextParams });
const builderWithParams = new SelectQueryBuilderImpl(nextState);
const result = callback(builderWithParams, paramString);
const mergedParams = result._state.params.length >= nextParams.length
? result._state.params
: nextParams;
const mergedState = {
...result._state,
params: mergedParams,
};
return new SelectQueryBuilderImpl(mergedState);
}
// -----------------------------------------------------------------------
// Shared runtime .when()
// -----------------------------------------------------------------------
when(condition, callback) {
// Runtime: execute the callback only when the condition is true. When
// it runs, keep the callback's full runtime state (including SELECT
// fragments) so assembled SQL reflects the conditional changes. The
// type-level state still marks new columns as optional.
if (!condition) {
return this;
}
const result = callback(this);
return new SelectQueryBuilderImpl(result._state);
}
getParams() {
return this._state.params;
}
// -----------------------------------------------------------------------
// SQL String Assembly
// -----------------------------------------------------------------------
toBrandedString() {
// Runtime: just assemble SQL string from fragments.
const sql = assembleSelectSQL(this._state);
return sql;
}
toString() {
return assembleSelectSQL(this._state);
}
}
/**
* Entry point for creating a new SELECT builder.
*
* Schema is a generic-only parameter; there is no runtime schema value.
*/
export function createSelectQuery() {
return new SelectQueryBuilderImpl(EMPTY_RUNTIME_STATE);
}
// ============================================================================
// SQL Assembly Utility (runtime-only)
// ============================================================================
/**
* Assemble a SQL string from runtime builder state.
*
* This utility:
* - Uses user-provided fragments as-is (no parsing or normalization).
* - Inserts SQL keywords (SELECT, FROM, WHERE, etc.) in uppercase.
* - Skips empty clauses entirely.
* - Defaults to SELECT * when no select fragments are present.
*/
export function assembleSelectSQL(state) {
const parts = [];
// WITH clause (CTEs)
const cteIds = Object.keys(state.cteSql);
if (cteIds.length > 0) {
const withParts = cteIds.map(id => state.cteSql[id]).join(", ");
parts.push(`WITH ${withParts}`);
}
// SELECT clause
const selectIds = Object.keys(state.selectSql);
if (selectIds.length === 0) {
parts.push("SELECT *");
}
else {
const selectFragments = [];
for (const id of selectIds) {
const cols = state.selectSql[id];
if (cols && cols.length > 0) {
selectFragments.push(cols.join(", "));
}
}
const selectSql = selectFragments.length > 0
? selectFragments.join(", ")
: "*";
parts.push(state.distinct
? `SELECT DISTINCT ${selectSql}`
: `SELECT ${selectSql}`);
}
// FROM clause
if (state.fromSql) {
parts.push(`FROM ${state.fromSql}`);
}
// JOIN clauses – in the order of joins[]
for (const join of state.joins) {
const sql = state.joinSql[join.id];
if (sql) {
parts.push(sql);
}
}
// WHERE clause
const whereIds = Object.keys(state.whereSql);
if (whereIds.length > 0) {
const whereParts = whereIds
.map(id => state.whereSql[id])
.filter(Boolean);
if (whereParts.length > 0) {
parts.push(`WHERE ${whereParts.join(" AND ")}`);
}
}
// GROUP BY
const groupIds = Object.keys(state.groupBySql);
if (groupIds.length > 0) {
const groupParts = groupIds
.map(id => state.groupBySql[id])
.filter(Boolean);
if (groupParts.length > 0) {
parts.push(`GROUP BY ${groupParts.join(", ")}`);
}
}
// HAVING
const havingIds = Object.keys(state.havingSql);
if (havingIds.length > 0) {
const havingParts = havingIds
.map(id => state.havingSql[id])
.filter(Boolean);
if (havingParts.length > 0) {
parts.push(`HAVING ${havingParts.join(" AND ")}`);
}
}
// ORDER BY
const orderIds = Object.keys(state.orderBySql);
if (orderIds.length > 0) {
const orderParts = orderIds
.map(id => state.orderBySql[id])
.filter(Boolean);
if (orderParts.length > 0) {
parts.push(`ORDER BY ${orderParts.join(", ")}`);
}
}
// LIMIT / OFFSET
if (typeof state.limit === "number") {
parts.push(`LIMIT ${state.limit}`);
}
if (typeof state.offset === "number") {
parts.push(`OFFSET ${state.offset}`);
}
// UNION clause – appended as-is if provided
if (state.unionSql) {
parts.push(state.unionSql);
}
return parts.join(" ");
}
//# sourceMappingURL=builder.js.map
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/select/builder.ts"],"names":[],"mappings":"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"}
+4
-3

@@ -48,9 +48,10 @@ /**

* A complex expression (like JSON operations, function calls, etc.)
* Contains all column references found in the expression for validation
* and the result type from casting
* Contains all column references found in the expression for validation,
* the result type from casting, and the original expression string for assembly
*/
export type ComplexExpr<ColumnRefs extends ValidatableColumnRef[] = ValidatableColumnRef[], CastType extends string | undefined = string | undefined> = {
export type ComplexExpr<ColumnRefs extends ValidatableColumnRef[] = ValidatableColumnRef[], CastType extends string | undefined = string | undefined, OriginalExpr extends string = string> = {
readonly type: "ComplexExpr";
readonly columnRefs: ColumnRefs;
readonly castType: CastType;
readonly originalExpr: OriginalExpr;
};

@@ -57,0 +58,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/common/ast.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/common/ast.ts"],"names":[],"mappings":"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"}

@@ -7,6 +7,8 @@ /**

*/
export type { NormalizeSQL, NextToken, ExtractUntil, SplitByComma, FromTerminators, WhereTerminators, OrderByTerminators, StartsWith, CountOpen, CountClose, ParensBalanced, UnionOperator, } from "./tokenizer.js";
export type { Trim, RemoveQuotes, Join, ToUpperCase, Increment, Decrement, Flatten, ParseError, IsParseError, MatchError, IsMatchError, IsStringLiteral, HasTemplateHoles, DynamicQuery, IsDynamicQuery, DynamicQueryResult, } from "./utils.js";
export type { DatabaseSchema, TableDefinition, SchemaDefinition, RelationType, ColumnReference, Relation, Relations, GetDefaultSchema, GetTableNames, GetColumnNames, GetColumnType, HasRelations, GetRelationNames, GetRelation, FindRelationsFrom, FindRelationsTo, } from "./schema.js";
export type { QueryType, UnboundColumnRef, TableColumnRef, ValidatableColumnRef, TableWildcard, SimpleColumnRefType, ComplexExpr, ColumnRefType, TableRef, SubquerySelectClause, DerivedTableRef, CTEDefinition, TableSource, ComparisonOp, LogicalOp, LiteralValue, BinaryExpr, UnparsedExpr, ParsedCondition, LogicalExprAny, WhereExpr, LogicalExpr, JoinType, JoinClause, SortDirection, OrderByItem, AggregateFunc, AggregateExpr, MapSQLTypeToTS, } from "./ast.js";
export type { CountClose, CountOpen, ExtractUntil, FromTerminators, NextToken, NormalizeSQL, OrderByTerminators, ParensBalanced, SplitByComma, StartsWith, UnionOperator, WhereTerminators, } from "./tokenizer.js";
export type { Decrement, DynamicQuery, DynamicQueryResult, Flatten, HasTemplateHoles, Increment, IsDynamicQuery, IsMatchError, IsParseError, IsStringLiteral, Join, MatchError, ParseError, RemoveQuotes, ToUpperCase, Trim, } from "./utils.js";
export { appendParamsRuntime, buildParamString, ConditionTreeBuilder, createConditionTree, whenRuntime, } from "./builder.js";
export type { ParamString, QueryParamValue } from "./builder.js";
export type { ColumnReference, DatabaseSchema, FindRelationsFrom, FindRelationsTo, GetColumnNames, GetColumnType, GetDefaultSchema, GetRelation, GetRelationNames, GetTableNames, HasRelations, Relation, Relations, RelationType, SchemaDefinition, TableDefinition, } from "./schema.js";
export type { AggregateExpr, AggregateFunc, BinaryExpr, ColumnRefType, ComparisonOp, ComplexExpr, CTEDefinition, DerivedTableRef, JoinClause, JoinType, LiteralValue, LogicalExpr, LogicalExprAny, LogicalOp, MapSQLTypeToTS, OrderByItem, ParsedCondition, QueryType, SimpleColumnRefType, SortDirection, SubquerySelectClause, TableColumnRef, TableRef, TableSource, TableWildcard, UnboundColumnRef, UnparsedExpr, ValidatableColumnRef, WhereExpr, } from "./ast.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAA;AAGvB,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAGnB,YAAY,EAEV,cAAc,EACd,eAAe,EACf,gBAAgB,EAGhB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EAGT,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,YAAY,EAEV,SAAS,EAGT,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,aAAa,EAGb,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EAGX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EAGX,QAAQ,EACR,UAAU,EAGV,aAAa,EACb,WAAW,EAGX,aAAa,EACb,aAAa,EAGb,cAAc,GACf,MAAM,UAAU,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACR,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,IAAI,EACJ,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,IAAI,GACP,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACd,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGjE,YAAY,EACR,eAAe,EAEf,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,aAAa,EAEb,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EAET,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAClB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACR,aAAa,EAEb,aAAa,EACb,UAAU,EACV,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,UAAU,EAEV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EAET,cAAc,EACd,WAAW,EACX,eAAe,EAEf,SAAS,EACT,mBAAmB,EAEnB,aAAa,EACb,oBAAoB,EACpB,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,aAAa,EAEb,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACZ,MAAM,UAAU,CAAC"}

@@ -7,3 +7,4 @@ /**

*/
export {};
// Re-export common builder utilities
export { appendParamsRuntime, buildParamString, ConditionTreeBuilder, createConditionTree, whenRuntime, } from "./builder.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH,qCAAqC;AACrC,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACd,MAAM,cAAc,CAAC"}

@@ -23,2 +23,3 @@ /**

*/
import type { BuilderResultType, SelectQueryBuilder, ValidateBuilder } from "./select/builder.js";
import type { DatabaseSchema, QueryResult } from "./select/matcher.js";

@@ -37,2 +38,8 @@ import type { ValidateSelectSQL } from "./select/validator.js";

/**
* Validates a SELECT query builder at compile time.
* If valid, returns the builder type.
* If invalid, returns an error message type that will be shown in IDE tooltips.
*/
export type ValidQueryBuilder<Schema extends DatabaseSchema, B extends SelectQueryBuilder<Schema, any, any>> = ValidateBuilder<B> extends infer V ? V extends true ? B : `[SQL Error] ${V & string}` : never;
/**
* Result type for a SELECT query (flattened for better IDE display)

@@ -53,2 +60,10 @@ */

/**
* Result type for a SELECT query builder (flattened for better IDE display)
*/
export type SelectBuilderResult<B extends SelectQueryBuilder<any, any, any>> = B extends SelectQueryBuilder<infer Schema extends DatabaseSchema, infer State, infer Sql> ? Prettify<BuilderResultType<Schema, State, Sql>> : never;
/**
* Array of result rows for a query builder (flattened for better IDE display)
*/
export type SelectBuilderResultArray<B extends SelectQueryBuilder<any, any, any>> = SelectBuilderResult<B>[];
/**
* A function that executes SQL and returns rows

@@ -93,3 +108,6 @@ * This is what users provide - their actual database call

*/
export declare function createSelectFn<Schema extends DatabaseSchema>(handler: QueryHandler): <Q extends string>(query: ValidQuery<Q, Schema>, params?: unknown[]) => Promise<(QueryResult<Q, Schema> extends infer T ? { [K in keyof T]: T[K]; } : never)[]>;
export declare function createSelectFn<Schema extends DatabaseSchema>(handler: QueryHandler): {
<Q extends string>(query: ValidQuery<Q, Schema>, params?: unknown[]): Promise<SelectResultArray<Q, Schema>>;
<B extends SelectQueryBuilder<Schema, any, any>>(query: ValidQueryBuilder<Schema, B>, params?: unknown[]): Promise<SelectBuilderResultArray<B>>;
};
/**

@@ -96,0 +114,0 @@ * Check if a query is valid

@@ -1,1 +0,1 @@

{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAO9D;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CAClB,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,cAAc,IAC7B,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GAC1C,CAAC,SAAS,IAAI,GACd,CAAC,GACD,eAAe,CAAC,GAAG,MAAM,EAAE,GAC3B,KAAK,CAAA;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,CACpB,GAAG,SAAS,MAAM,EAClB,MAAM,SAAS,cAAc,IAC7B,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;AAEtC;;GAEG;AACH,MAAM,MAAM,iBAAiB,CACzB,GAAG,SAAS,MAAM,EAClB,MAAM,SAAS,cAAc,IAC7B,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;AAExC;;;GAGG;AACH,KAAK,QAAQ,CAAC,CAAC,IAAI;KACd,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvB,GAAG,EAAE,CAAA;AAON;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAM1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,cAAc,EAAE,OAAO,EAAE,YAAY,IACxD,CAAC,SAAS,MAAM,EACnC,OAAO,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAC5B,SAAS,OAAO,EAAE,KAGe,OAAO,CAAC,6CA3D5C,CAAC,gCA2DmD,CAAC,CAEzD;AAQD;;;GAGG;AACH,MAAM,MAAM,aAAa,CACrB,GAAG,SAAS,MAAM,EAClB,MAAM,SAAS,cAAc,IAC7B,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA"}
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}

@@ -62,6 +62,12 @@ /**

export function createSelectFn(handler) {
return function select(query, params) {
return handler(query, params);
};
function select(query, params) {
if (typeof query === "string") {
return handler(query, params);
}
const sql = query.toString();
const finalParams = params ?? [...query.getParams()];
return handler(sql, finalParams);
}
return select;
}
//# sourceMappingURL=db.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA+DH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,cAAc,CAAgC,OAAqB;IAC/E,OAAO,SAAS,MAAM,CAClB,KAA4B,EAC5B,MAAkB;QAGlB,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAsB,CAAC;IACvD,CAAC,CAAA;AACL,CAAC"}
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAiGH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,cAAc,CAC1B,OAAqB;IAYrB,SAAS,MAAM,CACX,KAE0C,EAC1C,MAAkB;QAElB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAiB,CAAC;QAClD,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAE,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,EAAE,WAAW,CAAiB,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}

@@ -29,10 +29,14 @@ /**

*/
export type { ParseSQL, DetectQueryType, ParseSelectSQL, ParseInsertSQL, ParseUpdateSQL, ParseDeleteSQL, IsSelectQuery, IsInsertQuery, IsUpdateQuery, IsDeleteQuery, AnySQLQuery, } from "./router.js";
export type { NormalizeSQL, NextToken, ExtractUntil, SplitByComma, FromTerminators, WhereTerminators, OrderByTerminators, StartsWith, CountOpen, CountClose, ParensBalanced, Trim, RemoveQuotes, Flatten, ParseError, IsParseError, MatchError, IsMatchError, Increment, Decrement, IsStringLiteral, HasTemplateHoles, DynamicQuery, IsDynamicQuery, DynamicQueryResult, DatabaseSchema, TableDefinition, SchemaDefinition, RelationType, ColumnReference, Relation, Relations, GetDefaultSchema, GetTableNames, GetColumnNames, GetColumnType, HasRelations, GetRelationNames, GetRelation, FindRelationsFrom, FindRelationsTo, QueryType, UnboundColumnRef, TableColumnRef, ValidatableColumnRef, TableWildcard, SimpleColumnRefType, ComplexExpr, ColumnRefType, TableRef, SubquerySelectClause, DerivedTableRef, CTEDefinition, TableSource, ComparisonOp, LogicalOp, LiteralValue, BinaryExpr, UnparsedExpr, ParsedCondition, LogicalExprAny, WhereExpr, LogicalExpr, JoinType, JoinClause, SortDirection, OrderByItem, AggregateFunc, AggregateExpr, MapSQLTypeToTS, } from "./common/index.js";
export type { SQLSelectQuery, ColumnRef, LiteralExpr, SubqueryExpr, ExistsExpr, IntervalExpr, ExtendedColumnRefType, SQLConstantExpr, SQLConstantName, SelectClause, SelectItem, SelectColumns, UnionClause, UnionClauseAny, UnionOperatorType, MatchSelectQuery, QueryResult, ValidateQuery, ValidateSQL, ValidateSelectSQL, ValidateSelectOptions, } from "./select/index.js";
export type { SQLInsertQuery, InsertClause, InsertColumnList, InsertColumnRef, InsertValue, InsertValueRow, InsertValuesClause, InsertSelectClause, InsertSource, ReturningClause, OnConflictClause, ConflictTarget, ConflictAction, ConflictUpdateSet, MatchInsertQuery, InsertResult, InsertInput, ValidateInsertResult, ValidateInsertSQL, ValidateInsertOptions, IsValidInsert, GetInsertTableColumns, } from "./insert/index.js";
export type { SQLUpdateQuery, UpdateClause, SetClause, SetAssignment, SetValue, UpdateFromClause, UpdateReturningClause, ReturningItem, QualifiedColumnRef, QualifiedWildcard, ReturningQualifier, MatchUpdateQuery, UpdateResult, ValidateUpdateResult, ValidateUpdateSQL, ValidateUpdateOptions, IsValidUpdate, GetUpdateTableColumns, } from "./update/index.js";
export type { SQLDeleteQuery, DeleteClause, UsingClause, DeleteReturningClause, MatchDeleteQuery, DeleteResult, ValidateDeleteResult, ValidateDeleteSQL, ValidateDeleteOptions, IsValidDelete, GetDeleteTableColumns, } from "./delete/index.js";
export type { AnySQLQuery, DetectQueryType, IsDeleteQuery, IsInsertQuery, IsSelectQuery, IsUpdateQuery, ParseDeleteSQL, ParseInsertSQL, ParseSelectSQL, ParseSQL, ParseUpdateSQL, } from "./router.js";
export type { AggregateExpr, AggregateFunc, BinaryExpr, ColumnReference, ColumnRefType, ComparisonOp, ComplexExpr, CountClose, CountOpen, CTEDefinition, DatabaseSchema, Decrement, DerivedTableRef, DynamicQuery, DynamicQueryResult, ExtractUntil, FindRelationsFrom, FindRelationsTo, Flatten, FromTerminators, GetColumnNames, GetColumnType, GetDefaultSchema, GetRelation, GetRelationNames, GetTableNames, HasRelations, HasTemplateHoles, Increment, IsDynamicQuery, IsMatchError, IsParseError, IsStringLiteral, JoinClause, JoinType, LiteralValue, LogicalExpr, LogicalExprAny, LogicalOp, MapSQLTypeToTS, MatchError, NextToken, NormalizeSQL, OrderByItem, OrderByTerminators, ParensBalanced, ParsedCondition, ParseError, QueryType, Relation, Relations, RelationType, RemoveQuotes, SchemaDefinition, SimpleColumnRefType, SortDirection, SplitByComma, StartsWith, SubquerySelectClause, TableColumnRef, TableDefinition, TableRef, TableSource, TableWildcard, Trim, UnboundColumnRef, UnparsedExpr, ValidatableColumnRef, WhereExpr, WhereTerminators, } from "./common/index.js";
export { createConditionTree, } from "./common/index.js";
export type { ParamString, QueryParamValue } from "./common/index.js";
export type { ColumnRef, ExistsExpr, ExtendedColumnRefType, IntervalExpr, LiteralExpr, MatchSelectClause, MatchSelectQuery, ParseOrderByItems, ParseWhereClause, QueryResult, SelectBuilderAnyState, SelectBuilderState, SelectClause, SelectColumns, SelectEmptyState, SelectErrorState, SelectItem, SQLConstantExpr, SQLConstantName, SQLSelectQuery, SubqueryExpr, UnionClause, UnionClauseAny, UnionOperatorType, ValidateQuery, ValidateSelectClause, ValidateSelectOptions, ValidateSelectSQL, ValidateSQL, } from "./select/index.js";
export type { AssembleBuilderSql, BuilderResultType, BuilderReturnType, BuilderSQL, BuilderSqlTag, BuilderStateOf, BuilderStateTag, CanReplaceJoin, EmptyBuilderState, EmptySqlState, EmptyState, ErrorState, JoinStrictness, JoinTypeToStrictness, RuntimeSelectState, SelectItemsFromState, SelectQueryBuilder, StateToSelectClause, StateToSelectQueryClause, TableNameOf, ValidateBuilder, } from "./select/builder.js";
export { assembleSelectSQL, createSelectQuery } from "./select/index.js";
export type { ConflictAction, ConflictTarget, ConflictUpdateSet, GetInsertTableColumns, InsertClause, InsertColumnList, InsertColumnRef, InsertInput, InsertResult, InsertSelectClause, InsertSource, InsertValue, InsertValueRow, InsertValuesClause, IsValidInsert, MatchInsertQuery, OnConflictClause, ReturningClause, SQLInsertQuery, ValidateInsertOptions, ValidateInsertResult, ValidateInsertSQL, } from "./insert/index.js";
export type { GetUpdateTableColumns, IsValidUpdate, MatchUpdateQuery, QualifiedColumnRef, QualifiedWildcard, ReturningItem, ReturningQualifier, SetAssignment, SetClause, SetValue, SQLUpdateQuery, UpdateClause, UpdateFromClause, UpdateResult, UpdateReturningClause, ValidateUpdateOptions, ValidateUpdateResult, ValidateUpdateSQL, } from "./update/index.js";
export type { DeleteClause, DeleteResult, DeleteReturningClause, GetDeleteTableColumns, IsValidDelete, MatchDeleteQuery, SQLDeleteQuery, UsingClause, ValidateDeleteOptions, ValidateDeleteResult, ValidateDeleteSQL, } from "./delete/index.js";
export { createSelectFn } from "./db.js";
export type { ValidQuery, SelectResult, SelectResultArray, IsValidSelect } from "./db.js";
export type { IsValidSelect, SelectBuilderResult, SelectBuilderResultArray, SelectResult, SelectResultArray, ValidQuery, ValidQueryBuilder, } from "./db.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -29,2 +29,12 @@ /**

*/
// Re-export common builder runtime utilities
export {
// appendParamsRuntime,
// buildParamString,
// ConditionTreeBuilder,
createConditionTree,
// whenRuntime,
} from "./common/index.js";
// Re-export SELECT builder runtime helpers
export { assembleSelectSQL, createSelectQuery } from "./select/index.js";
// ============================================================================

@@ -31,0 +41,0 @@ // Runtime API helpers

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAwQH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAwGH,6CAA6C;AAC7C,OAAO;AACH,uBAAuB;AACvB,oBAAoB;AACpB,wBAAwB;AACxB,mBAAmB;AACnB,eAAe;EAClB,MAAM,mBAAmB,CAAC;AA4E3B,2CAA2C;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAkGzE,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}

@@ -9,4 +9,4 @@ /**

*/
import type { AggregateExpr, ColumnRefType, CTEDefinition, JoinClause, OrderByItem, SubquerySelectClause, TableSource, TableWildcard, WhereExpr } from "../common/ast.js";
import type { Flatten } from "../common/utils.js";
import type { ColumnRefType, TableWildcard, TableSource, CTEDefinition, JoinClause, WhereExpr, OrderByItem, AggregateExpr, SubquerySelectClause } from "../common/ast.js";
/**

@@ -78,3 +78,7 @@ * A literal value expression used directly in SELECT columns

*/
export type SelectItem = ColumnRef | AggregateExpr | TableWildcard;
export type SelectItem = (ColumnRef & {
readonly optional?: boolean;
}) | (AggregateExpr & {
readonly optional?: boolean;
}) | TableWildcard;
/**

@@ -81,0 +85,0 @@ * Array of selected columns

@@ -1,1 +0,1 @@

{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/select/ast.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/select/ast.ts"],"names":[],"mappings":"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"}

@@ -12,6 +12,8 @@ /**

*/
export type { ParseSelectSQL } from "./parser.js";
export type { SQLSelectQuery, ColumnRef, LiteralExpr, SubqueryExpr, ExistsExpr, IntervalExpr, ExtendedColumnRefType, SQLConstantExpr, SQLConstantName, SelectClause, SelectItem, SelectColumns, UnionClause, UnionClauseAny, UnionOperatorType, } from "./ast.js";
export type { MatchSelectQuery, MatchError, QueryResult, ValidateQuery, ValidateSQL, DatabaseSchema, } from "./matcher.js";
export type { ValidateSelectSQL, ValidateSelectOptions, } from "./validator.js";
export type { ExtractColumnName, ExtractJoinType, IsComplexExpression, IsSimpleIdentifier, ParseColumnList, ParseColumnRefType, ParseOrderByItem, ParseOrderByItems, ParseSelectSQL, ParseSingleColumn, ParseSingleJoin, ParseTableRef, ParseWhereClause, ScanTokensForColumnRefs, } from "./parser.js";
export type { ColumnRef, ExistsExpr, ExtendedColumnRefType, IntervalExpr, LiteralExpr, SelectClause, SelectColumns, SelectItem, SQLConstantExpr, SQLConstantName, SQLSelectQuery, SubqueryExpr, UnionClause, UnionClauseAny, UnionOperatorType, } from "./ast.js";
export type { DatabaseSchema, MatchError, MatchSelectClause, MatchSelectQuery, QueryResult, ValidateQuery, ValidateSQL, } from "./matcher.js";
export type { ValidateSelectClause, ValidateSelectOptions, ValidateSelectSQL, } from "./validator.js";
export type { BuilderReturnType, BuilderSQL, EmptyState as SelectEmptyState, ErrorState as SelectErrorState, SelectBuilderAnyState, SelectBuilderState, ValidateBuilder, } from "./builder.js";
export { assembleSelectSQL, createSelectQuery } from "./builder.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/select/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,YAAY,EAEV,cAAc,EAGd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,qBAAqB,EAGrB,eAAe,EACf,eAAe,EAGf,YAAY,EACZ,UAAU,EACV,aAAa,EAGb,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,UAAU,CAAA;AAGjB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAA;AAGrB,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/select/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EACR,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GAC1B,MAAM,aAAa,CAAC;AAGrB,YAAY,EAER,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,aAAa,EACb,UAAU,EAEV,eAAe,EACf,eAAe,EAEf,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,iBAAiB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACR,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,GACd,MAAM,cAAc,CAAC;AAGtB,YAAY,EACR,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACR,iBAAiB,EACjB,UAAU,EACV,UAAU,IAAI,gBAAgB,EAC9B,UAAU,IAAI,gBAAgB,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}

@@ -12,3 +12,3 @@ /**

*/
export {};
export { assembleSelectSQL, createSelectQuery } from "./builder.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/select/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/select/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}

@@ -7,8 +7,8 @@ /**

*/
import type { SQLSelectQuery, SelectClause, ColumnRef, LiteralExpr, SubqueryExpr, ExistsExpr, IntervalExpr, UnionClause, UnionClauseAny, UnionOperatorType, SelectItem, SQLConstantExpr, SQLConstantName } from "./ast.js";
import type { TableColumnRef, UnboundColumnRef, TableWildcard, ComplexExpr, TableRef, TableSource, DerivedTableRef, CTEDefinition, JoinClause, AggregateExpr, SubquerySelectClause, MapSQLTypeToTS } from "../common/ast.js";
import type { Flatten, MatchError, IsMatchError, DynamicQuery, DynamicQueryResult, IsStringLiteral } from "../common/utils.js";
import type { ColumnRef, ExistsExpr, IntervalExpr, LiteralExpr, SelectClause, SelectItem, SQLConstantExpr, SQLConstantName, SQLSelectQuery, SubqueryExpr, UnionClause, UnionClauseAny, UnionOperatorType } from "./ast.js";
import type { AggregateExpr, ComplexExpr, CTEDefinition, DerivedTableRef, JoinClause, MapSQLTypeToTS, SubquerySelectClause, TableColumnRef, TableRef, TableSource, TableWildcard, UnboundColumnRef } from "../common/ast.js";
import type { DatabaseSchema, GetDefaultSchema } from "../common/schema.js";
import type { DynamicQuery, DynamicQueryResult, Flatten, IsMatchError, IsStringLiteral, MatchError } from "../common/utils.js";
export type { DatabaseSchema } from "../common/schema.js";
export type { MatchError } from "../common/utils.js";
export type { DatabaseSchema } from "../common/schema.js";
/**

@@ -51,3 +51,3 @@ * Match a parsed SQL SELECT query against a schema to get the result type

*/
type MatchSelectClause<Select, Schema extends DatabaseSchema> = Select extends SelectClause<infer Columns, infer From, infer Joins, infer _Where, infer _GroupBy, infer _Having, infer _OrderBy, infer _Limit, infer _Offset, infer _Distinct, infer CTEs> ? BuildTableContextWithCTEs<From, Joins, CTEs, Schema> extends infer Context ? Context extends MatchError<string> ? Context : MatchColumns<Columns, Context, Schema> : never : MatchError<"Invalid SELECT clause">;
export type MatchSelectClause<Select, Schema extends DatabaseSchema> = Select extends SelectClause<infer Columns, infer From, infer Joins, infer _Where, infer _GroupBy, infer _Having, infer _OrderBy, infer _Limit, infer _Offset, infer _Distinct, infer CTEs> ? BuildTableContextWithCTEs<From, Joins, CTEs, Schema> extends infer Context ? Context extends MatchError<string> ? Context : MatchColumns<Columns, Context, Schema> : never : MatchError<"Invalid SELECT clause">;
/**

@@ -154,10 +154,21 @@ * Build a context with CTE support

/**
* Helper: check if a SelectItem has been marked as optional
*/
type IsOptionalSelectItem<Col> = Col extends {
readonly optional: true;
} ? true : false;
/**
* Match a single column (ColumnRef, AggregateExpr, or TableWildcard)
* Note: We use [ColType] extends [...] to prevent distribution over union types
* Optional columns (from conditional selects/joins) are unioned with `undefined`.
*/
type MatchSingleColumn<Col, Context, Schema extends DatabaseSchema> = Col extends ColumnRef<infer Ref, infer Alias> ? ResolveColumnRef<Ref, Context, Schema> extends infer ColType ? [ColType] extends [MatchError<string>] ? {
[K in Alias]: ColType;
} : IsOptionalSelectItem<Col> extends true ? {
[K in Alias]: ColType | undefined;
} : {
[K in Alias]: ColType;
} : never : Col extends TableWildcard<infer TableOrAlias, infer WildcardSchema> ? ResolveTableWildcard<TableOrAlias, WildcardSchema, Context, Schema> : Col extends AggregateExpr<infer Func, infer Arg, infer Alias> ? {
} : never : Col extends TableWildcard<infer TableOrAlias, infer WildcardSchema> ? ResolveTableWildcard<TableOrAlias, WildcardSchema, Context, Schema> : Col extends AggregateExpr<infer Func, infer Arg, infer Alias> ? IsOptionalSelectItem<Col> extends true ? {
[K in Alias]: GetAggregateResultType<Func, Arg, Context, Schema> | undefined;
} : {
[K in Alias]: GetAggregateResultType<Func, Arg, Context, Schema>;

@@ -320,10 +331,15 @@ } : MatchError<"Unknown column type">;

/**
* Validate a SQL query against a schema
* Returns true if valid, or error message if invalid
* Validate a SQL query against a schema.
*
* This uses the dedicated validator for comprehensive validation.
* By default this performs full validation (all clauses). Callers that need a
* lighter validation path (for example, builder fragment checks) can pass
* `Options` with `validateAllFields: false` to skip deep WHERE/JOIN/HAVING
* clause validation while still validating SELECT columns and table/alias
* resolution.
*
* This delegates to the dedicated validator implementation.
*
* @see ValidateSelectSQL in ./validator.js for the implementation
*/
export type ValidateSQL<SQL extends string, Schema extends DatabaseSchema> = import("./validator.js").ValidateSelectSQL<SQL, Schema>;
export type ValidateSQL<SQL extends string, Schema extends DatabaseSchema, Options = undefined> = [Options] extends [undefined] ? import("./validator.js").ValidateSelectSQL<SQL, Schema> : import("./validator.js").ValidateSelectSQL<SQL, Schema, Options & import("./validator.js").ValidateSelectOptions>;
//# sourceMappingURL=matcher.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/select/matcher.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/select/matcher.ts"],"names":[],"mappings":"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"}

@@ -8,6 +8,6 @@ /**

*/
import type { SelectClause, SelectItem, ColumnRef, LiteralExpr, SubqueryExpr, ExistsExpr, IntervalExpr, ExtendedColumnRefType, UnionClause, UnionClauseAny, UnionOperatorType, SQLSelectQuery, SQLConstantExpr, SQLConstantName } from "./ast.js";
import type { TableRef, TableSource, DerivedTableRef, CTEDefinition, TableColumnRef, UnboundColumnRef, TableWildcard, ComplexExpr, ValidatableColumnRef, ColumnRefType, WhereExpr, JoinClause, JoinType, OrderByItem, AggregateExpr, AggregateFunc, ParsedCondition } from "../common/ast.js";
import type { NormalizeSQL, NextToken, ExtractUntil, SplitByComma, FromTerminators, WhereTerminators, OrderByTerminators, StartsWith } from "../common/tokenizer.js";
import type { Trim, ParseError, RemoveQuotes, Increment, Decrement } from "../common/utils.js";
import type { ColumnRef, ExistsExpr, ExtendedColumnRefType, IntervalExpr, LiteralExpr, SelectClause, SelectItem, SQLConstantExpr, SQLConstantName, SQLSelectQuery, SubqueryExpr, UnionClause, UnionClauseAny, UnionOperatorType } from "./ast.js";
import type { AggregateExpr, AggregateFunc, ColumnRefType, ComplexExpr, CTEDefinition, DerivedTableRef, JoinClause, JoinType, OrderByItem, ParsedCondition, TableColumnRef, TableRef, TableSource, TableWildcard, UnboundColumnRef, ValidatableColumnRef, WhereExpr } from "../common/ast.js";
import type { ExtractUntil, FromTerminators, NextToken, NormalizeSQL, OrderByTerminators, SplitByComma, StartsWith, WhereTerminators } from "../common/tokenizer.js";
import type { Decrement, Increment, ParseError, RemoveQuotes, Trim } from "../common/utils.js";
/**

@@ -17,2 +17,28 @@ * Parse a SQL SELECT query string into an AST

export type ParseSelectSQL<T extends string> = ParseQueryOrUnion<NormalizeSQL<T>>;
/** Parse a table reference string into TableRef AST */
export type { ParseTableRef };
/** Parse a single column expression into SelectItem AST */
export type { ParseSingleColumn };
/** Parse a list of column expressions into SelectItem[] */
export type { ParseColumnList };
/** Parse a column reference type (table.column, column, etc.) */
export type { ParseColumnRefType };
/** Extract column name for default alias */
export type { ExtractColumnName };
/** Check if expression is complex (contains functions, operators, etc.) */
export type { IsComplexExpression };
/** Scan tokens and extract all column references from a condition */
export type { ScanTokensForColumnRefs };
/** Parse a WHERE clause into ParsedCondition AST fragment */
export type { ParseWhereClause };
/** Parse ORDER BY item into OrderByItem AST */
export type { ParseOrderByItem };
/** Parse ORDER BY list into OrderByItem[] AST */
export type { ParseOrderByItems };
/** Extract join type from JOIN clause */
export type { ExtractJoinType };
/** Parse a single JOIN clause */
export type { ParseSingleJoin };
/** Check if string is a simple identifier */
export type { IsSimpleIdentifier };
/**

@@ -45,7 +71,13 @@ * Parse a query that may contain UNION/INTERSECT/EXCEPT operators

rest: infer AfterCTEs extends string;
} ? NextToken<AfterCTEs> extends ["SELECT", infer SelectRest extends string] ? ParseSelectBodyWithCTEsAndRest<SelectRest, CTEs> : ParseError<"Expected SELECT after WITH clause"> : CTEResult : never;
} ? NextToken<AfterCTEs> extends [
"SELECT",
infer SelectRest extends string
] ? ParseSelectBodyWithCTEsAndRest<SelectRest, CTEs> : ParseError<"Expected SELECT after WITH clause"> : CTEResult : never;
/**
* Check if there's a union operator and parse accordingly
*/
type CheckForUnion<Left extends SelectClause, Rest extends string> = Trim<Rest> extends "" ? SQLSelectQuery<Left> : ParseUnionOperator<Rest> extends [infer Op extends UnionOperatorType, infer AfterOp extends string] ? ParseSelectQueryWithRest<AfterOp> extends infer RightResult ? RightResult extends {
type CheckForUnion<Left extends SelectClause, Rest extends string> = Trim<Rest> extends "" ? SQLSelectQuery<Left> : ParseUnionOperator<Rest> extends [
infer Op extends UnionOperatorType,
infer AfterOp extends string
] ? ParseSelectQueryWithRest<AfterOp> extends infer RightResult ? RightResult extends {
query: infer RightQ extends SelectClause;

@@ -57,3 +89,6 @@ rest: infer AfterRight extends string;

*/
type CheckForMoreUnions<Left extends SelectClause, Op extends UnionOperatorType, Right extends SelectClause, Rest extends string> = Trim<Rest> extends "" ? SQLSelectQuery<UnionClause<Left, Op, Right>> : ParseUnionOperator<Rest> extends [infer NextOp extends UnionOperatorType, infer AfterNextOp extends string] ? ParseSelectQueryWithRest<AfterNextOp> extends infer NextRightResult ? NextRightResult extends {
type CheckForMoreUnions<Left extends SelectClause, Op extends UnionOperatorType, Right extends SelectClause, Rest extends string> = Trim<Rest> extends "" ? SQLSelectQuery<UnionClause<Left, Op, Right>> : ParseUnionOperator<Rest> extends [
infer NextOp extends UnionOperatorType,
infer AfterNextOp extends string
] ? ParseSelectQueryWithRest<AfterNextOp> extends infer NextRightResult ? NextRightResult extends {
query: infer NextRightQ extends SelectClause;

@@ -85,3 +120,6 @@ rest: infer AfterNextRight extends string;

infer AfterName extends string
] ? NextToken<AfterName> extends ["AS", infer AfterAS extends string] ? NextToken<AfterAS> extends ["(", infer AfterParen extends string] ? ExtractCTEQuery<AfterParen> extends [infer QueryStr extends string, infer Rest extends string] ? ParseSelectQuery<QueryStr> extends SQLSelectQuery<infer Query extends SelectClause> ? {
] ? NextToken<AfterName> extends ["AS", infer AfterAS extends string] ? NextToken<AfterAS> extends ["(", infer AfterParen extends string] ? ExtractCTEQuery<AfterParen> extends [
infer QueryStr extends string,
infer Rest extends string
] ? ParseSelectQuery<QueryStr> extends SQLSelectQuery<infer Query extends SelectClause> ? {
cte: CTEDefinition<RemoveQuotes<Name>, Query>;

@@ -189,3 +227,6 @@ rest: Rest;

*/
type ParseIntervalColumn<T extends string> = ExtractIntervalWithAlias<Trim<T>> extends [infer IntervalResult extends ExtendedColumnRefType, infer Alias extends string] ? ColumnRef<IntervalResult, Alias> : ColumnRef<IntervalExpr<string>, "interval">;
type ParseIntervalColumn<T extends string> = ExtractIntervalWithAlias<Trim<T>> extends [
infer IntervalResult extends ExtendedColumnRefType,
infer Alias extends string
] ? ColumnRef<IntervalResult, Alias> : ColumnRef<IntervalExpr<string>, "interval">;
/**

@@ -200,3 +241,9 @@ * Extract INTERVAL expression and optional alias

*/
type ExtractIntervalAliasFromRest<T extends string> = Trim<T> extends `AS ${infer AliasRest}` ? NextToken<Trim<AliasRest>> extends [infer Alias extends string, infer _Rest extends string] ? RemoveQuotes<Alias> : "interval" : Trim<T> extends `${string} AS ${infer AliasRest}` ? NextToken<Trim<AliasRest>> extends [infer Alias extends string, infer _Rest extends string] ? RemoveQuotes<Alias> : "interval" : "interval";
type ExtractIntervalAliasFromRest<T extends string> = Trim<T> extends `AS ${infer AliasRest}` ? NextToken<Trim<AliasRest>> extends [
infer Alias extends string,
infer _Rest extends string
] ? RemoveQuotes<Alias> : "interval" : Trim<T> extends `${string} AS ${infer AliasRest}` ? NextToken<Trim<AliasRest>> extends [
infer Alias extends string,
infer _Rest extends string
] ? RemoveQuotes<Alias> : "interval" : "interval";
/**

@@ -224,7 +271,11 @@ * Parse a SQL constant column expression

*/
type ParseCastColumn<T extends string> = ExtractCastContent<Trim<T>> extends [infer CastExpr extends string, infer CastType extends string, infer Rest extends string] ? Trim<Rest> extends `AS ${infer Alias}` ? ColumnRef<ParseCastExpr<CastExpr, CastType>, RemoveQuotes<Alias>> : ColumnRef<ParseCastExpr<CastExpr, CastType>, ExtractCastAlias<CastExpr>> : ColumnRef<ComplexExpr<[], undefined>, "cast">;
type ParseCastColumn<T extends string> = ExtractCastContent<Trim<T>> extends [
infer CastExpr extends string,
infer CastType extends string,
infer Rest extends string
] ? Trim<Rest> extends `AS ${infer Alias}` ? ColumnRef<ParseCastExpr<CastExpr, CastType>, RemoveQuotes<Alias>> : ColumnRef<ParseCastExpr<CastExpr, CastType>, ExtractCastAlias<CastExpr>> : ColumnRef<ComplexExpr<[], undefined>, "cast">;
/**
* Parse the CAST expression into a ComplexExpr with the cast type
*/
type ParseCastExpr<Expr extends string, CastType extends string> = ComplexExpr<ExtractAllColumnRefs<Expr>, CastType>;
type ParseCastExpr<Expr extends string, CastType extends string> = ComplexExpr<ExtractAllColumnRefs<Expr>, CastType, `CAST ( ${Expr} AS ${CastType} )`>;
/**

@@ -245,3 +296,6 @@ * Extract alias from CAST expression (use the expression name or "cast")

*/
type ExtractCastParts<T extends string> = T extends `${infer Expr} AS ${infer TypeAndRest}` ? ExtractCastType<TypeAndRest> extends [infer CastType extends string, infer Rest extends string] ? [Trim<Expr>, Trim<CastType>, Trim<Rest>] : never : never;
type ExtractCastParts<T extends string> = T extends `${infer Expr} AS ${infer TypeAndRest}` ? ExtractCastType<TypeAndRest> extends [
infer CastType extends string,
infer Rest extends string
] ? [Trim<Expr>, Trim<CastType>, Trim<Rest>] : never : never;
/**

@@ -262,3 +316,6 @@ * Extract the type and remainder after the closing paren

*/
type ParseExistsColumn<T extends string> = ExtractExistsWithAlias<Trim<T>> extends [infer ExistsResult extends ExtendedColumnRefType, infer Alias extends string] ? ColumnRef<ExistsResult, Alias> : ColumnRef<ComplexExpr<[], undefined>, "exists">;
type ParseExistsColumn<T extends string> = ExtractExistsWithAlias<Trim<T>> extends [
infer ExistsResult extends ExtendedColumnRefType,
infer Alias extends string
] ? ColumnRef<ExistsResult, Alias> : ColumnRef<ComplexExpr<[], undefined>, "exists">;
/**

@@ -273,3 +330,6 @@ * Extract EXISTS expression and optional alias

*/
type ExtractExistsInnerAndAlias<Rest extends string, Negated extends boolean> = ExtractUntilClosingParen<Rest, 1, ""> extends [infer Inner extends string, infer Remainder extends string] ? ParseExistsInnerQuery<Inner, Negated> extends infer Result ? ExtractAliasFromRemainder<Remainder> extends infer Alias extends string ? [Result, Alias] : [Result, "exists"] : [ComplexExpr<[], undefined>, "exists"] : [ComplexExpr<[], undefined>, "exists"];
type ExtractExistsInnerAndAlias<Rest extends string, Negated extends boolean> = ExtractUntilClosingParen<Rest, 1, ""> extends [
infer Inner extends string,
infer Remainder extends string
] ? ParseExistsInnerQuery<Inner, Negated> extends infer Result ? ExtractAliasFromRemainder<Remainder> extends infer Alias extends string ? [Result, Alias] : [Result, "exists"] : [ComplexExpr<[], undefined>, "exists"] : [ComplexExpr<[], undefined>, "exists"];
/**

@@ -283,3 +343,6 @@ * Parse the inner SELECT query for EXISTS

*/
type ExtractAliasFromRemainder<T extends string> = Trim<T> extends `AS ${infer AliasRest}` ? NextToken<AliasRest> extends [infer Alias extends string, infer _Rest extends string] ? RemoveQuotes<Alias> : "exists" : "exists";
type ExtractAliasFromRemainder<T extends string> = Trim<T> extends `AS ${infer AliasRest}` ? NextToken<AliasRest> extends [
infer Alias extends string,
infer _Rest extends string
] ? RemoveQuotes<Alias> : "exists" : "exists";
/**

@@ -297,3 +360,6 @@ * Check if the expression is a scalar subquery (starts with parenthesized SELECT)

*/
type ParseSubqueryExpr<T extends string> = ExtractParenthesizedContent<Trim<T>> extends [infer Inner extends string, infer Remainder extends string] ? ParseSelectQuery<Inner> extends SQLSelectQuery<infer Query extends SelectClause> ? SubqueryExpr<Query, ExtractSubqueryCastType<Remainder>> : ParseSelectQuery<Inner> extends ParseError<infer E> ? ComplexExpr<[], undefined> : ComplexExpr<[], undefined> : ComplexExpr<[], undefined>;
type ParseSubqueryExpr<T extends string> = ExtractParenthesizedContent<Trim<T>> extends [
infer Inner extends string,
infer Remainder extends string
] ? ParseSelectQuery<Inner> extends SQLSelectQuery<infer Query extends SelectClause> ? SubqueryExpr<Query, ExtractSubqueryCastType<Remainder>> : ParseSelectQuery<Inner> extends ParseError<infer E> ? ComplexExpr<[], undefined> : ComplexExpr<[], undefined> : ComplexExpr<[], undefined>;
/**

@@ -312,3 +378,6 @@ * Extract the cast type that may follow a subquery's closing parenthesis

*/
type ExtractUntilClosingParen<T extends string, Depth extends number, Acc extends string> = Depth extends 0 ? [Trim<Acc>, Trim<T>] : NextToken<T> extends [infer Token extends string, infer Rest extends string] ? Token extends "(" ? ExtractUntilClosingParen<Rest, Increment<Depth>, `${Acc} ${Token}`> : Token extends ")" ? Decrement<Depth> extends 0 ? [Trim<Acc>, Trim<Rest>] : ExtractUntilClosingParen<Rest, Decrement<Depth>, `${Acc} ${Token}`> : ExtractUntilClosingParen<Rest, Depth, `${Acc} ${Token}`> : [Trim<Acc>, ""];
type ExtractUntilClosingParen<T extends string, Depth extends number, Acc extends string> = Depth extends 0 ? [Trim<Acc>, Trim<T>] : NextToken<T> extends [
infer Token extends string,
infer Rest extends string
] ? Token extends "(" ? ExtractUntilClosingParen<Rest, Increment<Depth>, `${Acc} ${Token}`> : Token extends ")" ? Decrement<Depth> extends 0 ? [Trim<Acc>, Trim<Rest>] : ExtractUntilClosingParen<Rest, Decrement<Depth>, `${Acc} ${Token}`> : ExtractUntilClosingParen<Rest, Depth, `${Acc} ${Token}`> : [Trim<Acc>, ""];
/**

@@ -347,8 +416,11 @@ * Check if this is a function call (pattern: identifier ( ... ))

*/
type ParseComplexColumn<T extends string> = T extends `${infer Expr} AS ${infer Alias}` ? ColumnRef<ParseComplexExpr<Trim<Expr>>, RemoveQuotes<Alias>> : ColumnRef<ParseComplexExpr<T>, ExtractComplexColumnName<T>>;
type ComplexLastAlias<T extends string> = Trim<T> extends `${infer _Head} AS ${infer Rest}` ? ComplexLastAlias<Rest> : Trim<T>;
type ComplexExprWithoutAlias<T extends string> = Trim<T> extends `${infer Expr} AS ${infer Rest}` ? Rest extends `${infer _Inner} AS ${infer _RestTail}` ? ComplexExprWithoutAlias<`${Expr} AS ${Rest}`> : Trim<Expr> : Trim<T>;
type ParseComplexColumn<T extends string> = ColumnRef<ParseComplexExpr<ComplexExprWithoutAlias<T>>, Trim<T> extends `${string} AS ${string}` ? ComplexLastAlias<T> : ExtractComplexColumnName<T>>;
/**
* Parse a complex expression into ComplexExpr AST
* Extracts all column references for validation and the final cast type
* Extracts all column references for validation, the final cast type,
* and stores the original expression for assembly
*/
type ParseComplexExpr<T extends string> = ComplexExpr<ExtractAllColumnRefs<T>, ExtractFinalCastType<T>>;
type ParseComplexExpr<T extends string> = ComplexExpr<ExtractAllColumnRefs<T>, ExtractFinalCastType<T>, T>;
/**

@@ -358,3 +430,4 @@ * Extract all column references from a complex expression

*/
type ExtractAllColumnRefs<T extends string> = ScanTokensForColumnRefs<Trim<T>, []>;
type ExtractAllColumnRefs<T extends string> = ScanTokensForColumnRefs<Trim<T>, [
]>;
/**

@@ -365,3 +438,9 @@ * Scan tokens one by one looking for column reference patterns

*/
type ScanTokensForColumnRefs<T extends string, Acc extends ValidatableColumnRef[]> = Trim<T> extends "" ? Acc : NextToken<Trim<T>> extends [infer Token extends string, infer Rest extends string] ? IsExistsToken<Token, Rest> extends true ? SkipExistsAndContinue<Token, Rest, Acc> : IsFunctionName<Token, Rest> extends true ? ScanTokensForColumnRefs<Rest, Acc> : ExtractColumnFromToken<Token> extends infer ColRef ? [ColRef] extends [never] ? ScanTokensForColumnRefs<Rest, Acc> : ColRef extends ValidatableColumnRef ? ScanTokensForColumnRefs<Rest, [...Acc, ColRef]> : ScanTokensForColumnRefs<Rest, Acc> : ScanTokensForColumnRefs<Rest, Acc> : Acc;
type ScanTokensForColumnRefs<T extends string, Acc extends ValidatableColumnRef[], Depth extends number = 20> = Depth extends 0 ? Acc : Trim<T> extends "" ? Acc : NextToken<Trim<T>> extends [
infer Token extends string,
infer Rest extends string
] ? IsExistsToken<Token, Rest> extends true ? SkipExistsAndContinue<Token, Rest, Acc, Decrement<Depth>> : IsFunctionName<Token, Rest> extends true ? ScanTokensForColumnRefs<Rest, Acc, Decrement<Depth>> : ExtractColumnFromToken<Token> extends infer ColRef ? [ColRef] extends [never] ? ScanTokensForColumnRefs<Rest, Acc, Decrement<Depth>> : ColRef extends ValidatableColumnRef ? ScanTokensForColumnRefs<Rest, [
...Acc,
ColRef
], Decrement<Depth>> : ScanTokensForColumnRefs<Rest, Acc, Decrement<Depth>> : ScanTokensForColumnRefs<Rest, Acc, Decrement<Depth>> : Acc;
/**

@@ -372,3 +451,6 @@ * Check if we're at an EXISTS or NOT EXISTS token

*/
type IsExistsToken<Token extends string, Rest extends string> = Token extends "EXISTS" ? NextToken<Trim<Rest>> extends ["(", string] ? true : false : Token extends "NOT" ? NextToken<Trim<Rest>> extends ["EXISTS", infer AfterExists extends string] ? NextToken<Trim<AfterExists>> extends ["(", string] ? true : false : false : false;
type IsExistsToken<Token extends string, Rest extends string> = Token extends "EXISTS" ? NextToken<Trim<Rest>> extends ["(", string] ? true : false : Token extends "NOT" ? NextToken<Trim<Rest>> extends [
"EXISTS",
infer AfterExists extends string
] ? NextToken<Trim<AfterExists>> extends ["(", string] ? true : false : false : false;
/**

@@ -378,3 +460,9 @@ * Skip EXISTS/NOT EXISTS subquery and continue scanning

*/
type SkipExistsAndContinue<Token extends string, Rest extends string, Acc extends ValidatableColumnRef[]> = Token extends "NOT" ? NextToken<Trim<Rest>> extends ["EXISTS", infer AfterExists extends string] ? NextToken<Trim<AfterExists>> extends ["(", infer AfterParen extends string] ? SkipUntilClosingParen<AfterParen, 1> extends infer Remainder extends string ? ScanTokensForColumnRefs<Remainder, Acc> : Acc : ScanTokensForColumnRefs<AfterExists, Acc> : ScanTokensForColumnRefs<Rest, Acc> : NextToken<Trim<Rest>> extends ["(", infer AfterParen extends string] ? SkipUntilClosingParen<AfterParen, 1> extends infer Remainder extends string ? ScanTokensForColumnRefs<Remainder, Acc> : Acc : ScanTokensForColumnRefs<Rest, Acc>;
type SkipExistsAndContinue<Token extends string, Rest extends string, Acc extends ValidatableColumnRef[], Depth extends number> = Token extends "NOT" ? NextToken<Trim<Rest>> extends [
"EXISTS",
infer AfterExists extends string
] ? NextToken<Trim<AfterExists>> extends [
"(",
infer AfterParen extends string
] ? SkipUntilClosingParen<AfterParen, 1> extends infer Remainder extends string ? ScanTokensForColumnRefs<Remainder, Acc, Depth> : Acc : ScanTokensForColumnRefs<AfterExists, Acc, Depth> : ScanTokensForColumnRefs<Rest, Acc, Depth> : NextToken<Trim<Rest>> extends ["(", infer AfterParen extends string] ? SkipUntilClosingParen<AfterParen, 1> extends infer Remainder extends string ? ScanTokensForColumnRefs<Remainder, Acc, Depth> : Acc : ScanTokensForColumnRefs<Rest, Acc, Depth>;
/**

@@ -384,3 +472,6 @@ * Skip tokens until we find the matching closing parenthesis

*/
type SkipUntilClosingParen<T extends string, Depth extends number> = Depth extends 0 ? T : NextToken<Trim<T>> extends [infer Token extends string, infer Rest extends string] ? Token extends "(" ? SkipUntilClosingParen<Rest, Increment<Depth>> : Token extends ")" ? SkipUntilClosingParen<Rest, Decrement<Depth>> : SkipUntilClosingParen<Rest, Depth> : "";
type SkipUntilClosingParen<T extends string, Depth extends number> = Depth extends 0 ? T : NextToken<Trim<T>> extends [
infer Token extends string,
infer Rest extends string
] ? Token extends "(" ? SkipUntilClosingParen<Rest, Increment<Depth>> : Token extends ")" ? SkipUntilClosingParen<Rest, Decrement<Depth>> : SkipUntilClosingParen<Rest, Depth> : "";
/**

@@ -425,3 +516,3 @@ * Check if a token is a function name (followed by opening parenthesis)

*/
type IsKeywordOrOperator<T extends string> = T extends `'${string}'` ? true : T extends "SELECT" | "FROM" | "WHERE" | "AND" | "OR" | "NOT" | "IN" | "IS" | "NULL" | "TRUE" | "FALSE" | "LIKE" | "ILIKE" | "BETWEEN" | "EXISTS" | "CASE" | "WHEN" | "THEN" | "ELSE" | "END" | "AS" | "ON" | "JOIN" | "LEFT" | "RIGHT" | "INNER" | "OUTER" | "FULL" | "CROSS" | "GROUP" | "BY" | "HAVING" | "ORDER" | "ASC" | "DESC" | "LIMIT" | "OFFSET" | "UNION" | "INTERSECT" | "EXCEPT" | "ALL" | "DISTINCT" | "COUNT" | "SUM" | "AVG" | "MIN" | "MAX" | "COALESCE" | "NULLIF" | "CAST" | "FOR" | "USING" | "WITH" | "OVER" | "PARTITION" | "ROWS" | "RANGE" | "PRECEDING" | "FOLLOWING" | "INTERVAL" | "YEAR" | "MONTH" | "DAY" | "HOUR" | "MINUTE" | "SECOND" | "MILLISECOND" | "MICROSECOND" | "YEARS" | "MONTHS" | "DAYS" | "HOURS" | "MINUTES" | "SECONDS" | "MILLISECONDS" | "MICROSECONDS" | "WEEK" | "WEEKS" | "TO" | "NULLS" | "FIRST" | "LAST" ? true : T extends SQLConstantName ? true : T extends "=" | "!=" | "<>" | "<" | ">" | "<=" | ">=" ? true : T extends "for" | "from" | "using" | "with" | "over" | "partition" | "rows" | "range" ? true : T extends `$${number}` | `$${string}` | `:${string}` ? true : T extends `${number}` ? true : false;
type IsKeywordOrOperator<T extends string> = T extends `'${string}'` ? true : T extends "SELECT" | "FROM" | "WHERE" | "AND" | "OR" | "NOT" | "IN" | "IS" | "NULL" | "null" | "TRUE" | "true" | "FALSE" | "false" | "LIKE" | "ILIKE" | "BETWEEN" | "EXISTS" | "CASE" | "WHEN" | "THEN" | "ELSE" | "END" | "AS" | "ON" | "JOIN" | "LEFT" | "RIGHT" | "INNER" | "OUTER" | "FULL" | "CROSS" | "GROUP" | "BY" | "HAVING" | "ORDER" | "ASC" | "DESC" | "LIMIT" | "OFFSET" | "UNION" | "INTERSECT" | "EXCEPT" | "ALL" | "DISTINCT" | "COUNT" | "SUM" | "AVG" | "MIN" | "MAX" | "COALESCE" | "NULLIF" | "CAST" | "FOR" | "USING" | "WITH" | "OVER" | "PARTITION" | "ROWS" | "RANGE" | "PRECEDING" | "FOLLOWING" | "INTERVAL" | "YEAR" | "MONTH" | "DAY" | "HOUR" | "MINUTE" | "SECOND" | "MILLISECOND" | "MICROSECOND" | "YEARS" | "MONTHS" | "DAYS" | "HOURS" | "MINUTES" | "SECONDS" | "MILLISECONDS" | "MICROSECONDS" | "WEEK" | "WEEKS" | "TO" | "NULLS" | "FIRST" | "LAST" ? true : T extends SQLConstantName ? true : T extends "=" | "!=" | "<>" | "<" | ">" | "<=" | ">=" ? true : T extends "for" | "from" | "using" | "with" | "over" | "partition" | "rows" | "range" ? true : T extends `$${number}` | `$${string}` | `:${string}` ? true : T extends `${number}` ? true : false;
/**

@@ -469,3 +560,6 @@ * Extract the column name before the :: cast operator

ParseSchemaTableWildcard<Trim<T>>
] extends [never] ? ParseSimpleTableWildcard<T> : ParseSchemaTableWildcard<Trim<T>> extends [infer Schema extends string, infer Table extends string] ? TableWildcard<Table, Schema> : ParseSimpleTableWildcard<T>;
] extends [never] ? ParseSimpleTableWildcard<T> : ParseSchemaTableWildcard<Trim<T>> extends [
infer Schema extends string,
infer Table extends string
] ? TableWildcard<Table, Schema> : ParseSimpleTableWildcard<T>;
/**

@@ -488,3 +582,7 @@ * Parse simple table.* pattern (no schema)

ParseThreePartIdentifier<Trim<T>>
] extends [never] ? ParseTwoOrOnePartIdentifier<T> : ParseThreePartIdentifier<Trim<T>> extends [infer Schema extends string, infer Table extends string, infer Col extends string] ? TableColumnRef<Table, Col, Schema> : ParseTwoOrOnePartIdentifier<T>;
] extends [never] ? ParseTwoOrOnePartIdentifier<T> : ParseThreePartIdentifier<Trim<T>> extends [
infer Schema extends string,
infer Table extends string,
infer Col extends string
] ? TableColumnRef<Table, Col, Schema> : ParseTwoOrOnePartIdentifier<T>;
/**

@@ -520,3 +618,6 @@ * Parse two-part (table.column) or single-part (column) identifier

*/
type ParseDerivedTable<T extends string> = ExtractUntilClosingParen<T, 1, ""> extends [infer QueryStr extends string, infer AfterParen extends string] ? ParseSelectQuery<Trim<QueryStr>> extends SQLSelectQuery<infer Query extends SelectClause> ? ParseDerivedTableAlias<Trim<AfterParen>> extends {
type ParseDerivedTable<T extends string> = ExtractUntilClosingParen<T, 1, ""> extends [
infer QueryStr extends string,
infer AfterParen extends string
] ? ParseSelectQuery<Trim<QueryStr>> extends SQLSelectQuery<infer Query extends SelectClause> ? ParseDerivedTableAlias<Trim<AfterParen>> extends {
alias: infer Alias extends string;

@@ -531,6 +632,15 @@ rest: infer Rest extends string;

*/
type ParseDerivedTableAlias<T extends string> = NextToken<T> extends ["AS", infer AfterAS extends string] ? NextToken<AfterAS> extends [infer Alias extends string, infer Rest extends string] ? {
type ParseDerivedTableAlias<T extends string> = NextToken<T> extends [
"AS",
infer AfterAS extends string
] ? NextToken<AfterAS> extends [
infer Alias extends string,
infer Rest extends string
] ? {
alias: RemoveQuotes<Alias>;
rest: Rest;
} : ParseError<"Expected alias after AS"> : NextToken<T> extends [infer First extends string, infer Rest extends string] ? First extends FromTerminators ? ParseError<"Derived table requires an alias"> : {
} : ParseError<"Expected alias after AS"> : NextToken<T> extends [
infer First extends string,
infer Rest extends string
] ? First extends FromTerminators ? ParseError<"Derived table requires an alias"> : {
alias: RemoveQuotes<First>;

@@ -542,3 +652,15 @@ rest: Rest;

*/
type ParseTableRef<T extends string> = Trim<T> extends `${infer SchemaOrTable} AS ${infer Alias}` ? ParseSchemaTable<SchemaOrTable> extends [infer Schema extends string | undefined, infer Table extends string] ? TableRef<Table, RemoveQuotes<Alias>, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<Alias>, undefined> : Trim<T> extends `${infer SchemaOrTable} ${infer Alias}` ? Alias extends FromTerminators ? ParseSchemaTable<SchemaOrTable> extends [infer Schema extends string | undefined, infer Table extends string] ? TableRef<Table, Table, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<SchemaOrTable>, undefined> : ParseSchemaTable<SchemaOrTable> extends [infer Schema extends string | undefined, infer Table extends string] ? TableRef<Table, RemoveQuotes<Alias>, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<Alias>, undefined> : ParseSchemaTable<T> extends [infer Schema extends string | undefined, infer Table extends string] ? TableRef<Table, Table, Schema> : TableRef<RemoveQuotes<T>, RemoveQuotes<T>, undefined>;
type ParseTableRef<T extends string> = Trim<T> extends `${infer SchemaOrTable} AS ${infer Alias}` ? ParseSchemaTable<SchemaOrTable> extends [
infer Schema extends string | undefined,
infer Table extends string
] ? TableRef<Table, RemoveQuotes<Alias>, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<Alias>, undefined> : Trim<T> extends `${infer SchemaOrTable} ${infer Alias}` ? Alias extends FromTerminators ? ParseSchemaTable<SchemaOrTable> extends [
infer Schema extends string | undefined,
infer Table extends string
] ? TableRef<Table, Table, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<SchemaOrTable>, undefined> : ParseSchemaTable<SchemaOrTable> extends [
infer Schema extends string | undefined,
infer Table extends string
] ? TableRef<Table, RemoveQuotes<Alias>, Schema> : TableRef<RemoveQuotes<SchemaOrTable>, RemoveQuotes<Alias>, undefined> : ParseSchemaTable<T> extends [
infer Schema extends string | undefined,
infer Table extends string
] ? TableRef<Table, Table, Schema> : TableRef<RemoveQuotes<T>, RemoveQuotes<T>, undefined>;
/**

@@ -629,12 +751,18 @@ * Parse schema.table syntax, returns [schema, table] or [undefined, table]

*/
type ParseSingleJoin<T extends string> = [
ExtractJoinType<T>
] extends [never] ? ParsePlainJoin<T> : ParseTypedJoin<T, ExtractJoinType<T>>;
type ParseSingleJoin<T extends string> = [ExtractJoinType<T>] extends [
never
] ? ParsePlainJoin<T> : ParseTypedJoin<T, ExtractJoinType<T>>;
/**
* Parse a plain JOIN (without INNER/LEFT/etc prefix) - treated as INNER JOIN
*/
type ParsePlainJoin<T extends string> = NextToken<T> extends ["JOIN", infer AfterJoin extends string] ? ExtractUntil<AfterJoin, "ON" | FromTerminators> extends [
type ParsePlainJoin<T extends string> = NextToken<T> extends [
"JOIN",
infer AfterJoin extends string
] ? ExtractUntil<AfterJoin, "ON" | FromTerminators> extends [
infer TablePart extends string,
infer OnPart extends string
] ? StartsWith<OnPart, "ON"> extends true ? NextToken<OnPart> extends ["ON", infer ConditionPart extends string] ? ExtractUntil<ConditionPart, FromTerminators | "JOIN" | "INNER" | "LEFT" | "RIGHT" | "FULL" | "CROSS"> extends [
] ? StartsWith<OnPart, "ON"> extends true ? NextToken<OnPart> extends [
"ON",
infer ConditionPart extends string
] ? ExtractUntil<ConditionPart, FromTerminators | "JOIN" | "INNER" | "LEFT" | "RIGHT" | "FULL" | "CROSS"> extends [
infer Condition extends string,

@@ -655,6 +783,12 @@ infer Rest extends string

*/
type ParseTypedJoin<T extends string, JoinTypeResult> = JoinTypeResult extends [infer JType extends JoinType, infer AfterType extends string] ? NextToken<AfterType> extends ["JOIN", infer AfterJoin extends string] ? ExtractUntil<AfterJoin, "ON" | FromTerminators> extends [
type ParseTypedJoin<T extends string, JoinTypeResult> = JoinTypeResult extends [
infer JType extends JoinType,
infer AfterType extends string
] ? NextToken<AfterType> extends ["JOIN", infer AfterJoin extends string] ? ExtractUntil<AfterJoin, "ON" | FromTerminators> extends [
infer TablePart extends string,
infer OnPart extends string
] ? StartsWith<OnPart, "ON"> extends true ? NextToken<OnPart> extends ["ON", infer ConditionPart extends string] ? ExtractUntil<ConditionPart, FromTerminators | "JOIN" | "INNER" | "LEFT" | "RIGHT" | "FULL" | "CROSS"> extends [
] ? StartsWith<OnPart, "ON"> extends true ? NextToken<OnPart> extends [
"ON",
infer ConditionPart extends string
] ? ExtractUntil<ConditionPart, FromTerminators | "JOIN" | "INNER" | "LEFT" | "RIGHT" | "FULL" | "CROSS"> extends [
infer Condition extends string,

@@ -833,3 +967,6 @@ infer Rest extends string

rest: "";
} : NextToken<T> extends ["LIMIT", infer Rest extends string] ? NextToken<Rest> extends [infer Num extends string, infer Remaining extends string] ? {
} : NextToken<T> extends ["LIMIT", infer Rest extends string] ? NextToken<Rest> extends [
infer Num extends string,
infer Remaining extends string
] ? {
limit: ParseNumber<Num>;

@@ -850,3 +987,6 @@ rest: Remaining;

rest: "";
} : NextToken<T> extends ["OFFSET", infer Rest extends string] ? NextToken<Rest> extends [infer Num extends string, infer Remaining extends string] ? {
} : NextToken<T> extends ["OFFSET", infer Rest extends string] ? NextToken<Rest> extends [
infer Num extends string,
infer Remaining extends string
] ? {
offset: ParseNumber<Num>;

@@ -865,3 +1005,2 @@ rest: Remaining;

type ParseNumber<T extends string> = T extends `${infer N extends number}` ? N : undefined;
export {};
//# sourceMappingURL=parser.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/select/parser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/select/parser.ts"],"names":[],"mappings":"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"}

@@ -25,9 +25,9 @@ /**

*/
import type { SQLSelectQuery, SelectClause, ColumnRef, SubqueryExpr, UnionClause, UnionClauseAny, SelectItem } from "./ast.js";
import type { TableColumnRef, UnboundColumnRef, TableWildcard, ComplexExpr, ValidatableColumnRef, TableRef, TableSource, DerivedTableRef, CTEDefinition, JoinClause, AggregateExpr, SubquerySelectClause, MapSQLTypeToTS, ParsedCondition, ColumnRefType, OrderByItem } from "../common/ast.js";
import type { Flatten, MatchError, ParseError, HasTemplateHoles } from "../common/utils.js";
import type { ColumnRef, SelectClause, SelectItem, SQLSelectQuery, SubqueryExpr, UnionClause, UnionClauseAny } from "./ast.js";
import type { AggregateExpr, ColumnRefType, ComplexExpr, CTEDefinition, DerivedTableRef, JoinClause, MapSQLTypeToTS, OrderByItem, ParsedCondition, SubquerySelectClause, TableColumnRef, TableRef, TableSource, TableWildcard, UnboundColumnRef, ValidatableColumnRef } from "../common/ast.js";
import type { DatabaseSchema, GetDefaultSchema } from "../common/schema.js";
import type { Flatten, HasTemplateHoles, MatchError, ParseError } from "../common/utils.js";
import type { ParseSelectSQL } from "./parser.js";
export type { DatabaseSchema } from "../common/schema.js";
export type { MatchError } from "../common/utils.js";
export type { DatabaseSchema } from "../common/schema.js";
/**

@@ -87,3 +87,3 @@ * Options for controlling SELECT query validation depth

*/
export type ValidateSelectSQL<SQL extends string, Schema extends DatabaseSchema, Options extends ValidateSelectOptions = DefaultValidateOptions> = HasTemplateHoles<SQL> extends true ? true : ParseSelectSQL<SQL> extends infer Parsed ? Parsed extends ParseError<infer E> ? E : Parsed extends SQLSelectQuery<infer QueryContent> ? ValidateQueryContent<QueryContent, Schema, Options> : "Failed to parse query" : never;
export type ValidateSelectSQL<SQL extends string, Schema extends DatabaseSchema, Options extends ValidateSelectOptions = DefaultValidateOptions> = SQL extends SQL ? HasTemplateHoles<SQL> extends true ? true : ParseSelectSQL<SQL> extends infer Parsed ? Parsed extends ParseError<infer E> ? E : Parsed extends SQLSelectQuery<infer QueryContent> ? ValidateQueryContent<QueryContent, Schema, Options> : "Failed to parse query" : never : never;
/**

@@ -110,3 +110,3 @@ * Validate the query content (SelectClause or UnionClause)

*/
type ValidateSelectClause<Select, Schema extends DatabaseSchema, Options extends ValidateSelectOptions = DefaultValidateOptions> = Select extends SelectClause<infer Columns, infer From, infer Joins, infer Where, infer GroupBy, infer Having, infer OrderBy, infer _Limit, infer _Offset, infer _Distinct, infer CTEs> ? BuildValidationContext<From, Joins, CTEs, Schema> extends infer Context ? Context extends MatchError<infer E> ? E : ValidateColumns<Columns, Context, Schema> extends infer ColResult ? ColResult extends true ? Options["validateAllFields"] extends false ? true : ValidateAllClauses<Joins, Where, GroupBy, Having, OrderBy, Context, Schema> : ColResult : "Column validation failed" : "Context building failed" : "Invalid SELECT clause";
export type ValidateSelectClause<Select, Schema extends DatabaseSchema, Options extends ValidateSelectOptions = DefaultValidateOptions> = Select extends SelectClause<infer Columns, infer From, infer Joins, infer Where, infer GroupBy, infer Having, infer OrderBy, infer _Limit, infer _Offset, infer _Distinct, infer CTEs> ? BuildValidationContext<From, Joins, CTEs, Schema> extends infer Context ? Context extends MatchError<infer E> ? E : ValidateColumns<Columns, Context, Schema> extends infer ColResult ? ColResult extends true ? Options["validateAllFields"] extends false ? true : ValidateAllClauses<Joins, Where, GroupBy, Having, OrderBy, Context, Schema> : ColResult : "Column validation failed" : "Context building failed" : "Invalid SELECT clause";
/**

@@ -113,0 +113,0 @@ * Validate all clause field references (JOIN ON, WHERE, GROUP BY, HAVING, ORDER BY)

@@ -1,1 +0,1 @@

{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/select/validator.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/select/validator.ts"],"names":[],"mappings":"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"}
{
"name": "@kuindji/sql-type-parser",
"version": "0.3.12",
"version": "0.4.0",
"description": "Type-level SQL parser for TypeScript",

@@ -50,5 +50,6 @@ "author": "Ivan Kuindzhi",

"prepublishOnly": "npm run build",
"test": "tsc --noEmit"
"test": "tsc --noEmit && bun test tests/**/*.test.ts"
},
"devDependencies": {
"@types/bun": "^1.3.3",
"typescript": "^5.0.0"

@@ -55,0 +56,0 @@ },

+85
-20
# Type-Level SQL Parser
> 🎵 _Vibe-coded with Claude Opus 4.5_
> 🎵 _Generated with Claude Opus 4.5 and GPT 5.1_
>

@@ -9,7 +9,15 @@ > 🙏 _Inspired by and built upon [telefrek/sql](https://github.com/telefrek/sql) - a TypeScript SQL parsing series_

- **Compile-time SQL parsing**: Parse SQL queries entirely within TypeScript's type system
- **Type-safe result inference**: Automatically infer result types from SQL queries
- **Query validation**: Catch SQL errors at compile time, not runtime
- **Zero runtime overhead**: Pure type-level operations with no runtime code
- **Compile-time SQL parsing**: Parse SQL queries entirely within TypeScript's type system.
- **Type-safe result inference**: Automatically infer result types from SQL queries.
- **Lightweight query validation**: Catch obvious schema mistakes (missing tables/columns) at compile time.
- **Optional runtime helpers**: Build SQL with a small SELECT query builder and DB helpers, while keeping types in sync.
### Design goals
This library is intentionally pragmatic:
- **Focus on result shapes**: The primary goal is to understand what rows your query returns.
- **Schema-aware names**: Where possible, it checks that table and column names exist in your schema.
- **Not a full SQL implementation**: It does not aim to completely validate SQL syntax or every dialect feature; many complex expressions are treated as opaque strings.
## Installation

@@ -25,3 +33,3 @@

```typescript
```ts
type MySchema = {

@@ -54,3 +62,3 @@ defaultSchema: "public";

```typescript
```ts
import type { QueryResult } from "@kuindji/sql-type-parser";

@@ -62,4 +70,4 @@

type JoinResult = QueryResult<
`SELECT u.name, o.total
FROM users AS u
`SELECT u.name, o.total
FROM users AS u
INNER JOIN orders AS o ON u.id = o.user_id`,

@@ -71,2 +79,53 @@ MySchema

### `SelectQueryBuilder` and `createSelectQuery`
If you prefer to build queries fluently instead of writing raw strings, you can use the SELECT query builder. It assembles an SQL string at runtime and keeps a schema-aware row type at compile time.
```ts
import { createSelectQuery } from "@kuindji/sql-type-parser";
import type { BuilderReturnType, BuilderSQL } from "@kuindji/sql-type-parser";
import type { ECommerceSchema } from "./schema";
const ActiveUsers = createSelectQuery<ECommerceSchema>()
.select([ "id", "email" ])
.from("users")
.where("is_active = TRUE");
type ActiveUsersSQL = BuilderSQL<typeof ActiveUsers>;
// "SELECT id, email FROM users WHERE is_active = TRUE"
type ActiveUsersRow = BuilderReturnType<typeof ActiveUsers>;
// { id: number; email: string }
const sql = ActiveUsers.toString(); // runtime SQL string
```
The builder:
- **Respects your schema** when selecting columns, so the inferred row type matches your tables.
- **Treats most WHERE/JOIN fragments as opaque strings**: it does shallow checks for table and column names where it can, but it does not try to fully parse every expression.
- **Is designed for "typed query building"**, not as a strict SQL linter.
See `examples/select` for more complete builder and DB integration examples.
### `createSelectFn<Schema>`
To plug this library into your existing database client, you can wrap it with `createSelectFn`. You pass in a function that actually executes SQL, and you get back a `select` function that is typed from your schema and queries.
```ts
import { createSelectFn } from "@kuindji/sql-type-parser";
type Schema = MySchema;
const select = createSelectFn<Schema>((sql, params) =>
pool.query(sql, params).then(result => result.rows)
);
// Query string is checked against Schema and result is inferred
const users = await select("SELECT id, name FROM users WHERE id = $1", [ 1 ]);
// users: Array<{ id: number; name: string }>
```
The returned function can also accept a `SelectQueryBuilder` instead of a raw string, so you can build queries fluently and still run them through your normal DB interface.
### `ValidateSQL<SQL, Schema>`

@@ -76,3 +135,3 @@

```typescript
```ts
import type { ValidateSQL } from "@kuindji/sql-type-parser";

@@ -87,2 +146,4 @@

Validation is intentionally shallow: it focuses on tables and columns that can be resolved from your schema, and does not guarantee that every possible SQL construct is valid for your database.
### `InsertResult<SQL, Schema>`

@@ -92,3 +153,3 @@

```typescript
```ts
import type { InsertResult } from "@kuindji/sql-type-parser";

@@ -107,3 +168,3 @@

```typescript
```ts
import type { UpdateResult } from "@kuindji/sql-type-parser";

@@ -122,3 +183,3 @@

```typescript
```ts
import type { DeleteResult } from "@kuindji/sql-type-parser";

@@ -137,3 +198,3 @@

```typescript
```ts
import type { ParseSQL, SQLSelectQuery } from "@kuindji/sql-type-parser";

@@ -147,3 +208,3 @@

The parser handles SELECT, INSERT, UPDATE, and DELETE queries with:
The parser understands a wide range of common SELECT, INSERT, UPDATE, and DELETE queries, including:

@@ -155,14 +216,18 @@ - JOINs (INNER, LEFT, RIGHT, FULL, CROSS)

- UNION, INTERSECT, EXCEPT
- PostgreSQL syntax (JSON operators, type casting, arrays)
- MySQL syntax (backtick quotes, specific functions)
- A mix of PostgreSQL and MySQL style syntax where practical
See [SPECIFICATION.md](./SPECIFICATION.md) for full details.
Support is geared toward typical application queries and type inference rather than exhaustively modelling every dialect and edge case.
## Limitations
- TypeScript's recursion limits may be hit with very complex queries
- Quoted identifiers with spaces not supported: use `"user-id"` not `"user id"`
- **Not a full SQL engine**: some syntactically invalid queries may still type-check if table and column names look reasonable.
- **Expression coverage is intentionally shallow**: complex expressions, vendor-specific functions or casts are often treated as opaque and may infer as `unknown` or `string`.
- **Schema-driven checks**: if a table or column is missing from your TypeScript schema, the library cannot warn about it.
- **TypeScript recursion limits** may be hit with very complex queries.
- **Quoted identifiers with spaces are not supported**: use `"user-id"` instead of `"user id"`.
The intent is to give you useful feedback about **result types** and **schema usage**, not to be a perfect replacement for your database’s own SQL validator.
## License
MIT