🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@kuindji/typed-sql

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kuindji/typed-sql - npm Package Compare versions

Comparing version
0.3.0
to
0.4.0
+11
-3
dist/columns.d.ts
import type { DatabaseSchema, ColumnExists, ColumnExistsInAnyTable, ResolveColumnName, TableExists } from "./schema.js";
import type { AliasesInQuery, IsAliasName, TableKeyFromToken, TableKeyValid, TablesInQuery } from "./tables.js";
import type { CanPrecedeColumn, CleanExpr, CleanIdent, HasSpecial, IsParamPlaceholder, IsQualifiedRefCandidate, IsRuntimeStringFragment, IsSqlConstant, OperatorToken, ReplaceAll, SqlReserved, SplitOnDotClean } from "./parsing.js";
import type { CanPrecedeColumn, CleanExpr, CleanIdent, CleanLooseToken, DQuoteSpaceSentinel, HasSpecial, IsParamPlaceholder, IsQualifiedRefCandidate, IsRuntimeStringFragment, IsSqlConstant, LooseScanView, OperatorToken, ReplaceAll, SqlReserved, SplitOnDotClean } from "./parsing.js";
import type { IsNever } from "./utils.js";

@@ -23,4 +23,11 @@ export type ColumnRef<TableKey extends string, Column extends string> = {

export type ColumnRefValidNoTables<ColRef extends string, S extends DatabaseSchema> = SplitOnDotClean<ColRef> extends [infer A extends string, infer B extends string, infer C extends string] ? TableExists<S, A, B> extends true ? ColumnExists<`${A}.${B}`, C, S> : false : SplitOnDotClean<ColRef> extends [infer A extends string, infer B extends string] ? TableExists<S, S["defaultSchema"], A> extends true ? ColumnExists<`${S["defaultSchema"]}.${A}`, B, S> : ColumnExistsInAnyTable<B, S> : ColumnExistsInAnyTable<CleanIdent<ColRef>, S>;
export type QualifiedColumnRefs<Tokens extends string[], S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string = never, Prev extends string = "", Steps extends any[] = []> = Steps["length"] extends 900 ? Acc : Tokens extends [infer T extends string, ...infer Rest extends string[]] ? T extends `${string}.${string}` ? Prev extends "from" | "join" | "update" | "into" | "delete" ? QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]> : IsQualifiedRefCandidate<T> extends true ? QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc | T, T, [any, ...Steps]> : QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]> : QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]> : Acc;
export type UnqualifiedColumnRefs<Tokens extends string[], S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string = never, Prev extends string = "", Steps extends any[] = []> = Steps["length"] extends 900 ? Acc : Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]] ? IsUnqualifiedColumnCandidate<T, Prev, Next, Tables, Aliases, S> extends true ? UnqualifiedColumnRefs<[Next, ...Rest], S, Tables, Aliases, Acc | T, T, [any, ...Steps]> : UnqualifiedColumnRefs<[Next, ...Rest], S, Tables, Aliases, Acc, T, [any, ...Steps]> : Tokens extends [infer T extends string] ? IsUnqualifiedColumnCandidate<T, Prev, "", Tables, Aliases, S> extends true ? Acc | T : Acc : Acc;
export type QualifiedRefScan<Seg extends string> = LooseScanView<Seg> extends infer V extends string ? QrsWalk<V> : never;
type QrsWalk<V extends string, Acc extends string = never, Prev extends string = "", PrevRaw extends string = "", Kept extends any[] = [], Steps extends any[] = []> = Steps["length"] extends 2000 ? QrsLast<V, Acc, Prev> : Kept["length"] extends 900 ? Acc : V extends `${infer H} ${infer R}` ? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string ? M extends "" ? QrsWalk<R, Acc, Prev, PrevRaw, Kept, [any, ...Steps]> : M extends "from" ? PrevRaw extends "distinct" ? QrsWalk<R, Acc, Prev, "from", Kept, [any, ...Steps]> : QrsWalk<R, Acc, "from", "from", [any, ...Kept], [any, ...Steps]> : M extends `${string}.${string}` ? Prev extends "from" | "join" | "update" | "into" | "delete" ? QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]> : IsQualifiedRefCandidate<M> extends true ? QrsWalk<R, Acc | M, M, M, [any, ...Kept], [any, ...Steps]> : QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]> : QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]> : never : QrsLast<V, Acc, Prev>;
type QrsLast<H extends string, Acc extends string, Prev extends string> = CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string ? M extends `${string}.${string}` ? Prev extends "from" | "join" | "update" | "into" | "delete" ? Acc : IsQualifiedRefCandidate<M> extends true ? Acc | M : Acc : Acc : never;
export type UnqualifiedRefScan<Seg extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = LooseScanView<Seg> extends infer V extends string ? UrsWalk<V, S, Tables, Aliases> : never;
type UrsWalk<V extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string = never, PrevPrev extends string = "", Pend extends string = "", PrevRaw extends string = "", Kept extends any[] = [], Steps extends any[] = []> = Steps["length"] extends 2000 ? UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw> : Kept["length"] extends 900 ? Acc : V extends `${infer H} ${infer R}` ? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string ? M extends "" ? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw, Kept, [any, ...Steps]> : M extends "from" ? PrevRaw extends "distinct" ? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, "from", Kept, [any, ...Steps]> : UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps> : UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps> : never : UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw>;
type UrsShift<R extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string, PrevPrev extends string, Pend extends string, M extends string, Kept extends any[], Steps extends any[]> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true ? UrsWalk<R, S, Tables, Aliases, Acc | Pend, Pend, M, M, [any, ...Kept], [any, ...Steps]> : UrsWalk<R, S, Tables, Aliases, Acc, Pend, M, M, [any, ...Kept], [any, ...Steps]>;
type UrsLast<H extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string, PrevPrev extends string, Pend extends string, PrevRaw extends string> = CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string ? M extends "" ? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend> : M extends "from" ? PrevRaw extends "distinct" ? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend> : UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M> : UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M> : never;
type UrsLast2<S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string, PrevPrev extends string, Pend extends string, M extends string> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true ? UrsEnd<S, Tables, Aliases, Acc | Pend, Pend, M> : UrsEnd<S, Tables, Aliases, Acc, Pend, M>;
type UrsEnd<S extends DatabaseSchema, Tables extends string, Aliases extends string, Acc extends string, PrevPrev extends string, Pend extends string> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, "", Tables, Aliases, S> extends true ? Acc | Pend : Acc;
export type UnqualifiedColumnValid<Col extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = IsNever<Tables> extends true ? ColumnExistsInAnyTable<CleanIdent<Col>, S> : [ResolveTableKeyForUnqualified<Tables, Aliases, S, CleanIdent<Col>>] extends [never] ? false : true;

@@ -34,2 +41,3 @@ export type IsUnqualifiedColumnCandidate<Token extends string, Prev extends string, Next extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = Token extends "" ? false : IsRuntimeStringFragment<Token> extends true ? false : Token extends OperatorToken ? false : Token extends `${string}.${string}` ? false : Token extends `'${string}'` ? false : Token extends `${string}'${string}` ? false : Token extends `${number}` ? false : IsParamPlaceholder<Token> extends true ? false : IsSqlConstant<Token> extends true ? false : HasSpecial<Token> extends true ? false : CleanIdent<Token> extends SqlReserved ? false : IsAliasName<Token, Aliases> extends true ? false : Prev extends "as" ? false : Prev extends "from" | "join" | "update" | "into" | "delete" ? false : Next extends "(" ? false : Next extends `'${string}` ? false : Prev extends "," ? (IsTableName<Token, S> extends true ? false : CanPrecedeColumn<Prev>) : IsNever<Tables> extends true ? IsTableName<Token, S> extends true ? false : CanPrecedeColumn<Prev> : CanPrecedeColumn<Prev>;

export type TablesWithColumn<Tables extends string, Column extends string, S extends DatabaseSchema> = Tables extends `${infer Schema}.${infer Table}` ? ColumnExists<`${Schema}.${Table}`, Column, S> extends true ? `${Schema}.${Table}` : never : never;
export {};
//# sourceMappingURL=columns.d.ts.map

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

{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../src/columns.ts"],"names":[],"mappings":"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"}
import type { DatabaseSchema, ColumnTypeFromTableKey, RowTypeForTable, RowTypeForTables } from "./schema.js";
import type { ColumnRef, ColumnRefValidLooseWith, ParseColumnRef, QualifiedColumnRefs, ResolveTableKey, UnqualifiedColumnRefs, UnqualifiedColumnValid } from "./columns.js";
import type { ColumnRef, ColumnRefValidLooseWith, ParseColumnRef, QualifiedRefScan, ResolveTableKey, UnqualifiedRefScan, UnqualifiedColumnValid } from "./columns.js";
import type { AliasesInQuery, TablesInQuery } from "./tables.js";
import type { CleanExpr, CleanIdent, ExtractAlias, ExtractAliasResult, ExtractBefore, ExtractBeforeFromTopLevel, IsIdentifier, IsParamPlaceholder, IsRuntimeStringFragment, IsSqlConstant, SqlConstantType, SplitBalancedParen, SplitTopLevel, TokenizeLoose, Trim } from "./parsing.js";
import type { CleanExpr, CleanIdent, ExtractAlias, ExtractAliasResult, ExtractBefore, ExtractBeforeFromTopLevel, IsIdentifier, IsParamPlaceholder, IsRuntimeStringFragment, IsSqlConstant, SqlConstantType, SplitBalancedParen, SplitTopLevel, Trim } from "./parsing.js";
import type { AllTrue } from "./utils.js";

@@ -25,3 +25,9 @@ export type IsIgnorableRuntimeExpr<E extends string> = IsRuntimeStringFragment<E> extends true ? true : [E] extends [" "] ? true : false;

export type StripOuterCast<E extends string> = CleanExpr<E> extends `${infer Inner}::${string}` ? Inner : CleanExpr<E> extends `cast(${infer Inner} as ${string})` ? Inner : CleanExpr<E> extends `cast (${infer Inner} as ${string})` ? Inner : E;
export type ApplyProjectionNull<T, E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string> = CleanExpr<StripOuterCast<E>> extends `coalesce(${infer Args})` ? CoalesceAllArgsNullable<SplitTopLevel<Args>, Tables, Aliases, S, Nullable> extends true ? T | null : T : ApplyJoinNull<T, E, Nullable>;
export type ApplyProjectionNull<T, E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string> = CleanExpr<StripOuterCast<E>> extends `coalesce(${infer Args})` ? CoalesceAllArgsNullable<SplitTopLevel<Args>, Tables, Aliases, S, Nullable> extends true ? T | null : T : [Nullable] extends [never] ? T : [T] extends [never] ? ApplyJoinNull<T, E, Nullable> : [T] extends [number | null] ? E extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}` ? ArithRefJoinNullable<E, Tables, Aliases, S, Nullable> extends true ? T | null : ApplyJoinNull<T, E, Nullable> : ApplyJoinNull<T, E, Nullable> : ApplyJoinNull<T, E, Nullable>;
type ArithRefJoinNullable<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string, Steps extends any[] = []> = Steps["length"] extends 8 ? false : UnwrapRedundantParens<Trim<E>> extends infer SC extends string ? SC extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}` ? SplitTopLevelOp<SC> extends infer SR ? [SR] extends [never] ? ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable> : SR extends {
__op: [infer L extends string, infer Op extends string, infer R extends string];
} ? Op extends "||" ? false : ArithRefJoinNullable<Trim<L>, Tables, Aliases, S, Nullable, [any, ...Steps]> extends true ? true : ArithRefJoinNullable<Trim<R>, Tables, Aliases, S, Nullable, [any, ...Steps]> : ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable> : false : ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable> : false;
type ArithOperandJoinNullable<SC extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string> = CleanExpr<StripOuterCast<SC>> extends `coalesce(${infer Args})` ? CoalesceAllArgsNullable<SplitTopLevel<Args>, Tables, Aliases, S, Nullable> : SC extends `${string}(${string}` ? NullableQualRefIn<SC, Nullable> : RefQualifier<SC> extends infer Q extends string ? [Q] extends [never] ? false : Q extends Nullable ? true : false : false;
type NullableQualRefIn<E extends string, Nullable extends string> = true extends (Nullable extends string ? QualRefIn<E, Nullable> : never) ? true : false;
type QualRefIn<E extends string, Q extends string> = E extends `${Q}.${string}` ? true : E extends `${string}${" " | "(" | "," | "+" | "-" | "*" | "/" | "%"}${Q}.${string}` ? true : false;
export type CoalesceAllArgsNullable<Args extends string[], Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string, Steps extends any[] = []> = Steps["length"] extends 30 ? true : Args extends [infer H extends string, ...infer Rest extends string[]] ? CoalesceArgNullable<H, Tables, Aliases, S, Nullable> extends true ? CoalesceAllArgsNullable<Rest, Tables, Aliases, S, Nullable, [any, ...Steps]> : false : true;

@@ -38,3 +44,62 @@ export type CoalesceArgNullable<Arg extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string> = RefQualifier<Arg> extends infer Q extends string ? [Q] extends [never] ? null extends ExprType<Arg, Tables, Aliases, S> ? true : false : Q extends Nullable ? true : null extends ExprType<Arg, Tables, Aliases, S> ? true : false : null extends ExprType<Arg, Tables, Aliases, S> ? true : false;

export type IsBoolExpr<CE extends string> = CE extends `case ${string}` ? false : CE extends `${string}${"<" | ">" | "=" | "!"}${string}` ? HasTopLevelCompare<CE> : false;
export type HasTopLevelCompare<S extends string, Depth extends any[] = [], Steps extends any[] = [], InQ extends boolean = false, InDQ extends boolean = false> = Steps["length"] extends 400 ? false : S extends `${infer C}${infer Rest}` ? InQ extends true ? HasTopLevelCompare<Rest, Depth, [any, ...Steps], C extends "'" ? false : true, InDQ> : InDQ extends true ? HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, C extends `"` ? false : true> : C extends "'" ? HasTopLevelCompare<Rest, Depth, [any, ...Steps], true, InDQ> : C extends `"` ? HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, true> : C extends "(" ? HasTopLevelCompare<Rest, [any, ...Depth], [any, ...Steps], InQ, InDQ> : C extends ")" ? HasTopLevelCompare<Rest, Depth extends [any, ...infer D] ? D : [], [any, ...Steps], InQ, InDQ> : Depth["length"] extends 0 ? S extends `->>${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `->${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `#>>${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `#>${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `@>${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `<@${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `::${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `<<${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : S extends `>>${infer R}` ? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ> : C extends "<" | ">" | "=" | "!" ? true : HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, InDQ> : HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, InDQ> : false;
export type HasTopLevelCompare<S extends string> = HtcJump<S, [], []>;
type HtcJump<S extends string, Depth extends any[], Steps extends any[]> = Steps["length"] extends 400 ? false : S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` ? HtcJump2<S, Depth, Steps> : HtcRunCheck<P, Depth> extends true ? true : R extends `${string}'${infer R2}` ? HtcJump<R2, Depth, [any, ...Steps]> : false : HtcJump2<S, Depth, Steps>;
type HtcJump2<S extends string, Depth extends any[], Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? HtcJump3<S, Depth, Steps> : HtcRunCheck<P, Depth> extends true ? true : R extends `${string}"${infer R2}` ? HtcJump<R2, Depth, [any, ...Steps]> : false : HtcJump3<S, Depth, Steps>;
type HtcJump3<S extends string, Depth extends any[], Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? HtcJump4<S, Depth, Steps> : HtcRunCheck<P, Depth> extends true ? true : HtcJump<R, [any, ...Depth], [any, ...Steps]> : HtcJump4<S, Depth, Steps>;
type HtcJump4<S extends string, Depth extends any[], Steps extends any[]> = S extends `${infer P})${infer R}` ? HtcRunCheck<P, Depth> extends true ? true : HtcJump<R, Depth extends [any, ...infer D] ? D : [], [any, ...Steps]> : HtcRunCheck<S, Depth>;
type HtcRunCheck<P extends string, Depth extends any[]> = Depth["length"] extends 0 ? P extends `${string}${"=" | "!"}${string}` ? true : P extends `${string}${"<" | ">"}${string}` ? HtcRunScan<P> : false : false;
type HtcRunScan<R extends string, Steps extends any[] = []> = Steps["length"] extends 50 ? false : R extends `${infer A}<${infer B}` ? A extends `${string}>${string}` ? HtcRunGt<R, Steps> : B extends `@${infer B2}` ? HtcRunScan<B2, [any, ...Steps]> : B extends `<${infer B2}` ? HtcRunScan<B2, [any, ...Steps]> : true : HtcRunGt<R, Steps>;
type HtcRunGt<R extends string, Steps extends any[]> = R extends `${infer A}>${infer B}` ? A extends `${string}${"-" | "#" | "@"}` ? B extends `>${infer B2}` ? HtcRunScan<B2, [any, ...Steps]> : HtcRunScan<B, [any, ...Steps]> : B extends `>${infer B2}` ? HtcRunScan<B2, [any, ...Steps]> : true : false;
type SplitTopLevelOp<S extends string> = StoDrive<StoWorker<S>>;
type StoDrive<R> = [
R
] extends [never] ? never : R extends {
__c: [infer S2 extends string, infer D extends any[], infer A extends string];
} ? StoDrive<StoWorker<S2, D, A, []>> : R;
type StoWorker<S extends string, Depth extends any[] = [], Acc extends string = "", Steps extends any[] = []> = Steps["length"] extends 80 ? {
__c: [S, Depth, Acc];
} : StoJump1<S, Depth, Acc, Steps>;
type StoRunGate<P extends string, Depth extends any[], Acc extends string, Tail extends string> = Depth["length"] extends 0 ? StoRunScan<P, Acc, Tail> : never;
type StoJump1<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` ? StoJump2<S, Depth, Acc, Steps> : StoRunGate<P, Depth, Acc, `'${R}`> extends infer RR ? [RR] extends [never] ? R extends `${infer Span}'${infer R2}` ? StoWorker<R2, Depth, `${Acc}${P}'${Span}'`, [any, ...Steps]> : never : RR : never : StoJump2<S, Depth, Acc, Steps>;
type StoJump2<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? StoJump3<S, Depth, Acc, Steps> : StoRunGate<P, Depth, Acc, `"${R}`> extends infer RR ? [RR] extends [never] ? R extends `${infer Span}"${infer R2}` ? StoWorker<R2, Depth, `${Acc}${P}"${Span}"`, [any, ...Steps]> : never : RR : never : StoJump3<S, Depth, Acc, Steps>;
type StoJump3<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? StoJump4<S, Depth, Acc, Steps> : StoRunGate<P, Depth, Acc, `(${R}`> extends infer RR ? [RR] extends [never] ? StoWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]> : RR : never : StoJump4<S, Depth, Acc, Steps>;
type StoJump4<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P})${infer R}` ? StoRunGate<P, Depth, Acc, `)${R}`> extends infer RR ? [RR] extends [never] ? StoWorker<R, Depth extends [any, ...infer D] ? D : [], `${Acc}${P})`, [any, ...Steps]> : RR : never : StoRunGate<S, Depth, Acc, "">;
type StoRunScan<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}+${infer B}` ? A extends `${string}${"-" | "*" | "/" | "%" | "|"}${string}` ? StoRunScan2<P, Acc, Tail> : {
__op: [`${Acc}${A}`, "+", `${B}${Tail}`];
} : StoRunScan2<P, Acc, Tail>;
type StoRunScan2<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}-${infer B}` ? A extends `${string}${"*" | "/" | "%" | "|"}${string}` ? StoRunScan3<P, Acc, Tail> : B extends `>${infer B2}` ? StoRunScan<B2, `${Acc}${A}->`, Tail> : {
__op: [`${Acc}${A}`, "-", `${B}${Tail}`];
} : StoRunScan3<P, Acc, Tail>;
type StoRunScan3<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}*${infer B}` ? A extends `${string}${"/" | "%" | "|"}${string}` ? StoRunScan4<P, Acc, Tail> : {
__op: [`${Acc}${A}`, "*", `${B}${Tail}`];
} : StoRunScan4<P, Acc, Tail>;
type StoRunScan4<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}/${infer B}` ? A extends `${string}${"%" | "|"}${string}` ? StoRunScan5<P, Acc, Tail> : {
__op: [`${Acc}${A}`, "/", `${B}${Tail}`];
} : StoRunScan5<P, Acc, Tail>;
type StoRunScan5<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}%${infer B}` ? A extends `${string}|${string}` ? StoRunScan6<P, Acc, Tail> : {
__op: [`${Acc}${A}`, "%", `${B}${Tail}`];
} : StoRunScan6<P, Acc, Tail>;
type StoRunScan6<P extends string, Acc extends string, Tail extends string> = P extends `${infer A}|${infer B}` ? B extends `|${infer B2}` ? B2 extends `/${string}` ? {
__ab: true;
} : Trim<`${Acc}${A}`> extends "" ? {
__ab: true;
} : {
__op: [`${Acc}${A}`, "||", `${B2}${Tail}`];
} : {
__ab: true;
} : never;
type ArithCombineType<L extends string, R extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = Trim<L> extends "" ? unknown : ArithCombineTypes<ExprType<Trim<L>, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>;
type ArithCombineTypes<LT, R extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = Trim<R> extends "" ? unknown : ArithNumClass<LT> extends infer LN ? LN extends false ? unknown : ArithNumClass<ExprType<Trim<R>, Tables, Aliases, S, [any, ...Steps]>> extends infer RN ? RN extends false ? unknown : "nullable" extends LN | RN ? number | null : number : unknown : unknown;
type ArithNumClass<T> = [
T
] extends [never] ? false : [T] extends [number] ? "num" : [T] extends [number | null] ? "nullable" : false;
type ArithViaScan<CE extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[], NoOp> = SplitTopLevelOp<CE> extends infer SR ? [SR] extends [never] ? NoOp : SR extends {
__op: [infer L extends string, infer Op extends string, infer R extends string];
} ? Op extends "||" ? string : ArithCombineType<L, R, Tables, Aliases, S, Steps> : unknown : never;
type TopLevelArithType<CE extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = CE extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}` ? ArithViaScan<CE, Tables, Aliases, S, Steps, unknown> : unknown;
type FuncOrArithType<CE extends string, Func extends string, Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = Func extends `${string}${"+" | "-" | "*" | "/" | "%" | "|"}${string}` ? ArithViaScan<CE, Tables, Aliases, S, Steps, FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>> : Args extends `${string})${string}` ? CE extends `${string}(${infer AfterOpen}` ? SplitBalancedParen<`(${AfterOpen}`> extends {
inner: infer Inner extends string;
rest: infer Rest extends string;
} ? Trim<Rest> extends "" ? FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]> : FuncRestDispatch<Trim<Rest>, Func, Args, Inner, Tables, Aliases, S, Steps> : FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]> : FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]> : FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>;
type FuncRestDispatch<RestT extends string, Func extends string, Args extends string, Inner extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = RestT extends `||${infer R}` ? R extends `/${string}` ? unknown : string : RestT extends `+${infer R}` ? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps> : RestT extends `-${infer R}` ? R extends `>${string}` ? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]> : ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps> : RestT extends `*${infer R}` ? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps> : RestT extends `/${infer R}` ? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps> : RestT extends `%${infer R}` ? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps> : FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>;
type UnwrapRedundantParens<E extends string, Steps extends any[] = []> = Steps["length"] extends 12 ? E : E extends `(select ${string})` ? E : E extends `(${string}` ? SplitBalancedParen<E> extends {

@@ -44,7 +109,7 @@ inner: infer Inner extends string;

} ? UnwrapRedundantParens<Trim<Inner>, [any, ...Steps]> : E : E;
export type ExprType<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = []> = Steps["length"] extends 25 ? unknown : IsIgnorableRuntimeExpr<E> extends true ? unknown : UnwrapRedundantParens<CleanExpr<E>> extends infer CE extends string ? IsRuntimeStringFragment<CE> extends true ? unknown : CE extends "*" ? RowTypeForTables<Tables, S> : CE extends `${infer T}.*` ? RowTypeForTable<ResolveTableKey<CleanIdent<T>, Tables, Aliases, S>, S> : CE extends `(select ${infer SubBody})` ? ScalarSubqueryType<SubBody, S, [any, ...Steps]> : IsBoolExpr<CE> extends true ? boolean : IsCaseExpr<CE> extends true ? unknown : [OuterCastName<CE>] extends [never] ? CE extends `cast(${infer Inner} as ${infer CastTypeName})` ? ExprType<Inner, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<CastTypeName> : CE extends `cast (${infer Inner} as ${infer CastTypeName})` ? ExprType<Inner, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<CastTypeName> : CE extends `${infer Func}(${infer Args})` ? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]> : CE extends `${infer Func} (${infer Args})` ? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]> : CE extends `${string}||${string}` ? string : CE extends `${infer JBase}->>${string}` ? ExprType<JBase, Tables, Aliases, S, [any, ...Steps]> extends never ? never : string : CE extends `${infer JBase}#>>${string}` ? ExprType<JBase, Tables, Aliases, S, [any, ...Steps]> extends never ? never : string : CE extends "null" ? null : CE extends `'${infer L}'` ? string : CE extends `${number}` ? number : CE extends "true" ? boolean : CE extends "false" ? boolean : IsSqlConstant<CE> extends true ? SqlConstantType<CE> : IsParamPlaceholder<CE> extends true ? unknown : [ParseColumnRef<CE, Tables, Aliases, S>] extends [infer Ref] ? [Ref] extends [never] ? IsIdentifier<CE> extends true ? never : unknown : Ref extends ColumnRef<infer TableKey extends string, infer Column extends string> ? ColumnTypeFromTableKey<TableKey, Column, S> : IsIdentifier<CE> extends true ? never : unknown : unknown : OuterCastName<CE> extends `${string}->>${string}` ? string : OuterCastName<CE> extends `${string}#>>${string}` ? string : CastInnerIsSimpleRef<OuterCastInner<CE>> extends true ? ExprType<OuterCastInner<CE>, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<OuterCastName<CE>> : SqlTypeToTs<OuterCastName<CE>> : unknown;
export type ExprType<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = []> = Steps["length"] extends 25 ? unknown : IsIgnorableRuntimeExpr<E> extends true ? unknown : UnwrapRedundantParens<CleanExpr<E>> extends infer CE extends string ? IsRuntimeStringFragment<CE> extends true ? unknown : CE extends "*" ? RowTypeForTables<Tables, S> : CE extends `${infer T}.*` ? RowTypeForTable<ResolveTableKey<CleanIdent<T>, Tables, Aliases, S>, S> : CE extends `(select ${infer SubBody})` ? ScalarSubqueryType<SubBody, S, [any, ...Steps]> : IsBoolExpr<CE> extends true ? boolean : IsCaseExpr<CE> extends true ? unknown : [OuterCastName<CE>] extends [never] ? CE extends `cast(${infer Inner} as ${infer CastTypeName})` ? ExprType<Inner, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<CastTypeName> : CE extends `cast (${infer Inner} as ${infer CastTypeName})` ? ExprType<Inner, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<CastTypeName> : CE extends `${infer Func}(${infer Args})` ? FuncOrArithType<CE, Func, Args, Tables, Aliases, S, Steps> : CE extends `${infer Func} (${infer Args})` ? FuncOrArithType<CE, Func, Args, Tables, Aliases, S, Steps> : CE extends `${string}||${string}` ? string : CE extends `${infer JBase}->>${string}` ? ExprType<JBase, Tables, Aliases, S, [any, ...Steps]> extends never ? never : string : CE extends `${infer JBase}#>>${string}` ? ExprType<JBase, Tables, Aliases, S, [any, ...Steps]> extends never ? never : string : CE extends "null" ? null : CE extends `'${infer L}'` ? string : CE extends `${number}` ? number : CE extends "true" ? boolean : CE extends "false" ? boolean : IsSqlConstant<CE> extends true ? SqlConstantType<CE> : IsParamPlaceholder<CE> extends true ? unknown : [ParseColumnRef<CE, Tables, Aliases, S>] extends [infer Ref] ? [Ref] extends [never] ? IsIdentifier<CE> extends true ? never : TopLevelArithType<CE, Tables, Aliases, S, Steps> : Ref extends ColumnRef<infer TableKey extends string, infer Column extends string> ? ColumnTypeFromTableKey<TableKey, Column, S> : IsIdentifier<CE> extends true ? never : TopLevelArithType<CE, Tables, Aliases, S, Steps> : unknown : OuterCastName<CE> extends `${string}->>${string}` ? string : OuterCastName<CE> extends `${string}#>>${string}` ? string : CastInnerIsSimpleRef<OuterCastInner<CE>> extends true ? ExprType<OuterCastInner<CE>, Tables, Aliases, S, [any, ...Steps]> extends never ? never : SqlTypeToTs<OuterCastName<CE>> : SqlTypeToTs<OuterCastName<CE>> : unknown;
export type ScalarSubqueryType<SubBody extends string, S extends DatabaseSchema, Steps extends any[]> = ExtractBeforeFromTopLevel<SubBody> extends infer SL extends string ? SplitTopLevel<SL> extends [infer First extends string, ...infer _Rest] ? First extends string ? `select ${SubBody}` extends infer SubQuery extends string ? TablesInQuery<SubQuery, S> extends infer SubTables extends string ? AliasesInQuery<SubQuery, S> extends infer SubAliases extends string ? ExtractAliasResult<First> extends {
expr: infer RawExpr extends string;
} ? ExprType<RawExpr, SubTables, SubAliases, S, Steps> : unknown : unknown : unknown : unknown : unknown : unknown : unknown;
export type FunctionReturn<Func extends string, Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = []> = Steps["length"] extends 25 ? unknown : ArgsValid<Args, Tables, Aliases, S, Steps> extends false ? never : Func extends "count" ? number : Func extends "sum" | "avg" ? number : Func extends "min" | "max" ? FirstArgType<Args, Tables, Aliases, S, Steps> : Func extends "upper" | "lower" | "concat" ? string : Func extends "coalesce" ? UnionArgTypes<Args, Tables, Aliases, S, Steps> : unknown;
export type FunctionReturn<Func extends string, Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = []> = Steps["length"] extends 25 ? unknown : ArgsValid<Args, Tables, Aliases, S, Steps> extends false ? never : Func extends "count" ? number : Func extends "sum" | "avg" ? number : Func extends "min" | "max" ? FirstArgType<Args, Tables, Aliases, S, Steps> : Func extends "upper" | "lower" | "concat" ? string : Func extends "coalesce" ? UnionArgTypes<Args, Tables, Aliases, S, Steps> : Func extends "extract" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? number | null : number : unknown;
export type ExprsValid<Exprs extends string[], N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? ExprsValidList<Exprs, Tables, Aliases, S> : true : true;

@@ -64,4 +129,4 @@ export type ExprValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, LocalRels extends string = never> = IsIgnorableRuntimeExpr<E> extends true ? true : ExtractAlias<E> extends {

export type ExprColumnRefsValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = ExprQualifiedRefsValid<E, Tables, Aliases, S> extends true ? ExprUnqualifiedRefsValid<E, Tables, Aliases, S> : false;
export type ExprQualifiedRefsValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = QualifiedColumnRefs<TokenizeLoose<E>, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
export type ExprUnqualifiedRefsValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = UnqualifiedColumnRefs<TokenizeLoose<E>, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? UnqualifiedColumnValid<Cols, Tables, Aliases, S> : true> : true;
export type ExprQualifiedRefsValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = QualifiedRefScan<E> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
export type ExprUnqualifiedRefsValid<E extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = UnqualifiedRefScan<E, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? UnqualifiedColumnValid<Cols, Tables, Aliases, S> : true> : true;
export type ExprsValidList<Exprs extends string[], Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[] = [], LocalRels extends string = never> = Steps["length"] extends 100 ? true : Exprs extends [infer H extends string, ...infer Rest extends string[]] ? ExprValid<H, Tables, Aliases, S, LocalRels> extends true ? ExprsValidList<Rest, Tables, Aliases, S, [any, ...Steps], LocalRels> : false : true;

@@ -68,0 +133,0 @@ export type FirstArgType<Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = SplitTopLevel<Args> extends [infer First extends string, ...infer _] ? ExprType<First, Tables, Aliases, S, Steps> : unknown;

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

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

@@ -6,14 +6,18 @@ import type { CleanIdent, FilterEmpty, HasSpecial, MapClean, Split, Trim, TrimLeft } from "./string-utils.js";

export type FirstTopLevelReturningTail<S extends string> = string extends S ? "" : S extends `${string}'${string}` ? FirstTopLevelReturningTailWalk<S> : S extends `${string}"${string}` ? FirstTopLevelReturningTailWalk<S> : S extends `${string} returning ${infer After}` ? After : "";
type FirstTopLevelReturningTailWalk<S extends string, InString extends boolean = false, InDString extends boolean = false, Steps extends any[] = []> = string extends S ? "" : Steps["length"] extends 1200 ? S extends `${string} returning ${infer After}` ? After : "" : InString extends true ? S extends `${infer C}${infer Rest}` ? FirstTopLevelReturningTailWalk<Rest, C extends "'" ? false : true, InDString, [any, ...Steps]> : "" : InDString extends true ? S extends `${infer C}${infer Rest}` ? FirstTopLevelReturningTailWalk<Rest, InString, C extends `"` ? false : true, [any, ...Steps]> : "" : S extends ` returning ${infer After}` ? After : S extends `${infer C}${infer Rest}` ? FirstTopLevelReturningTailWalk<Rest, C extends "'" ? true : false, C extends `"` ? true : false, [any, ...Steps]> : "";
type FirstTopLevelReturningTailWalk<S extends string, Steps extends any[] = []> = string extends S ? "" : Steps["length"] extends 400 ? S extends `${string} returning ${infer After}` ? After : "" : S extends `${infer Before} returning ${infer After}` ? Before extends `${string}'${string}` | `${string}"${string}` ? FtrtQuoteJump<S, Steps> : After : "";
type FtrtQuoteJump<S extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` ? FtrtDQuoteJump<S, Steps> : R extends `${string}'${infer R2}` ? FirstTopLevelReturningTailWalk<R2, [any, ...Steps]> : "" : FtrtDQuoteJump<S, Steps>;
type FtrtDQuoteJump<S extends string, Steps extends any[]> = S extends `${string}"${infer R}` ? R extends `${string}"${infer R2}` ? FirstTopLevelReturningTailWalk<R2, [any, ...Steps]> : "" : "";
type SplitBalancedParenWorker<S extends string, Depth extends any[] = [], Acc extends string = "", InString extends boolean = false, Steps extends any[] = []> = Steps["length"] extends 350 ? {
__c: [S, Depth, Acc, InString];
} : S extends `${infer C}${infer Rest}` ? C extends "'" ? SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString extends true ? false : true, [any, ...Steps]> : InString extends true ? SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString, [any, ...Steps]> : C extends "(" ? Depth["length"] extends 0 ? SplitBalancedParenWorker<Rest, [any], Acc, InString, [any, ...Steps]> : SplitBalancedParenWorker<Rest, [any, ...Depth], `${Acc}${C}`, InString, [any, ...Steps]> : C extends ")" ? Depth extends [any, ...infer D extends any[]] ? D["length"] extends 0 ? {
inner: Acc;
rest: Rest;
} : SplitBalancedParenWorker<Rest, D, `${Acc}${C}`, InString, [any, ...Steps]> : {
inner: Acc;
rest: Rest;
} : SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString, [any, ...Steps]> : {
inner: Acc;
} : InString extends true ? S extends `${infer P}'${infer R}` ? SplitBalancedParenWorker<R, Depth, `${Acc}${P}'`, false, [any, ...Steps]> : {
inner: `${Acc}${S}`;
rest: "";
} : S extends `${infer P}'${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? SbpParenJump<S, Depth, Acc, Steps> : SplitBalancedParenWorker<R, Depth, `${Acc}${P}'`, true, [any, ...Steps]> : SbpParenJump<S, Depth, Acc, Steps>;
type SbpParenJump<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? SbpCloseJump<S, Depth, Acc, Steps> : Depth["length"] extends 0 ? SplitBalancedParenWorker<R, [any], `${Acc}${P}`, false, [any, ...Steps]> : SplitBalancedParenWorker<R, [any, ...Depth], `${Acc}${P}(`, false, [any, ...Steps]> : SbpCloseJump<S, Depth, Acc, Steps>;
type SbpCloseJump<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P})${infer R}` ? Depth extends [any, any, ...infer D extends any[]] ? SplitBalancedParenWorker<R, [any, ...D], `${Acc}${P})`, false, [any, ...Steps]> : {
inner: `${Acc}${P}`;
rest: R;
} : {
inner: `${Acc}${S}`;
rest: "";
};

@@ -20,0 +24,0 @@ export type SplitBalancedParen<S extends string> = SplitBalancedParenDrive<SplitBalancedParenWorker<S>>;

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

{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/parsing/extract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3H,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC1C,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,MAAM,KAAK,EAAE,GACrC,aAAa,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,GAC/C,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,MAAM,WAAW,MAAM,KAAK,EAAE,GACtD,aAAa,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAWjB,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAOlC,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,MAAM,IACnD,MAAM,SAAS,CAAC,GACV,EAAE,GACF,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,8BAA8B,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,8BAA8B,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,GAAG,MAAM,cAAc,MAAM,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;AAE9E,KAAK,8BAA8B,CAC/B,CAAC,SAAS,MAAM,EAChB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,MAAM,SAAS,CAAC,GACd,EAAE,GACF,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxB,CAAC,SAAS,GAAG,MAAM,cAAc,MAAM,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,GAC3D,QAAQ,SAAS,IAAI,GACjB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,8BAA8B,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,EAAE,GACN,SAAS,SAAS,IAAI,GAClB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,8BAA8B,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC7F,EAAE,GACN,CAAC,SAAS,cAAc,MAAM,KAAK,EAAE,GACjC,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,8BAA8B,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACjH,EAAE,CAAC;AAe7B,KAAK,wBAAwB,CACzB,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EACxB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACzB;IAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;CAAE,GAClC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,CAAC,SAAS,GAAG,GACT,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC1G,QAAQ,SAAS,IAAI,GACjB,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9E,CAAC,SAAS,GAAG,GACT,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,wBAAwB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,wBAAwB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC5F,CAAC,SAAS,GAAG,GACT,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,GACzC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACjB;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC1B,wBAAwB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9E;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC9B,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,EAAE,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAC3C,uBAAuB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,KAAK,uBAAuB,CAAC,CAAC,IAC1B,CAAC,SAAS;IAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,MAAM,QAAQ,SAAS,OAAO,CAAC,CAAA;CAAE,GAC1H,uBAAuB,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,GAC9E,CAAC,CAAC;AASZ,MAAM,MAAM,eAAe,CACvB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACxB,GAAG,GAAG,GAAG,CAAC,EAAE,GACZ,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,SAAS,EAAE,GAC1C,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC9G,IAAI,CAAC,KAAK,CAAC,SAAS,UAAU,MAAM,EAAE,GAClC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC1D,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GAAG,GAAG,CAAC,EAAE,GAChB,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AAMvB,MAAM,MAAM,sBAAsB,CAC9B,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,MAAM,EACrB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACxB,GAAG,GACH,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,SAAS,EAAE,GACjD,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC9G,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACxE,GAAG,GACP,GAAG,CAAC;AAUd,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACzC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAEzD,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACzD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,KAAK,UAAU,MAAM,IAAI,EAAE,GAC1C,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACpC,CAAC,CAAC;AAIhB,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC1C,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,MAAM,KAAK,EAAE,GACrC,yBAAyB,CAAC,KAAK,CAAC,SAAS,MAAM,EAAE,SAAS,MAAM,GAC5D,KAAK,SAAS,GAAG,EAAE,SAAS,MAAM,QAAQ,EAAE,GACxC,QAAQ,GACR,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAIb,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIzC,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,MAAM,IAAI,EAAE,GACzC,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,GACnD,gBAAgB,CAAC,IAAI,CAAC,GACtB,IAAI,SAAS,GAAG,MAAM,MAAM,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,GACpD,gBAAgB,CAAC,IAAI,CAAC,GACtB,EAAE,GACV,EAAE,CAAC;AAEb,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAC/C,CAAC,SAAS,GAAG,MAAM,gBAAgB,MAAM,IAAI,EAAE,GACzC,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,MAAM,EAAE,GACnC,gBAAgB,CAAC,IAAI,CAAC,GACtB,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,GACpC,gBAAgB,CAAC,IAAI,CAAC,GACtB,EAAE,GACV,EAAE,CAAC;AAEb,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAChD,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,EAAE,GAClC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,gBAAgB,CAAC,MAAM,CAAC,GACxB,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAEb,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,MAAM,IACxD,CAAC,SAAS,GAAG,MAAM,kBAAkB,MAAM,IAAI,EAAE,GAC3C,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,gBAAgB,CAAC,MAAM,CAAC,GACxB,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AASb,MAAM,MAAM,iCAAiC,CAAC,CAAC,SAAS,MAAM,IAC1D,CAAC,SAAS,GAAG,MAAM,kBAAkB,MAAM,IAAI,EAAE,GAC3C,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAClC,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAEb,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACxE,KAAK,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAChE,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,EAAE,GAChC,UAAU,CAAC,KAAK,CAAC,SAAS,YAAY,MAAM,GAAG,EAAE,GAC7C,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GACnC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,GAC7B,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,GAC7B,GAAG,CAAC;AAId,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACzC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,EAAE,GAK1B,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,MAAM,KAAK,SAAS,MAAM,EAAE,GAC9C,WAAW,CAAC,KAAK,CAAC,GAClB,EAAE,CAAC;AAEjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAChD,kBAAkB,CAAC,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,KAAK,SAAS,MAAM,CAAA;CAAE,GAC9F,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAC7C,EAAE,CAAC;AAEb,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACrE,KAAK,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAChE,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,GAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GACrC,CAAC,SAAS,EAAE,GACR,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GACtB,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GACtB,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GACtC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAC1B,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAC1B,GAAG,CAAC"}
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/parsing/extract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3H,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC1C,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,MAAM,KAAK,EAAE,GACrC,aAAa,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,GAC/C,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,MAAM,WAAW,MAAM,KAAK,EAAE,GACtD,aAAa,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAWjB,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAOlC,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,MAAM,IACnD,MAAM,SAAS,CAAC,GACV,EAAE,GACF,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,8BAA8B,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,8BAA8B,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,GAAG,MAAM,cAAc,MAAM,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;AAQ9E,KAAK,8BAA8B,CAC/B,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,MAAM,SAAS,CAAC,GACd,EAAE,GACF,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACvB,CAAC,SAAS,GAAG,MAAM,cAAc,MAAM,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,GAC3D,CAAC,SAAS,GAAG,MAAM,MAAM,cAAc,MAAM,KAAK,EAAE,GAChD,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GACxD,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GACvB,KAAK,GACT,EAAE,CAAC;AAEjB,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,IACpD,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3B,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GACxB,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,GAC7B,8BAA8B,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACnD,EAAE,GACV,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEnC,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,IACrD,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GAC1B,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,GAC7B,8BAA8B,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACnD,EAAE,GACN,EAAE,CAAC;AAwBb,KAAK,wBAAwB,CACzB,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EACxB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACzB;IAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;CAAE,GAClC,QAAQ,SAAS,IAAI,GACjB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACzE;IAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IAAC,IAAI,EAAE,EAAE,CAAA;CAAE,GACrC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GACnD,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAClC,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC5E,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAGjD,KAAK,YAAY,CACb,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,EACnB,GAAG,SAAS,MAAM,EAClB,KAAK,SAAS,GAAG,EAAE,IACnB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC/B,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAClC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAErB,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACxE,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC3F,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEzC,KAAK,YAAY,CACb,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,EACnB,GAAG,SAAS,MAAM,EAClB,KAAK,SAAS,GAAG,EAAE,IACnB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC/B,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,GAC9C,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAE/E;IAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;IAAC,IAAI,EAAE,EAAE,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAC3C,uBAAuB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,KAAK,uBAAuB,CAAC,CAAC,IAC1B,CAAC,SAAS;IAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,MAAM,QAAQ,SAAS,OAAO,CAAC,CAAA;CAAE,GAC1H,uBAAuB,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,GAC9E,CAAC,CAAC;AASZ,MAAM,MAAM,eAAe,CACvB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACxB,GAAG,GAAG,GAAG,CAAC,EAAE,GACZ,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,SAAS,EAAE,GAC1C,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC9G,IAAI,CAAC,KAAK,CAAC,SAAS,UAAU,MAAM,EAAE,GAClC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC1D,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GAAG,GAAG,CAAC,EAAE,GAChB,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AAMvB,MAAM,MAAM,sBAAsB,CAC9B,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,MAAM,EACrB,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACxB,GAAG,GACH,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,SAAS,EAAE,GACjD,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC9G,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACxE,GAAG,GACP,GAAG,CAAC;AAUd,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACzC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAEzD,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACzD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,KAAK,UAAU,MAAM,IAAI,EAAE,GAC1C,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACpC,CAAC,CAAC;AAIhB,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC1C,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,MAAM,KAAK,EAAE,GACrC,yBAAyB,CAAC,KAAK,CAAC,SAAS,MAAM,EAAE,SAAS,MAAM,GAC5D,KAAK,SAAS,GAAG,EAAE,SAAS,MAAM,QAAQ,EAAE,GACxC,QAAQ,GACR,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAIb,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIzC,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,MAAM,IAAI,EAAE,GACzC,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,GACnD,gBAAgB,CAAC,IAAI,CAAC,GACtB,IAAI,SAAS,GAAG,MAAM,MAAM,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,GACpD,gBAAgB,CAAC,IAAI,CAAC,GACtB,EAAE,GACV,EAAE,CAAC;AAEb,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAC/C,CAAC,SAAS,GAAG,MAAM,gBAAgB,MAAM,IAAI,EAAE,GACzC,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,MAAM,EAAE,GACnC,gBAAgB,CAAC,IAAI,CAAC,GACtB,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,GACpC,gBAAgB,CAAC,IAAI,CAAC,GACtB,EAAE,GACV,EAAE,CAAC;AAEb,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAChD,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,EAAE,GAClC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,gBAAgB,CAAC,MAAM,CAAC,GACxB,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAEb,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,MAAM,IACxD,CAAC,SAAS,GAAG,MAAM,kBAAkB,MAAM,IAAI,EAAE,GAC3C,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,gBAAgB,CAAC,MAAM,CAAC,GACxB,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AASb,MAAM,MAAM,iCAAiC,CAAC,CAAC,SAAS,MAAM,IAC1D,CAAC,SAAS,GAAG,MAAM,kBAAkB,MAAM,IAAI,EAAE,GAC3C,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GAC9D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACpE,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAClC,EAAE,GACN,EAAE,GACN,EAAE,CAAC;AAEb,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACxE,KAAK,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAChE,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,EAAE,GAChC,UAAU,CAAC,KAAK,CAAC,SAAS,YAAY,MAAM,GAAG,EAAE,GAC7C,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GACnC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,GAC7B,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,GAC7B,GAAG,CAAC;AAId,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACzC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,EAAE,GAK1B,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,MAAM,KAAK,SAAS,MAAM,EAAE,GAC9C,WAAW,CAAC,KAAK,CAAC,GAClB,EAAE,CAAC;AAEjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAChD,kBAAkB,CAAC,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,KAAK,SAAS,MAAM,CAAA;CAAE,GAC9F,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAC7C,EAAE,CAAC;AAEb,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACrE,KAAK,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAChE,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,GAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GACrC,CAAC,SAAS,EAAE,GACR,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GACtB,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GACtB,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GACtC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAC1B,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAC1B,GAAG,CAAC"}

@@ -43,3 +43,5 @@ import type { CollapseSpaces, Trim } from "./string-utils.js";

export type ReplaceWhitespace<S extends string> = HasLineBreaks<S> extends true ? ReplaceWhitespaceRuns<S> : S;
type ReplaceWhitespaceRuns<S extends string, Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? S : S extends `${infer A}\n${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A}\t${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S extends `${infer A}\r${infer B}` ? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]> : S;
type ReplaceWhitespaceRuns<S extends string, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer A}\n${infer B}` ? A extends `${string}\t${string}` | `${string}\r${string}` ? RwrTabCr<S, Acc, Steps> : ReplaceWhitespaceRuns<ConsumeWsRun<B>, `${Acc}${A} `, [any, ...Steps]> : RwrTabCr<S, Acc, Steps>;
type RwrTabCr<S extends string, Acc extends string, Steps extends any[]> = S extends `${infer A}\t${infer B}` ? A extends `${string}\r${string}` ? S extends `${infer A2}\r${infer B2}` ? ReplaceWhitespaceRuns<ConsumeWsRun<B2>, `${Acc}${A2} `, [any, ...Steps]> : `${Acc}${S}` : ReplaceWhitespaceRuns<ConsumeWsRun<B>, `${Acc}${A} `, [any, ...Steps]> : S extends `${infer A2}\r${infer B2}` ? ReplaceWhitespaceRuns<ConsumeWsRun<B2>, `${Acc}${A2} `, [any, ...Steps]> : `${Acc}${S}`;
type ConsumeWsRun<S extends string, Steps extends any[] = []> = Steps["length"] extends 64 ? S : S extends ` ${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S extends ` ${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S extends ` ${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S extends `\t${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S extends `\n${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S extends `\r${infer R}` ? ConsumeWsRun<R, [any, ...Steps]> : S;
export type ExceedsLengthBudget<S extends string, Steps extends any[] = []> = string extends S ? true : Steps["length"] extends 50 ? S extends "" ? false : true : S extends "" ? false : ExceedsLengthBudget<Drop10Chars<S>, [any, ...Steps]>;

@@ -46,0 +48,0 @@ export type Drop10Chars<S extends string> = S extends `${infer _A}${infer _B}${infer _C}${infer _D}${infer _E}${infer _F}${infer _G}${infer _H}${infer _I}${infer _J}${infer R}` ? R : "";

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

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

@@ -23,6 +23,14 @@ import type { Trim } from "./string-utils.js";

export type RewriteExtractCall<S extends string> = S extends `${string} extract(${string}` ? S extends `${string}'${string}` ? ExceedsLengthBudget<S> extends true ? RewriteExtractWalk<S> : RewriteExtractWalkQuoteAware<S> : RewriteExtractWalk<S> : S;
export type RewriteExtractWalk<S extends string, Steps extends any[] = []> = Steps["length"] extends 24 ? S : S extends `${infer Pre} extract(${infer AfterOpen}` ? SplitBalancedParen<`(${AfterOpen}`> extends {
export type RewriteExtractWalk<S extends string> = RewExDrive<RewExWorker<S>>;
type RewExDrive<R> = [
R
] extends [never] ? never : R extends {
__c: [infer S extends string, infer Acc extends string];
} ? RewExDrive<RewExWorker<S, Acc, []>> : R;
type RewExWorker<S extends string, Acc extends string = "", Steps extends any[] = []> = Steps["length"] extends 64 ? {
__c: [S, Acc];
} : S extends `${infer Pre} extract(${infer AfterOpen}` ? SplitBalancedParen<`(${AfterOpen}`> extends {
inner: infer Inner extends string;
rest: infer Rest extends string;
} ? Inner extends `${infer _Field} from ${infer Source}` ? `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Trim<Source>})${RewriteExtractWalk<Rest, [any, ...Steps]>}` : `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Inner})${RewriteExtractWalk<Rest, [any, ...Steps]>}` : S : S;
} ? Inner extends `${infer _Field} from ${infer Source}` ? RewExWorker<Rest, `${Acc}${Pre} extract(${Trim<Source>})`, [any, ...Steps]> : RewExWorker<Rest, `${Acc}${Pre} extract(${Inner})`, [any, ...Steps]> : `${Acc}${S}` : `${Acc}${S}`;
export type RewriteExtractWalkQuoteAware<S extends string, Steps extends any[] = []> = Steps["length"] extends 12 ? S : S extends `${infer Pre} extract(${infer AfterOpen}` ? Pre extends `${string}'${string}` ? OddSingleQuotes<Pre> extends true ? AfterOpen extends `${infer Lit}'${infer Tail}` ? `${RewriteExtractWalkQuoteAware<Pre, [any, ...Steps]>} extract(${Lit}'${RewriteExtractWalkQuoteAware<Tail, [any, ...Steps]>}` : S : RewriteExtractRewriteOne<Pre, AfterOpen, Steps> : RewriteExtractRewriteOne<Pre, AfterOpen, Steps> : S;

@@ -29,0 +37,0 @@ export type RewriteExtractRewriteOne<Pre extends string, AfterOpen extends string, Steps extends any[]> = SplitBalancedParen<`(${AfterOpen}`> extends {

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

{"version":3,"file":"pg-literals.d.ts","sourceRoot":"","sources":["../../src/parsing/pg-literals.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"pg-literals.d.ts","sourceRoot":"","sources":["../../src/parsing/pg-literals.ts"],"names":[],"mappings":"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"}
import type { CleanIdent, HasSpecial, SplitLast, Trim } from "./string-utils.js";
import type { SplitBalancedParen } from "./extract.js";
import type { SqlReserved } from "./tokenize.js";
type SplitTopLevelWorker<S extends string, Depth extends any[] = [], Acc extends string[] = [], Cur extends string = "", Steps extends any[] = [], InQ extends boolean = false, InDQ extends boolean = false> = Steps["length"] extends 450 ? {
type SplitTopLevelWorker<S extends string, Depth extends any[] = [], Acc extends string[] = [], Cur extends string = "", Steps extends any[] = [], InQ extends boolean = false, InDQ extends boolean = false> = Steps["length"] extends 120 ? {
__c: [S, Depth, Acc, Cur, InQ, InDQ];
} : string extends CleanIdent<S> ? [...Acc, `${Cur}string`] : S extends `${infer C}${infer Rest}` ? C extends "'" ? InDQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ extends true ? false : true, InDQ> : InQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends `"` ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ extends true ? false : true> : InDQ extends true ? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends "(" ? SplitTopLevelWorker<Rest, [any, ...Depth], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends ")" ? SplitTopLevelWorker<Rest, Depth extends [any, ...infer D] ? D : [], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : C extends "," ? Depth["length"] extends 0 ? SplitTopLevelWorker<Rest, Depth, [...Acc, Cur], "", [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ> : [...Acc, Cur];
} : string extends CleanIdent<S> ? [...Acc, `${Cur}string`] : InQ extends true ? S extends `${infer P}'${infer R}` ? SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}'`, [any, ...Steps], false, InDQ> : [...Acc, `${Cur}${S}`] : InDQ extends true ? S extends `${infer P}"${infer R}` ? SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}"`, [any, ...Steps], InQ, false> : [...Acc, `${Cur}${S}`] : S extends `${infer P},${infer R}` ? StlHasStruct<P> extends true ? StlStructJump<S, Depth, Acc, Cur, Steps> : Depth["length"] extends 0 ? SplitTopLevelWorker<R, Depth, [...Acc, `${Cur}${P}`], "", [any, ...Steps], false, false> : SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P},`, [any, ...Steps], false, false> : StlHasStruct<S> extends true ? StlStructJump<S, Depth, Acc, Cur, Steps> : [...Acc, `${Cur}${S}`];
type StlHasStruct<S extends string> = S extends `${string}'${string}` ? true : S extends `${string}"${string}` ? true : S extends `${string}(${string}` ? true : S extends `${string})${string}` ? true : false;
type StlStructJump<S extends string, Depth extends any[], Acc extends string[], Cur extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` ? StlStructJump2<S, Depth, Acc, Cur, Steps> : SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}'`, [any, ...Steps], true, false> : StlStructJump2<S, Depth, Acc, Cur, Steps>;
type StlStructJump2<S extends string, Depth extends any[], Acc extends string[], Cur extends string, Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? StlStructJump3<S, Depth, Acc, Cur, Steps> : SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}"`, [any, ...Steps], false, true> : StlStructJump3<S, Depth, Acc, Cur, Steps>;
type StlStructJump3<S extends string, Depth extends any[], Acc extends string[], Cur extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? StlCloseJump<S, Depth, Acc, Cur, Steps> : SplitTopLevelWorker<R, [any, ...Depth], Acc, `${Cur}${P}(`, [any, ...Steps], false, false> : StlCloseJump<S, Depth, Acc, Cur, Steps>;
type StlCloseJump<S extends string, Depth extends any[], Acc extends string[], Cur extends string, Steps extends any[]> = S extends `${infer P})${infer R}` ? SplitTopLevelWorker<R, Depth extends [any, ...infer D] ? D : [], Acc, `${Cur}${P})`, [any, ...Steps], false, false> : [...Acc, `${Cur}${S}`];
export type SplitTopLevel<S extends string> = SplitTopLevelDrive<SplitTopLevelWorker<S, [], [], "", [], false, false>>;

@@ -11,3 +16,22 @@ type SplitTopLevelDrive<R> = R extends {

} ? SplitTopLevelDrive<SplitTopLevelWorker<S, D, A, Cur, [], InQ, InDQ>> : R;
export type ExtractBeforeFromTopLevel<S extends string, Depth extends any[] = [], InString extends boolean = false, Acc extends string = "", Steps extends any[] = [], InDString extends boolean = false> = Steps["length"] extends 350 ? `${Acc}${ExtractBefore<S, " from ">}` : InString extends true ? S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, false, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc : InDString extends true ? S extends `${infer C}${infer Rest}` ? C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], false> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : Acc : Depth["length"] extends 0 ? S extends ` from ${string}` ? Acc : S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc : S extends `${infer C}${infer Rest}` ? C extends "'" ? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc;
export type ExtractBeforeFromTopLevel<S extends string> = EbftDrive<EbftWorker<S>>;
type EbftDrive<R> = [
R
] extends [never] ? never : R extends {
__c: [infer S extends string, infer Depth extends any[], infer Acc extends string];
} ? EbftDrive<EbftWorker<S, Depth, Acc, []>> : R;
type EbftWorker<S extends string, Depth extends any[] = [], Acc extends string = "", Steps extends any[] = []> = Steps["length"] extends 120 ? {
__c: [S, Depth, Acc];
} : Depth["length"] extends 0 ? EbftJumpTop<S, Depth, Acc, Steps> : EbftJumpNested<S, Depth, Acc, Steps>;
type EbftQuoteClose<R extends string, Depth extends any[], Acc extends string, Steps extends any[]> = R extends `${infer Span}'${infer R2}` ? EbftWorker<R2, Depth, `${Acc}${Span}'`, [any, ...Steps]> : `${Acc}${R}`;
type EbftDQuoteClose<R extends string, Depth extends any[], Acc extends string, Steps extends any[]> = R extends `${infer Span}"${infer R2}` ? EbftWorker<R2, Depth, `${Acc}${Span}"`, [any, ...Steps]> : `${Acc}${R}`;
type EbftJumpTop<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` | `${string} from ${string}` ? EbftJumpTop2<S, Depth, Acc, Steps> : EbftQuoteClose<R, Depth, `${Acc}${P}'`, Steps> : EbftJumpTop2<S, Depth, Acc, Steps>;
type EbftJumpTop2<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` | `${string} from ${string}` ? EbftJumpTop3<S, Depth, Acc, Steps> : EbftDQuoteClose<R, Depth, `${Acc}${P}"`, Steps> : EbftJumpTop3<S, Depth, Acc, Steps>;
type EbftJumpTop3<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` | `${string} from ${string}` ? EbftJumpTop4<S, Depth, Acc, Steps> : EbftWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]> : EbftJumpTop4<S, Depth, Acc, Steps>;
type EbftJumpTop4<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P})${infer R}` ? P extends `${string} from ${string}` ? EbftJumpTop5<S, Acc> : EbftWorker<R, [], `${Acc}${P})`, [any, ...Steps]> : EbftJumpTop5<S, Acc>;
type EbftJumpTop5<S extends string, Acc extends string> = S extends `${infer P} from ${string}` ? `${Acc}${P}` : `${Acc}${S}`;
type EbftJumpNested<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` ? EbftJumpNested2<S, Depth, Acc, Steps> : EbftQuoteClose<R, Depth, `${Acc}${P}'`, Steps> : EbftJumpNested2<S, Depth, Acc, Steps>;
type EbftJumpNested2<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? EbftJumpNested3<S, Depth, Acc, Steps> : EbftDQuoteClose<R, Depth, `${Acc}${P}"`, Steps> : EbftJumpNested3<S, Depth, Acc, Steps>;
type EbftJumpNested3<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? EbftJumpNested4<S, Depth, Acc, Steps> : EbftWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]> : EbftJumpNested4<S, Depth, Acc, Steps>;
type EbftJumpNested4<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P})${infer R}` ? EbftWorker<R, Depth extends [any, ...infer D] ? D : [], `${Acc}${P})`, [any, ...Steps]> : `${Acc}${S}`;
export type SplitCommaSimple<S extends string> = SplitTopLevel<S>;

@@ -14,0 +38,0 @@ export type ExtractBefore<S extends string, Delim extends string> = S extends `${infer Head}${Delim}${infer _}` ? Head : S;

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

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

@@ -13,3 +13,3 @@ import type { SqlConstant, OperatorToken } from "./tokenize.js";

export type IsRuntimeStringFragment<S extends string> = string extends S ? true : `${Lowercase<string>}` extends S ? true : string extends CleanIdent<S> ? true : false;
export type HasSpecial<S extends string> = S extends `${string} ${string}` ? true : S extends `${string}(${string}` ? true : S extends `${string})${string}` ? true : S extends `${string}+${string}` ? true : S extends `${string}-${string}` ? true : S extends `${string}*${string}` ? true : S extends `${string}/${string}` ? true : S extends `${string}=${string}` ? true : S extends `${string}<${string}` ? true : S extends `${string}>${string}` ? true : S extends `${string},${string}` ? true : S extends `${string}::${string}` ? true : S extends `${string}||${string}` ? true : false;
export type HasSpecial<S extends string> = S extends `${string} ${string}` ? true : S extends `${string}(${string}` ? true : S extends `${string})${string}` ? true : S extends `${string}+${string}` ? true : S extends `${string}-${string}` ? true : S extends `${string}*${string}` ? true : S extends `${string}/${string}` ? true : S extends `${string}%${string}` ? true : S extends `${string}=${string}` ? true : S extends `${string}<${string}` ? true : S extends `${string}>${string}` ? true : S extends `${string},${string}` ? true : S extends `${string}::${string}` ? true : S extends `${string}||${string}` ? true : false;
export type IsParamPlaceholder<S extends string> = S extends `$${string}` ? true : S extends `:${string}` ? true : S extends "?" ? true : false;

@@ -24,8 +24,6 @@ export type IsQualifiedRefCandidate<S extends string> = S extends `'${string}'` ? false : S extends `${number}.${number}` ? false : true;

export type SplitLast<S extends string, Delim extends string> = S extends `${infer Head}${Delim}${infer Tail}` ? Tail extends `${string}${Delim}${string}` ? SplitLast<Tail, Delim> extends [infer H2 extends string, infer T2 extends string] ? [`${Head}${Delim}${H2}`, T2] : [Head, Tail] : [Head, Tail] : [S, ""];
export type SplitOnDot<S extends string> = S extends `${infer A}.${infer B}` ? [A, ...SplitOnDot<B>] : [S];
export type SplitOnDotClean<S extends string> = SplitOnDot<S> extends [infer A extends string, infer B extends string, infer C extends string] ? [CleanIdent<A>, CleanIdent<B>, CleanIdent<C>] : SplitOnDot<S> extends [infer A extends string, infer B extends string] ? [CleanIdent<A>, CleanIdent<B>] : SplitOnDot<S> extends [infer A extends string] ? [CleanIdent<A>] : [];
export type SplitOnDotClean<S extends string> = S extends `${infer A}.${infer R}` ? R extends `${infer B}.${infer R2}` ? R2 extends `${string}.${string}` ? [] : [CleanIdent<A>, CleanIdent<B>, CleanIdent<R2>] : [CleanIdent<A>, CleanIdent<R>] : [CleanIdent<S>];
export type MapClean<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? MapClean<R, [...Acc, CleanIdent<H> extends "" ? "" : TrimPunctuation<Trim<H>>]> : Acc;
export type MapCleanLoose<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? MapCleanLoose<R, [...Acc, CleanLooseToken<H>]> : Acc;
export type CleanLooseToken<S extends string> = S extends OperatorToken ? S : CleanIdent<S> extends "" ? "" : CleanIdent<S>;
export type FilterEmpty<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? H extends "" ? FilterEmpty<R, Acc> : FilterEmpty<R, [...Acc, H]> : Acc;
//# sourceMappingURL=string-utils.d.ts.map

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

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

@@ -1,24 +0,33 @@

import type { CleanIdent, CleanLooseToken, CollapseSpaces, ReplaceAll, Split, Trim, TrimPunctuation } from "./string-utils.js";
import type { CleanIdent, CollapseSpaces, ReplaceAll, Trim, TrimPunctuation } from "./string-utils.js";
import type { ExceedsLengthBudget, HasLineBreaks } from "./normalize.js";
export type Tokenize<N extends string> = CleanFilterTokens<Split<N, " ">>;
export type CommaSep = "__tsqlcomma__";
export type MarkTopLevelCommas<S extends string, Depth extends any[] = [], InString extends boolean = false, Acc extends string = "", Steps extends any[] = [], InDString extends boolean = false> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? InDString extends true ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], C extends `"` ? false : true> : C extends "'" ? MarkTopLevelCommas<Rest, Depth, InString extends true ? false : true, `${Acc}${C}`, [any, ...Steps], InDString> : InString extends true ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends `"` ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true> : C extends "(" ? MarkTopLevelCommas<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends ")" ? MarkTopLevelCommas<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString> : C extends "," ? Depth["length"] extends 0 ? MarkTopLevelCommas<Rest, Depth, InString, `${Acc} ${CommaSep} `, [any, ...Steps], InDString> : MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString> : Acc;
export type TokenizeTables<N extends string> = HasLineBreaks<N> extends true ? Tokenize<N> : ExceedsLengthBudget<N> extends true ? Tokenize<N> : RestoreCleanFilterTokens<Split<MaybeMarkDQuotedSpaces<MarkTopLevelCommas<N>>, " ">>;
export type TokenizeLoose<N extends string> = RestoreCleanLooseFilterTokens<Split<CollapseSpaces<RestoreWildcards<PadOperators<ProtectWildcards<MaybeMarkDQuotedSpaces<MaybeStripDQuotedPunct<N>>>>>>, " ">> extends infer Toks extends string[] ? N extends `${string}distinct ${string}` ? DropDistinctFrom<Toks> : Toks : [];
export type DropDistinctFrom<Tokens extends string[], Acc extends string[] = [], Prev extends string = "", Steps extends any[] = []> = Steps["length"] extends 400 ? [...Acc, ...Tokens] : Tokens extends [infer H extends string, ...infer R extends string[]] ? H extends "from" ? Prev extends "distinct" ? DropDistinctFrom<R, Acc, "from", [any, ...Steps]> : DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]> : DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]> : Acc;
export type DQuotedPunct = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?";
export type CommaSep = "";
export type MarkTopLevelCommas<S extends string> = string extends S ? S : MtcDrive<MtcWorker<S, [], false, false, "", []>>;
type MtcDrive<R> = R extends {
__c: [infer S extends string, infer D extends any[], infer Q1 extends boolean, infer Q2 extends boolean, infer Acc extends string];
} ? MtcDrive<MtcWorker<S, D, Q1, Q2, Acc, []>> : R;
type MtcHasStruct<S extends string> = S extends `${string}'${string}` ? true : S extends `${string}"${string}` ? true : S extends `${string}(${string}` ? true : S extends `${string})${string}` ? true : false;
type MtcWorker<S extends string, Depth extends any[], InString extends boolean, InDString extends boolean, Acc extends string, Steps extends any[]> = Steps["length"] extends 450 ? {
__c: [S, Depth, InString, InDString, Acc];
} : InString extends true ? S extends `${infer P}'${infer R}` ? MtcWorker<R, Depth, false, InDString, `${Acc}${P}'`, [any, ...Steps]> : `${Acc}${S}` : InDString extends true ? S extends `${infer P}"${infer R}` ? MtcWorker<R, Depth, InString, false, `${Acc}${P}"`, [any, ...Steps]> : `${Acc}${S}` : S extends `${infer P},${infer R}` ? MtcHasStruct<P> extends true ? MtcStructJump<S, Depth, Acc, Steps> : Depth["length"] extends 0 ? MtcWorker<R, Depth, false, false, `${Acc}${P} ${CommaSep} `, [any, ...Steps]> : MtcWorker<R, Depth, false, false, `${Acc}${P},`, [any, ...Steps]> : MtcHasStruct<S> extends true ? MtcStructJump<S, Depth, Acc, Steps> : `${Acc}${S}`;
type MtcStructJump<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` ? MtcStructJump2<S, Depth, Acc, Steps> : MtcWorker<R, Depth, true, false, `${Acc}${P}'`, [any, ...Steps]> : MtcStructJump2<S, Depth, Acc, Steps>;
type MtcStructJump2<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}"${infer R}` ? P extends `${string}(${string}` | `${string})${string}` ? MtcStructJump3<S, Depth, Acc, Steps> : MtcWorker<R, Depth, false, true, `${Acc}${P}"`, [any, ...Steps]> : MtcStructJump3<S, Depth, Acc, Steps>;
type MtcStructJump3<S extends string, Depth extends any[], Acc extends string, Steps extends any[]> = S extends `${infer P}(${infer R}` ? P extends `${string})${string}` ? S extends `${infer P2})${infer R2}` ? MtcWorker<R2, Depth extends [any, ...infer D] ? D : [], false, false, `${Acc}${P2})`, [any, ...Steps]> : `${Acc}${S}` : MtcWorker<R, [any, ...Depth], false, false, `${Acc}${P}(`, [any, ...Steps]> : S extends `${infer P2})${infer R2}` ? MtcWorker<R2, Depth extends [any, ...infer D] ? D : [], false, false, `${Acc}${P2})`, [any, ...Steps]> : `${Acc}${S}`;
export type CollectorScanView<N extends string> = HasLineBreaks<N> extends true ? N : ExceedsLengthBudget<N> extends true ? N : MaybeMarkDQuotedSpaces<MarkTopLevelCommas<N>>;
export type CollectorToken<H extends string> = ReplaceAll<H, DQuoteSpaceSentinel, " "> extends infer R extends string ? CleanIdent<R> extends "" ? "" : TrimPunctuation<Trim<R>> : never;
export type LooseScanView<N extends string> = CollapseSpaces<RestoreWildcards<PadOperators<ProtectWildcards<MaybePadModulo<MaybeMarkDQuotedSpaces<MaybeStripDQuotedPunct<N>>>>>>>;
export type DQuotedPunct = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "%" | "|" | "&" | "!" | "?";
export type MaybeStripDQuotedPunct<S extends string> = S extends `${string}"${string}` ? StripDQuotedPunct<S> : S;
export type StripDQuotedPunct<S extends string, InDQ extends boolean = false, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? C extends `"` ? StripDQuotedPunct<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]> : InDQ extends true ? C extends DQuotedPunct ? StripDQuotedPunct<Rest, InDQ, Acc, [any, ...Steps]> : StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : Acc;
export type DQuoteSpaceSentinel = "__tsqldqsp__";
export type StripDQuotedPunct<S extends string, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 300 ? `${Acc}${S}` : S extends `${infer P}"${infer R}` ? R extends `${infer Span}"${infer R2}` ? StripDQuotedPunct<R2, `${Acc}${P}"${StripPunctChars<Span>}"`, [any, ...Steps]> : `${Acc}${P}"${StripPunctChars<R>}` : `${Acc}${S}`;
type StripPunctChars<S extends string, Acc extends string = "", Steps extends any[] = []> = Steps["length"] extends 200 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? C extends DQuotedPunct ? StripPunctChars<Rest, Acc, [any, ...Steps]> : StripPunctChars<Rest, `${Acc}${C}`, [any, ...Steps]> : Acc;
export type DQuoteSpaceSentinel = "";
export type MaybeMarkDQuotedSpaces<S extends string> = S extends `${string}"${string}` ? MarkDQuotedSpaces<S> : S;
export type MarkDQuotedSpaces<S extends string, InDQ extends boolean = false, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 1500 ? `${Acc}${S}` : S extends `${infer C}${infer Rest}` ? C extends `"` ? MarkDQuotedSpaces<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]> : InDQ extends true ? C extends " " ? MarkDQuotedSpaces<Rest, InDQ, `${Acc}${DQuoteSpaceSentinel}`, [any, ...Steps]> : MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]> : Acc;
export type CleanFilterTokens<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H extends string, ...infer R extends string[]] ? CleanIdent<H> extends "" ? CleanFilterTokens<R, Acc> : CleanFilterTokens<R, [...Acc, TrimPunctuation<Trim<H>>]> : Acc;
export type RestoreCleanFilterTokens<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H0 extends string, ...infer R extends string[]] ? ReplaceAll<H0, DQuoteSpaceSentinel, " "> extends infer H extends string ? CleanIdent<H> extends "" ? RestoreCleanFilterTokens<R, Acc> : RestoreCleanFilterTokens<R, [...Acc, TrimPunctuation<Trim<H>>]> : never : Acc;
export type RestoreCleanLooseFilterTokens<Tokens extends string[], Acc extends string[] = []> = Tokens extends [infer H0 extends string, ...infer R extends string[]] ? CleanLooseToken<ReplaceAll<H0, DQuoteSpaceSentinel, " ">> extends infer M extends string ? M extends "" ? RestoreCleanLooseFilterTokens<R, Acc> : RestoreCleanLooseFilterTokens<R, [...Acc, M]> : never : Acc;
export type MarkDQuotedSpaces<S extends string, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 300 ? `${Acc}${S}` : S extends `${infer P}"${infer R}` ? R extends `${infer Span}"${infer R2}` ? MarkDQuotedSpaces<R2, `${Acc}${P}"${ReplaceAll<Span, " ", DQuoteSpaceSentinel>}"`, [any, ...Steps]> : `${Acc}${P}"${ReplaceAll<R, " ", DQuoteSpaceSentinel>}` : `${Acc}${S}`;
export type ValidationScanView<S extends string> = S extends `${string}'${string}` ? MaybeMarkDQuotedSpaces<BlankSingleQuotedLiterals<S>> : MaybeMarkDQuotedSpaces<S>;
export type BlankSingleQuotedLiterals<S extends string, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 300 ? `${Acc}${S}` : S extends `${infer Pre}'${infer Rest}` ? Rest extends `${infer _Lit}'${infer After}` ? BlankSingleQuotedLiterals<After, `${Acc}${Pre}''`, [any, ...Steps]> : `${Acc}${Pre}''` : `${Acc}${S}`;
export type OperatorToken = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?" | "~" | "[" | "]";
export type OperatorToken = "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "%" | "|" | "&" | "!" | "?" | "~" | "[" | "]";
export type PadOperator<S extends string, Op extends string> = ReplaceAll<S, Op, ` ${Op} `>;
export type ProtectWildcards<S extends string> = ReplaceAll<S, ".*", ".__wildcard__">;
export type RestoreWildcards<S extends string> = ReplaceAll<S, ".__wildcard__", ".*">;
export type ProtectWildcards<S extends string> = ReplaceAll<S, ".*", ".">;
export type RestoreWildcards<S extends string> = ReplaceAll<S, ".", ".*">;
export type MaybePadModulo<S extends string> = S extends `${string}%${string}` ? S extends `${string}'${string}` ? PadModuloQuoteAware<S> : PadOperator<S, "%"> : S;
type PadModuloQuoteAware<S extends string, Acc extends string = "", Steps extends any[] = []> = string extends S ? S : Steps["length"] extends 300 ? `${Acc}${S}` : S extends `${infer Pre}'${infer Rest}` ? Rest extends `${infer Lit}'${infer After}` ? PadModuloQuoteAware<After, `${Acc}${PadOperator<Pre, "%">}'${Lit}'`, [any, ...Steps]> : `${Acc}${PadOperator<Pre, "%">}'${Rest}` : `${Acc}${PadOperator<S, "%">}`;
export type PadOperators<S extends string> = PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<PadOperator<S, "(">, ")">, ",">, "=">, "<">, ">">, "+">, "-">, "*">, "/">, "|">, "&">, "!">, "[">, "]">, "?">;

@@ -29,2 +38,3 @@ export type SqlKeyword = "as" | "on" | "where" | "join" | "left" | "right" | "inner" | "outer" | "full" | "cross" | "group" | "order" | "by" | "having" | "limit" | "offset" | "union" | "select" | "from" | "update" | "insert" | "into" | "values" | "set" | "delete" | "returning" | "distinct";

export type CanPrecedeColumn<Token extends string> = Token extends "" ? true : Token extends OperatorToken ? (Token extends ")" ? false : true) : Token extends "select" | "where" | "on" | "and" | "or" | "by" | "having" | "set" | "values" | "returning" | "distinct" | "case" | "when" | "then" | "else" | "not" | "is" | "in" | "between" | "like" | "ilike" | "to" | "escape" ? true : false;
export {};
//# sourceMappingURL=tokenize.d.ts.map

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

{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/parsing/tokenize.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/parsing/tokenize.ts"],"names":[],"mappings":"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"}
import type { DatabaseSchema, ColumnExists, TableExists } from "./schema.js";
import type { CleanExpr, CleanIdent, ExtractBefore, HasSpecial, NormalizeQuery, SplitOnDotClean, SplitTopLevel, TokenizeLoose, Trim } from "./parsing.js";
import type { QualifiedColumnRefs, ResolveAlias, StripDoubleQuotes, TableKeysByName } from "./columns.js";
import type { CleanExpr, CleanIdent, ExtractBefore, HasSpecial, NormalizeQuery, SplitOnDotClean, SplitTopLevel, Trim } from "./parsing.js";
import type { QualifiedRefScan, ResolveAlias, StripDoubleQuotes, TableKeysByName } from "./columns.js";
import type { AliasesInQuery, TableKeyValid, TablesInQuery } from "./tables.js";

@@ -10,10 +10,10 @@ import type { AllTrue } from "./utils.js";

export type ColumnRefValidPartialWith<ColRef extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = ColRef extends `${string}.*` ? true : SplitOnDotClean<StripDoubleQuotes<CleanExpr<ColRef>>> extends [infer A extends string, infer B extends string, infer C extends string] ? TableExists<S, A, B> extends true ? ColumnExists<`${A}.${B}`, C, S> : true : SplitOnDotClean<StripDoubleQuotes<CleanExpr<ColRef>>> extends [infer A extends string, infer B extends string] ? PartialResolvePrefix<A, Tables, Aliases, S> extends infer TK ? [TK] extends [never] ? true : TK extends string ? ColumnExists<TK, B, S> : true : true : true;
export type QualifiedColumnRefsValidPartialFor<S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[]> = QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidPartialWith<Cols, Tables, Aliases, S> : true> : true;
export type QualifiedColumnRefsValidPartialFor<S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string> = QualifiedRefScan<RefSeg> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidPartialWith<Cols, Tables, Aliases, S> : true> : true;
export type AllPartTablesValid<Tables extends string, S extends DatabaseSchema> = AllTrue<Tables extends string ? TableKeyValid<Tables, S> : true>;
export type ValidateTableSourcePart<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllPartTablesValid<Tables, S> extends true ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks> : true : false : true : true;
export type ValidateTableSourcePart<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllPartTablesValid<Tables, S> extends true ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, N> : false : true : true;
export type EnsureFromLed<N extends string> = N extends `from ${string}` ? N : `from ${N}`;
export type ValidateFromPart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? ValidateTableSourcePart<EnsureFromLed<N>, S> : false;
export type ValidateJoinPart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? ValidateTableSourcePart<N, S> : false;
export type ValidateClausePart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, never, never, Toks> : true : false;
export type ValidateClausePartScoped<Part extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? TokenizeLoose<N> extends infer Toks extends string[] ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks> : true : false;
export type ValidateClausePart<Part extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? QualifiedColumnRefsValidPartialFor<S, never, never, N> : false;
export type ValidateClausePartScoped<Part extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = string extends Part ? false : NormalizeQuery<Part> extends infer N extends string ? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, N> : false;
type RefHasSpecial<S extends string> = HasSpecial<S> extends true ? true : S extends `${string}[${string}` ? true : S extends `${string}]${string}` ? true : S extends `${string}"${string}` ? true : S extends `${string}'${string}` ? true : S extends `${string}:${string}` ? true : false;

@@ -20,0 +20,0 @@ type IsPlainQualifiedRef<S extends string> = S extends `${infer A}.${infer B}` ? RefHasSpecial<A> extends true ? false : RefHasSpecial<B> extends true ? false : B extends `${string}.${string}` ? false : true : false;

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

{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../src/partial.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,IAAI,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACR,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAS1C,MAAM,MAAM,oBAAoB,CAC5B,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IAExB;IAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GACnD,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACvD,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,GAC7D,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,GAC3C,KAAK,GACT,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAC7C,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAOlD,MAAM,MAAM,yBAAyB,CACjC,MAAM,SAAS,MAAM,EACrB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IAExB,MAAM,SAAS,GAAG,MAAM,IAAI,GACtB,IAAI,GACJ,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GAClI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAC7B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAC/B,IAAI,GACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GAC1G,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACxD,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAChB,IAAI,GACJ,EAAE,SAAS,MAAM,GACb,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GACtB,IAAI,GACZ,IAAI,GACR,IAAI,CAAC;AAGvB,MAAM,MAAM,kCAAkC,CAC1C,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM,IACrB,gBAAgB,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,GACzC,OAAO,CAAC,IAAI,SAAS,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GACzF,IAAI,CAAC;AAIX,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC1E,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAIrE,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC1E,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,SAAS,MAAM,GACrD,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IAAI,GACtC,kCAAkC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GACzD,KAAK,GACT,IAAI,GACR,IAAI,CAAC;AAIf,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACtC,CAAC,SAAS,QAAQ,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAEjD,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACtE,MAAM,SAAS,IAAI,GACb,KAAK,GACL,cAAc,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAC/C,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5C,KAAK,CAAC;AAEpB,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACtE,MAAM,SAAS,IAAI,GACb,KAAK,GACL,cAAc,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAC/C,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,KAAK,CAAC;AAKpB,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACxE,MAAM,SAAS,IAAI,GACb,KAAK,GACL,cAAc,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAC/C,kCAAkC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GACtD,KAAK,CAAC;AAKpB,MAAM,MAAM,wBAAwB,CAChC,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IAExB,MAAM,SAAS,IAAI,GACb,KAAK,GACL,cAAc,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAC/C,kCAAkC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GACzD,KAAK,CAAC;AAQpB,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAC/B,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GACjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,GACtC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,GACtC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,GACtC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,GACtC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,GACtC,KAAK,CAAC;AAKV,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IACrC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3B,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,KAAK,GACL,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,KAAK,GACL,IAAI,GAChB,KAAK,CAAC;AAKhB,KAAK,aAAa,CAAC,IAAI,SAAS,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAIzE,KAAK,eAAe,CAChB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IACxB,aAAa,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAClD,mBAAmB,CAAC,GAAG,CAAC,SAAS,IAAI,GACjC,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAClD,IAAI,GACR,IAAI,CAAC;AAGX,KAAK,qBAAqB,CACtB,IAAI,SAAS,SAAS,MAAM,EAAE,EAC9B,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,EACxB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACzB,IAAI,GACJ,IAAI,SAAS,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,SAAS,MAAM,EAAE,CAAC,GAChF,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,KAAK,GAChD,KAAK,GACL,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACjE,IAAI,CAAC;AAIf,MAAM,MAAM,+BAA+B,CACvC,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IACxB,MAAM,SAAS,IAAI,GACjB,KAAK,GACL,aAAa,CAAC,IAAI,CAAC,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM,EAAE,GAC7D,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAChD,IAAI,CAAC;AAKf,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACxE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACvE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACxE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACzE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACzE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC"}
import type { DatabaseSchema, NormalizeTableKey, TableExists } from "./schema.js";
import type { CleanIdent, CommaSep, SplitOnDotClean, SqlKeyword, Tokenize, TokenizeTables } from "./parsing.js";
export type TablesInQuery<N extends string, S extends DatabaseSchema> = CollectTables<TokenizeTables<N>, S, never, false, N extends `delete ${string}` ? true : false>;
export type AliasesInQuery<N extends string, S extends DatabaseSchema> = CollectAliases<TokenizeTables<N>, S, never, false, N extends `delete ${string}` ? true : false>;
import type { CleanIdent, CollectorScanView, CollectorToken, CommaSep, SplitOnDotClean, SqlKeyword } from "./parsing.js";
export type TablesInQuery<N extends string, S extends DatabaseSchema> = CtDrive<CtWalk<CollectorScanView<N>, S, never, false, N extends `delete ${string}` ? true : false>, S>;
export type AliasesInQuery<N extends string, S extends DatabaseSchema> = CaDrive<CaWalk<CollectorScanView<N>, S, never, false, N extends `delete ${string}` ? true : false>, S>;
export type TableKeyValid<Key extends string, S extends DatabaseSchema> = Key extends `${infer Schema}.${infer Table}` ? TableExists<S, Schema, Table> : false;

@@ -20,12 +20,56 @@ export type PreferNormalizedTableKey<Raw extends string, Normalized> = [

} : never;
export type InsertTargetTable<N extends string, S extends DatabaseSchema> = TableAfter<Tokenize<N>, "into", S>;
export type UpdateTargetTable<N extends string, S extends DatabaseSchema> = TableAfter<Tokenize<N>, "update", S>;
export type DeleteTargetTable<N extends string, S extends DatabaseSchema> = TableAfter<Tokenize<N>, "from", S>;
export type CollectTables<Tokens extends string[], S extends DatabaseSchema, Acc extends string = never, InList extends boolean = false, InDelete extends boolean = false> = Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]] ? T extends "from" | "join" | "into" ? Next extends "lateral" ? CollectTables<Rest, S, Acc, true, InDelete> : Next extends SqlKeyword ? CollectTables<Rest, S, Acc, true, InDelete> : CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete> : T extends "update" ? Next extends "set" ? CollectTables<Rest, S, Acc, false, InDelete> : CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete> : T extends "delete" ? Next extends "from" ? Rest extends [infer DelTable extends string, ...infer Rest2 extends string[]] ? CollectTables<Rest2, S, Acc | TableKeyFromToken<DelTable, S>, false, true> : Acc : CollectTables<[Next, ...Rest], S, Acc, false, true> : T extends "using" ? InDelete extends true ? CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete> : CollectTables<[Next, ...Rest], S, Acc, InList, InDelete> : T extends CommaSep ? InList extends true ? Rest extends ["=", ...infer Rest2 extends string[]] ? CollectTables<Rest2, S, Acc, false, InDelete> : CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete> : CollectTables<[Next, ...Rest], S, Acc, false, InDelete> : T extends "as" ? CollectTables<[Next, ...Rest], S, Acc, InList, InDelete> : T extends "distinct" ? Next extends "from" ? CollectTables<Rest, S, Acc, false, InDelete> : CollectTables<[Next, ...Rest], S, Acc, false, InDelete> : T extends SqlKeyword ? CollectTables<[Next, ...Rest], S, Acc, false, InDelete> : CollectTables<[Next, ...Rest], S, Acc, InList, InDelete> : Acc;
export type CollectAliases<Tokens extends string[], S extends DatabaseSchema, Acc extends string = never, InList extends boolean = false, InDelete extends boolean = false> = Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]] ? T extends "from" | "join" | "update" ? Next extends "lateral" ? CollectAliases<Rest, S, Acc, true, InDelete> : Next extends SqlKeyword ? CollectAliases<Rest, S, Acc, true, InDelete> : ParseAliasSource<Next, Rest, S, Acc, InDelete> : T extends "using" ? InDelete extends true ? ParseAliasSource<Next, Rest, S, Acc, InDelete> : CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete> : T extends CommaSep ? InList extends true ? Rest extends ["=", ...infer Rest2 extends string[]] ? CollectAliases<Rest2, S, Acc, false, InDelete> : ParseAliasSource<Next, Rest, S, Acc, InDelete> : CollectAliases<[Next, ...Rest], S, Acc, false, InDelete> : T extends "as" ? CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete> : T extends "distinct" ? Next extends "from" ? CollectAliases<Rest, S, Acc, false, InDelete> : CollectAliases<[Next, ...Rest], S, Acc, false, InDelete> : T extends SqlKeyword ? CollectAliases<[Next, ...Rest], S, Acc, false, InDelete> : CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete> : Acc;
export type ParseAliasSource<Next extends string, Rest extends string[], S extends DatabaseSchema, Acc extends string, InDelete extends boolean = false> = TableKeyFromToken<Next, S> extends infer TableKey extends string ? Rest extends [infer MaybeAlias extends string, ...infer Rest2 extends string[]] ? MaybeAlias extends "as" ? Rest2 extends [infer Alias extends string, ...infer Rest3 extends string[]] ? CollectAliases<Rest3, S, Acc | AliasEntry<Alias, TableKey>, true, InDelete> : Acc : MaybeAlias extends CommaSep ? CollectAliases<Rest, S, Acc, true, InDelete> : InDelete extends true ? MaybeAlias extends "using" ? CollectAliases<Rest, S, Acc, true, InDelete> : IsAliasCandidate<MaybeAlias> extends true ? CollectAliases<Rest2, S, Acc | AliasEntry<MaybeAlias, TableKey>, true, InDelete> : CollectAliases<Rest, S, Acc, true, InDelete> : IsAliasCandidate<MaybeAlias> extends true ? CollectAliases<Rest2, S, Acc | AliasEntry<MaybeAlias, TableKey>, true, InDelete> : CollectAliases<Rest, S, Acc, true, InDelete> : Acc : CollectAliases<Rest, S, Acc, true, InDelete>;
export type NullableRelations<N extends string, S extends DatabaseSchema> = CollectNullable<TokenizeTables<N>, "none", never, never>;
export type CollectNullable<Tokens extends string[], Mod extends string, Left extends string, Acc extends string> = Tokens extends [infer T extends string, ...infer Rest extends string[]] ? T extends "left" ? CollectNullable<Rest, "left", Left, Acc> : T extends "right" ? CollectNullable<Rest, "right", Left, Acc> : T extends "full" ? CollectNullable<Rest, "full", Left, Acc> : T extends "inner" | "cross" ? CollectNullable<Rest, "none", Left, Acc> : T extends "outer" ? CollectNullable<Rest, Mod, Left, Acc> : T extends "from" | "into" ? Rest extends [infer Tbl extends string, ...infer R2 extends string[]] ? CollectNullable<R2, "none", Left | SourceQualifier<Tbl, R2>, Acc> : Acc : T extends "join" ? Rest extends [infer Tbl extends string, ...infer R2 extends string[]] ? SourceQualifier<Tbl, R2> extends infer Q extends string ? Mod extends "left" ? CollectNullable<R2, "none", Left | Q, Acc | Q> : Mod extends "right" ? CollectNullable<R2, "none", Left | Q, Acc | Left> : Mod extends "full" ? CollectNullable<R2, "none", Left | Q, Acc | Left | Q> : CollectNullable<R2, "none", Left | Q, Acc> : Acc : Acc : CollectNullable<Rest, Mod, Left, Acc> : Acc;
export type SourceQualifier<Tbl extends string, Rest extends string[]> = Rest extends ["as", infer A extends string, ...string[]] ? CleanIdent<A> : Rest extends [infer Maybe extends string, ...string[]] ? IsAliasCandidate<Maybe> extends true ? CleanIdent<Maybe> : CleanIdent<Tbl> : CleanIdent<Tbl>;
export type TableAfter<Tokens extends string[], Keyword extends string, S extends DatabaseSchema> = Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]] ? T extends Keyword ? TableKeyFromToken<Next, S> : TableAfter<[Next, ...Rest], Keyword, S> : never;
export type InsertTargetTable<N extends string, S extends DatabaseSchema> = TableAfterScan<N, "into", S>;
export type UpdateTargetTable<N extends string, S extends DatabaseSchema> = TableAfterScan<N, "update", S>;
export type DeleteTargetTable<N extends string, S extends DatabaseSchema> = TableAfterScan<N, "from", S>;
type CtDrive<R, S extends DatabaseSchema, C extends any[] = []> = [
R
] extends [never] ? never : [R] extends [{
__c: [infer V extends string, infer Acc extends string, infer IL extends boolean, infer ID extends boolean, infer Mode extends string, infer Pend extends string];
}] ? C["length"] extends 19 ? CtFinal<V, S, Acc, Mode, Pend> : CtDrive<CtWalk<V, S, Acc, IL, ID, Mode, Pend>, S, [any, ...C]> : R;
type CtWalk<V extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Mode extends string = "", Pend extends string = "", Steps extends any[] = []> = Steps["length"] extends 100 ? {
__c: [V, Acc, InList, InDelete, Mode, Pend];
} : V extends `${infer H} ${infer R}` ? CollectorToken<H> extends infer M extends string ? M extends "" ? CtWalk<R, S, Acc, InList, InDelete, Mode, Pend, [any, ...Steps]> : CtTok<M, R, S, Acc, InList, InDelete, Mode, Pend, Steps> : never : CtFinal<V, S, Acc, Mode, Pend>;
type CtTok<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Mode extends string, Pend extends string, Steps extends any[]> = Mode extends "" ? CtNorm<M, R, S, Acc, InList, InDelete, Steps> : Mode extends "src" ? M extends "lateral" | SqlKeyword ? CtWalk<R, S, Acc, true, InDelete, "", "", [any, ...Steps]> : CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]> : Mode extends "usingsrc" ? CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]> : Mode extends "upd" ? M extends "set" ? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]> : CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]> : Mode extends "del" ? M extends "from" ? CtWalk<R, S, Acc, false, true, "delfrom", "", [any, ...Steps]> : CtNorm<M, R, S, Acc, false, true, Steps> : Mode extends "delfrom" ? CtWalk<R, S, Acc | TableKeyFromToken<M, S>, false, true, "", "", [any, ...Steps]> : Mode extends "comma" ? CtWalk<R, S, Acc, InList, InDelete, "commaeq", M, [any, ...Steps]> : Mode extends "commaeq" ? M extends "=" ? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]> : CtNorm<M, R, S, Acc | TableKeyFromToken<Pend, S>, true, InDelete, Steps> : M extends "from" ? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]> : CtNorm<M, R, S, Acc, false, InDelete, Steps>;
type CtNorm<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Steps extends any[]> = M extends "from" | "join" | "into" ? CtWalk<R, S, Acc, InList, InDelete, "src", "", [any, ...Steps]> : M extends "update" ? CtWalk<R, S, Acc, InList, InDelete, "upd", "", [any, ...Steps]> : M extends "delete" ? CtWalk<R, S, Acc, false, true, "del", "", [any, ...Steps]> : M extends "using" ? InDelete extends true ? CtWalk<R, S, Acc, InList, InDelete, "usingsrc", "", [any, ...Steps]> : CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]> : M extends CommaSep ? InList extends true ? CtWalk<R, S, Acc, InList, InDelete, "comma", "", [any, ...Steps]> : CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]> : M extends "as" ? CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]> : M extends "distinct" ? CtWalk<R, S, Acc, false, InDelete, "dist", "", [any, ...Steps]> : M extends SqlKeyword ? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]> : CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]>;
type CtFinal<H extends string, S extends DatabaseSchema, Acc extends string, Mode extends string, Pend extends string> = CollectorToken<H> extends infer M extends string ? M extends "" ? CtEnd<S, Acc, Mode, Pend> : Mode extends "src" ? M extends "lateral" | SqlKeyword ? Acc : Acc | TableKeyFromToken<M, S> : Mode extends "usingsrc" | "delfrom" | "comma" ? Acc | TableKeyFromToken<M, S> : Mode extends "upd" ? M extends "set" ? Acc : Acc | TableKeyFromToken<M, S> : Mode extends "commaeq" ? M extends "=" ? Acc : Acc | TableKeyFromToken<Pend, S> : Acc : never;
type CtEnd<S extends DatabaseSchema, Acc extends string, Mode extends string, Pend extends string> = Mode extends "commaeq" ? Acc | TableKeyFromToken<Pend, S> : Acc;
type CaDrive<R, S extends DatabaseSchema, C extends any[] = []> = [
R
] extends [never] ? never : [R] extends [{
__c: [infer V extends string, infer Acc extends string, infer IL extends boolean, infer ID extends boolean, infer Mode extends string, infer TK extends string, infer Pend extends string];
}] ? C["length"] extends 19 ? CaFinal<V, S, Acc, ID, Mode, TK, Pend> : CaDrive<CaWalk<V, S, Acc, IL, ID, Mode, TK, Pend>, S, [any, ...C]> : R;
type CaWalk<V extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Mode extends string = "", TK extends string = never, Pend extends string = "", Steps extends any[] = []> = Steps["length"] extends 100 ? {
__c: [V, Acc, InList, InDelete, Mode, TK, Pend];
} : V extends `${infer H} ${infer R}` ? CollectorToken<H> extends infer M extends string ? M extends "" ? CaWalk<R, S, Acc, InList, InDelete, Mode, TK, Pend, [any, ...Steps]> : CaTok<M, R, S, Acc, InList, InDelete, Mode, TK, Pend, Steps> : never : CaFinal<V, S, Acc, InDelete, Mode, TK, Pend>;
type CaTok<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Mode extends string, TK extends string, Pend extends string, Steps extends any[]> = Mode extends "" ? CaNorm<M, R, S, Acc, InList, InDelete, Steps> : Mode extends "src" ? M extends "lateral" | SqlKeyword ? CaWalk<R, S, Acc, true, InDelete, "", never, "", [any, ...Steps]> : CaEnterAlias<M, R, S, Acc, InDelete, Steps> : Mode extends "usingsrc" ? CaEnterAlias<M, R, S, Acc, InDelete, Steps> : Mode extends "alias" ? CaAliasTok<M, R, S, Acc, InDelete, TK, Steps> : Mode extends "aliasname" ? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]> : Mode extends "comma" ? CaWalk<R, S, Acc, InList, InDelete, "commaeq", never, M, [any, ...Steps]> : Mode extends "commaeq" ? M extends "=" ? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]> : TableKeyFromToken<Pend, S> extends infer TK2 extends string ? CaAliasTok<M, R, S, Acc, InDelete, TK2, Steps> : CaNorm<M, R, S, Acc, true, InDelete, Steps> : M extends "from" ? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]> : CaNorm<M, R, S, Acc, false, InDelete, Steps>;
type CaEnterAlias<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InDelete extends boolean, Steps extends any[]> = TableKeyFromToken<M, S> extends infer TK extends string ? CaWalk<R, S, Acc, true, InDelete, "alias", TK, "", [any, ...Steps]> : CaWalk<R, S, Acc, true, InDelete, "", never, "", [any, ...Steps]>;
type CaAliasTok<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InDelete extends boolean, TK extends string, Steps extends any[]> = M extends "as" ? CaWalk<R, S, Acc, true, InDelete, "aliasname", TK, "", [any, ...Steps]> : M extends CommaSep ? CaWalk<R, S, Acc, true, InDelete, "comma", never, "", [any, ...Steps]> : InDelete extends true ? M extends "using" ? CaWalk<R, S, Acc, true, InDelete, "usingsrc", never, "", [any, ...Steps]> : IsAliasCandidate<M> extends true ? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]> : CaNorm<M, R, S, Acc, true, InDelete, Steps> : IsAliasCandidate<M> extends true ? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]> : CaNorm<M, R, S, Acc, true, InDelete, Steps>;
type CaNorm<M extends string, R extends string, S extends DatabaseSchema, Acc extends string, InList extends boolean, InDelete extends boolean, Steps extends any[]> = M extends "from" | "join" | "update" ? CaWalk<R, S, Acc, InList, InDelete, "src", never, "", [any, ...Steps]> : M extends "using" ? InDelete extends true ? CaWalk<R, S, Acc, InList, InDelete, "usingsrc", never, "", [any, ...Steps]> : CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]> : M extends CommaSep ? InList extends true ? CaWalk<R, S, Acc, InList, InDelete, "comma", never, "", [any, ...Steps]> : CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]> : M extends "as" ? CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]> : M extends "distinct" ? CaWalk<R, S, Acc, false, InDelete, "dist", never, "", [any, ...Steps]> : M extends SqlKeyword ? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]> : CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]>;
type CaFinal<H extends string, S extends DatabaseSchema, Acc extends string, InDelete extends boolean, Mode extends string, TK extends string, Pend extends string> = CollectorToken<H> extends infer M extends string ? M extends "" ? Acc : Mode extends "alias" ? CaAliasFinal<M, Acc, InDelete, TK> : Mode extends "aliasname" ? Acc | AliasEntry<M, TK> : Mode extends "commaeq" ? M extends "=" ? Acc : TableKeyFromToken<Pend, S> extends infer TK2 extends string ? CaAliasFinal<M, Acc, InDelete, TK2> : Acc : Acc : never;
type CaAliasFinal<M extends string, Acc extends string, InDelete extends boolean, TK extends string> = M extends "as" | CommaSep ? Acc : InDelete extends true ? M extends "using" ? Acc : IsAliasCandidate<M> extends true ? Acc | AliasEntry<M, TK> : Acc : IsAliasCandidate<M> extends true ? Acc | AliasEntry<M, TK> : Acc;
export type NullableRelations<N extends string, S extends DatabaseSchema> = CnDrive<CnWalk<CollectorScanView<N>, "none", never, never>>;
type CnDrive<R, C extends any[] = []> = [
R
] extends [never] ? never : [R] extends [{
__c: [infer V extends string, infer Mod extends string, infer Left extends string, infer Acc extends string, infer Mode extends string, infer Tbl extends string];
}] ? C["length"] extends 19 ? CnFinal<V, Mod, Left, Acc, Mode, Tbl> : CnDrive<CnWalk<V, Mod, Left, Acc, Mode, Tbl>, [any, ...C]> : R;
type CnWalk<V extends string, Mod extends string, Left extends string, Acc extends string, Mode extends string = "", Tbl extends string = "", Steps extends any[] = []> = Steps["length"] extends 100 ? {
__c: [V, Mod, Left, Acc, Mode, Tbl];
} : V extends `${infer H} ${infer R}` ? CollectorToken<H> extends infer M extends string ? M extends "" ? CnWalk<R, Mod, Left, Acc, Mode, Tbl, [any, ...Steps]> : CnTok<M, R, Mod, Left, Acc, Mode, Tbl, Steps> : never : CnFinal<V, Mod, Left, Acc, Mode, Tbl>;
type CnTok<M extends string, R extends string, Mod extends string, Left extends string, Acc extends string, Mode extends string, Tbl extends string, Steps extends any[]> = Mode extends "" ? CnNorm<M, R, Mod, Left, Acc, Steps> : Mode extends "nsrc-f" ? CnWalk<R, Mod, Left, Acc, "qual-f", M, [any, ...Steps]> : Mode extends "nsrc-j" ? CnWalk<R, Mod, Left, Acc, "qual-j", M, [any, ...Steps]> : Mode extends "qual-f" ? M extends "as" ? CnWalk<R, Mod, Left, Acc, "qualas-f", Tbl, [any, ...Steps]> : CnQualPick<M, Tbl> extends infer Q extends string ? CnNorm<M, R, "none", Left | Q, Acc, Steps> : never : Mode extends "qual-j" ? M extends "as" ? CnWalk<R, Mod, Left, Acc, "qualas-j", Tbl, [any, ...Steps]> : CnQualPick<M, Tbl> extends infer Q extends string ? CnNorm<M, R, "none", Left | Q, CnJoinAcc<Mod, Left, Acc, Q>, Steps> : never : Mode extends "qualas-f" ? CleanIdent<M> extends infer Q extends string ? CnNorm<M, R, "none", Left | Q, Acc, Steps> : never : CleanIdent<M> extends infer Q extends string ? CnNorm<M, R, "none", Left | Q, CnJoinAcc<Mod, Left, Acc, Q>, Steps> : never;
type CnQualPick<M extends string, Tbl extends string> = IsAliasCandidate<M> extends true ? CleanIdent<M> : CleanIdent<Tbl>;
type CnJoinAcc<Mod extends string, Left extends string, Acc extends string, Q extends string> = Mod extends "left" ? Acc | Q : Mod extends "right" ? Acc | Left : Mod extends "full" ? Acc | Left | Q : Acc;
type CnNorm<M extends string, R extends string, Mod extends string, Left extends string, Acc extends string, Steps extends any[]> = M extends "left" | "right" | "full" ? CnWalk<R, M, Left, Acc, "", "", [any, ...Steps]> : M extends "inner" | "cross" ? CnWalk<R, "none", Left, Acc, "", "", [any, ...Steps]> : M extends "outer" ? CnWalk<R, Mod, Left, Acc, "", "", [any, ...Steps]> : M extends "from" | "into" ? CnWalk<R, Mod, Left, Acc, "nsrc-f", "", [any, ...Steps]> : M extends "join" ? CnWalk<R, Mod, Left, Acc, "nsrc-j", "", [any, ...Steps]> : CnWalk<R, Mod, Left, Acc, "", "", [any, ...Steps]>;
type CnFinal<H extends string, Mod extends string, Left extends string, Acc extends string, Mode extends string, Tbl extends string> = CollectorToken<H> extends infer M extends string ? M extends "" ? CnEnd<Mod, Left, Acc, Mode, Tbl> : Mode extends "nsrc-j" ? CnJoinAcc<Mod, Left, Acc, CleanIdent<M>> : Mode extends "qual-j" ? M extends "as" ? CnJoinAcc<Mod, Left, Acc, CleanIdent<Tbl>> : CnJoinAcc<Mod, Left, Acc, CnQualPick<M, Tbl>> : Mode extends "qualas-j" ? CnJoinAcc<Mod, Left, Acc, CleanIdent<M>> : Acc : never;
type CnEnd<Mod extends string, Left extends string, Acc extends string, Mode extends string, Tbl extends string> = Mode extends "qual-j" | "qualas-j" ? CnJoinAcc<Mod, Left, Acc, CleanIdent<Tbl>> : Acc;
type TableAfterScan<V extends string, Keyword extends string, S extends DatabaseSchema> = TaDrive<TaWalk<V, Keyword, S>, Keyword, S>;
type TaDrive<R, Keyword extends string, S extends DatabaseSchema, C extends any[] = []> = [
R
] extends [never] ? never : [R] extends [{
__c: [infer V extends string, infer Found extends boolean];
}] ? C["length"] extends 19 ? TaFinal<V, S, Found> : TaDrive<TaWalk<V, Keyword, S, Found>, Keyword, S, [any, ...C]> : R;
type TaWalk<V extends string, Keyword extends string, S extends DatabaseSchema, Found extends boolean = false, Steps extends any[] = []> = Steps["length"] extends 100 ? {
__c: [V, Found];
} : V extends `${infer H} ${infer R}` ? CollectorToken<H> extends infer M extends string ? M extends "" ? TaWalk<R, Keyword, S, Found, [any, ...Steps]> : Found extends true ? TableKeyFromToken<M, S> : M extends Keyword ? TaWalk<R, Keyword, S, true, [any, ...Steps]> : TaWalk<R, Keyword, S, false, [any, ...Steps]> : never : TaFinal<V, S, Found>;
type TaFinal<H extends string, S extends DatabaseSchema, Found extends boolean> = Found extends true ? CollectorToken<H> extends infer M extends string ? M extends "" ? never : TableKeyFromToken<M, S> : never : never;
export type AliasEntry<Alias extends string, TableKey extends string> = `${CleanIdent<Alias>}=>${TableKey}`;

@@ -35,2 +79,3 @@ export type IsAliasCandidate<Token extends string> = Token extends "" ? false : Token extends SqlKeyword ? false : true;

export type IsAliasName<Token extends string, Aliases extends string> = Token extends AliasNames<Aliases> ? true : false;
export {};
//# sourceMappingURL=tables.d.ts.map

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

{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIhH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAChE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,SAAS,UAAU,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAEnG,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACjE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,SAAS,UAAU,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAEpG,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAClE,GAAG,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GACtC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAC7B,KAAK,CAAC;AAEhB,MAAM,MAAM,wBAAwB,CAAC,GAAG,SAAS,MAAM,EAAE,UAAU,IAC/D;IAAC,UAAU;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACxE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,GACxC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAA;CAAE,GACrF,wBAAwB,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,EAAE,iBAAiB,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAC1F,KAAK,GACT,KAAK,CAAC;AAEhB,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACtE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GACzE;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACvB,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,GACnD;IAAE,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC,KAAK,CAAC;AAIpB,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACpE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEvC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACpE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEzC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACpE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAcvC,MAAM,MAAM,aAAa,CACrB,MAAM,SAAS,MAAM,EAAE,EACvB,CAAC,SAAS,cAAc,EACxB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,MAAM,SAAS,OAAO,GAAG,KAAK,EAC9B,QAAQ,SAAS,OAAO,GAAG,KAAK,IAEhC,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC5F,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAM9B,IAAI,SAAS,SAAS,GAClB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAS3C,IAAI,SAAS,UAAU,GACnB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC3C,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAChF,CAAC,SAAS,QAAQ,GACd,IAAI,SAAS,KAAK,GACd,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC5C,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC5E,CAAC,SAAS,QAAQ,GACd,IAAI,SAAS,MAAM,GACf,IAAI,SAAS,CAAC,MAAM,QAAQ,SAAS,MAAM,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GACzE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAC1E,GAAG,GACP,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GACvD,CAAC,SAAS,OAAO,GACb,QAAQ,SAAS,IAAI,GACjB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GACxE,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAC5D,CAAC,SAAS,QAAQ,GACd,MAAM,SAAS,IAAI,GAQf,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GAC/C,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC7C,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC5E,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC3D,CAAC,SAAS,IAAI,GACV,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAMxD,CAAC,SAAS,UAAU,GAChB,IAAI,SAAS,MAAM,GACf,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC5C,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC3D,CAAC,SAAS,UAAU,GAChB,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GACvD,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GACxF,GAAG,CAAC;AASd,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,MAAM,EAAE,EACvB,CAAC,SAAS,cAAc,EACxB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,MAAM,SAAS,OAAO,GAAG,KAAK,EAC9B,QAAQ,SAAS,OAAO,GAAG,KAAK,IAEhC,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC5F,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,QAAQ,GAGhC,IAAI,SAAS,SAAS,GAClB,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAK5C,IAAI,SAAS,UAAU,GACnB,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC5C,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GACtD,CAAC,SAAS,OAAO,GACb,QAAQ,SAAS,IAAI,GACjB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAC9C,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAC7D,CAAC,SAAS,QAAQ,GACd,MAAM,SAAS,IAAI,GAKf,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GAC/C,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC9C,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAClD,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC5D,CAAC,SAAS,IAAI,GACV,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAGzD,CAAC,SAAS,UAAU,GAChB,IAAI,SAAS,MAAM,GACf,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC7C,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAC5D,CAAC,SAAS,UAAU,GAChB,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GACxD,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GACjF,GAAG,CAAC;AAOd,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,MAAM,EAAE,EACrB,CAAC,SAAS,cAAc,EACxB,GAAG,SAAS,MAAM,EAClB,QAAQ,SAAS,OAAO,GAAG,KAAK,IAEhC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GAC1D,IAAI,SAAS,CAAC,MAAM,UAAU,SAAS,MAAM,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GAC3E,UAAU,SAAS,IAAI,GACnB,KAAK,SAAS,CAAC,MAAM,KAAK,SAAS,MAAM,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GACvE,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC3E,GAAG,GACP,UAAU,SAAS,QAAQ,GACvB,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAI5C,QAAQ,SAAS,IAAI,GACjB,UAAU,SAAS,OAAO,GACtB,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC5C,gBAAgB,CAAC,UAAU,CAAC,SAAS,IAAI,GACrC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAChF,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GACpD,gBAAgB,CAAC,UAAU,CAAC,SAAS,IAAI,GACrC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAChF,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAC5D,GAAG,GACP,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAgBvD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACpE,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAO7D,MAAM,MAAM,eAAe,CACvB,MAAM,SAAS,MAAM,EAAE,EACvB,GAAG,SAAS,MAAM,EAClB,IAAI,SAAS,MAAM,EACnB,GAAG,SAAS,MAAM,IAElB,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GACjE,CAAC,SAAS,MAAM,GACZ,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GACxC,CAAC,SAAS,OAAO,GACb,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GACzC,CAAC,SAAS,MAAM,GACZ,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GACxC,CAAC,SAAS,OAAO,GAAG,OAAO,GACvB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GACxC,CAAC,SAAS,OAAO,GACb,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GACrC,CAAC,SAAS,MAAM,GAAG,MAAM,GACrB,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GACjE,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,GACjE,GAAG,GACP,CAAC,SAAS,MAAM,GACZ,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GACjE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GACnD,GAAG,SAAS,MAAM,GACd,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAC9C,GAAG,SAAS,OAAO,GACf,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GACjD,GAAG,SAAS,MAAM,GACd,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GACrD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GACtD,GAAG,GACP,GAAG,GACP,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GACjE,GAAG,CAAC;AAMd,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,IACjE,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAClD,UAAU,CAAC,CAAC,CAAC,GACb,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS,IAAI,GAChC,UAAU,CAAC,KAAK,CAAC,GACjB,UAAU,CAAC,GAAG,CAAC,GACnB,UAAU,CAAC,GAAG,CAAC,CAAC;AAI9B,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,MAAM,EAAE,EAAE,OAAO,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC5F,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC5F,CAAC,SAAS,OAAO,GACb,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAC1B,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAC3C,KAAK,CAAC;AAIhB,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;AAE5G,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,IAC7C,KAAK,SAAS,EAAE,GAAG,KAAK,GACxB,KAAK,SAAS,UAAU,GAAG,KAAK,GAChC,IAAI,CAAC;AAET,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,MAAM,IACzC,OAAO,SAAS,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,IAChE,KAAK,SAAS,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}

@@ -8,3 +8,3 @@ import type { AliasesInQuery, TableKeyValid, TablesInQuery, UpdateTargetTable } from "../tables.js";

import type { DistinctOnColsValid, JoinUsingColsValid, WindowFilterColsValid } from "./joins.js";
import type { ExceedsLengthBudget, ExtractBefore, ExtractLastWhere, HasLineBreaks, TokenizeLoose, Trim, ValidationScanView } from "../parsing.js";
import type { ExceedsLengthBudget, ExtractBefore, ExtractLastWhere, HasLineBreaks, Trim, ValidationScanView } from "../parsing.js";
import type { RefScanSegment } from "./return-types.js";

@@ -18,3 +18,3 @@ export type ValidateSQLNormalized<N extends string, S extends DatabaseSchema> = ShouldNeutralizeForScan<N> extends true ? ValidationScanView<N> extends infer V extends string ? ValidateSQLNormalizedDispatch<V, S> : false : ValidateSQLNormalizedDispatch<N, S>;

export type UpdateAliasEntry<N extends string, TargetKey extends string> = N extends `update ${infer Rest}` ? Trim<ExtractBefore<Rest, " set ">> extends `${infer _Tbl} ${infer AliasPart}` ? DerivedAliasName<Trim<AliasPart>> extends infer A extends string ? A extends "" ? never : `${A}=>${TargetKey}` : never : never : never;
export type WhereColsValidForUpdate<W extends string, TargetKey extends string, AliasEntry extends string, S extends DatabaseSchema> = TokenizeLoose<W> extends infer WT extends string[] ? And<QualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, WT>, UnqualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, WT, never>, true, true, true> : true;
export type WhereColsValidForUpdate<W extends string, TargetKey extends string, AliasEntry extends string, S extends DatabaseSchema> = And<QualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, W>, UnqualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, W, never>, true, true, true>;
export type ValidateSQLNormalizedLightSelect<N extends string, S extends DatabaseSchema> = ExceedsLengthBudget<N> extends true ? ReportScaleSelectTables<N, S> : HasLineBreaks<N> extends true ? LightSelectTablesAndList<N, S> : ValidateSQLNormalizedCore<N, S>;

@@ -27,3 +27,3 @@ export type ReportScaleSelectTables<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AllTablesValidFor<ReportScaleTablesToValidate<N, S, Tables>, S> : false;

export type LightSelectTablesAndList<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllTablesValidFor<NonCteTables<N, S, Tables>, S> extends true ? ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases> extends true ? DistinctOnColsValid<N, S, Tables, Aliases> extends true ? true : false : false : false : false : false;
export type ValidateSQLNormalizedCore<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[] ? AllTablesValidFor<NonCteTables<N, S, Tables>, S> extends true ? AllColumnsValidFor<N, S, Tables, Aliases, LooseTokens> extends true ? NoAliasShadowedQualifiers<N, S, Tables, Aliases> extends true ? OuterScopeUnqualifiedValid<N, S> extends true ? WindowFilterColsValid<N, S, Tables, Aliases> extends true ? JoinUsingColsValid<N, S, Tables> extends true ? DistinctOnColsValid<N, S, Tables, Aliases> extends true ? true : false : false : false : false : false : false : false : false : false : false;
export type ValidateSQLNormalizedCore<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllTablesValidFor<NonCteTables<N, S, Tables>, S> extends true ? AllColumnsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> extends true ? NoAliasShadowedQualifiers<N, S, Tables, Aliases> extends true ? OuterScopeUnqualifiedValid<N, S> extends true ? WindowFilterColsValid<N, S, Tables, Aliases> extends true ? JoinUsingColsValid<N, S, Tables> extends true ? DistinctOnColsValid<N, S, Tables, Aliases> extends true ? true : false : false : false : false : false : false : false : false : false;
export type IsHighComplexityUpdate<N extends string> = QueryKind<N> extends "update" ? N extends `${string} case ${string} select ${string}` ? true : N extends `${string} case ${string} exists (${string}` ? true : false : false;

@@ -33,5 +33,7 @@ export type IsHighComplexitySelect<N extends string> = QueryKind<N> extends "select" ? ExceedsLengthBudget<N> extends true ? true : N extends `${string} offset ${string}` ? true : N extends `${string} snapshot_date ${string}` ? true : N extends `${string} join ${string} join ${string} join ${string} join ${string}` ? N extends `${string} order by ${string}` ? true : N extends `${string} group by ${string}` ? true : N extends `${string} limit ${string}` ? true : false : false : false;

export type HasReturning<N extends string> = QueryKind<N> extends "select" ? false : HasReturningQuoteAware<N>;
export type HasReturningQuoteAware<S extends string, InString extends boolean = false, InDString extends boolean = false, Steps extends any[] = []> = string extends S ? false : S extends `${string}'${string}` ? HasReturningQuoteAwareWalk<S, InString, InDString, Steps> : S extends `${string}"${string}` ? HasReturningQuoteAwareWalk<S, InString, InDString, Steps> : S extends `${string} returning ${string}` ? true : false;
type HasReturningQuoteAwareWalk<S extends string, InString extends boolean = false, InDString extends boolean = false, Steps extends any[] = []> = string extends S ? false : Steps["length"] extends 1200 ? S extends `${string} returning ${string}` ? true : false : InString extends true ? S extends `${infer C}${infer Rest}` ? HasReturningQuoteAwareWalk<Rest, C extends "'" ? false : true, InDString, [any, ...Steps]> : false : InDString extends true ? S extends `${infer C}${infer Rest}` ? HasReturningQuoteAwareWalk<Rest, InString, C extends `"` ? false : true, [any, ...Steps]> : false : S extends ` returning ${string}` ? true : S extends `${infer C}${infer Rest}` ? HasReturningQuoteAwareWalk<Rest, C extends "'" ? true : false, C extends `"` ? true : false, [any, ...Steps]> : false;
export type HasReturningQuoteAware<S extends string> = string extends S ? false : S extends `${string}'${string}` ? HasReturningQuoteAwareWalk<S> : S extends `${string}"${string}` ? HasReturningQuoteAwareWalk<S> : S extends `${string} returning ${string}` ? true : false;
type HasReturningQuoteAwareWalk<S extends string, Steps extends any[] = []> = string extends S ? false : Steps["length"] extends 400 ? S extends `${string} returning ${string}` ? true : false : S extends `${infer Before} returning ${string}` ? Before extends `${string}'${string}` | `${string}"${string}` ? HrqaQuoteJump<S, Steps> : true : false;
type HrqaQuoteJump<S extends string, Steps extends any[]> = S extends `${infer P}'${infer R}` ? P extends `${string}"${string}` ? HrqaDQuoteJump<S, Steps> : R extends `${string}'${infer R2}` ? HasReturningQuoteAwareWalk<R2, [any, ...Steps]> : false : HrqaDQuoteJump<S, Steps>;
type HrqaDQuoteJump<S extends string, Steps extends any[]> = S extends `${string}"${infer R}` ? R extends `${string}"${infer R2}` ? HasReturningQuoteAwareWalk<R2, [any, ...Steps]> : false : false;
export {};
//# sourceMappingURL=dispatch.d.ts.map

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

{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/validation/dispatch.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/validation/dispatch.ts"],"names":[],"mappings":"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"}
import type { AllTrue, And, IsUnion } from "../utils.js";
import type { CleanIdent, ExtractCallParenBodies, SplitCommaSimple, TokenizeLoose, Trim } from "../parsing.js";
import type { CleanIdent, ExtractCallParenBodies, SplitCommaSimple, Trim } from "../parsing.js";
import type { ColumnExists, DatabaseSchema } from "../schema.js";

@@ -14,4 +14,4 @@ import type { QualifiedColumnRefsValidFor, UnqualifiedColumnRefsValidFor } from "./validate-columns.js";

export type UsingColOnBothSides<Col extends string, Tables extends string, S extends DatabaseSchema> = TablesWithColumn<Tables, Col, S> extends infer Owners ? [Owners] extends [never] ? false : IsUnion<Owners> extends true ? true : false : false;
export type WindowFilterColsValid<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = Lowercase<N> extends `${string} over (${string}` | `${string} over(${string}` | `${string} filter (${string}` | `${string} filter(${string}` | `${string} within group (${string}` | `${string} within group(${string}` ? `${ExtractCallParenBodies<N, " over (">} ${ExtractCallParenBodies<N, " over(">} ${ExtractCallParenBodies<N, " filter (">} ${ExtractCallParenBodies<N, " filter(">} ${ExtractCallParenBodies<N, " within group (">} ${ExtractCallParenBodies<N, " within group(">}` extends infer Seg extends string ? Trim<Seg> extends "" ? true : TokenizeLoose<Seg> extends infer Toks extends string[] ? And<QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks, never>, true, true, true> : true : true : true;
export type DistinctOnColsValid<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = QueryKind<N> extends "select" ? Lowercase<N> extends `${string} distinct on (${string}` | `${string} distinct on(${string}` ? `${ExtractCallParenBodies<N, " distinct on (">} ${ExtractCallParenBodies<N, " distinct on(">}` extends infer Seg extends string ? Trim<Seg> extends "" ? true : TokenizeLoose<Seg> extends infer Toks extends string[] ? And<QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks, never>, true, true, true> : true : true : true : true;
export type WindowFilterColsValid<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = Lowercase<N> extends `${string} over (${string}` | `${string} over(${string}` | `${string} filter (${string}` | `${string} filter(${string}` | `${string} within group (${string}` | `${string} within group(${string}` ? `${ExtractCallParenBodies<N, " over (">} ${ExtractCallParenBodies<N, " over(">} ${ExtractCallParenBodies<N, " filter (">} ${ExtractCallParenBodies<N, " filter(">} ${ExtractCallParenBodies<N, " within group (">} ${ExtractCallParenBodies<N, " within group(">}` extends infer Seg extends string ? Trim<Seg> extends "" ? true : And<QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg, never>, true, true, true> : true : true;
export type DistinctOnColsValid<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = QueryKind<N> extends "select" ? Lowercase<N> extends `${string} distinct on (${string}` | `${string} distinct on(${string}` ? `${ExtractCallParenBodies<N, " distinct on (">} ${ExtractCallParenBodies<N, " distinct on(">}` extends infer Seg extends string ? Trim<Seg> extends "" ? true : And<QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg, never>, true, true, true> : true : true : true;
//# sourceMappingURL=joins.d.ts.map

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

{"version":3,"file":"joins.d.ts","sourceRoot":"","sources":["../../src/validation/joins.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"joins.d.ts","sourceRoot":"","sources":["../../src/validation/joins.ts"],"names":[],"mappings":"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"}
import type { AliasesInQuery, InsertTargetTable, TableKeyValid, TablesInQuery, UpdateTargetTable } from "../tables.js";
import type { AllTrue, And, StartsWith } from "../utils.js";
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries, TokenizeLoose, Trim } from "../parsing.js";
import type { ColumnRefValidLooseWith, IsSimpleRefPart, QualifiedColumnRefs, ResolveAlias, TableKeysByName, UnqualifiedColumnRefs, UnqualifiedColumnValid } from "../columns.js";
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries, Trim } from "../parsing.js";
import type { ColumnRefValidLooseWith, IsSimpleRefPart, QualifiedRefScan, ResolveAlias, TableKeysByName, UnqualifiedRefScan, UnqualifiedColumnValid } from "../columns.js";
import type { ColumnsExistInTable, RefScanBeforeOrderBy, RefScanOrderBy, RefScanSegment, SelectAliasesInQuery, SelectAliasSet } from "./return-types.js";

@@ -28,3 +28,3 @@ import type { CteNames, CteRow, SingleCteMatch } from "./cte.js";

export type KeyInRow<K extends string, Row> = [K] extends [keyof Row] ? true : false;
export type SegRefsInRow<Seg extends string, Name extends string, Row, S extends DatabaseSchema> = Trim<Seg> extends "" ? true : TokenizeLoose<Seg> extends infer Toks extends string[] ? And<AllTrue<QualifiedColumnRefs<Toks, S, never, never> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, AllTrue<UnqualifiedColumnRefs<Toks, S, never, never> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, true, true> : true;
export type SegRefsInRow<Seg extends string, Name extends string, Row, S extends DatabaseSchema> = Trim<Seg> extends "" ? true : And<AllTrue<QualifiedRefScan<Seg> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, AllTrue<UnqualifiedRefScan<Seg, S, never, never> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, true, true>;
export type OuterWhereRefsInRow<OuterText extends string, Name extends string, Row, S extends DatabaseSchema> = StripSubqueries<OuterText> extends infer Stripped extends string ? Stripped extends `${string} where ${string}` ? SegRefsInRow<ExtractLastWhere<Stripped>, Name, Row, S> : true : true;

@@ -36,3 +36,3 @@ export type OuterTailClauseRefsInRow<OuterText extends string, Name extends string, Row, S extends DatabaseSchema> = StripSubqueries<OuterText> extends infer Stripped extends string ? SelectAliasesInQuery<Stripped> extends infer SelAliases extends string ? And<SegRefsInRowWithAliases<ExtractGroupByExpr<Stripped>, Name, Row, S, SelAliases>, SegRefsInRowWithAliases<ExtractHavingExpr<Stripped>, Name, Row, S, SelAliases>, SegRefsInRowWithAliases<ExtractOrderByExpr<Stripped>, Name, Row, S, SelAliases>, true, true> : true : true;

type ExtractOrderByExpr<S extends string> = S extends `${string} order by ${infer R}` ? StopAtLimitTail<R> : "";
export type SegRefsInRowWithAliases<Seg extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = Trim<Seg> extends "" ? true : TokenizeLoose<Seg> extends infer Toks extends string[] ? And<AllTrue<QualifiedColumnRefs<Toks, S, never, never> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, AllTrue<UnqualifiedColumnRefs<Toks, S, never, never> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, true, true> : true;
export type SegRefsInRowWithAliases<Seg extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = Trim<Seg> extends "" ? true : And<AllTrue<QualifiedRefScan<Seg> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, AllTrue<UnqualifiedRefScan<Seg, S, never, never> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, true, true>;
export type RefInRowOrAlias<R extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = [

@@ -43,7 +43,7 @@ SelAliases

export type AllTablesValidFor<Tables extends string, S extends DatabaseSchema> = AllTrue<Tables extends string ? TableKeyValid<Tables, S> : true>;
export type AllColumnsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[] ? AllColumnsValidFor<N, S, Tables, Aliases, LooseTokens> : false : false : false;
export type AllColumnsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[]> = SelectAliasSet<N> extends infer SelectAliases extends string ? QueryKind<N> extends "update" ? And<ColumnsValidInUpdate<N, S>, ColumnsValidInInsert<N, S>, ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens, never>> : And<ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, ColumnsValidInInsert<N, S>, ColumnsValidInUpdate<N, S>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens>, SelectUnqualifiedRefsScoped<N, S, Tables, Aliases, SelectAliases>> : false;
export type AllColumnsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllColumnsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> : false : false;
export type AllColumnsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string> = SelectAliasSet<N> extends infer SelectAliases extends string ? QueryKind<N> extends "update" ? And<ColumnsValidInUpdate<N, S>, ColumnsValidInInsert<N, S>, ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg, never>> : And<ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, ColumnsValidInInsert<N, S>, ColumnsValidInUpdate<N, S>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>, SelectUnqualifiedRefsScoped<N, S, Tables, Aliases, SelectAliases>> : false;
export type SelectUnqualifiedRefsScoped<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, SelectAliases extends string> = [
SelectAliases
] extends [never] ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanSegment<N>>, never> : And<UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanBeforeOrderBy<N>>, never>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanOrderBy<N>>, SelectAliases>, true, true, true>;
] extends [never] ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, never> : And<UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanBeforeOrderBy<N>, never>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanOrderBy<N>, SelectAliases>, true, true, true>;
export type ColumnsValidInSelectOrReturning<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases> : true : true;

@@ -54,6 +54,6 @@ export type ColumnsValidInSelectOrReturningFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = HasReturning<N> extends true ? [Tables] extends [never] ? true : ExprsValidList<SplitSelectList<ReplaceAll<ExtractReturningList<N>, DQuoteSpaceSentinel, " ">>, Tables, Aliases, S, [], SelectLocalRels<N>> : QueryKind<N> extends "select" ? [Tables] extends [never] ? true : ExprsValidList<SplitSelectList<ReplaceAll<ExtractSelectList<N>, DQuoteSpaceSentinel, " ">>, Tables, Aliases, S, [], SelectLocalRels<N>> : true;

export type ColumnsValidInUpdate<N extends string, S extends DatabaseSchema> = QueryKind<N> extends "update" ? UpdateTargetTable<N, S> extends infer TableKey extends string ? TableKey extends never ? true : ColumnsExistInTable<ExtractUpdateSetColumns<N>, TableKey, S> : true : true;
export type QualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[] ? QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens> : true : true : true;
export type QualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[]> = HasLocalRelations<N> extends true ? QualifiedRefsValidWithLocal<N, S, Tables, Aliases, LooseTokens, CteNames<N>> : QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
export type QualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> : true : true;
export type QualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string> = HasLocalRelations<N> extends true ? QualifiedRefsValidWithLocal<N, S, Tables, Aliases, RefSeg, CteNames<N>> : QualifiedRefScan<RefSeg> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
type HasLocalRelations<N extends string> = N extends `with ${string}` ? true : N extends `${string} from (${string}` ? true : N extends `${string} join (${string}` ? true : false;
type QualifiedRefsValidWithLocal<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[], Ctes extends string> = QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? IsLocalRelation<RefQualifierOf<Cols>, Ctes, N> extends true ? true : ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
type QualifiedRefsValidWithLocal<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string, Ctes extends string> = QualifiedRefScan<RefSeg> extends infer Cols ? AllTrue<Cols extends string ? IsLocalRelation<RefQualifierOf<Cols>, Ctes, N> extends true ? true : ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
type RefQualifierOf<Col extends string> = Col extends `${infer Q}.${string}` ? CleanIdent<Q> : never;

@@ -70,6 +70,6 @@ type IsLocalRelation<Q extends string, Ctes extends string, N extends string> = [

AliasedTableKeys<Aliases>
] extends [never] ? true : N extends `${string}.${string}` ? AllTrue<QualifiedColumnRefs<TokenizeLoose<N>, S, Tables, Aliases> extends infer R ? R extends `${infer Q}.${string}` ? QualifierShadowedByAlias<Q, Tables, Aliases, S> extends true ? false : true : true : true> : true;
export type OuterScopeUnqualifiedValid<N extends string, S extends DatabaseSchema> = StartsWith<N, "select "> extends true ? Lowercase<N> extends `${string}(${string}select${string}` ? ExceedsLengthBudget<N> extends true ? true : StripSubqueries<N> extends infer Stripped extends string ? TablesInQuery<Stripped, S> extends infer OT extends string ? [OT] extends [never] ? true : AllTablesValidFor<OT, S> extends true ? AliasesInQuery<Stripped, S> extends infer OA extends string ? UnqualifiedColumnRefsValidFor<Stripped, S, OT, OA, TokenizeLoose<RefScanSegment<Stripped>>, SelectAliasesInQuery<Stripped>> : true : true : true : true : true : true;
export type UnqualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[] ? SelectAliasesInQuery<N> extends infer SelectAliases extends string ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens, SelectAliases> : true : true : true : true;
export type UnqualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, LooseTokens extends string[], SelectAliases extends string> = UnqualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? CleanIdent<Cols> extends SelectAliases ? true : UnqualifiedColumnValid<Cols, Tables, Aliases, S> extends true ? true : CleanIdent<Cols> extends SourceAliasListCols<N> ? true : false : true> : true;
] extends [never] ? true : N extends `${string}.${string}` ? AllTrue<QualifiedRefScan<N> extends infer R ? R extends `${infer Q}.${string}` ? QualifierShadowedByAlias<Q, Tables, Aliases, S> extends true ? false : true : true : true> : true;
export type OuterScopeUnqualifiedValid<N extends string, S extends DatabaseSchema> = StartsWith<N, "select "> extends true ? Lowercase<N> extends `${string}(${string}select${string}` ? ExceedsLengthBudget<N> extends true ? true : StripSubqueries<N> extends infer Stripped extends string ? TablesInQuery<Stripped, S> extends infer OT extends string ? [OT] extends [never] ? true : AllTablesValidFor<OT, S> extends true ? AliasesInQuery<Stripped, S> extends infer OA extends string ? UnqualifiedColumnRefsValidFor<Stripped, S, OT, OA, RefScanSegment<Stripped>, SelectAliasesInQuery<Stripped>> : true : true : true : true : true : true;
export type UnqualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? SelectAliasesInQuery<N> extends infer SelectAliases extends string ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, SelectAliases> : true : true : true;
export type UnqualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string, SelectAliases extends string> = UnqualifiedRefScan<RefSeg, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? CleanIdent<Cols> extends SelectAliases ? true : UnqualifiedColumnValid<Cols, Tables, Aliases, S> extends true ? true : CleanIdent<Cols> extends SourceAliasListCols<N> ? true : false : true> : true;
type SourceAliasListCols<N extends string> = N extends `with ${infer CteHead}(${infer CteCols}) as (${infer Rest}` ? AliasHasNoSpace<Trim<CteHead>> extends true ? ColNamesFromList<CteCols> | DerivedAliasListCols<Rest> : DerivedAliasListCols<N> : DerivedAliasListCols<N>;

@@ -76,0 +76,0 @@ type DerivedAliasListCols<N extends string, Steps extends any[] = []> = Steps["length"] extends 15 ? never : N extends `${string}) as ${infer Rest}` ? Rest extends `${infer Alias}(${infer Cols})${infer Tail}` ? AliasHasNoSpace<Trim<Alias>> extends true ? ColNamesFromList<Cols> | DerivedAliasListCols<Tail, [any, ...Steps]> : DerivedAliasListCols<Tail, [any, ...Steps]> : never : never;

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

{"version":3,"file":"validate-columns.d.ts","sourceRoot":"","sources":["../../src/validation/validate-columns.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACvH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACtY,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACjL,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzJ,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAgBpF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACnE,cAAc,CAAC,CAAC,CAAC,SAAS;IACtB,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAClC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC;CACrC,GACK,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GACnC,GAAG,CACD,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9B,oBAAoB,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAE7E,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAExC,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAC7C,IAAI,CACL,GACD,IAAI,GACR,IAAI,CAAC;AAEf,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACvE,iBAAiB,CAAC,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,EAAE,CAAA;CAAE,GACjI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAC9C,GAAG,CACD,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9B,oBAAoB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAG3E,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAEtC,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAC3C,IAAI,CACL,GACD,IAAI,GACR,IAAI,CAAC;AAKf,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IACvG,OAAO,CACH,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,GACvB,CAAC,SAAS,MAAM,GACZ,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAC/B,IAAI,GACR,IAAI,CACb,CAAC;AAEN,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IAC3F,kBAAkB,CAAC,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,CAAA;CAAE,GAC1D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GACrC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IAC3F,GAAG,SAAS,GAAG,GAAG,IAAI,GACtB,GAAG,SAAS,GAAG,IAAI,IAAI,GAAG,IAAI,GAC9B,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAC9B,GAAG,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAC/B,GAAG,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAK/B,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,EAAE,GAC1C,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GACjC,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,GACjC,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,eAAe,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAC9B,KAAK,GACT,IAAI,GACR,IAAI,GACR,eAAe,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAC9B,IAAI,CAAC;AAEvB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAWrF,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IAC3F,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GACd,IAAI,GACJ,aAAa,CAAC,GAAG,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,EAAE,GAClD,GAAG,CACD,OAAO,CACH,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,GACpD,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GACvD,IAAI,CACb,EACD,OAAO,CACH,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,GACtD,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GACvD,IAAI,CACb,EACD,IAAI,EACJ,IAAI,CACL,GACD,IAAI,CAAC;AAOnB,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IACxG,eAAe,CAAC,SAAS,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GAC1D,QAAQ,SAAS,GAAG,MAAM,UAAU,MAAM,EAAE,GACxC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GACtD,IAAI,GACR,IAAI,CAAC;AAUf,MAAM,MAAM,wBAAwB,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,IAC7G,eAAe,CAAC,SAAS,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GAC1D,oBAAoB,CAAC,QAAQ,CAAC,SAAS,MAAM,UAAU,SAAS,MAAM,GAClE,GAAG,CACD,uBAAuB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAC/E,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAC9E,uBAAuB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAC/E,IAAI,EACJ,IAAI,CACL,GACD,IAAI,GACR,IAAI,CAAC;AAKf,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IACjC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAErF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,aAAa,MAAM,CAAC,EAAE,GACnC,eAAe,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC,GAC1E,EAAE,CAAC;AAEb,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IACnC,CAAC,SAAS,GAAG,MAAM,WAAW,MAAM,CAAC,EAAE,GACjC,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAC/C,EAAE,CAAC;AAEb,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,aAAa,MAAM,CAAC,EAAE,GACnC,eAAe,CAAC,CAAC,CAAC,GAClB,EAAE,CAAC;AAIb,MAAM,MAAM,uBAAuB,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,IACjI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GACd,IAAI,GACJ,aAAa,CAAC,GAAG,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,EAAE,GAClD,GAAG,CACD,OAAO,CACH,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,GACpD,CAAC,SAAS,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,IAAI,GACtE,IAAI,CACb,EACD,OAAO,CACH,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,GACtD,CAAC,SAAS,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,IAAI,GACtE,IAAI,CACb,EACD,IAAI,EACJ,IAAI,CACL,GACD,IAAI,CAAC;AAEnB,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,IACvH;IAAC,UAAU;CAAC,SAAS,CAAC,KAAK,CAAC,GACtB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAC7B,UAAU,CAAC,CAAC,CAAC,SAAS,UAAU,GAC5B,IAAI,GACJ,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAK5C,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACjE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAC5B,IAAI,CAAC;AAEf,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACzE,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAIrE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAClE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,SAAS,MAAM,GACrD,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,WAAW,SAAS,MAAM,EAAE,GACvE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,GACtD,KAAK,GACT,KAAK,GACT,KAAK,CAAC;AAEhB,MAAM,MAAM,kBAAkB,CAC1B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,WAAW,SAAS,MAAM,EAAE,IAC5B,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,aAAa,SAAS,MAAM,GAC1D,SAAS,CAAC,CAAC,CAAC,SAAS,QAAQ,GAMzB,GAAG,CACD,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EACzD,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,EAC/D,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAC3E,GACC,GAAG,CACD,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EACzD,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,EAO/D,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CACpE,GACH,KAAK,CAAC;AAMZ,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,aAAa,SAAS,MAAM,IAE5B;IAAC,aAAa;CAAC,SAAS,CAAC,KAAK,CAAC,GACzB,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAC7F,GAAG,CACD,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EACnG,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EACrG,IAAI,EACJ,IAAI,EACJ,IAAI,CACP,CAAC;AAEV,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAClF,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,SAAS,MAAM,GACrD,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GACzD,IAAI,GACR,IAAI,CAAC;AAEf,MAAM,MAAM,kCAAkC,CAC1C,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,IAEtB,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB,IAAI,GACJ,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,GAC9I,SAAS,CAAC,CAAC,CAAC,SAAS,QAAQ,GACzB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB,IAAI,GAMJ,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,GAC3I,IAAI,CAAC;AAQnB,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IACjC,CAAC,SAAS,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAIrD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACvE,SAAS,CAAC,CAAC,CAAC,SAAS,QAAQ,GACvB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GACzD,QAAQ,SAAS,KAAK,GAClB,IAAI,GACJ,GAAG,CACD,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EACzD,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAC3D,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAGpE,mBAAmB,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EACtE,IAAI,CACP,GACH,IAAI,GACR,IAAI,CAAC;AAIf,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IACvE,SAAS,CAAC,CAAC,CAAC,SAAS,QAAQ,GACvB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GACzD,QAAQ,SAAS,KAAK,GAClB,IAAI,GACJ,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAChE,IAAI,GACR,IAAI,CAAC;AAIf,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC3E,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,SAAS,MAAM,GACrD,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,WAAW,SAAS,MAAM,EAAE,GACvE,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,GAC/D,IAAI,GACR,IAAI,GACR,IAAI,CAAC;AAEf,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,WAAW,SAAS,MAAM,EAAE,IAK5B,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC5E,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,IAAI,GACnE,OAAO,CAAC,IAAI,SAAS,MAAM,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GACvF,IAAI,CAAC;AAQnB,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IACnC,CAAC,SAAS,QAAQ,MAAM,EAAE,GAAG,IAAI,GACjC,CAAC,SAAS,GAAG,MAAM,UAAU,MAAM,EAAE,GAAG,IAAI,GAC5C,CAAC,SAAS,GAAG,MAAM,UAAU,MAAM,EAAE,GAAG,IAAI,GAC5C,KAAK,CAAC;AAEV,KAAK,2BAA2B,CAC5B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,WAAW,SAAS,MAAM,EAAE,EAC5B,IAAI,SAAS,MAAM,IACnB,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,IAAI,GACrE,OAAO,CACL,IAAI,SAAS,MAAM,GACb,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,IAAI,GACvD,IAAI,GACJ,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GACrD,IAAI,CACX,GACD,IAAI,CAAC;AAGX,KAAK,cAAc,CAAC,GAAG,SAAS,MAAM,IAClC,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAE/D,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IACxE;IAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAC3B,CAAC,SAAS,IAAI,GAAG,IAAI,GACrB,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAK/B,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IACxD,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,GAC/C,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,GAC/C,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,IAAI,GACrC,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,GAC5C,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,GAC5C,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,EAAE,GAAG,IAAI,GAClC,KAAK,CAAC;AASV,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,IAC/C,OAAO,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,wBAAwB,CAChC,CAAC,SAAS,MAAM,EAChB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,cAAc,IAExB;IAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GAChD,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACxF,KAAK,GACL,IAAI,GACR,KAAK,CAAC;AAEhB,MAAM,MAAM,yBAAyB,CACjC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,IAEtB;IAAC,gBAAgB,CAAC,OAAO,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GACrC,IAAI,GAKJ,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,OAAO,CACL,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,CAAC,GACnE,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAC5B,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,GACxD,KAAK,GACL,IAAI,GACR,IAAI,GACR,IAAI,CACb,GACC,IAAI,CAAC;AAanB,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC7E,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,IAAI,GAQ/B,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,SAAS,MAAM,EAAE,GACrD,mBAAmB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,IAAI,GACJ,eAAe,CAAC,CAAC,CAAC,SAAS,MAAM,QAAQ,SAAS,MAAM,GACpD,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,MAAM,GACtD,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAChB,IAAI,GAKJ,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,GACjC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,MAAM,GACvD,6BAA6B,CAC3B,QAAQ,EACR,CAAC,EACD,EAAE,EACF,EAAE,EACF,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EACvC,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,GACD,IAAI,GACR,IAAI,GACZ,IAAI,GACR,IAAI,GACZ,IAAI,GACR,IAAI,CAAC;AAEf,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,IAC7E,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,SAAS,MAAM,GACjD,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,SAAS,MAAM,GACrD,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,WAAW,SAAS,MAAM,EAAE,GACvE,oBAAoB,CAAC,CAAC,CAAC,SAAS,MAAM,aAAa,SAAS,MAAM,GAC9D,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,GAChF,IAAI,GACR,IAAI,GACR,IAAI,GACR,IAAI,CAAC;AAEf,MAAM,MAAM,6BAA6B,CACrC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,WAAW,SAAS,MAAM,EAAE,EAC5B,aAAa,SAAS,MAAM,IAC5B,qBAAqB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,IAAI,GACvE,OAAO,CACL,IAAI,SAAS,MAAM,GACb,UAAU,CAAC,IAAI,CAAC,SAAS,aAAa,GAClC,IAAI,GACJ,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,GACzD,IAAI,GAQJ,UAAU,CAAC,IAAI,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,GAC3C,IAAI,GACJ,KAAK,GACjB,IAAI,CACb,GACC,IAAI,CAAC;AAOX,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IACrC,CAAC,SAAS,QAAQ,MAAM,OAAO,IAAI,MAAM,OAAO,SAAS,MAAM,IAAI,EAAE,GAC/D,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,GACvC,gBAAgB,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,GACtD,oBAAoB,CAAC,CAAC,CAAC,GAC3B,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAElC,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAChE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,QAAQ,MAAM,IAAI,EAAE,GACnC,IAAI,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACrD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACrC,gBAAgB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACpE,oBAAoB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC/C,KAAK,GACT,KAAK,CAAC;AAEpB,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3B,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GACnC,UAAU,CAAC,CAAC,CAAC,CAAC"}
{"version":3,"file":"validate-columns.d.ts","sourceRoot":"","sources":["../../src/validation/validate-columns.ts"],"names":[],"mappings":"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"}
{
"name": "@kuindji/typed-sql",
"version": "0.3.0",
"version": "0.4.0",
"description": "Type-level SQL parser for TypeScript",

@@ -5,0 +5,0 @@ "author": "Ivan Kuindzhi",

@@ -154,5 +154,13 @@ # @kuindji/typed-sql

only when its type is unambiguous — `CASE` and unmodeled functions are
`unknown` rather than a guess. `||` (string concat) → `string`. An unaliased
function/aggregate projection is named after the function (`count(*)` →
`{ count: number }`); an unaliased `CASE` is named `case`.
`unknown` rather than a guess. `||` (string concat) → `string`. `extract(…)`
→ `number` (`number | null` when its source may be NULL). Top-level
arithmetic `A op B` (`+`, `-`, `*`, `/`, `%`) → `number` when **both**
operands type `number` (`| null` propagates from either side — SQL NULL
arithmetic is NULL, and an operand from the nullable side of an outer join
counts as nullable); operands can be columns, literals, function calls, or
parenthesized arithmetic, and chains recurse (`a + b * 2`,
`sum(price) / count(id)`). Anything else — a non-number operand, unary
minus, unmodeled operators like `<<` or single `|` — stays `unknown`. An
unaliased function/aggregate projection is named after the function
(`count(*)` → `{ count: number }`); an unaliased `CASE` is named `case`.
- **Projected literals widen to their base type** — `select 'GBP' as cur` →

@@ -159,0 +167,0 @@ `{ cur: string }`, `select 42 as n` → `{ n: number }`, not `{ cur: "GBP" }` /

@@ -13,2 +13,4 @@ import type {

CleanIdent,
CleanLooseToken,
DQuoteSpaceSentinel,
HasSpecial,

@@ -19,2 +21,3 @@ IsParamPlaceholder,

IsSqlConstant,
LooseScanView,
OperatorToken,

@@ -211,46 +214,179 @@ ReplaceAll,

// Best-effort qualified column references across the query
// ---- Direct-string column ref-scans ----
//
// Best-effort qualified / unqualified column references across a query segment.
// These walk the padded `LooseScanView` string DIRECTLY, word by word — replacing
// the old `TokenizeLoose` token ARRAY plus two array-walks (round-9): every array
// build/destructure step minted a unique-content tuple and its apparent-`Array`
// types, while a word-jump string walk interns its substrings and `[any, ...Steps]`
// counter tuples. Token semantics are reproduced verbatim:
// - per word, the kept token is `CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">>`
// (exactly the old `SrclPush`); a word cleaning to `""` never occupied an array
// position, so it updates NO register and consumes NO cap budget;
// - `IS [NOT] DISTINCT FROM` (old `DropDistinctFrom` pre-pass, fused in): a `from`
// token whose RAW-stream predecessor is `distinct` is operator text, not a
// FROM-clause boundary — it is dropped, so the filtered-stream `Prev` the next
// token sees stays `distinct` (which `CanPrecedeColumn` blesses) instead of
// `from` (which would mark it a table source and skip validation). `PrevRaw`
// tracks the UNFILTERED stream (a dropped `from` still sets it to `from`),
// mirroring the old pre-pass's own `Prev` chain exactly. The old pass only ran
// when the segment contained `distinct ` — per-token it's the same test, and
// its 400-token cap (remainder unfiltered) is gone: a >400-token `distinct`
// stream now validates its RHS like any other, never rejecting valid SQL.
//
// Cap parity: `Steps` caps total WORDS at 2000 (the old split cap — on cap the old
// pipeline blobbed the remainder into ONE token and the walkers processed it; the
// `*Last` arms apply the same one-token transform to the remainder). `Kept` caps
// kept TOKENS at 900 (the old ref-walk cap — return `Acc`, rest unscanned).
export type QualifiedColumnRefs<
Tokens extends string[],
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
export type QualifiedRefScan<Seg extends string> =
LooseScanView<Seg> extends infer V extends string
? QrsWalk<V>
: never;
type QrsWalk<
V extends string,
Acc extends string = never,
Prev extends string = "",
PrevRaw extends string = "",
Kept extends any[] = [],
Steps extends any[] = []
> = Steps["length"] extends 900
? Acc
: Tokens extends [infer T extends string, ...infer Rest extends string[]]
? T extends `${string}.${string}`
? Prev extends "from" | "join" | "update" | "into" | "delete"
? QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]>
: IsQualifiedRefCandidate<T> extends true
? QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc | T, T, [any, ...Steps]>
: QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]>
: QualifiedColumnRefs<Rest, S, Tables, Aliases, Acc, T, [any, ...Steps]>
: Acc;
> = Steps["length"] extends 2000
? QrsLast<V, Acc, Prev>
: Kept["length"] extends 900
? Acc
: V extends `${infer H} ${infer R}`
? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
? M extends ""
? QrsWalk<R, Acc, Prev, PrevRaw, Kept, [any, ...Steps]>
: M extends "from"
? PrevRaw extends "distinct"
? QrsWalk<R, Acc, Prev, "from", Kept, [any, ...Steps]>
: QrsWalk<R, Acc, "from", "from", [any, ...Kept], [any, ...Steps]>
: M extends `${string}.${string}`
? Prev extends "from" | "join" | "update" | "into" | "delete"
? QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
: IsQualifiedRefCandidate<M> extends true
? QrsWalk<R, Acc | M, M, M, [any, ...Kept], [any, ...Steps]>
: QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
: QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
: never
: QrsLast<V, Acc, Prev>;
// Best-effort unqualified column references across the query
// Final word (or capped remainder) as one token. A trailing `from` is never a ref
// and there is no subsequent token for its `Prev` effect to matter — `Acc` either way.
type QrsLast<H extends string, Acc extends string, Prev extends string> =
CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
? M extends `${string}.${string}`
? Prev extends "from" | "join" | "update" | "into" | "delete"
? Acc
: IsQualifiedRefCandidate<M> extends true
? Acc | M
: Acc
: Acc
: never;
export type UnqualifiedColumnRefs<
Tokens extends string[],
export type UnqualifiedRefScan<
Seg extends string,
S extends DatabaseSchema,
Tables extends string,
Aliases extends string
> = LooseScanView<Seg> extends infer V extends string
? UrsWalk<V, S, Tables, Aliases>
: never;
// Deferred-decision walk: the old array walker judged token T with (Prev, Next) via
// one-token lookahead. Here the PENDING token `Pend` is judged only when the NEXT
// kept token `M` materializes — `IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, …>`
// — then registers shift (`PrevPrev := Pend`, `Pend := M`). At end of stream `Pend`
// is judged with `Next = ""`, exactly the old `[T]` tail arm. `Pend = ""` means "no
// pending yet" — safe sentinel (kept tokens are never empty), and the candidate
// check is `false` for `""`, so the initial shift needs no special arm.
type UrsWalk<
V extends string,
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
Acc extends string = never,
Prev extends string = "",
PrevPrev extends string = "",
Pend extends string = "",
PrevRaw extends string = "",
Kept extends any[] = [],
Steps extends any[] = []
> = Steps["length"] extends 900
? Acc
: Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]]
? IsUnqualifiedColumnCandidate<T, Prev, Next, Tables, Aliases, S> extends true
? UnqualifiedColumnRefs<[Next, ...Rest], S, Tables, Aliases, Acc | T, T, [any, ...Steps]>
: UnqualifiedColumnRefs<[Next, ...Rest], S, Tables, Aliases, Acc, T, [any, ...Steps]>
: Tokens extends [infer T extends string]
? IsUnqualifiedColumnCandidate<T, Prev, "", Tables, Aliases, S> extends true
? Acc | T
: Acc
: Acc;
> = Steps["length"] extends 2000
? UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw>
: Kept["length"] extends 900
? Acc
: V extends `${infer H} ${infer R}`
? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
? M extends ""
? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw, Kept, [any, ...Steps]>
: M extends "from"
? PrevRaw extends "distinct"
? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, "from", Kept, [any, ...Steps]>
: UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps>
: UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps>
: never
: UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw>;
type UrsShift<
R extends string,
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
Acc extends string,
PrevPrev extends string,
Pend extends string,
M extends string,
Kept extends any[],
Steps extends any[]
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true
? UrsWalk<R, S, Tables, Aliases, Acc | Pend, Pend, M, M, [any, ...Kept], [any, ...Steps]>
: UrsWalk<R, S, Tables, Aliases, Acc, Pend, M, M, [any, ...Kept], [any, ...Steps]>;
// Final word (or capped remainder) as one token: judge `Pend` with the final token
// as `Next`, then the final token itself with `Next = ""`. A final dropped
// `distinct`-`from` ends the stream, so only `Pend` (with `Next = ""`) is judged.
type UrsLast<
H extends string,
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
Acc extends string,
PrevPrev extends string,
Pend extends string,
PrevRaw extends string
> = CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
? M extends ""
? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend>
: M extends "from"
? PrevRaw extends "distinct"
? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend>
: UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M>
: UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M>
: never;
type UrsLast2<
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
Acc extends string,
PrevPrev extends string,
Pend extends string,
M extends string
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true
? UrsEnd<S, Tables, Aliases, Acc | Pend, Pend, M>
: UrsEnd<S, Tables, Aliases, Acc, Pend, M>;
type UrsEnd<
S extends DatabaseSchema,
Tables extends string,
Aliases extends string,
Acc extends string,
PrevPrev extends string,
Pend extends string
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, "", Tables, Aliases, S> extends true
? Acc | Pend
: Acc;
export type UnqualifiedColumnValid<

@@ -257,0 +393,0 @@ Col extends string,

@@ -6,5 +6,5 @@ import type { DatabaseSchema, ColumnTypeFromTableKey, RowTypeForTable, RowTypeForTables } from "./schema.js";

ParseColumnRef,
QualifiedColumnRefs,
QualifiedRefScan,
ResolveTableKey,
UnqualifiedColumnRefs,
UnqualifiedRefScan,
UnqualifiedColumnValid

@@ -27,3 +27,2 @@ } from "./columns.js";

SplitTopLevel,
TokenizeLoose,
Trim

@@ -149,4 +148,92 @@ } from "./parsing.js";

: T
: ApplyJoinNull<T, E, Nullable>;
: [Nullable] extends [never]
? T
: [T] extends [never]
? ApplyJoinNull<T, E, Nullable>
: [T] extends [number | null]
? E extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}`
? ArithRefJoinNullable<E, Tables, Aliases, S, Nullable> extends true
? T | null
: ApplyJoinNull<T, E, Nullable>
: ApplyJoinNull<T, E, Nullable>
: ApplyJoinNull<T, E, Nullable>;
// Outer-join nullability for a TOP-LEVEL ARITHMETIC projection (`A op B`).
// SQL NULL arithmetic is NULL, so the result is nullable when ANY operand is
// sourced from the nullable side of an outer join. `RefQualifier` cannot see
// operand refs (an arithmetic expression is not a plain column ref — or worse,
// its leftmost dot fakes one: `u.id + o.total` "qualifies" as `u`), so this
// walks the operands the same way the arithmetic TYPING did: split at the
// top-level operator and recurse each side. Only consulted when the projection
// already typed `number`/`number | null` (the arithmetic result types), under
// a non-empty `Nullable` set, with an operator char present — join-free
// queries and plain projections pay nothing. A `false` verdict falls back to
// `ApplyJoinNull`, so a non-arithmetic expression that slips past the op-char
// gate (e.g. a quoted-punct ref like `"u-1".id`) keeps its plain-ref handling.
type ArithRefJoinNullable<
E extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Nullable extends string,
Steps extends any[] = []
> =
Steps["length"] extends 8
? false
: UnwrapRedundantParens<Trim<E>> extends infer SC extends string
? SC extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}`
? SplitTopLevelOp<SC> extends infer SR
? [SR] extends [never]
? ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable>
: SR extends { __op: [infer L extends string, infer Op extends string, infer R extends string] }
? Op extends "||"
? false
: ArithRefJoinNullable<Trim<L>, Tables, Aliases, S, Nullable, [any, ...Steps]> extends true
? true
: ArithRefJoinNullable<Trim<R>, Tables, Aliases, S, Nullable, [any, ...Steps]>
: ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable>
: false
: ArithOperandJoinNullable<SC, Tables, Aliases, S, Nullable>
: false;
// A LEAF arithmetic operand (no top-level operator left). A whole-operand
// `coalesce(...)` keeps its all-args-nullable semantics (`coalesce(o.x, 0)`
// stays non-null even on the nullable side). A function-call operand
// (`sum(o.total)`) is conservatively nullable when any nullable-side
// qualified ref appears inside it — an all-NULL group aggregates to NULL.
// A plain ref consults its qualifier; literals and params stay non-null.
type ArithOperandJoinNullable<
SC extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Nullable extends string
> =
CleanExpr<StripOuterCast<SC>> extends `coalesce(${infer Args})`
? CoalesceAllArgsNullable<SplitTopLevel<Args>, Tables, Aliases, S, Nullable>
: SC extends `${string}(${string}`
? NullableQualRefIn<SC, Nullable>
: RefQualifier<SC> extends infer Q extends string
? [Q] extends [never]
? false
: Q extends Nullable
? true
: false
: false;
// True when a `<Q>.`-qualified ref appears in `E` for any nullable qualifier
// `Q` — at the start, or after a boundary char that cannot be part of an
// identifier (so alias-suffix lookalikes like `po.x` never match `o`).
type NullableQualRefIn<E extends string, Nullable extends string> =
true extends (Nullable extends string ? QualRefIn<E, Nullable> : never)
? true
: false;
type QualRefIn<E extends string, Q extends string> =
E extends `${Q}.${string}`
? true
: E extends `${string}${" " | "(" | "," | "+" | "-" | "*" | "/" | "%"}${Q}.${string}`
? true
: false;
// True only when every coalesce argument is nullable. An empty/exhausted list is

@@ -249,53 +336,448 @@ // vacuously `true`, but the wrapper above only reaches this for a real coalesce call

// Scans for a comparison operator outside parens and outside `'…'`/`"…"` quotes.
// `->>`, `#>>` and `::` are consumed as units so their `>`/`:` are not mistaken
// for comparisons. Modelled on the char-walker in `SplitTopLevel` (parsing.ts).
export type HasTopLevelCompare<
// `->>`, `#>>` etc. are consumed as units so their `>` is not mistaken for a
// comparison.
//
// Struct-jump, not per-char (the old walk minted the tail PER CHARACTER over
// every compare-bearing expression, including whole casted subquery bodies).
// Each step advances to the leftmost of `'` `"` `(` `)` (pairwise narrowing);
// the RUN before it — structural-char-free by construction — is tested at
// depth 0 with `HtcRunCheck`: a run containing `=` or `!` is a comparison
// outright (no non-comparison unit contains either), and a run with only
// `<`/`>` is scanned unit-to-unit (`->`, `->>`, `#>`, `#>>`, `@>`, `<@`,
// `<<`, `>>` consumed by 1-char context; the old `::` consume was a no-op —
// `:` never matched the compare set). Quote spans are jumped quote-to-quote
// (the other quote kind inside a span is data, the old InQ/InDQ suppression);
// an unterminated quote swallows the rest (old walk-to-EOF → `false`). The
// cap counts jumps, `false` on overflow as before.
export type HasTopLevelCompare<S extends string> = HtcJump<S, [], []>;
type HtcJump<
S extends string,
Depth extends any[] = [],
Steps extends any[] = [],
InQ extends boolean = false,
InDQ extends boolean = false
Depth extends any[],
Steps extends any[]
> = Steps["length"] extends 400
? false
: S extends `${infer C}${infer Rest}`
? InQ extends true
? HasTopLevelCompare<Rest, Depth, [any, ...Steps], C extends "'" ? false : true, InDQ>
: InDQ extends true
? HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, C extends `"` ? false : true>
: C extends "'"
? HasTopLevelCompare<Rest, Depth, [any, ...Steps], true, InDQ>
: C extends `"`
? HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, true>
: C extends "("
? HasTopLevelCompare<Rest, [any, ...Depth], [any, ...Steps], InQ, InDQ>
: C extends ")"
? HasTopLevelCompare<Rest, Depth extends [any, ...infer D] ? D : [], [any, ...Steps], InQ, InDQ>
: Depth["length"] extends 0
// Consume multi-char operators whose `<`/`>`/`:` are NOT comparisons:
// JSON access (`->`, `->>`, `#>`, `#>>`), containment (`@>`, `<@`),
// cast (`::`), and bit-shift (`<<`, `>>`). Longer forms first.
? S extends `->>${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `->${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `#>>${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `#>${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `@>${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `<@${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `::${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `<<${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: S extends `>>${infer R}`
? HasTopLevelCompare<R, Depth, [any, ...Steps], InQ, InDQ>
: C extends "<" | ">" | "=" | "!"
? true
: HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, InDQ>
: HasTopLevelCompare<Rest, Depth, [any, ...Steps], InQ, InDQ>
: S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}`
? HtcJump2<S, Depth, Steps>
: HtcRunCheck<P, Depth> extends true
? true
: R extends `${string}'${infer R2}`
? HtcJump<R2, Depth, [any, ...Steps]>
: false
: HtcJump2<S, Depth, Steps>;
type HtcJump2<
S extends string,
Depth extends any[],
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? HtcJump3<S, Depth, Steps>
: HtcRunCheck<P, Depth> extends true
? true
: R extends `${string}"${infer R2}`
? HtcJump<R2, Depth, [any, ...Steps]>
: false
: HtcJump3<S, Depth, Steps>;
type HtcJump3<
S extends string,
Depth extends any[],
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? HtcJump4<S, Depth, Steps>
: HtcRunCheck<P, Depth> extends true
? true
: HtcJump<R, [any, ...Depth], [any, ...Steps]>
: HtcJump4<S, Depth, Steps>;
type HtcJump4<
S extends string,
Depth extends any[],
Steps extends any[]
> = S extends `${infer P})${infer R}`
? HtcRunCheck<P, Depth> extends true
? true
: HtcJump<R, Depth extends [any, ...infer D] ? D : [], [any, ...Steps]>
: HtcRunCheck<S, Depth>;
// A structural-char-free run is only inspected at depth 0. `=`/`!` never occur
// in a non-comparison unit, so their presence alone is a comparison; `<`/`>`
// need the unit scan.
type HtcRunCheck<P extends string, Depth extends any[]> =
Depth["length"] extends 0
? P extends `${string}${"=" | "!"}${string}`
? true
: P extends `${string}${"<" | ">"}${string}`
? HtcRunScan<P>
: false
: false;
// Unit-to-unit scan of a `<`/`>`-bearing run (no `=`/`!`, no structural chars):
// jump to the leftmost `<` or `>` and judge it by 1-char context — part of
// `<@`/`<<` (next char) or `->`/`->>`/`#>`/`#>>`/`@>`/`>>` (previous/next
// char) is consumed as a unit; anything else is a bare comparison.
type HtcRunScan<R extends string, Steps extends any[] = []> =
Steps["length"] extends 50
? false
: R extends `${infer A}<${infer B}`
? A extends `${string}>${string}`
? HtcRunGt<R, Steps>
: B extends `@${infer B2}`
? HtcRunScan<B2, [any, ...Steps]>
: B extends `<${infer B2}`
? HtcRunScan<B2, [any, ...Steps]>
: true
: HtcRunGt<R, Steps>;
type HtcRunGt<R extends string, Steps extends any[]> =
R extends `${infer A}>${infer B}`
? A extends `${string}${"-" | "#" | "@"}`
? B extends `>${infer B2}`
? HtcRunScan<B2, [any, ...Steps]>
: HtcRunScan<B, [any, ...Steps]>
: B extends `>${infer B2}`
? HtcRunScan<B2, [any, ...Steps]>
: true
: false;
// ---------------------------------------------------------------------------
// Tier-2 arithmetic: top-level operator split.
//
// Finds the LEFTMOST operator in {`||`, `+`, `-`, `*`, `/`, `%`} that sits at
// paren depth 0 outside `'…'`/`"…"` quotes, and splits the expression around
// it: `{ __op: [left, op, right] }`. A top-level UNMODELED operator char
// (single `|` bitwise-or, or the `||/` cube-root prefix) yields the abort
// marker `{ __ab: true }` (consumer: `unknown`); `never` means no top-level
// modeled operator exists. `->` / `->>` JSON arrows are consumed as units so
// their `-` is not mistaken for subtraction.
//
// Structure mirrors `HasTopLevelCompare` (struct-jump to the leftmost of
// `'` `"` `(` `)`, pairwise narrowing) but ACCUMULATES the consumed prefix so
// the split can be returned, and is worker/driver CHUNKED like
// `SplitTopLevel` (split.ts): each jump costs ~4 structural helpers plus a
// ≤6-level run scan at depth 0, so 80 jumps/chunk stays well under TS's
// ~1000 tail-count budget (round-11 lesson: budget chunks in tail counts,
// not jumps). Quote spans are jumped quote-to-quote (`''` escapes alternate
// close/re-open across jumps, so escaped content stays "inside"); an
// unterminated quote means no trustworthy split -> `never`.
type SplitTopLevelOp<S extends string> = StoDrive<StoWorker<S>>;
// `[R] extends [never]` MUST be guarded first — `never` distributes through
// the `extends {…}` test and would otherwise fall into the infer arm
// (round-10 lesson).
type StoDrive<R> =
[R] extends [never]
? never
: R extends { __c: [infer S2 extends string, infer D extends any[], infer A extends string] }
? StoDrive<StoWorker<S2, D, A, []>>
: R;
type StoWorker<
S extends string,
Depth extends any[] = [],
Acc extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 80
? { __c: [S, Depth, Acc] }
: StoJump1<S, Depth, Acc, Steps>;
// Run-gate: a structural-char-free run is only operator-scanned at depth 0.
// At depth > 0 every char is data (`sum(x | y) + 1` must not abort on the
// nested `|`).
type StoRunGate<P extends string, Depth extends any[], Acc extends string, Tail extends string> =
Depth["length"] extends 0
? StoRunScan<P, Acc, Tail>
: never;
type StoJump1<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}`
? StoJump2<S, Depth, Acc, Steps>
: StoRunGate<P, Depth, Acc, `'${R}`> extends infer RR
? [RR] extends [never]
? R extends `${infer Span}'${infer R2}`
? StoWorker<R2, Depth, `${Acc}${P}'${Span}'`, [any, ...Steps]>
: never
: RR
: never
: StoJump2<S, Depth, Acc, Steps>;
type StoJump2<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? StoJump3<S, Depth, Acc, Steps>
: StoRunGate<P, Depth, Acc, `"${R}`> extends infer RR
? [RR] extends [never]
? R extends `${infer Span}"${infer R2}`
? StoWorker<R2, Depth, `${Acc}${P}"${Span}"`, [any, ...Steps]>
: never
: RR
: never
: StoJump3<S, Depth, Acc, Steps>;
type StoJump3<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? StoJump4<S, Depth, Acc, Steps>
: StoRunGate<P, Depth, Acc, `(${R}`> extends infer RR
? [RR] extends [never]
? StoWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]>
: RR
: never
: StoJump4<S, Depth, Acc, Steps>;
type StoJump4<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P})${infer R}`
? StoRunGate<P, Depth, Acc, `)${R}`> extends infer RR
? [RR] extends [never]
// an unmatched `)` at depth 0 stays at depth 0 (pop of empty = empty)
? StoWorker<R, Depth extends [any, ...infer D] ? D : [], `${Acc}${P})`, [any, ...Steps]>
: RR
: never
: StoRunGate<S, Depth, Acc, "">;
// Leftmost modeled operator within a structural-free run `P` (no quotes or
// parens by construction). Pairwise narrowing, same invariant as
// `StlStructJump`: each level checks the matched prefix for every LATER
// class, so the level that fires is genuinely the leftmost. `Tail` is the
// untouched remainder of the whole expression after the run; the returned
// `right` re-attaches it.
type StoRunScan<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}+${infer B}`
? A extends `${string}${"-" | "*" | "/" | "%" | "|"}${string}`
? StoRunScan2<P, Acc, Tail>
: { __op: [`${Acc}${A}`, "+", `${B}${Tail}`] }
: StoRunScan2<P, Acc, Tail>;
type StoRunScan2<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}-${infer B}`
? A extends `${string}${"*" | "/" | "%" | "|"}${string}`
? StoRunScan3<P, Acc, Tail>
: B extends `>${infer B2}`
// `->` / `->>` JSON arrow: a unit, not subtraction — keep
// scanning the rest of the run (a leading `>` from `->>` is
// not an operator char and is skipped naturally). Non-tail
// recursion, but bounded by arrows-per-run (tiny in practice).
? StoRunScan<B2, `${Acc}${A}->`, Tail>
: { __op: [`${Acc}${A}`, "-", `${B}${Tail}`] }
: StoRunScan3<P, Acc, Tail>;
type StoRunScan3<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}*${infer B}`
? A extends `${string}${"/" | "%" | "|"}${string}`
? StoRunScan4<P, Acc, Tail>
: { __op: [`${Acc}${A}`, "*", `${B}${Tail}`] }
: StoRunScan4<P, Acc, Tail>;
type StoRunScan4<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}/${infer B}`
? A extends `${string}${"%" | "|"}${string}`
? StoRunScan5<P, Acc, Tail>
: { __op: [`${Acc}${A}`, "/", `${B}${Tail}`] }
: StoRunScan5<P, Acc, Tail>;
type StoRunScan5<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}%${infer B}`
? A extends `${string}|${string}`
? StoRunScan6<P, Acc, Tail>
: { __op: [`${Acc}${A}`, "%", `${B}${Tail}`] }
: StoRunScan6<P, Acc, Tail>;
type StoRunScan6<P extends string, Acc extends string, Tail extends string> =
P extends `${infer A}|${infer B}`
? B extends `|${infer B2}`
? B2 extends `/${string}`
// `||/` cube root — numeric prefix operator, NOT concat
? { __ab: true }
: Trim<`${Acc}${A}`> extends ""
// leading `||` with no left operand — unmodeled prefix op
? { __ab: true }
: { __op: [`${Acc}${A}`, "||", `${B2}${Tail}`] }
// single `|` (bitwise) at top level — unmodeled, conservative stop
: { __ab: true }
: never;
// `A op B` for op in {+, -, *, /, %} types `number` when BOTH operands type
// `number` (`| null` propagating from either side — SQL NULL arithmetic is
// NULL). number op number is numeric in Postgres; the interval/date hazards
// all require a non-number operand, which the schema types as non-number, so
// the both-number case is unambiguous and contract-legal. Any other operand
// type — including `never` — degrades to `unknown`: an operand the core path
// cannot resolve (a ref qualified by a joined-derived alias, a mis-split
// like `1e+5` -> `1e`) must NOT reject, or `ExprValid`'s never-gate would
// flip `ValidateSQL` to `false` on valid SQL; genuinely bogus columns are
// still rejected by the token-scan validators independently.
type ArithCombineType<
L extends string,
R extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[]
> =
Trim<L> extends ""
? unknown
: ArithCombineTypes<ExprType<Trim<L>, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>;
// Same, with the LEFT operand's type already computed (the Func-branch
// dispatcher gets it from `FunctionReturn` without re-parsing the call).
type ArithCombineTypes<
LT,
R extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[]
> =
Trim<R> extends ""
? unknown
: ArithNumClass<LT> extends infer LN
? LN extends false
? unknown
: ArithNumClass<ExprType<Trim<R>, Tables, Aliases, S, [any, ...Steps]>> extends infer RN
? RN extends false
? unknown
: "nullable" extends LN | RN
? number | null
: number
: unknown
: unknown;
// `never` guarded FIRST — `[never]` matches the later arms too. A bare
// `null` operand classes as nullable (`price + null` -> number | null).
type ArithNumClass<T> =
[T] extends [never]
? false
: [T] extends [number]
? "num"
: [T] extends [number | null]
? "nullable"
: false;
// Scan-and-combine used where no cheaper dispatch is possible: the
// fallback-slot path and the op-char-in-Func-prefix path. `NoOp` is the
// result when the scan finds no top-level modeled operator (today's
// behavior at the call site); the abort marker is conservative `unknown`.
type ArithViaScan<
CE extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[],
NoOp
> =
SplitTopLevelOp<CE> extends infer SR
? [SR] extends [never]
? NoOp
: SR extends { __op: [infer L extends string, infer Op extends string, infer R extends string] }
? Op extends "||"
? string
: ArithCombineType<L, R, Tables, Aliases, S, Steps>
: unknown
: never;
// Final-fallback-slot arithmetic (replaces Tier 1's DivByNumericLiteralType,
// which it subsumes: a numeric-literal divisor is just a `${number}` right
// operand). Sits after the column-ref branch fails, so common paths pay
// nothing; the char pre-gate skips the scan for operator-free expressions.
// `||` is unreachable here (the naive `${string}||${string}` branch runs
// earlier in the cascade), so the gate set is the five arithmetic chars.
type TopLevelArithType<
CE extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[]
> =
CE extends `${string}${"+" | "-" | "*" | "/" | "%"}${string}`
? ArithViaScan<CE, Tables, Aliases, S, Steps, unknown>
: unknown;
// Func-branch dispatcher. The greedy `${Func}(${Args})` match anchors on the
// LAST `)`, so `sum(price) / count(id)` lands here with Func="sum",
// Args="price) / count(id" — a function call is only the WHOLE expression
// when its first paren group is also its last. Dispatch:
// - Func clean + no `)` in Args (the overwhelmingly common projection:
// `count(*)`, `sum(price)`, `upper(name)`, ops hidden inside quoted args)
// -> FunctionReturn directly, zero new cost.
// - Func clean + `)` in Args -> `SplitBalancedParen` (already-paid chunked
// primitive) resolves the first call's true extent WITHOUT a scan:
// rest "" means the call spans the whole expression (nested calls like
// `coalesce(min(x), 0)`); an operator-leading rest is arithmetic with the
// call as left operand; anything else (window `over (...)`, `filter`)
// keeps today's greedy FunctionReturn.
// - Operator char in Func (`price + count(id)`, `name || upper(b)`) -> the
// operator precedes the first paren; full top-level scan.
type FuncOrArithType<
CE extends string,
Func extends string,
Args extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[]
> =
Func extends `${string}${"+" | "-" | "*" | "/" | "%" | "|"}${string}`
? ArithViaScan<CE, Tables, Aliases, S, Steps, FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>>
: Args extends `${string})${string}`
? CE extends `${string}(${infer AfterOpen}`
? SplitBalancedParen<`(${AfterOpen}`> extends { inner: infer Inner extends string; rest: infer Rest extends string }
? Trim<Rest> extends ""
? FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>
: FuncRestDispatch<Trim<Rest>, Func, Args, Inner, Tables, Aliases, S, Steps>
: FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>
: FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>
: FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>;
// `RestT` (trimmed) is what follows the first balanced call. An arithmetic
// operator -> the call (typed via FunctionReturn on its TRUE arg list) is
// the left operand. `||` -> string (guarding the `||/` cube root). A `->`
// JSON arrow or any other shape (window clauses, …) -> today's greedy path.
type FuncRestDispatch<
RestT extends string,
Func extends string,
Args extends string,
Inner extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Steps extends any[]
> =
RestT extends `||${infer R}`
? R extends `/${string}`
? unknown
: string
: RestT extends `+${infer R}`
? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>
: RestT extends `-${infer R}`
? R extends `>${string}`
? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>
: ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>
: RestT extends `*${infer R}`
? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>
: RestT extends `/${infer R}`
? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>
: RestT extends `%${infer R}`
? ArithCombineTypes<FunctionReturn<CleanIdent<Func>, Inner, Tables, Aliases, S, [any, ...Steps]>, R, Tables, Aliases, S, Steps>
: FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>;
// Strip a redundant fully-wrapping paren pair, repeatedly: `((expr))` and

@@ -370,5 +852,5 @@ // `((case ...)::text)` -> the inner expression whose parens wrap the WHOLE

: CE extends `${infer Func}(${infer Args})`
? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>
? FuncOrArithType<CE, Func, Args, Tables, Aliases, S, Steps>
: CE extends `${infer Func} (${infer Args})`
? FunctionReturn<CleanIdent<Func>, Args, Tables, Aliases, S, [any, ...Steps]>
? FuncOrArithType<CE, Func, Args, Tables, Aliases, S, Steps>
: CE extends `${string}||${string}`

@@ -402,3 +884,3 @@ ? string

? never
: unknown
: TopLevelArithType<CE, Tables, Aliases, S, Steps>
: Ref extends ColumnRef<infer TableKey extends string, infer Column extends string>

@@ -408,3 +890,3 @@ ? ColumnTypeFromTableKey<TableKey, Column, S>

? never
: unknown
: TopLevelArithType<CE, Tables, Aliases, S, Steps>
: unknown

@@ -490,3 +972,14 @@ // A genuine TOP-LEVEL `::T` cast. As with the JSON-text

? UnionArgTypes<Args, Tables, Aliases, S, Steps>
: unknown;
// Postgres EXTRACT always returns a numeric
// value regardless of field/source, so typing
// it is unambiguous; it is NULL iff its source
// is NULL, so propagate the argument's
// nullability. An unmodeled argument types
// `unknown` (which may include null) → the
// conservative answer is `number | null`.
: Func extends "extract"
? null extends FirstArgType<Args, Tables, Aliases, S, Steps>
? number | null
: number
: unknown;

@@ -619,3 +1112,3 @@ // Expression validation

S extends DatabaseSchema
> = QualifiedColumnRefs<TokenizeLoose<E>, S, Tables, Aliases> extends infer Cols
> = QualifiedRefScan<E> extends infer Cols
? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true>

@@ -629,3 +1122,3 @@ : true;

S extends DatabaseSchema
> = UnqualifiedColumnRefs<TokenizeLoose<E>, S, Tables, Aliases> extends infer Cols
> = UnqualifiedRefScan<E, S, Tables, Aliases> extends infer Cols
? AllTrue<Cols extends string ? UnqualifiedColumnValid<Cols, Tables, Aliases, S> : true>

@@ -632,0 +1125,0 @@ : true;

@@ -39,25 +39,37 @@ // SELECT/RETURNING/clause + column-list extraction.

// Quote-jump twin of `HasReturningQuoteAwareWalk` (validation/dispatch.ts):
// find the leftmost ` returning `; if no quote opens before it, its tail is the
// answer. Otherwise jump the leftmost quote span whole (`'…'` or `"…"`,
// whichever opens first — the other quote kind inside the span is data) and
// re-test the remainder. O(quote spans) instead of O(chars); an unterminated
// quote swallows the rest, exactly like the old walk-to-EOF inside a literal.
type FirstTopLevelReturningTailWalk<
S extends string,
InString extends boolean = false,
InDString extends boolean = false,
Steps extends any[] = []
> = string extends S
? ""
: Steps["length"] extends 1200
: Steps["length"] extends 400
? S extends `${string} returning ${infer After}` ? After : ""
: InString extends true
? S extends `${infer C}${infer Rest}`
? FirstTopLevelReturningTailWalk<Rest, C extends "'" ? false : true, InDString, [any, ...Steps]>
: S extends `${infer Before} returning ${infer After}`
? Before extends `${string}'${string}` | `${string}"${string}`
? FtrtQuoteJump<S, Steps>
: After
: "";
type FtrtQuoteJump<S extends string, Steps extends any[]> =
S extends `${infer P}'${infer R}`
? P extends `${string}"${string}`
? FtrtDQuoteJump<S, Steps>
: R extends `${string}'${infer R2}`
? FirstTopLevelReturningTailWalk<R2, [any, ...Steps]>
: ""
: InDString extends true
? S extends `${infer C}${infer Rest}`
? FirstTopLevelReturningTailWalk<Rest, InString, C extends `"` ? false : true, [any, ...Steps]>
: ""
: S extends ` returning ${infer After}`
? After
: S extends `${infer C}${infer Rest}`
? FirstTopLevelReturningTailWalk<Rest, C extends "'" ? true : false, C extends `"` ? true : false, [any, ...Steps]>
: "";
: FtrtDQuoteJump<S, Steps>;
type FtrtDQuoteJump<S extends string, Steps extends any[]> =
S extends `${string}"${infer R}`
? R extends `${string}"${infer R2}`
? FirstTopLevelReturningTailWalk<R2, [any, ...Steps]>
: ""
: "";
// Given a string whose first non-skipped char is `(`, consume the first

@@ -76,2 +88,11 @@ // balanced parenthesised group (quote-aware) and return its inner content plus

// losslessly. Mirrors the `SplitTopLevel` worker/driver above.
//
// Struct-jump, not per-char (the old walk minted one growing-`Acc` string PER
// CHARACTER across entire CTE/subquery bodies). Each step advances to the
// LEFTMOST of the three state chars `'` `(` `)` (double quotes were never
// tracked here — preserved), copying the whole run before it in a single mint;
// inside a `'…'` literal it jumps straight to the closing quote (`''` escapes
// exit+re-enter across two jumps; an unterminated quote at EOF copies the rest
// verbatim). The `Steps` cap counts JUMPS and yields `{ __c: [...] }` to the
// driver, so arbitrarily paren-dense inputs still complete losslessly.
type SplitBalancedParenWorker<

@@ -85,20 +106,39 @@ S extends string,

? { __c: [S, Depth, Acc, InString] }
: S extends `${infer C}${infer Rest}`
? C extends "'"
? SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString extends true ? false : true, [any, ...Steps]>
: InString extends true
? SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString, [any, ...Steps]>
: C extends "("
? Depth["length"] extends 0
? SplitBalancedParenWorker<Rest, [any], Acc, InString, [any, ...Steps]>
: SplitBalancedParenWorker<Rest, [any, ...Depth], `${Acc}${C}`, InString, [any, ...Steps]>
: C extends ")"
? Depth extends [any, ...infer D extends any[]]
? D["length"] extends 0
? { inner: Acc; rest: Rest }
: SplitBalancedParenWorker<Rest, D, `${Acc}${C}`, InString, [any, ...Steps]>
: { inner: Acc; rest: Rest }
: SplitBalancedParenWorker<Rest, Depth, `${Acc}${C}`, InString, [any, ...Steps]>
: { inner: Acc; rest: "" };
: InString extends true
? S extends `${infer P}'${infer R}`
? SplitBalancedParenWorker<R, Depth, `${Acc}${P}'`, false, [any, ...Steps]>
: { inner: `${Acc}${S}`; rest: "" }
: S extends `${infer P}'${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? SbpParenJump<S, Depth, Acc, Steps>
: SplitBalancedParenWorker<R, Depth, `${Acc}${P}'`, true, [any, ...Steps]>
: SbpParenJump<S, Depth, Acc, Steps>;
// Leftmost of `(` / `)` (the caller guarantees no `'` occurs before either).
type SbpParenJump<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? SbpCloseJump<S, Depth, Acc, Steps>
: Depth["length"] extends 0
// the group-opening `(` itself is consumed, not copied into `inner`
? SplitBalancedParenWorker<R, [any], `${Acc}${P}`, false, [any, ...Steps]>
: SplitBalancedParenWorker<R, [any, ...Depth], `${Acc}${P}(`, false, [any, ...Steps]>
: SbpCloseJump<S, Depth, Acc, Steps>;
type SbpCloseJump<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P})${infer R}`
? Depth extends [any, any, ...infer D extends any[]]
? SplitBalancedParenWorker<R, [any, ...D], `${Acc}${P})`, false, [any, ...Steps]>
// depth ≤ 1: this `)` closes the group (or is an unmatched top-level `)`)
: { inner: `${Acc}${P}`; rest: R }
: { inner: `${Acc}${S}`; rest: "" };
export type SplitBalancedParen<S extends string> =

@@ -105,0 +145,0 @@ SplitBalancedParenDrive<SplitBalancedParenWorker<S>>;

@@ -298,15 +298,61 @@ // NormalizeQuery pipeline + quote-aware lowercasing.

type ReplaceWhitespaceRuns<S extends string, Steps extends any[] = []> =
// Acc-carrying worker: the finished prefix moves into `Acc` and is NEVER
// rescanned or reminted (the old form rebuilt the FULL string once per line
// break and re-matched it from the start). Because consumed segments leave the
// scan, the worker must take the LEFTMOST of `\n`/`\t`/`\r` each step — the
// old rebuild-and-rescan form got that for free by always re-matching `\n`
// first over the whole string. Same pairwise-narrowing cascade as
// `MtcStructJump`. The step cap counts whitespace RUNS (each consumed whole by
// `ConsumeWsRun`), so it covers at least as much input as the old
// per-occurrence cap; on cap the remainder is left as-is, as before.
type ReplaceWhitespaceRuns<S extends string, Acc extends string = "", Steps extends any[] = []> =
string extends S
? S
: Steps["length"] extends 1500
? S
? `${Acc}${S}`
: S extends `${infer A}\n${infer B}`
? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]>
: S extends `${infer A}\t${infer B}`
? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]>
: S extends `${infer A}\r${infer B}`
? ReplaceWhitespaceRuns<`${A} ${B}`, [any, ...Steps]>
: S;
? A extends `${string}\t${string}` | `${string}\r${string}`
? RwrTabCr<S, Acc, Steps>
: ReplaceWhitespaceRuns<ConsumeWsRun<B>, `${Acc}${A} `, [any, ...Steps]>
: RwrTabCr<S, Acc, Steps>;
// Leftmost of `\t` / `\r` (caller ruled out an earlier `\n`).
type RwrTabCr<S extends string, Acc extends string, Steps extends any[]> =
S extends `${infer A}\t${infer B}`
? A extends `${string}\r${string}`
? S extends `${infer A2}\r${infer B2}`
? ReplaceWhitespaceRuns<ConsumeWsRun<B2>, `${Acc}${A2} `, [any, ...Steps]>
: `${Acc}${S}`
: ReplaceWhitespaceRuns<ConsumeWsRun<B>, `${Acc}${A} `, [any, ...Steps]>
: S extends `${infer A2}\r${infer B2}`
? ReplaceWhitespaceRuns<ConsumeWsRun<B2>, `${Acc}${A2} `, [any, ...Steps]>
: `${Acc}${S}`;
// Eat the whole whitespace run FOLLOWING a consumed line break before the full
// string is rebuilt. A formatted query's `\n␣␣␣␣` indentation otherwise survives
// as a multi-space run that costs `ReplaceWhitespaceRuns` extra full-string
// remints (one per `\n` of a blank line) plus one more full remint per run in
// `CollapseSpaces`. Peeling here works on the TAIL only — far cheaper mints —
// and leaves `CollapseSpaces` a no-op for these runs. Equivalence: both forms
// reduce every whitespace run that touches a line break to a single space, and
// runs NOT touching a line break are still collapsed by the unchanged
// `CollapseSpaces` pass. A capped-out leftover (`\t`/`\n`/`\r` beyond the
// budget) is still caught by the outer loop's own branches.
type ConsumeWsRun<S extends string, Steps extends any[] = []> =
Steps["length"] extends 64
? S
: S extends ` ${infer R}` // 16 spaces
? ConsumeWsRun<R, [any, ...Steps]>
: S extends ` ${infer R}` // 4 spaces
? ConsumeWsRun<R, [any, ...Steps]>
: S extends ` ${infer R}`
? ConsumeWsRun<R, [any, ...Steps]>
: S extends `\t${infer R}`
? ConsumeWsRun<R, [any, ...Steps]>
: S extends `\n${infer R}`
? ConsumeWsRun<R, [any, ...Steps]>
: S extends `\r${infer R}`
? ConsumeWsRun<R, [any, ...Steps]>
: S;
// Cheap "is this string longer than ~500 chars" check: drop 10 chars per step

@@ -313,0 +359,0 @@ // for up to 50 steps. If content survives all 50 drops the string exceeds the

@@ -173,13 +173,35 @@ // Postgres literal neutralization, EXTRACT rewrite, comment stripping.

export type RewriteExtractWalk<S extends string, Steps extends any[] = []> =
Steps["length"] extends 24
? S
: S extends `${infer Pre} extract(${infer AfterOpen}`
? SplitBalancedParen<`(${AfterOpen}`> extends { inner: infer Inner extends string; rest: infer Rest extends string }
? Inner extends `${infer _Field} from ${infer Source}`
? `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Trim<Source>})${RewriteExtractWalk<Rest, [any, ...Steps]>}`
: `${RewriteExtractWalk<Pre, [any, ...Steps]>} extract(${Inner})${RewriteExtractWalk<Rest, [any, ...Steps]>}`
: S
: S;
// Tail-recursive accumulator walk + chunked driver. Template matching is
// LEFTMOST, so `Pre` can never contain another ` extract(` — it is appended to
// `Acc` verbatim and only `Rest` is recursed. (The previous version recursed
// into BOTH `Pre` and `Rest` building a nested template, so its step cap had to
// stay tiny — 24 — and a 50-projection report query with 25+ EXTRACTs bailed
// half-rewritten: the surviving inner ` from ` tokens then fed the tables
// collector bogus sources like `min(ua.col`, flipping ValidateSQL to a false
// rejection.) The driver re-invokes the worker with a fresh step counter every
// 64 rewrites, so any realistic number of EXTRACTs completes losslessly.
export type RewriteExtractWalk<S extends string> =
RewExDrive<RewExWorker<S>>;
type RewExDrive<R> =
[R] extends [never]
? never
: R extends { __c: [infer S extends string, infer Acc extends string] }
? RewExDrive<RewExWorker<S, Acc, []>>
: R;
type RewExWorker<
S extends string,
Acc extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 64
? { __c: [S, Acc] }
: S extends `${infer Pre} extract(${infer AfterOpen}`
? SplitBalancedParen<`(${AfterOpen}`> extends { inner: infer Inner extends string; rest: infer Rest extends string }
? Inner extends `${infer _Field} from ${infer Source}`
? RewExWorker<Rest, `${Acc}${Pre} extract(${Trim<Source>})`, [any, ...Steps]>
: RewExWorker<Rest, `${Acc}${Pre} extract(${Inner})`, [any, ...Steps]>
: `${Acc}${S}`
: `${Acc}${S}`;
// As `RewriteExtractWalk`, but an ` extract(` whose prefix has an odd number of

@@ -186,0 +208,0 @@ // single quotes sits INSIDE a string literal and is left verbatim (the literal's

@@ -16,2 +16,11 @@ // Top-level / paren-aware splitting + alias extraction.

// tail-recursion count per chunk — so arbitrarily long lists split losslessly.
// Segment-jump, not per-char (the old walk minted one growing-`Cur` string PER
// CHARACTER and the tail at every step). Each step advances to the LEFTMOST of
// the five state chars `,` `'` `"` `(` `)`, copying the whole run before it into
// `Cur` in a single mint; inside a quote it jumps straight to the closing quote
// (the other quote kind inside a span is data, preserving the old InQ/InDQ
// suppression; `''` escapes exit+re-enter across two jumps; an unterminated
// quote at EOF copies the rest verbatim). The `Steps` cap counts JUMPS and
// yields `{ __c: [...] }` to the driver as before. Mirrors `MtcStructJump`
// (tokenize.ts) and `SbpParenJump` (extract.ts).
type SplitTopLevelWorker<

@@ -25,33 +34,86 @@ S extends string,

InDQ extends boolean = false
> = Steps["length"] extends 450
// CHUNK = 120 JUMPS, not chars: since the round-7 struct-jump rewrite each
// jump costs ~4 conditional evaluations through the StlStructJump* helper
// chain, so the old 450-jump chunk could burn >1000 tail counts inside ONE
// chunk (TS2589) on a 50-projection select list. 120 jumps ≈ 500 tail counts.
> = Steps["length"] extends 120
? { __c: [S, Depth, Acc, Cur, InQ, InDQ] }
: string extends CleanIdent<S>
? [...Acc, `${Cur}string`]
: S extends `${infer C}${infer Rest}`
? C extends "'"
// A single quote toggles "inside string literal": commas, parens and
// path braces inside a '...' literal are kept verbatim, not split.
// Suppressed while inside a double-quoted identifier.
? InDQ extends true
? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ extends true ? false : true, InDQ>
: InQ extends true
? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: C extends `"`
// A double quote toggles "inside quoted identifier": commas and
// parens inside `"..."` are part of the identifier, kept verbatim.
? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ extends true ? false : true>
: InQ extends true
? S extends `${infer P}'${infer R}`
? SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}'`, [any, ...Steps], false, InDQ>
: [...Acc, `${Cur}${S}`]
: InDQ extends true
? SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: C extends "("
? SplitTopLevelWorker<Rest, [any, ...Depth], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: C extends ")"
? SplitTopLevelWorker<Rest, Depth extends [any, ...infer D] ? D : [], Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: C extends ","
? Depth["length"] extends 0
? SplitTopLevelWorker<Rest, Depth, [...Acc, Cur], "", [any, ...Steps], InQ, InDQ>
: SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: SplitTopLevelWorker<Rest, Depth, Acc, `${Cur}${C}`, [any, ...Steps], InQ, InDQ>
: [...Acc, Cur];
? S extends `${infer P}"${infer R}`
? SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}"`, [any, ...Steps], InQ, false>
: [...Acc, `${Cur}${S}`]
: S extends `${infer P},${infer R}`
// a structural char in the run before the first comma → it is
// leftmost; defer to the struct jump
? StlHasStruct<P> extends true
? StlStructJump<S, Depth, Acc, Cur, Steps>
: Depth["length"] extends 0
? SplitTopLevelWorker<R, Depth, [...Acc, `${Cur}${P}`], "", [any, ...Steps], false, false>
: SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P},`, [any, ...Steps], false, false>
: StlHasStruct<S> extends true
? StlStructJump<S, Depth, Acc, Cur, Steps>
: [...Acc, `${Cur}${S}`];
type StlHasStruct<S extends string> =
S extends `${string}'${string}` ? true
: S extends `${string}"${string}` ? true
: S extends `${string}(${string}` ? true
: S extends `${string})${string}` ? true
: false;
// Leftmost of `'` / `"` / `(` / `)` (the caller guarantees at least one occurs
// before any comma). Pairwise narrowing: split on a candidate; if an
// earlier-class char appears in its prefix, that one is leftmost instead.
type StlStructJump<
S extends string,
Depth extends any[],
Acc extends string[],
Cur extends string,
Steps extends any[]
> = S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}`
? StlStructJump2<S, Depth, Acc, Cur, Steps>
: SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}'`, [any, ...Steps], true, false>
: StlStructJump2<S, Depth, Acc, Cur, Steps>;
type StlStructJump2<
S extends string,
Depth extends any[],
Acc extends string[],
Cur extends string,
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? StlStructJump3<S, Depth, Acc, Cur, Steps>
: SplitTopLevelWorker<R, Depth, Acc, `${Cur}${P}"`, [any, ...Steps], false, true>
: StlStructJump3<S, Depth, Acc, Cur, Steps>;
type StlStructJump3<
S extends string,
Depth extends any[],
Acc extends string[],
Cur extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? StlCloseJump<S, Depth, Acc, Cur, Steps>
: SplitTopLevelWorker<R, [any, ...Depth], Acc, `${Cur}${P}(`, [any, ...Steps], false, false>
: StlCloseJump<S, Depth, Acc, Cur, Steps>;
type StlCloseJump<
S extends string,
Depth extends any[],
Acc extends string[],
Cur extends string,
Steps extends any[]
> = S extends `${infer P})${infer R}`
? SplitTopLevelWorker<R, Depth extends [any, ...infer D] ? D : [], Acc, `${Cur}${P})`, [any, ...Steps], false, false>
: [...Acc, `${Cur}${S}`];
// Driver: run the worker chunk-by-chunk until it returns the finished `string[]`.

@@ -75,52 +137,154 @@ // Each `{ __c: state }` yield is fed back with a fresh step counter, so no single

// output alias (`id as "came from import"`) is part of the identifier, not the
// SELECT/FROM boundary, so it must not split the list. `InString` tracks single
// quotes; `InDString` tracks double quotes. Parens and the ` from ` boundary are
// only honoured when outside BOTH kinds of quote.
export type ExtractBeforeFromTopLevel<
// SELECT/FROM boundary, so it must not split the list. Parens and the ` from `
// boundary are only honoured when outside BOTH kinds of quote.
// Struct-jump, not per-char (the old walk minted a growing `Acc` PER CHARACTER
// over every subquery select-list). At depth 0 each step advances to the
// LEFTMOST of `'` `"` `(` `)` ` from ` (pairwise narrowing, multi-char keyword
// checked last); at depth > 0 the ` from ` candidate is dropped (a nested FROM
// is not the boundary). Quote spans are jumped quote-to-quote (the other quote
// kind inside a span is data, preserving the old InString/InDString
// suppression; an unterminated quote swallows the rest, as the old
// walk-to-EOF did).
//
// CHUNKED worker/driver (mirrors `SplitTopLevel`): each jump costs ~4-5
// conditional evaluations through the EbftJump* helper chain, so a single
// recursion chain crosses TS's 1000 tail-count budget at ~200+ jumps — a
// 50-projection SELECT list of quoted/parenthesised expressions gets there
// (TS2589). The worker yields its state every 120 jumps and the driver
// re-invokes it with a fresh step counter, so arbitrarily long select lists
// complete losslessly. (The pre-chunking version bailed to a lenient
// `ExtractBefore<S, " from ">` at a 350-jump cap — and blew TS2589 before
// ever reaching it on exactly the queries the cap was meant to protect.)
export type ExtractBeforeFromTopLevel<S extends string> =
EbftDrive<EbftWorker<S>>;
type EbftDrive<R> =
[R] extends [never]
? never
: R extends { __c: [infer S extends string, infer Depth extends any[], infer Acc extends string] }
? EbftDrive<EbftWorker<S, Depth, Acc, []>>
: R;
type EbftWorker<
S extends string,
Depth extends any[] = [],
InString extends boolean = false,
Acc extends string = "",
Steps extends any[] = [],
InDString extends boolean = false
> = Steps["length"] extends 350
? `${Acc}${ExtractBefore<S, " from ">}`
: InString extends true
? S extends `${infer C}${infer Rest}`
? C extends "'"
? ExtractBeforeFromTopLevel<Rest, Depth, false, `${Acc}${C}`, [any, ...Steps], InDString>
: ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: Acc
: InDString extends true
? S extends `${infer C}${infer Rest}`
? C extends `"`
? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], false>
: ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true>
: Acc
: Depth["length"] extends 0
? S extends ` from ${string}`
? Acc
: S extends `${infer C}${infer Rest}`
? C extends "'"
? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends `"`
? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true>
: C extends "("
? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends ")"
? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: Acc
: S extends `${infer C}${infer Rest}`
? C extends "'"
? ExtractBeforeFromTopLevel<Rest, Depth, true, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends `"`
? ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true>
: C extends "("
? ExtractBeforeFromTopLevel<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends ")"
? ExtractBeforeFromTopLevel<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: ExtractBeforeFromTopLevel<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: Acc;
Steps extends any[] = []
> = Steps["length"] extends 120
? { __c: [S, Depth, Acc] }
: Depth["length"] extends 0
? EbftJumpTop<S, Depth, Acc, Steps>
: EbftJumpNested<S, Depth, Acc, Steps>;
// inside `'…'`: resume after the closing quote (any depth; quotes ignore depth)
type EbftQuoteClose<
R extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = R extends `${infer Span}'${infer R2}`
? EbftWorker<R2, Depth, `${Acc}${Span}'`, [any, ...Steps]>
: `${Acc}${R}`;
type EbftDQuoteClose<
R extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = R extends `${infer Span}"${infer R2}`
? EbftWorker<R2, Depth, `${Acc}${Span}"`, [any, ...Steps]>
: `${Acc}${R}`;
type EbftJumpTop<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}` | `${string} from ${string}`
? EbftJumpTop2<S, Depth, Acc, Steps>
: EbftQuoteClose<R, Depth, `${Acc}${P}'`, Steps>
: EbftJumpTop2<S, Depth, Acc, Steps>;
type EbftJumpTop2<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}` | `${string} from ${string}`
? EbftJumpTop3<S, Depth, Acc, Steps>
: EbftDQuoteClose<R, Depth, `${Acc}${P}"`, Steps>
: EbftJumpTop3<S, Depth, Acc, Steps>;
type EbftJumpTop3<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}` | `${string} from ${string}`
? EbftJumpTop4<S, Depth, Acc, Steps>
: EbftWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]>
: EbftJumpTop4<S, Depth, Acc, Steps>;
type EbftJumpTop4<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P})${infer R}`
? P extends `${string} from ${string}`
? EbftJumpTop5<S, Acc>
// an unmatched `)` at depth 0 stays at depth 0 (pop of empty = empty)
: EbftWorker<R, [], `${Acc}${P})`, [any, ...Steps]>
: EbftJumpTop5<S, Acc>;
type EbftJumpTop5<S extends string, Acc extends string> =
S extends `${infer P} from ${string}`
? `${Acc}${P}`
: `${Acc}${S}`;
type EbftJumpNested<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}`
? EbftJumpNested2<S, Depth, Acc, Steps>
: EbftQuoteClose<R, Depth, `${Acc}${P}'`, Steps>
: EbftJumpNested2<S, Depth, Acc, Steps>;
type EbftJumpNested2<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? EbftJumpNested3<S, Depth, Acc, Steps>
: EbftDQuoteClose<R, Depth, `${Acc}${P}"`, Steps>
: EbftJumpNested3<S, Depth, Acc, Steps>;
type EbftJumpNested3<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? EbftJumpNested4<S, Depth, Acc, Steps>
: EbftWorker<R, [any, ...Depth], `${Acc}${P}(`, [any, ...Steps]>
: EbftJumpNested4<S, Depth, Acc, Steps>;
type EbftJumpNested4<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P})${infer R}`
? EbftWorker<R, Depth extends [any, ...infer D] ? D : [], `${Acc}${P})`, [any, ...Steps]>
: `${Acc}${S}`;
// Simple comma split (no paren awareness)

@@ -127,0 +291,0 @@

@@ -72,2 +72,3 @@ // Low-level string primitives, predicates, and token cleaners.

S extends `${string}/${string}` ? true :
S extends `${string}%${string}` ? true :
S extends `${string}=${string}` ? true :

@@ -140,13 +141,17 @@ S extends `${string}<${string}` ? true :

export type SplitOnDot<S extends string> =
S extends `${infer A}.${infer B}` ? [A, ...SplitOnDot<B>] : [S];
// Direct template-match split of a (≤3-part) dotted ref into cleaned segments.
// Replaces the old recursive `SplitOnDot` array build (its `[S]` base case and
// `[A, ...rest]` prepend minted tuples per qualified ref, and the 1/2/3-arm
// dispatch re-matched the built array three times). `${infer A}.${infer R}`
// binds the LEFTMOST dot, so A is the first segment exactly as before; a 4th
// segment (a dot remaining after the third split) yields `[]`, matching the old
// "no arm matches a 4+-tuple" fall-through.
export type SplitOnDotClean<S extends string> =
SplitOnDot<S> extends [infer A extends string, infer B extends string, infer C extends string]
? [CleanIdent<A>, CleanIdent<B>, CleanIdent<C>]
: SplitOnDot<S> extends [infer A extends string, infer B extends string]
? [CleanIdent<A>, CleanIdent<B>]
: SplitOnDot<S> extends [infer A extends string]
? [CleanIdent<A>]
: [];
S extends `${infer A}.${infer R}`
? R extends `${infer B}.${infer R2}`
? R2 extends `${string}.${string}`
? []
: [CleanIdent<A>, CleanIdent<B>, CleanIdent<R2>]
: [CleanIdent<A>, CleanIdent<R>]
: [CleanIdent<S>];

@@ -159,7 +164,2 @@ export type MapClean<Tokens extends string[], Acc extends string[] = []> =

export type MapCleanLoose<Tokens extends string[], Acc extends string[] = []> =
Tokens extends [infer H extends string, ...infer R extends string[]]
? MapCleanLoose<R, [...Acc, CleanLooseToken<H>]>
: Acc;
export type CleanLooseToken<S extends string> =

@@ -166,0 +166,0 @@ S extends OperatorToken

// Tokenization, sentinels, operators, and SQL keyword sets.
import type { CleanIdent, CleanLooseToken, CollapseSpaces, ReplaceAll, Split, Trim, TrimPunctuation } from "./string-utils.js";
import type { CleanIdent, CollapseSpaces, ReplaceAll, Trim, TrimPunctuation } from "./string-utils.js";
import type { ExceedsLengthBudget, HasLineBreaks } from "./normalize.js";
// Tokenization & parsing helpers
export type Tokenize<N extends string> = CleanFilterTokens<Split<N, " ">>;
// Sentinel token standing in for a TOP-LEVEL comma. It survives `MapClean`

@@ -12,3 +10,8 @@ // (no stripped punctuation, non-empty identifier) whereas a bare `,` does not,

// parens / a string literal — which must still be dropped as before.
export type CommaSep = "__tsqlcomma__";
// A control char unrepresentable in real SQL: 1 char instead of the old
// 13-char `__tsqlcomma__`, so every marked query string and every token list
// it flows through interns ~14 fewer chars per top-level comma. Neutral to
// the pipeline: not in `Punct`/`Whitespace`/`DQuotedPunct`/`OperatorToken`,
// and `Lowercase`/`CleanIdent` leave it intact.
export type CommaSep = "";

@@ -19,85 +22,145 @@ // Replace only TOP-LEVEL commas (paren depth 0, outside single OR double quotes)

// tuples), string literals, or quoted identifiers (`users as "u,1"`) are left
// verbatim and get stripped by `MapClean` as today. The `InDString` arm tracks
// double-quoted identifiers so a comma inside a quoted table/column alias is not
// mistaken for a FROM-source separator. Char-walk mirrors `SplitTopLevel` /
// `StripComments`; step-bounded.
export type MarkTopLevelCommas<
// verbatim and get stripped by `MapClean` as today.
//
// Segment-jump, not per-char (the old walk minted one growing-`Acc` string PER
// CHARACTER on every under-budget query). Each step advances to the LEFTMOST of
// the five state chars `,` `'` `"` `(` `)`, copying the whole run before it in a
// single mint; inside a quote it jumps straight to the closing quote, exactly
// like `LowercaseOutsideQuotesWorker` (`''` escapes exit+re-enter across two
// jumps; an unterminated quote at EOF copies the rest verbatim). The `Steps` cap
// counts JUMPS and yields `{ __c: [...] }` to the driver, so arbitrarily
// boundary-dense inputs still complete without a partial-output bail.
export type MarkTopLevelCommas<S extends string> =
string extends S
? S
: MtcDrive<MtcWorker<S, [], false, false, "", []>>;
type MtcDrive<R> =
R extends { __c: [infer S extends string, infer D extends any[], infer Q1 extends boolean, infer Q2 extends boolean, infer Acc extends string] }
? MtcDrive<MtcWorker<S, D, Q1, Q2, Acc, []>>
: R;
type MtcHasStruct<S extends string> =
S extends `${string}'${string}` ? true
: S extends `${string}"${string}` ? true
: S extends `${string}(${string}` ? true
: S extends `${string})${string}` ? true
: false;
type MtcWorker<
S extends string,
Depth extends any[] = [],
InString extends boolean = false,
Acc extends string = "",
Steps extends any[] = [],
InDString extends boolean = false
> = string extends S
? S
: Steps["length"] extends 1500
? `${Acc}${S}`
: S extends `${infer C}${infer Rest}`
? InDString extends true
? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], C extends `"` ? false : true>
: C extends "'"
? MarkTopLevelCommas<Rest, Depth, InString extends true ? false : true, `${Acc}${C}`, [any, ...Steps], InDString>
: InString extends true
? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends `"`
? MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], true>
: C extends "("
? MarkTopLevelCommas<Rest, [any, ...Depth], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends ")"
? MarkTopLevelCommas<Rest, Depth extends [any, ...infer D] ? D : [], InString, `${Acc}${C}`, [any, ...Steps], InDString>
: C extends ","
? Depth["length"] extends 0
? MarkTopLevelCommas<Rest, Depth, InString, `${Acc} ${CommaSep} `, [any, ...Steps], InDString>
: MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: MarkTopLevelCommas<Rest, Depth, InString, `${Acc}${C}`, [any, ...Steps], InDString>
: Acc;
Depth extends any[],
InString extends boolean,
InDString extends boolean,
Acc extends string,
Steps extends any[]
> = Steps["length"] extends 450
? { __c: [S, Depth, InString, InDString, Acc] }
: InString extends true
? S extends `${infer P}'${infer R}`
? MtcWorker<R, Depth, false, InDString, `${Acc}${P}'`, [any, ...Steps]>
: `${Acc}${S}`
: InDString extends true
? S extends `${infer P}"${infer R}`
? MtcWorker<R, Depth, InString, false, `${Acc}${P}"`, [any, ...Steps]>
: `${Acc}${S}`
: S extends `${infer P},${infer R}`
// a structural char in the run before the first comma → it is
// leftmost; defer to the struct jump
? MtcHasStruct<P> extends true
? MtcStructJump<S, Depth, Acc, Steps>
: Depth["length"] extends 0
? MtcWorker<R, Depth, false, false, `${Acc}${P} ${CommaSep} `, [any, ...Steps]>
: MtcWorker<R, Depth, false, false, `${Acc}${P},`, [any, ...Steps]>
: MtcHasStruct<S> extends true
? MtcStructJump<S, Depth, Acc, Steps>
: `${Acc}${S}`;
// Token stream for the table/alias collectors: identical to `Tokenize` except
// top-level commas survive as `CommaSep` tokens (so `from a, b` exposes its
// source boundary). Used ONLY by `TablesInQuery` / `AliasesInQuery`.
// Leftmost of `'` / `"` / `(` / `)` (the caller guarantees at least one occurs
// before any comma). Pairwise narrowing: split on a candidate; if an
// earlier-class char appears in its prefix, that one is leftmost instead.
type MtcStructJump<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}'${infer R}`
? P extends `${string}"${string}` | `${string}(${string}` | `${string})${string}`
? MtcStructJump2<S, Depth, Acc, Steps>
: MtcWorker<R, Depth, true, false, `${Acc}${P}'`, [any, ...Steps]>
: MtcStructJump2<S, Depth, Acc, Steps>;
type MtcStructJump2<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}"${infer R}`
? P extends `${string}(${string}` | `${string})${string}`
? MtcStructJump3<S, Depth, Acc, Steps>
: MtcWorker<R, Depth, false, true, `${Acc}${P}"`, [any, ...Steps]>
: MtcStructJump3<S, Depth, Acc, Steps>;
type MtcStructJump3<
S extends string,
Depth extends any[],
Acc extends string,
Steps extends any[]
> = S extends `${infer P}(${infer R}`
? P extends `${string})${string}`
? S extends `${infer P2})${infer R2}`
? MtcWorker<R2, Depth extends [any, ...infer D] ? D : [], false, false, `${Acc}${P2})`, [any, ...Steps]>
: `${Acc}${S}`
: MtcWorker<R, [any, ...Depth], false, false, `${Acc}${P}(`, [any, ...Steps]>
: S extends `${infer P2})${infer R2}`
? MtcWorker<R2, Depth extends [any, ...infer D] ? D : [], false, false, `${Acc}${P2})`, [any, ...Steps]>
: `${Acc}${S}`;
// String view for the table/alias collectors: identical content to plain
// `Tokenize` input except top-level commas survive as `CommaSep` sentinels (so
// `from a, b` exposes its source boundary). The collectors walk this string
// DIRECTLY, word by word (the `Ct`/`Ca`/`Cn`/`Ta` scan walkers in tables.ts) —
// the former `SplitCollectorTokens` token-ARRAY build (and the
// collector-relevance filter that existed only to keep that array small) is
// gone: per the round-8/9 census, every array build/destructure step minted a
// unique-content tuple plus its apparent-`Array` types, while a word-jump
// string walk interns its substrings and counter tuples.
//
// Report-scale queries (multi-line, or very long) skip the comma-marking
// char-walk and fall back to plain `Tokenize` — the same big-query light path
// char-walk and use the raw normalized string — the same big-query light path
// `ValidateSQLNormalizedLightSelect` already takes. A comma cross-join in such a
// query is negligibly rare, and avoiding the extra instantiation depth keeps the
// largest analytics queries under the TS recursion limit.
export type TokenizeTables<N extends string> =
export type CollectorScanView<N extends string> =
HasLineBreaks<N> extends true
? Tokenize<N>
? N
: ExceedsLengthBudget<N> extends true
? Tokenize<N>
: RestoreCleanFilterTokens<Split<MaybeMarkDQuotedSpaces<MarkTopLevelCommas<N>>, " ">>;
? N
: MaybeMarkDQuotedSpaces<MarkTopLevelCommas<N>>;
export type TokenizeLoose<N extends string> =
RestoreCleanLooseFilterTokens<
Split<CollapseSpaces<RestoreWildcards<PadOperators<ProtectWildcards<MaybeMarkDQuotedSpaces<MaybeStripDQuotedPunct<N>>>>>>, " ">
> extends infer Toks extends string[]
? N extends `${string}distinct ${string}`
? DropDistinctFrom<Toks>
: Toks
: [];
// The collector token for one raw word of `CollectorScanView`: sentinel-restored,
// then exactly the value the old split pushed (`TrimPunctuation<Trim<H>>`); `""`
// means the word is punctuation/whitespace-only and never occupied a token
// position (the old `CleanIdent<H> extends ""` empty-token filter — a non-empty
// `CleanIdent` guarantees a non-empty `TrimPunctuation<Trim<H>>`, so `""` is a
// safe drop sentinel). On the raw big-query path no sentinel can occur and the
// restore is a single failed template match.
export type CollectorToken<H extends string> =
ReplaceAll<H, DQuoteSpaceSentinel, " "> extends infer R extends string
? CleanIdent<R> extends ""
? ""
: TrimPunctuation<Trim<R>>
: never;
// `IS [NOT] DISTINCT FROM` is a comparison operator: its `from` is operator text,
// NOT a FROM clause / table-source boundary. The column ref-scanner skips a token
// whose `Prev` is `from` (treating it as a table source), so the RHS expression of
// the operator (`price IS DISTINCT FROM bogus_col`) escapes validation entirely
// (round-13 D1/D2). Drop the operator `from` — the one directly preceded by
// `distinct` — from the token list so the RHS's `Prev` becomes `distinct`, which
// `CanPrecedeColumn` already blesses, and the column is validated like any other.
// `distinct` is immediately followed by the bare token `from` ONLY in this
// operator, so the rewrite is unambiguous. The real FROM-clause `from` is untouched.
export type DropDistinctFrom<
Tokens extends string[],
Acc extends string[] = [],
Prev extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 400
? [...Acc, ...Tokens]
: Tokens extends [infer H extends string, ...infer R extends string[]]
? H extends "from"
? Prev extends "distinct"
? DropDistinctFrom<R, Acc, "from", [any, ...Steps]>
: DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]>
: DropDistinctFrom<R, [...Acc, H], H, [any, ...Steps]>
: Acc;
// The padded, space-collapsed string the column ref-scanners walk DIRECTLY —
// the string→string prefix of the old `TokenizeLoose` pipeline. The split into a
// token ARRAY (and the separate `DropDistinctFrom` array pass) is gone: per round-8
// census, every token-array build/destructure step minted a unique-content tuple
// plus its apparent-`Array` types, while the word-jump string walks that replaced
// them (`QualifiedRefScan` / `UnqualifiedRefScan` in columns.ts) intern their
// substrings and counters. Token semantics (per-word `CleanLooseToken` transform,
// sentinel restore, empty-token drop, `IS [NOT] DISTINCT FROM` handling) are
// reproduced verbatim inside the scan walkers.
export type LooseScanView<N extends string> =
CollapseSpaces<RestoreWildcards<PadOperators<ProtectWildcards<MaybePadModulo<MaybeMarkDQuotedSpaces<MaybeStripDQuotedPunct<N>>>>>>>;

@@ -110,3 +173,3 @@ // Operator/comma characters that `PadOperators` would split on. Inside a

export type DQuotedPunct =
"(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?";
"(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "%" | "|" | "&" | "!" | "?";

@@ -121,6 +184,11 @@ // Only pay for the char-walk when there is actually a double quote to handle —

// the quotes untouched. `"u,1"` -> `"u1"`; `"u1".id` (no inner punctuation) is
// unchanged. Step-bounded against runaway.
// unchanged.
//
// Span-jump, not per-char: nothing outside a double-quoted span changes, so each
// step jumps to the leftmost `"`, copies the whole preceding run in one mint,
// finds the closing `"` and rewrites only the (short) span interior. Like the
// old walk, single quotes are NOT tracked — every `"` toggles. An unterminated
// `"` at EOF keeps stripping to the end (the old InDQ-at-EOF behavior).
export type StripDQuotedPunct<
S extends string,
InDQ extends boolean = false,
Acc extends string = "",

@@ -130,12 +198,18 @@ Steps extends any[] = []

? S
: Steps["length"] extends 1500
: Steps["length"] extends 300
? `${Acc}${S}`
: S extends `${infer P}"${infer R}`
? R extends `${infer Span}"${infer R2}`
? StripDQuotedPunct<R2, `${Acc}${P}"${StripPunctChars<Span>}"`, [any, ...Steps]>
: `${Acc}${P}"${StripPunctChars<R>}`
: `${Acc}${S}`;
// Per-char strip over a (short) double-quoted span interior only.
type StripPunctChars<S extends string, Acc extends string = "", Steps extends any[] = []> =
Steps["length"] extends 200
? `${Acc}${S}`
: S extends `${infer C}${infer Rest}`
? C extends `"`
? StripDQuotedPunct<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]>
: InDQ extends true
? C extends DQuotedPunct
? StripDQuotedPunct<Rest, InDQ, Acc, [any, ...Steps]>
: StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]>
: StripDQuotedPunct<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]>
? C extends DQuotedPunct
? StripPunctChars<Rest, Acc, [any, ...Steps]>
: StripPunctChars<Rest, `${Acc}${C}`, [any, ...Steps]>
: Acc;

@@ -150,3 +224,5 @@

// space per-token before `CleanIdent`/`MapClean` runs. Mirrors `StripDQuotedPunct`.
export type DQuoteSpaceSentinel = "__tsqldqsp__";
// 1-char control sentinel (was the 12-char `__tsqldqsp__`) — same neutrality
// argument as `CommaSep`.
export type DQuoteSpaceSentinel = "";

@@ -158,5 +234,9 @@ // Only pay for the char-walk when there is actually a double quote present — the

// Span-jump sibling of `StripDQuotedPunct`: copy the run before the leftmost
// `"` in one mint, then mark the span interior's spaces via `ReplaceAll`
// (spans are short identifiers). Single quotes are NOT tracked — every `"`
// toggles, exactly like the old per-char walk; an unterminated `"` keeps
// marking to EOF.
export type MarkDQuotedSpaces<
S extends string,
InDQ extends boolean = false,
Acc extends string = "",

@@ -166,55 +246,10 @@ Steps extends any[] = []

? S
: Steps["length"] extends 1500
: Steps["length"] extends 300
? `${Acc}${S}`
: S extends `${infer C}${infer Rest}`
? C extends `"`
? MarkDQuotedSpaces<Rest, InDQ extends true ? false : true, `${Acc}${C}`, [any, ...Steps]>
: InDQ extends true
? C extends " "
? MarkDQuotedSpaces<Rest, InDQ, `${Acc}${DQuoteSpaceSentinel}`, [any, ...Steps]>
: MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]>
: MarkDQuotedSpaces<Rest, InDQ, `${Acc}${C}`, [any, ...Steps]>
: Acc;
: S extends `${infer P}"${infer R}`
? R extends `${infer Span}"${infer R2}`
? MarkDQuotedSpaces<R2, `${Acc}${P}"${ReplaceAll<Span, " ", DQuoteSpaceSentinel>}"`, [any, ...Steps]>
: `${Acc}${P}"${ReplaceAll<R, " ", DQuoteSpaceSentinel>}`
: `${Acc}${S}`;
// Fused token post-passes: one walk instead of the old
// `FilterEmpty<MapClean<RestoreDQuotedSpaces<…>>>` three-walk chain. Each pass was
// an independent element-wise map/filter, so composing them per token yields the
// identical list (ordering preserved) while building the result spine once.
//
// The DQuote-space sentinel restore (`ReplaceAll<H, DQuoteSpaceSentinel, " ">`) lets
// a quoted identifier that survived the space-split as one token (`"Order ID"`,
// `"user alias".id`) clean to its true value. `CleanFilterTokens` is the no-restore
// variant (plain `Tokenize`, which never marks sentinels).
//
// MapClean maps each token to `CleanIdent<H> extends "" ? "" : TrimPunctuation<Trim<H>>`
// and FilterEmpty drops the `""`s. Since `CleanIdent = Lowercase<Unquote<TrimPunctuation<
// Trim<S>>>>`, a non-empty `CleanIdent<H>` guarantees a non-empty `TrimPunctuation<Trim<H>>`,
// so the kept value is never empty — the empty-token filter collapses to the single
// `CleanIdent<H> extends ""` test. (The loose variant keeps an explicit empty filter
// because `CleanLooseToken` can return `""` for a non-operator empty ident.)
export type CleanFilterTokens<Tokens extends string[], Acc extends string[] = []> =
Tokens extends [infer H extends string, ...infer R extends string[]]
? CleanIdent<H> extends ""
? CleanFilterTokens<R, Acc>
: CleanFilterTokens<R, [...Acc, TrimPunctuation<Trim<H>>]>
: Acc;
export type RestoreCleanFilterTokens<Tokens extends string[], Acc extends string[] = []> =
Tokens extends [infer H0 extends string, ...infer R extends string[]]
? ReplaceAll<H0, DQuoteSpaceSentinel, " "> extends infer H extends string
? CleanIdent<H> extends ""
? RestoreCleanFilterTokens<R, Acc>
: RestoreCleanFilterTokens<R, [...Acc, TrimPunctuation<Trim<H>>]>
: never
: Acc;
export type RestoreCleanLooseFilterTokens<Tokens extends string[], Acc extends string[] = []> =
Tokens extends [infer H0 extends string, ...infer R extends string[]]
? CleanLooseToken<ReplaceAll<H0, DQuoteSpaceSentinel, " ">> extends infer M extends string
? M extends ""
? RestoreCleanLooseFilterTokens<R, Acc>
: RestoreCleanLooseFilterTokens<R, [...Acc, M]>
: never
: Acc;
// A validation-only view of a query: blank the CONTENTS of every single-quoted

@@ -235,3 +270,3 @@ // string literal (`'anything'` -> `''`) and mask the interior spaces of every

// alias (round-12 A1) while leaving the identifier intact for ref validation
// (`TokenizeLoose` restores the sentinel). The caller gates this behind a quote
// (the ref-scan walkers restore the sentinel). The caller gates this behind a quote
// and within-budget pre-check so report-scale queries never run the walk.

@@ -265,3 +300,3 @@ export type ValidationScanView<S extends string> =

export type OperatorToken =
| "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "|" | "&" | "!" | "?"
| "(" | ")" | "," | "=" | "<" | ">" | "+" | "-" | "*" | "/" | "%" | "|" | "&" | "!" | "?"
// `~` / `!~` are PostgreSQL regex-match operators; `[` / `]` delimit array

@@ -277,8 +312,51 @@ // literals/subscripts. Treating them as operators makes `CanPrecedeColumn`

// `.` control sentinel (was `.__wildcard__`) keeps the qualified `.*`
// out of `PadOperators`' `*` padding; `` itself is never padded.
export type ProtectWildcards<S extends string> =
ReplaceAll<S, ".*", ".__wildcard__">;
ReplaceAll<S, ".*", ".">;
export type RestoreWildcards<S extends string> =
ReplaceAll<S, ".__wildcard__", ".*">;
ReplaceAll<S, ".", ".*">;
// `%` is the modulo operator, but it is also the single most common character
// inside LIKE/ILIKE pattern literals (`'%smith%'`). The plain `PadOperator`
// chain pads EVERYWHERE — acceptable for the operators above because the
// validation path blanks string literals first on small queries — but
// `LooseScanView` also runs on NON-neutralized inputs (multi-line /
// over-budget queries skip `ValidationScanView`), where padding inside a
// literal would leak its words as blessed column candidates
// (`'%smith%'` -> `' % smith % '` -> `smith` validated -> false reject).
// So `%` gets its own quote-aware pad: literal interiors are copied
// verbatim, `%` is padded only between them. `%`-free strings (the
// overwhelming majority) short-circuit on a single pattern match.
export type MaybePadModulo<S extends string> =
S extends `${string}%${string}`
? S extends `${string}'${string}`
? PadModuloQuoteAware<S>
: PadOperator<S, "%">
: S;
// Pairwise span-jump (same shape as `BlankSingleQuotedLiterals`): hop to the
// leftmost `'`, pad the run BEFORE it, copy the `'…'` span verbatim, recurse
// on the tail. The `''` SQL escape pairs leftmost exactly like the blanking
// walk. An UNTERMINATED opener pads the run before it, then copies the
// literal tail verbatim (lenient: no padding inside what is textually a
// string literal). Depth is the NUMBER OF
// LITERALS, not string length; the step cap is a runaway backstop only — on
// cap the remainder passes through UNPADDED (pre-round behavior, so a cap
// hit can never cause a new rejection).
type PadModuloQuoteAware<
S extends string,
Acc extends string = "",
Steps extends any[] = []
> = string extends S
? S
: Steps["length"] extends 300
? `${Acc}${S}`
: S extends `${infer Pre}'${infer Rest}`
? Rest extends `${infer Lit}'${infer After}`
? PadModuloQuoteAware<After, `${Acc}${PadOperator<Pre, "%">}'${Lit}'`, [any, ...Steps]>
: `${Acc}${PadOperator<Pre, "%">}'${Rest}`
: `${Acc}${PadOperator<S, "%">}`;
export type PadOperators<S extends string> =

@@ -285,0 +363,0 @@ PadOperator<

@@ -19,7 +19,6 @@ // Partial (fragment) query validation for the query builder. Each clause of a

SplitTopLevel,
TokenizeLoose,
Trim
} from "./parsing.js";
import type {
QualifiedColumnRefs,
QualifiedRefScan,
ResolveAlias,

@@ -80,3 +79,3 @@ StripDoubleQuotes,

// Validate every qualified column ref in a token list, partial-mode.
// Validate every qualified column ref in a fragment, partial-mode.
export type QualifiedColumnRefsValidPartialFor<

@@ -86,4 +85,4 @@ S extends DatabaseSchema,

Aliases extends string,
LooseTokens extends string[]
> = QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols
RefSeg extends string
> = QualifiedRefScan<RefSeg> extends infer Cols
? AllTrue<Cols extends string ? ColumnRefValidPartialWith<Cols, Tables, Aliases, S> : true>

@@ -103,5 +102,3 @@ : true;

? AllPartTablesValid<Tables, S> extends true
? TokenizeLoose<N> extends infer Toks extends string[]
? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks>
: true
? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, N>
: false

@@ -137,5 +134,3 @@ : true

: NormalizeQuery<Part> extends infer N extends string
? TokenizeLoose<N> extends infer Toks extends string[]
? QualifiedColumnRefsValidPartialFor<S, never, never, Toks>
: true
? QualifiedColumnRefsValidPartialFor<S, never, never, N>
: false;

@@ -155,9 +150,8 @@

: NormalizeQuery<Part> extends infer N extends string
? TokenizeLoose<N> extends infer Toks extends string[]
? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, Toks>
: true
? QualifiedColumnRefsValidPartialFor<S, Tables, Aliases, N>
: false;
// Expression-detector for a single SELECT-item token. HasSpecial covers space,
// parens, arithmetic/comparison operators, comma, `::`, `||`. We additionally
// parens, arithmetic operators (+ - * / %), comparison operators, comma,
// `::`, `||`. We additionally
// reject `[ ] " ' :` so array-indexing, quoted-with-space idents, json arrows,

@@ -164,0 +158,0 @@ // and param/cast colons are treated as expressions (skipped, never falsely

import type { DatabaseSchema, NormalizeTableKey, TableExists } from "./schema.js";
import type { CleanIdent, CommaSep, SplitOnDotClean, SqlKeyword, Tokenize, TokenizeTables } from "./parsing.js";
import type { CleanIdent, CollectorScanView, CollectorToken, CommaSep, SplitOnDotClean, SqlKeyword } from "./parsing.js";
// Table and alias extraction
//
// The collectors walk the `CollectorScanView` STRING directly, word by word —
// replacing the old `SplitCollectorTokens` token-array build plus array-walking
// state machines (round-10): every array build/destructure step minted a
// unique-content tuple and its apparent-`Array` types, while a word-jump string
// walk interns its substrings and `[any, ...Steps]` counter tuples. The old
// walkers branched on the token at the current position plus 1–3 tokens of
// lookahead; here the lookahead is a `Mode` register — a keyword arms a mode and
// the decision fires when the NEXT kept token materializes (the round-9
// deferred-decision pattern). A word whose `CollectorToken` is `""` never
// occupied an array position, so it updates NO register (it does consume the
// step cap, exactly like the old split's per-word budget).
//
// Each walker is CHUNKED (the chunked-driver pattern): the worker walks 100
// words per evaluation and yields `{ __c: [state...] }`, and the driver
// re-invokes it with a fresh step counter — a whole-query walk in one tail
// evaluation exceeds TypeScript's conditional-evaluation budget on report-scale
// queries (TS2589). 20 chunks × 100 words = the old split's 2000-word cap: on
// the final chunk boundary the remainder is blobbed into ONE trailing token and
// dispatched in whatever state the walk had reached (the `*Final` arms), exactly
// like the old capped split + collector tail.
export type TablesInQuery<N extends string, S extends DatabaseSchema> =
CollectTables<TokenizeTables<N>, S, never, false, N extends `delete ${string}` ? true : false>;
CtDrive<CtWalk<CollectorScanView<N>, S, never, false, N extends `delete ${string}` ? true : false>, S>;
export type AliasesInQuery<N extends string, S extends DatabaseSchema> =
CollectAliases<TokenizeTables<N>, S, never, false, N extends `delete ${string}` ? true : false>;
CaDrive<CaWalk<CollectorScanView<N>, S, never, false, N extends `delete ${string}` ? true : false>, S>;

@@ -36,182 +57,371 @@ export type TableKeyValid<Key extends string, S extends DatabaseSchema> =

// The target scan walks the RAW normalized query (never comma-marked — same as
// the old `SplitCollectorTokens<N>` path) and STOPS at the token after the
// keyword: `insert into orders ...` resolves in two words instead of first
// splitting the whole query into a token array.
export type InsertTargetTable<N extends string, S extends DatabaseSchema> =
TableAfter<Tokenize<N>, "into", S>;
TableAfterScan<N, "into", S>;
export type UpdateTargetTable<N extends string, S extends DatabaseSchema> =
TableAfter<Tokenize<N>, "update", S>;
TableAfterScan<N, "update", S>;
export type DeleteTargetTable<N extends string, S extends DatabaseSchema> =
TableAfter<Tokenize<N>, "from", S>;
TableAfterScan<N, "from", S>;
// Collect tables by keyword
// `InList` tracks whether we are inside a FROM-source list, so a TOP-LEVEL comma
// (preserved as a `,` token by `TokenizeTables`) introduces ANOTHER table source
// — the ANSI comma cross-join `from a, b`. The flag is turned on after a
// `from`/`join`/`into`/`update` source and off at the next clause keyword, so
// commas in the SELECT list / GROUP BY / ORDER BY / value tuples are ignored.
//
// `InDelete` marks that we are inside a DELETE statement, where `USING` is a
// table-source clause (`DELETE FROM a USING b, c`) — collected like FROM/JOIN.
// `USING` in a SELECT (the JOIN ... USING (cols) join condition) is NOT a table
// source, so the branch is gated: outside a DELETE, `using` is skipped as before.
export type CollectTables<
Tokens extends string[],
// State registers (mirroring the old array walker exactly):
// - `InList` tracks whether we are inside a FROM-source list, so a TOP-LEVEL
// comma (preserved as a `CommaSep` token by `CollectorScanView`) introduces
// ANOTHER table source — the ANSI comma cross-join `from a, b`. The flag is
// turned on after a `from`/`join`/`into`/`update` source and off at the next
// clause keyword, so commas in the SELECT list / GROUP BY / ORDER BY / value
// tuples are ignored.
// - `InDelete` marks that we are inside a DELETE statement, where `USING` is a
// table-source clause (`DELETE FROM a USING b, c`) — collected like FROM/JOIN.
// `USING` in a SELECT (the JOIN ... USING (cols) join condition) is NOT a
// table source, so the branch is gated: outside a DELETE, `using` is skipped.
// - `Mode` is the armed-keyword state: "src" = saw from|join|into (next token is
// the source), "usingsrc" = saw DELETE-using (next token collected with NO
// keyword/lateral skip — the old branch collected unconditionally), "upd" =
// saw update, "del"/"delfrom" = DELETE prefix, "comma" = top-level comma in a
// source list (next token is the candidate), "commaeq" = comma candidate seen
// (held in `Pend`; an `=` after it marks an UPDATE SET-list separator, not a
// source — `UPDATE t SET a = (select ... from x), b = ...`), "dist" = saw
// `distinct` (a following `from` is the `IS [NOT] DISTINCT FROM` operator
// tail, not a FROM clause).
// The never-guard matters: a completed walk returns `never` for a query with no
// sources, and `[never]` matches ANY wrapped pattern — without the guard the
// `__c` infers fall back to their `string` constraints and the driver re-walks a
// wide string, returning `string` (which poisons every downstream qualifier
// match).
type CtDrive<R, S extends DatabaseSchema, C extends any[] = []> =
[R] extends [never]
? never
: [R] extends [{ __c: [infer V extends string, infer Acc extends string, infer IL extends boolean, infer ID extends boolean, infer Mode extends string, infer Pend extends string] }]
? C["length"] extends 19
? CtFinal<V, S, Acc, Mode, Pend>
: CtDrive<CtWalk<V, S, Acc, IL, ID, Mode, Pend>, S, [any, ...C]>
: R;
type CtWalk<
V extends string,
S extends DatabaseSchema,
Acc extends string = never,
InList extends boolean = false,
InDelete extends boolean = false
> =
Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]]
? T extends "from" | "join" | "into"
// `JOIN LATERAL (subquery|func(...)) alias` — `LATERAL` is a source
// modifier, not a relation. Skip it: the subquery body's own `from`
// re-establishes collection of its real tables, and a function-call
// source token is never reached by a from/join/comma branch, so neither
// the bare `lateral` nor the function name is mistaken for a table.
? Next extends "lateral"
? CollectTables<Rest, S, Acc, true, InDelete>
// A parenthesised FROM/JOIN source — a subquery (`from (select ...)`)
// or VALUES list (`from (values ...)`) — has its `(` stripped by
// `TokenizeTables`, leaving a leading SQL keyword (`select`/`values`)
// as the source token. That keyword is NOT a base table; collecting it
// fabricates a bogus `public.select`/`public.values` key that fails the
// existence check. A real (unquoted) table is never a SQL keyword, so
// skipping keyword sources here is safe; the source's `) AS alias` is
// handled leniently in qualified-ref validation.
: Next extends SqlKeyword
? CollectTables<Rest, S, Acc, true, InDelete>
: CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete>
: T extends "update"
? Next extends "set"
? CollectTables<Rest, S, Acc, false, InDelete>
: CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete>
: T extends "delete"
? Next extends "from"
? Rest extends [infer DelTable extends string, ...infer Rest2 extends string[]]
? CollectTables<Rest2, S, Acc | TableKeyFromToken<DelTable, S>, false, true>
: Acc
: CollectTables<[Next, ...Rest], S, Acc, false, true>
: T extends "using"
? InDelete extends true
? CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete>
: CollectTables<[Next, ...Rest], S, Acc, InList, InDelete>
: T extends CommaSep
? InList extends true
// `UPDATE t SET a = (select ... from x), b = ...` — the
// subquery's parens are stripped by tokenization, so its
// `from x` leaves `InList` on and the TOP-LEVEL SET comma
// would collect the next SET column (`b`) as a table. A
// FROM-source name is never followed by `=`, so a comma
// whose candidate source is followed by `=` is a SET-list
// separator: skip it and leave source-list mode.
? Rest extends ["=", ...infer Rest2 extends string[]]
? CollectTables<Rest2, S, Acc, false, InDelete>
: CollectTables<Rest, S, Acc | TableKeyFromToken<Next, S>, true, InDelete>
: CollectTables<[Next, ...Rest], S, Acc, false, InDelete>
: T extends "as"
? CollectTables<[Next, ...Rest], S, Acc, InList, InDelete>
// `IS [NOT] DISTINCT FROM` is a comparison
// operator, not a FROM clause: the `from` after
// `distinct` must NOT be collected as a table
// source. Drop the operator `from` (process
// `Rest`) so its RHS isn't mistaken for a table.
: T extends "distinct"
? Next extends "from"
? CollectTables<Rest, S, Acc, false, InDelete>
: CollectTables<[Next, ...Rest], S, Acc, false, InDelete>
: T extends SqlKeyword
? CollectTables<[Next, ...Rest], S, Acc, false, InDelete>
: CollectTables<[Next, ...Rest], S, Acc, InList, InDelete>
: Acc;
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Mode extends string = "",
Pend extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 100
? { __c: [V, Acc, InList, InDelete, Mode, Pend] }
: V extends `${infer H} ${infer R}`
? CollectorToken<H> extends infer M extends string
? M extends ""
? CtWalk<R, S, Acc, InList, InDelete, Mode, Pend, [any, ...Steps]>
: CtTok<M, R, S, Acc, InList, InDelete, Mode, Pend, Steps>
: never
: CtFinal<V, S, Acc, Mode, Pend>;
// Collect aliases for tables in FROM/JOIN/UPDATE
type CtTok<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Mode extends string,
Pend extends string,
Steps extends any[]
> = Mode extends ""
? CtNorm<M, R, S, Acc, InList, InDelete, Steps>
: Mode extends "src"
// `JOIN LATERAL (subquery|func(...)) alias` — `LATERAL` is a source
// modifier, not a relation. A parenthesised FROM/JOIN source — a
// subquery (`from (select ...)`) or VALUES list — has its `(` stripped
// by tokenization, leaving a leading SQL keyword as the source token;
// collecting it would fabricate a bogus `public.select`/`public.values`
// key. A real (unquoted) table is never a SQL keyword, so both skip.
? M extends "lateral" | SqlKeyword
? CtWalk<R, S, Acc, true, InDelete, "", "", [any, ...Steps]>
: CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]>
: Mode extends "usingsrc"
? CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]>
: Mode extends "upd"
? M extends "set"
? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]>
: CtWalk<R, S, Acc | TableKeyFromToken<M, S>, true, InDelete, "", "", [any, ...Steps]>
: Mode extends "del"
? M extends "from"
? CtWalk<R, S, Acc, false, true, "delfrom", "", [any, ...Steps]>
: CtNorm<M, R, S, Acc, false, true, Steps>
: Mode extends "delfrom"
? CtWalk<R, S, Acc | TableKeyFromToken<M, S>, false, true, "", "", [any, ...Steps]>
: Mode extends "comma"
? CtWalk<R, S, Acc, InList, InDelete, "commaeq", M, [any, ...Steps]>
: Mode extends "commaeq"
// A FROM-source name is never followed by `=`, so a
// comma whose candidate is followed by `=` is a
// SET-list separator: drop it and leave source-list
// mode. Otherwise collect the candidate and
// re-dispatch the current token in normal mode.
? M extends "="
? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]>
: CtNorm<M, R, S, Acc | TableKeyFromToken<Pend, S>, true, InDelete, Steps>
: // "dist": `IS [NOT] DISTINCT FROM` — the `from`
// after `distinct` is operator text; drop it so
// its RHS isn't mistaken for a table.
M extends "from"
? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]>
: CtNorm<M, R, S, Acc, false, InDelete, Steps>;
// `InList` mirrors `CollectTables`: after a `from`/`join`/`update` source, a
// top-level `,` introduces another aliased source (`from users u, orders o`).
// `InDelete` likewise mirrors `CollectTables`: inside a DELETE, `USING` opens an
// aliased table source (`DELETE FROM a USING users u`); outside one it is left
// alone (the JOIN ... USING (cols) join condition is not a source).
export type CollectAliases<
Tokens extends string[],
type CtNorm<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string = never,
InList extends boolean = false,
InDelete extends boolean = false
> =
Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]]
? T extends "from" | "join" | "update"
// `JOIN LATERAL (...)` — mirror `CollectTables`: skip the `lateral`
// modifier so it is never parsed as an aliased table source.
? Next extends "lateral"
? CollectAliases<Rest, S, Acc, true, InDelete>
// Mirror `CollectTables`: a parenthesised subquery/VALUES source has
// its `(` stripped, leaving a leading SQL keyword token. It is not a
// base-table source, so skip it rather than register a garbage alias
// from the keyword + the next token.
: Next extends SqlKeyword
? CollectAliases<Rest, S, Acc, true, InDelete>
: ParseAliasSource<Next, Rest, S, Acc, InDelete>
: T extends "using"
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Steps extends any[]
> = M extends "from" | "join" | "into"
? CtWalk<R, S, Acc, InList, InDelete, "src", "", [any, ...Steps]>
: M extends "update"
? CtWalk<R, S, Acc, InList, InDelete, "upd", "", [any, ...Steps]>
: M extends "delete"
? CtWalk<R, S, Acc, false, true, "del", "", [any, ...Steps]>
: M extends "using"
? InDelete extends true
? ParseAliasSource<Next, Rest, S, Acc, InDelete>
: CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete>
: T extends CommaSep
? CtWalk<R, S, Acc, InList, InDelete, "usingsrc", "", [any, ...Steps]>
: CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]>
: M extends CommaSep
? InList extends true
// Mirror `CollectTables`: a comma whose candidate source is
// followed by `=` is an UPDATE SET-list separator (the SET
// subquery's `from` left `InList` on), not another aliased
// FROM source.
? Rest extends ["=", ...infer Rest2 extends string[]]
? CollectAliases<Rest2, S, Acc, false, InDelete>
: ParseAliasSource<Next, Rest, S, Acc, InDelete>
: CollectAliases<[Next, ...Rest], S, Acc, false, InDelete>
: T extends "as"
? CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete>
// `IS [NOT] DISTINCT FROM`: the operator `from` is not a
// table source, so it must not open an aliased source.
: T extends "distinct"
? Next extends "from"
? CollectAliases<Rest, S, Acc, false, InDelete>
: CollectAliases<[Next, ...Rest], S, Acc, false, InDelete>
: T extends SqlKeyword
? CollectAliases<[Next, ...Rest], S, Acc, false, InDelete>
: CollectAliases<[Next, ...Rest], S, Acc, InList, InDelete>
: Acc;
? CtWalk<R, S, Acc, InList, InDelete, "comma", "", [any, ...Steps]>
: CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]>
: M extends "as"
? CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]>
: M extends "distinct"
? CtWalk<R, S, Acc, false, InDelete, "dist", "", [any, ...Steps]>
: M extends SqlKeyword
? CtWalk<R, S, Acc, false, InDelete, "", "", [any, ...Steps]>
: CtWalk<R, S, Acc, InList, InDelete, "", "", [any, ...Steps]>;
// Parse a single table source (`Next`) plus its optional alias from the tokens
// that follow it (`Rest`), record the alias, then continue collecting with
// `InList=true` so a subsequent top-level comma is recognized as another source.
// An immediate `,` after the table (no alias) is handed back to `CollectAliases`
// rather than mistaken for an alias.
export type ParseAliasSource<
Next extends string,
Rest extends string[],
// Final word (or capped remainder) as one token. Modes that would consume it as
// their armed lookahead apply their collection effect; everything else has no
// effect at end of stream (a trailing keyword never had a `Next` to act on in
// the old pairwise array match either).
type CtFinal<
H extends string,
S extends DatabaseSchema,
Acc extends string,
InDelete extends boolean = false
> =
TableKeyFromToken<Next, S> extends infer TableKey extends string
? Rest extends [infer MaybeAlias extends string, ...infer Rest2 extends string[]]
? MaybeAlias extends "as"
? Rest2 extends [infer Alias extends string, ...infer Rest3 extends string[]]
? CollectAliases<Rest3, S, Acc | AliasEntry<Alias, TableKey>, true, InDelete>
Mode extends string,
Pend extends string
> = CollectorToken<H> extends infer M extends string
? M extends ""
? CtEnd<S, Acc, Mode, Pend>
: Mode extends "src"
? M extends "lateral" | SqlKeyword
? Acc
: Acc | TableKeyFromToken<M, S>
: Mode extends "usingsrc" | "delfrom" | "comma"
? Acc | TableKeyFromToken<M, S>
: Mode extends "upd"
? M extends "set"
? Acc
: Acc | TableKeyFromToken<M, S>
: Mode extends "commaeq"
? M extends "="
? Acc
: Acc | TableKeyFromToken<Pend, S>
: Acc
: never;
// Stream ended on a dropped word: only a pending comma candidate still owes its
// collection (the old `[..., comma, cand]` tail collected `cand`).
type CtEnd<S extends DatabaseSchema, Acc extends string, Mode extends string, Pend extends string> =
Mode extends "commaeq" ? Acc | TableKeyFromToken<Pend, S> : Acc;
// Collect aliases for tables in FROM/JOIN/UPDATE
// `InList`/`InDelete` mirror the tables walker. Additional registers: `TK` holds
// the table key of the source whose alias position we are in ("alias" mode = the
// old `ParseAliasSource` MaybeAlias position; "aliasname" = after its `as`), and
// `Pend` holds a comma candidate awaiting the `=` SET-list check.
type CaDrive<R, S extends DatabaseSchema, C extends any[] = []> =
[R] extends [never]
? never
: [R] extends [{ __c: [infer V extends string, infer Acc extends string, infer IL extends boolean, infer ID extends boolean, infer Mode extends string, infer TK extends string, infer Pend extends string] }]
? C["length"] extends 19
? CaFinal<V, S, Acc, ID, Mode, TK, Pend>
: CaDrive<CaWalk<V, S, Acc, IL, ID, Mode, TK, Pend>, S, [any, ...C]>
: R;
type CaWalk<
V extends string,
S extends DatabaseSchema,
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Mode extends string = "",
TK extends string = never,
Pend extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 100
? { __c: [V, Acc, InList, InDelete, Mode, TK, Pend] }
: V extends `${infer H} ${infer R}`
? CollectorToken<H> extends infer M extends string
? M extends ""
? CaWalk<R, S, Acc, InList, InDelete, Mode, TK, Pend, [any, ...Steps]>
: CaTok<M, R, S, Acc, InList, InDelete, Mode, TK, Pend, Steps>
: never
: CaFinal<V, S, Acc, InDelete, Mode, TK, Pend>;
type CaTok<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Mode extends string,
TK extends string,
Pend extends string,
Steps extends any[]
> = Mode extends ""
? CaNorm<M, R, S, Acc, InList, InDelete, Steps>
: Mode extends "src"
// Mirror the tables walker: skip `lateral` and keyword sources (a
// parenthesised subquery/VALUES source must not register a garbage
// alias from the keyword + the next token).
? M extends "lateral" | SqlKeyword
? CaWalk<R, S, Acc, true, InDelete, "", never, "", [any, ...Steps]>
: CaEnterAlias<M, R, S, Acc, InDelete, Steps>
: Mode extends "usingsrc"
? CaEnterAlias<M, R, S, Acc, InDelete, Steps>
: Mode extends "alias"
? CaAliasTok<M, R, S, Acc, InDelete, TK, Steps>
: Mode extends "aliasname"
? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]>
: Mode extends "comma"
? CaWalk<R, S, Acc, InList, InDelete, "commaeq", never, M, [any, ...Steps]>
: Mode extends "commaeq"
// Mirror the tables walker: a comma whose candidate is
// followed by `=` is an UPDATE SET-list separator, not
// another aliased FROM source.
? M extends "="
? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]>
: TableKeyFromToken<Pend, S> extends infer TK2 extends string
? CaAliasTok<M, R, S, Acc, InDelete, TK2, Steps>
: CaNorm<M, R, S, Acc, true, InDelete, Steps>
: // "dist": the `IS [NOT] DISTINCT FROM` operator
// `from` must not open an aliased source.
M extends "from"
? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]>
: CaNorm<M, R, S, Acc, false, InDelete, Steps>;
// Enter the alias position for source token `M` (the old `ParseAliasSource`
// head: resolve the table key, then judge the next token as MaybeAlias).
type CaEnterAlias<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string,
InDelete extends boolean,
Steps extends any[]
> = TableKeyFromToken<M, S> extends infer TK extends string
? CaWalk<R, S, Acc, true, InDelete, "alias", TK, "", [any, ...Steps]>
: CaWalk<R, S, Acc, true, InDelete, "", never, "", [any, ...Steps]>;
// The MaybeAlias judgment (old `ParseAliasSource` body): `as` arms the explicit
// alias name; an immediate comma is the next source (no alias); inside a DELETE
// a following `using` opens the next table source rather than naming this one;
// a bare candidate (non-keyword) is the alias; any other keyword re-dispatches
// in normal mode with `InList` on.
type CaAliasTok<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string,
InDelete extends boolean,
TK extends string,
Steps extends any[]
> = M extends "as"
? CaWalk<R, S, Acc, true, InDelete, "aliasname", TK, "", [any, ...Steps]>
: M extends CommaSep
? CaWalk<R, S, Acc, true, InDelete, "comma", never, "", [any, ...Steps]>
: InDelete extends true
? M extends "using"
? CaWalk<R, S, Acc, true, InDelete, "usingsrc", never, "", [any, ...Steps]>
: IsAliasCandidate<M> extends true
? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]>
: CaNorm<M, R, S, Acc, true, InDelete, Steps>
: IsAliasCandidate<M> extends true
? CaWalk<R, S, Acc | AliasEntry<M, TK>, true, InDelete, "", never, "", [any, ...Steps]>
: CaNorm<M, R, S, Acc, true, InDelete, Steps>;
type CaNorm<
M extends string,
R extends string,
S extends DatabaseSchema,
Acc extends string,
InList extends boolean,
InDelete extends boolean,
Steps extends any[]
> = M extends "from" | "join" | "update"
? CaWalk<R, S, Acc, InList, InDelete, "src", never, "", [any, ...Steps]>
: M extends "using"
? InDelete extends true
? CaWalk<R, S, Acc, InList, InDelete, "usingsrc", never, "", [any, ...Steps]>
: CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]>
: M extends CommaSep
? InList extends true
? CaWalk<R, S, Acc, InList, InDelete, "comma", never, "", [any, ...Steps]>
: CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]>
: M extends "as"
? CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]>
: M extends "distinct"
? CaWalk<R, S, Acc, false, InDelete, "dist", never, "", [any, ...Steps]>
: M extends SqlKeyword
? CaWalk<R, S, Acc, false, InDelete, "", never, "", [any, ...Steps]>
: CaWalk<R, S, Acc, InList, InDelete, "", never, "", [any, ...Steps]>;
// Final word as one token. Only the alias-name positions still owe a recording;
// a bare source at end of stream has no alias to record (old `ParseAliasSource`
// with an empty Rest returned `Acc`).
type CaFinal<
H extends string,
S extends DatabaseSchema,
Acc extends string,
InDelete extends boolean,
Mode extends string,
TK extends string,
Pend extends string
> = CollectorToken<H> extends infer M extends string
? M extends ""
? Acc
: Mode extends "alias"
? CaAliasFinal<M, Acc, InDelete, TK>
: Mode extends "aliasname"
? Acc | AliasEntry<M, TK>
: Mode extends "commaeq"
? M extends "="
? Acc
: TableKeyFromToken<Pend, S> extends infer TK2 extends string
? CaAliasFinal<M, Acc, InDelete, TK2>
: Acc
: Acc
: MaybeAlias extends CommaSep
? CollectAliases<Rest, S, Acc, true, InDelete>
// Inside a DELETE, a following `using` is not this source's
// alias — it opens the next table source. Hand it back so
// `CollectAliases` processes the USING clause.
: InDelete extends true
? MaybeAlias extends "using"
? CollectAliases<Rest, S, Acc, true, InDelete>
: IsAliasCandidate<MaybeAlias> extends true
? CollectAliases<Rest2, S, Acc | AliasEntry<MaybeAlias, TableKey>, true, InDelete>
: CollectAliases<Rest, S, Acc, true, InDelete>
: IsAliasCandidate<MaybeAlias> extends true
? CollectAliases<Rest2, S, Acc | AliasEntry<MaybeAlias, TableKey>, true, InDelete>
: CollectAliases<Rest, S, Acc, true, InDelete>
: Acc
: CollectAliases<Rest, S, Acc, true, InDelete>;
: never;
type CaAliasFinal<M extends string, Acc extends string, InDelete extends boolean, TK extends string> =
M extends "as" | CommaSep
? Acc
: InDelete extends true
? M extends "using"
? Acc
: IsAliasCandidate<M> extends true
? Acc | AliasEntry<M, TK>
: Acc
: IsAliasCandidate<M> extends true
? Acc | AliasEntry<M, TK>
: Acc;
// Outer-join nullability

@@ -232,3 +442,3 @@ //

export type NullableRelations<N extends string, S extends DatabaseSchema> =
CollectNullable<TokenizeTables<N>, "none", never, never>;
CnDrive<CnWalk<CollectorScanView<N>, "none", never, never>>;

@@ -240,58 +450,180 @@ // `Mod` is the pending join modifier ("left"/"right"/"full"/"none"); `Left` is

// joined relation; RIGHT adds the accumulated left side; FULL adds both.
export type CollectNullable<
Tokens extends string[],
//
// Modes: "nsrc-f"/"nsrc-j" = saw from|into / join (next token is the relation,
// stored in `Tbl`); "qual-f"/"qual-j" = peeking at the token after the relation
// to pick its qualifier (alias if a candidate follows, else the table name —
// the old `SourceQualifier` lookahead, which did NOT consume those tokens: the
// peeked token is re-dispatched in normal mode after the qualifier applies);
// "qualas-f"/"qualas-j" = the peek saw `as`, the next token is the alias name.
type CnDrive<R, C extends any[] = []> =
[R] extends [never]
? never
: [R] extends [{ __c: [infer V extends string, infer Mod extends string, infer Left extends string, infer Acc extends string, infer Mode extends string, infer Tbl extends string] }]
? C["length"] extends 19
? CnFinal<V, Mod, Left, Acc, Mode, Tbl>
: CnDrive<CnWalk<V, Mod, Left, Acc, Mode, Tbl>, [any, ...C]>
: R;
type CnWalk<
V extends string,
Mod extends string,
Left extends string,
Acc extends string
> =
Tokens extends [infer T extends string, ...infer Rest extends string[]]
? T extends "left"
? CollectNullable<Rest, "left", Left, Acc>
: T extends "right"
? CollectNullable<Rest, "right", Left, Acc>
: T extends "full"
? CollectNullable<Rest, "full", Left, Acc>
: T extends "inner" | "cross"
? CollectNullable<Rest, "none", Left, Acc>
: T extends "outer"
? CollectNullable<Rest, Mod, Left, Acc>
: T extends "from" | "into"
? Rest extends [infer Tbl extends string, ...infer R2 extends string[]]
? CollectNullable<R2, "none", Left | SourceQualifier<Tbl, R2>, Acc>
: Acc
: T extends "join"
? Rest extends [infer Tbl extends string, ...infer R2 extends string[]]
? SourceQualifier<Tbl, R2> extends infer Q extends string
? Mod extends "left"
? CollectNullable<R2, "none", Left | Q, Acc | Q>
: Mod extends "right"
? CollectNullable<R2, "none", Left | Q, Acc | Left>
: Mod extends "full"
? CollectNullable<R2, "none", Left | Q, Acc | Left | Q>
: CollectNullable<R2, "none", Left | Q, Acc>
: Acc
: Acc
: CollectNullable<Rest, Mod, Left, Acc>
: Acc;
Acc extends string,
Mode extends string = "",
Tbl extends string = "",
Steps extends any[] = []
> = Steps["length"] extends 100
? { __c: [V, Mod, Left, Acc, Mode, Tbl] }
: V extends `${infer H} ${infer R}`
? CollectorToken<H> extends infer M extends string
? M extends ""
? CnWalk<R, Mod, Left, Acc, Mode, Tbl, [any, ...Steps]>
: CnTok<M, R, Mod, Left, Acc, Mode, Tbl, Steps>
: never
: CnFinal<V, Mod, Left, Acc, Mode, Tbl>;
type CnTok<
M extends string,
R extends string,
Mod extends string,
Left extends string,
Acc extends string,
Mode extends string,
Tbl extends string,
Steps extends any[]
> = Mode extends ""
? CnNorm<M, R, Mod, Left, Acc, Steps>
: Mode extends "nsrc-f"
? CnWalk<R, Mod, Left, Acc, "qual-f", M, [any, ...Steps]>
: Mode extends "nsrc-j"
? CnWalk<R, Mod, Left, Acc, "qual-j", M, [any, ...Steps]>
: Mode extends "qual-f"
? M extends "as"
? CnWalk<R, Mod, Left, Acc, "qualas-f", Tbl, [any, ...Steps]>
: CnQualPick<M, Tbl> extends infer Q extends string
? CnNorm<M, R, "none", Left | Q, Acc, Steps>
: never
: Mode extends "qual-j"
? M extends "as"
? CnWalk<R, Mod, Left, Acc, "qualas-j", Tbl, [any, ...Steps]>
: CnQualPick<M, Tbl> extends infer Q extends string
? CnNorm<M, R, "none", Left | Q, CnJoinAcc<Mod, Left, Acc, Q>, Steps>
: never
: Mode extends "qualas-f"
? CleanIdent<M> extends infer Q extends string
? CnNorm<M, R, "none", Left | Q, Acc, Steps>
: never
: // "qualas-j"
CleanIdent<M> extends infer Q extends string
? CnNorm<M, R, "none", Left | Q, CnJoinAcc<Mod, Left, Acc, Q>, Steps>
: never;
// The qualifier a relation is referenced by in projections: its alias when one
// is present (`... t`/`... as t`), else the (cleaned) table name. `Rest` are the
// tokens following the table token. A following keyword (`on`, `where`, another
// `join`, ...) is not an alias, so the table name is used.
export type SourceQualifier<Tbl extends string, Rest extends string[]> =
Rest extends ["as", infer A extends string, ...string[]]
? CleanIdent<A>
: Rest extends [infer Maybe extends string, ...string[]]
? IsAliasCandidate<Maybe> extends true
? CleanIdent<Maybe>
: CleanIdent<Tbl>
: CleanIdent<Tbl>;
// is present, else the (cleaned) table name. A following keyword (`on`,
// `where`, another `join`, ...) is not an alias.
type CnQualPick<M extends string, Tbl extends string> =
IsAliasCandidate<M> extends true ? CleanIdent<M> : CleanIdent<Tbl>;
// `Acc | Left` for RIGHT uses the PRE-join `Left` (the joined relation itself
// is not nullablized by its own RIGHT join), exactly like the old arms.
type CnJoinAcc<Mod extends string, Left extends string, Acc extends string, Q extends string> =
Mod extends "left"
? Acc | Q
: Mod extends "right"
? Acc | Left
: Mod extends "full"
? Acc | Left | Q
: Acc;
type CnNorm<
M extends string,
R extends string,
Mod extends string,
Left extends string,
Acc extends string,
Steps extends any[]
> = M extends "left" | "right" | "full"
? CnWalk<R, M, Left, Acc, "", "", [any, ...Steps]>
: M extends "inner" | "cross"
? CnWalk<R, "none", Left, Acc, "", "", [any, ...Steps]>
: M extends "outer"
? CnWalk<R, Mod, Left, Acc, "", "", [any, ...Steps]>
: M extends "from" | "into"
? CnWalk<R, Mod, Left, Acc, "nsrc-f", "", [any, ...Steps]>
: M extends "join"
? CnWalk<R, Mod, Left, Acc, "nsrc-j", "", [any, ...Steps]>
: CnWalk<R, Mod, Left, Acc, "", "", [any, ...Steps]>;
// Final word as one token: a join relation (or its qualifier peek) at end of
// stream still applies its nullability effect; from-kind effects only update
// `Left`, which is dead at end of stream.
type CnFinal<
H extends string,
Mod extends string,
Left extends string,
Acc extends string,
Mode extends string,
Tbl extends string
> = CollectorToken<H> extends infer M extends string
? M extends ""
? CnEnd<Mod, Left, Acc, Mode, Tbl>
: Mode extends "nsrc-j"
? CnJoinAcc<Mod, Left, Acc, CleanIdent<M>>
: Mode extends "qual-j"
? M extends "as"
? CnJoinAcc<Mod, Left, Acc, CleanIdent<Tbl>>
: CnJoinAcc<Mod, Left, Acc, CnQualPick<M, Tbl>>
: Mode extends "qualas-j"
? CnJoinAcc<Mod, Left, Acc, CleanIdent<M>>
: Acc
: never;
type CnEnd<Mod extends string, Left extends string, Acc extends string, Mode extends string, Tbl extends string> =
Mode extends "qual-j" | "qualas-j"
? CnJoinAcc<Mod, Left, Acc, CleanIdent<Tbl>>
: Acc;
// Table lookup after a keyword
export type TableAfter<Tokens extends string[], Keyword extends string, S extends DatabaseSchema> =
Tokens extends [infer T extends string, infer Next extends string, ...infer Rest extends string[]]
? T extends Keyword
? TableKeyFromToken<Next, S>
: TableAfter<[Next, ...Rest], Keyword, S>
// Early-terminating word scan: resolves the token after the FIRST `Keyword`
// token and stops — it never walks the rest of the query.
type TableAfterScan<V extends string, Keyword extends string, S extends DatabaseSchema> =
TaDrive<TaWalk<V, Keyword, S>, Keyword, S>;
type TaDrive<R, Keyword extends string, S extends DatabaseSchema, C extends any[] = []> =
[R] extends [never]
? never
: [R] extends [{ __c: [infer V extends string, infer Found extends boolean] }]
? C["length"] extends 19
? TaFinal<V, S, Found>
: TaDrive<TaWalk<V, Keyword, S, Found>, Keyword, S, [any, ...C]>
: R;
type TaWalk<
V extends string,
Keyword extends string,
S extends DatabaseSchema,
Found extends boolean = false,
Steps extends any[] = []
> = Steps["length"] extends 100
? { __c: [V, Found] }
: V extends `${infer H} ${infer R}`
? CollectorToken<H> extends infer M extends string
? M extends ""
? TaWalk<R, Keyword, S, Found, [any, ...Steps]>
: Found extends true
? TableKeyFromToken<M, S>
: M extends Keyword
? TaWalk<R, Keyword, S, true, [any, ...Steps]>
: TaWalk<R, Keyword, S, false, [any, ...Steps]>
: never
: TaFinal<V, S, Found>;
type TaFinal<H extends string, S extends DatabaseSchema, Found extends boolean> =
Found extends true
? CollectorToken<H> extends infer M extends string
? M extends ""
? never
: TableKeyFromToken<M, S>
: never
: never;

@@ -298,0 +630,0 @@

@@ -9,3 +9,3 @@ // Validation entry point, dispatch, complexity gates, query-kind helpers.

import type { DistinctOnColsValid, JoinUsingColsValid, WindowFilterColsValid } from "./joins.js";
import type { ExceedsLengthBudget, ExtractBefore, ExtractLastWhere, HasLineBreaks, TokenizeLoose, Trim, ValidationScanView } from "../parsing.js";
import type { ExceedsLengthBudget, ExtractBefore, ExtractLastWhere, HasLineBreaks, Trim, ValidationScanView } from "../parsing.js";
import type { RefScanSegment } from "./return-types.js";

@@ -130,12 +130,9 @@ // Core validation / inference

S extends DatabaseSchema
> =
TokenizeLoose<W> extends infer WT extends string[]
? And<
QualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, WT>,
UnqualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, WT, never>,
true,
true,
true
>
: true;
> = And<
QualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, W>,
UnqualifiedColumnRefsValidFor<W, S, TargetKey, AliasEntry, W, never>,
true,
true,
true
>;

@@ -222,17 +219,15 @@ // "Light" validator for high-complexity SELECTs: validate the cheap, bounded

? AliasesInQuery<N, S> extends infer Aliases extends string
? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[]
? AllTablesValidFor<NonCteTables<N, S, Tables>, S> extends true
? AllColumnsValidFor<N, S, Tables, Aliases, LooseTokens> extends true
? NoAliasShadowedQualifiers<N, S, Tables, Aliases> extends true
? OuterScopeUnqualifiedValid<N, S> extends true
? WindowFilterColsValid<N, S, Tables, Aliases> extends true
? JoinUsingColsValid<N, S, Tables> extends true
? DistinctOnColsValid<N, S, Tables, Aliases> extends true
? true
: false
? AllTablesValidFor<NonCteTables<N, S, Tables>, S> extends true
? AllColumnsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> extends true
? NoAliasShadowedQualifiers<N, S, Tables, Aliases> extends true
? OuterScopeUnqualifiedValid<N, S> extends true
? WindowFilterColsValid<N, S, Tables, Aliases> extends true
? JoinUsingColsValid<N, S, Tables> extends true
? DistinctOnColsValid<N, S, Tables, Aliases> extends true
? true
: false
: false
: false
: false
: false
: false
: false

@@ -296,39 +291,50 @@ : false

// ` returning ` to hide, so every occurrence is top-level — a single pattern test
// is exact and skips the ~1200-step char-walk (these run on every DML). Only
// quote-bearing queries pay for the walk below. The fast-path pattern matches the
// step-cap fallback this walk already uses, so it is consistent with prior behavior.
export type HasReturningQuoteAware<
S extends string,
InString extends boolean = false,
InDString extends boolean = false,
Steps extends any[] = []
> = string extends S
? false
: S extends `${string}'${string}`
? HasReturningQuoteAwareWalk<S, InString, InDString, Steps>
: S extends `${string}"${string}`
? HasReturningQuoteAwareWalk<S, InString, InDString, Steps>
: S extends `${string} returning ${string}` ? true : false;
// is exact and skips the walk (these run on every DML). Only quote-bearing
// queries pay for the walk below. The fast-path pattern matches the step-cap
// fallback this walk already uses, so it is consistent with prior behavior.
export type HasReturningQuoteAware<S extends string> =
string extends S
? false
: S extends `${string}'${string}`
? HasReturningQuoteAwareWalk<S>
: S extends `${string}"${string}`
? HasReturningQuoteAwareWalk<S>
: S extends `${string} returning ${string}` ? true : false;
// Quote-jump, not per-char (the old walk minted the tail string PER CHARACTER on
// every quote-bearing DML). Find the leftmost ` returning `; if no quote opens
// before it, it is top-level — answer found. Otherwise jump the leftmost quote
// span whole (`'…'` or `"…"`, whichever opens first — a quote of the other kind
// inside the span is data, mirroring the old InString/InDString suppression) and
// re-test the remainder. O(quote spans) instead of O(chars); an unterminated
// quote swallows the rest, exactly like the old walk-to-EOF inside a literal.
type HasReturningQuoteAwareWalk<
S extends string,
InString extends boolean = false,
InDString extends boolean = false,
Steps extends any[] = []
> = string extends S
? false
: Steps["length"] extends 1200
: Steps["length"] extends 400
? S extends `${string} returning ${string}` ? true : false
: InString extends true
? S extends `${infer C}${infer Rest}`
? HasReturningQuoteAwareWalk<Rest, C extends "'" ? false : true, InDString, [any, ...Steps]>
: S extends `${infer Before} returning ${string}`
? Before extends `${string}'${string}` | `${string}"${string}`
? HrqaQuoteJump<S, Steps>
: true
: false;
// Leftmost of `'` / `"` (the caller guarantees at least one occurs before the
// first ` returning `): skip its whole span, resume after the closing quote.
type HrqaQuoteJump<S extends string, Steps extends any[]> =
S extends `${infer P}'${infer R}`
? P extends `${string}"${string}`
? HrqaDQuoteJump<S, Steps>
: R extends `${string}'${infer R2}`
? HasReturningQuoteAwareWalk<R2, [any, ...Steps]>
: false
: InDString extends true
? S extends `${infer C}${infer Rest}`
? HasReturningQuoteAwareWalk<Rest, InString, C extends `"` ? false : true, [any, ...Steps]>
: false
: S extends ` returning ${string}`
? true
: S extends `${infer C}${infer Rest}`
? HasReturningQuoteAwareWalk<Rest, C extends "'" ? true : false, C extends `"` ? true : false, [any, ...Steps]>
: false;
: HrqaDQuoteJump<S, Steps>;
type HrqaDQuoteJump<S extends string, Steps extends any[]> =
S extends `${string}"${infer R}`
? R extends `${string}"${infer R2}`
? HasReturningQuoteAwareWalk<R2, [any, ...Steps]>
: false
: false;
// JOIN USING / window-filter / DISTINCT ON column validation.
import type { AllTrue, And, IsUnion } from "../utils.js";
import type { CleanIdent, ExtractCallParenBodies, SplitCommaSimple, TokenizeLoose, Trim } from "../parsing.js";
import type { CleanIdent, ExtractCallParenBodies, SplitCommaSimple, Trim } from "../parsing.js";
import type { ColumnExists, DatabaseSchema } from "../schema.js";

@@ -154,11 +154,9 @@ import type { QualifiedColumnRefsValidFor, UnqualifiedColumnRefsValidFor } from "./validate-columns.js";

? true
: TokenizeLoose<Seg> extends infer Toks extends string[]
? And<
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks, never>,
true,
true,
true
>
: true
: And<
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg, never>,
true,
true,
true
>
: true

@@ -187,11 +185,9 @@ : true;

? true
: TokenizeLoose<Seg> extends infer Toks extends string[]
? And<
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Toks, never>,
true,
true,
true
>
: true
: And<
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, Seg, never>,
true,
true,
true
>
: true

@@ -198,0 +194,0 @@ : true

// Table/column existence + qualified/unqualified ref + scope-shape validation.
import type { AliasesInQuery, InsertTargetTable, TableKeyValid, TablesInQuery, UpdateTargetTable } from "../tables.js";
import type { AllTrue, And, StartsWith } from "../utils.js";
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries, TokenizeLoose, Trim } from "../parsing.js";
import type { ColumnRefValidLooseWith, IsSimpleRefPart, QualifiedColumnRefs, ResolveAlias, TableKeysByName, UnqualifiedColumnRefs, UnqualifiedColumnValid } from "../columns.js";
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries, Trim } from "../parsing.js";
import type { ColumnRefValidLooseWith, IsSimpleRefPart, QualifiedRefScan, ResolveAlias, TableKeysByName, UnqualifiedRefScan, UnqualifiedColumnValid } from "../columns.js";
import type { ColumnsExistInTable, RefScanBeforeOrderBy, RefScanOrderBy, RefScanSegment, SelectAliasesInQuery, SelectAliasSet } from "./return-types.js";

@@ -108,3 +108,3 @@ import type { CteNames, CteRow, SingleCteMatch } from "./cte.js";

// outer WHERE predicate, or a function call's argument list) against the
// CTE/derived relation's exposed `Row`. Reuses the same token walkers the core
// CTE/derived relation's exposed `Row`. Reuses the same ref-scan walkers the core
// validator uses to surface refs, then checks each via `ProjRefInRow` (qualifier

@@ -119,18 +119,16 @@ // must equal the relation `Name`, column must be a key of `Row`). `Tables`/

? true
: TokenizeLoose<Seg> extends infer Toks extends string[]
? And<
AllTrue<
QualifiedColumnRefs<Toks, S, never, never> extends infer R
? R extends string ? ProjRefInRow<R, Name, Row, S> : true
: true
>,
AllTrue<
UnqualifiedColumnRefs<Toks, S, never, never> extends infer R
? R extends string ? ProjRefInRow<R, Name, Row, S> : true
: true
>,
true,
true
>
: true;
: And<
AllTrue<
QualifiedRefScan<Seg> extends infer R
? R extends string ? ProjRefInRow<R, Name, Row, S> : true
: true
>,
AllTrue<
UnqualifiedRefScan<Seg, S, never, never> extends infer R
? R extends string ? ProjRefInRow<R, Name, Row, S> : true
: true
>,
true,
true
>;

@@ -196,18 +194,16 @@ // The outer query's WHERE predicate, scoped to the CTE/derived relation's exposed

? true
: TokenizeLoose<Seg> extends infer Toks extends string[]
? And<
AllTrue<
QualifiedColumnRefs<Toks, S, never, never> extends infer R
? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true
: true
>,
AllTrue<
UnqualifiedColumnRefs<Toks, S, never, never> extends infer R
? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true
: true
>,
true,
true
>
: true;
: And<
AllTrue<
QualifiedRefScan<Seg> extends infer R
? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true
: true
>,
AllTrue<
UnqualifiedRefScan<Seg, S, never, never> extends infer R
? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true
: true
>,
true,
true
>;

@@ -237,5 +233,3 @@ export type RefInRowOrAlias<R extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> =

? AliasesInQuery<N, S> extends infer Aliases extends string
? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[]
? AllColumnsValidFor<N, S, Tables, Aliases, LooseTokens>
: false
? AllColumnsValidFor<N, S, Tables, Aliases, RefScanSegment<N>>
: false

@@ -249,3 +243,3 @@ : false;

Aliases extends string,
LooseTokens extends string[]
RefSeg extends string
> = SelectAliasSet<N> extends infer SelectAliases extends string

@@ -262,4 +256,4 @@ ? QueryKind<N> extends "update"

ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>,
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens, never>
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg, never>
>

@@ -270,3 +264,3 @@ : And<

ColumnsValidInUpdate<N, S>,
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens>,
QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>,
// A SELECT-list alias is only resolvable in ORDER BY — NOT in

@@ -294,6 +288,6 @@ // WHERE/GROUP/HAVING. So the unqualified ref-scan blesses the alias

[SelectAliases] extends [never]
? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanSegment<N>>, never>
? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, never>
: And<
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanBeforeOrderBy<N>>, never>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, TokenizeLoose<RefScanOrderBy<N>>, SelectAliases>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanBeforeOrderBy<N>, never>,
UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanOrderBy<N>, SelectAliases>,
true,

@@ -376,5 +370,3 @@ true,

? AliasesInQuery<N, S> extends infer Aliases extends string
? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[]
? QualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens>
: true
? QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>>
: true

@@ -388,3 +380,3 @@ : true;

Aliases extends string,
LooseTokens extends string[]
RefSeg extends string
> =

@@ -395,4 +387,4 @@ // Common path: with no CTE and no parenthesised FROM source there is no local

HasLocalRelations<N> extends true
? QualifiedRefsValidWithLocal<N, S, Tables, Aliases, LooseTokens, CteNames<N>>
: QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols
? QualifiedRefsValidWithLocal<N, S, Tables, Aliases, RefSeg, CteNames<N>>
: QualifiedRefScan<RefSeg> extends infer Cols
? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true>

@@ -418,5 +410,5 @@ : true;

Aliases extends string,
LooseTokens extends string[],
RefSeg extends string,
Ctes extends string
> = QualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols
> = QualifiedRefScan<RefSeg> extends infer Cols
? AllTrue<

@@ -483,8 +475,8 @@ Cols extends string

// A shadowable qualifier is a `qualifier.column` token, which requires a
// `.`. With no `.` anywhere, `QualifiedColumnRefs` accumulates `never` and
// `AllTrue<never>` is `true` — so skip the whole-query `TokenizeLoose<N>`
// re-walk (computed nowhere else) on dot-free queries. Exact-equivalent.
// `.`. With no `.` anywhere, `QualifiedRefScan` accumulates `never` and
// `AllTrue<never>` is `true` — so skip the whole-query re-scan (computed
// nowhere else) on dot-free queries. Exact-equivalent.
: N extends `${string}.${string}`
? AllTrue<
QualifiedColumnRefs<TokenizeLoose<N>, S, Tables, Aliases> extends infer R
QualifiedRefScan<N> extends infer R
? R extends `${infer Q}.${string}`

@@ -537,3 +529,3 @@ ? QualifierShadowedByAlias<Q, Tables, Aliases, S> extends true

OA,
TokenizeLoose<RefScanSegment<Stripped>>,
RefScanSegment<Stripped>,
SelectAliasesInQuery<Stripped>

@@ -551,6 +543,4 @@ >

? AliasesInQuery<N, S> extends infer Aliases extends string
? TokenizeLoose<RefScanSegment<N>> extends infer LooseTokens extends string[]
? SelectAliasesInQuery<N> extends infer SelectAliases extends string
? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, LooseTokens, SelectAliases>
: true
? SelectAliasesInQuery<N> extends infer SelectAliases extends string
? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, SelectAliases>
: true

@@ -565,5 +555,5 @@ : true

Aliases extends string,
LooseTokens extends string[],
RefSeg extends string,
SelectAliases extends string
> = UnqualifiedColumnRefs<LooseTokens, S, Tables, Aliases> extends infer Cols
> = UnqualifiedRefScan<RefSeg, S, Tables, Aliases> extends infer Cols
? AllTrue<

@@ -570,0 +560,0 @@ Cols extends string