@kuindji/typed-sql
Advanced tools
+11
-3
| 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":"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"} |
@@ -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":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAevD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC7C,MAAM,SAAS,CAAC,GACV,CAAC,GACD,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrE,CAAC,CAAC;AAEhB,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IACnC,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,IAAI,GACJ,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAQ9B,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IACjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,IAAI,SAAS,GAAG,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,GACrC,IAAI,GACJ,KAAK,GACT,KAAK,CAAC;AAMhB,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAC5B,CAAC,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAC9B,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,GACxC,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,IACpB,CAAC,SAAS;IAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,CAAA;CAAE,GAC1I,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAC1D,CAAC,CAAC;AAOZ,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChL,KAAK,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;AACvE,KAAK,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhG,KAAK,gBAAgB,CAAC,GAAG,SAAS,MAAM,IACpC,GAAG,SAAS,EAAE,GACR,IAAI,GACJ,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC9B,CAAC,SAAS,cAAc,GACpB,iBAAiB,CAAC,CAAC,CAAC,GACpB,KAAK,GACT,KAAK,CAAC;AAEpB,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAC7D,CAAC,SAAS,EAAE,GACN,IAAI,GACJ,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACtB,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,CAAC,SAAS,aAAa,GACnB,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrC,KAAK,GACT,KAAK,CAAC;AAOxB,KAAK,kBAAkB,CACnB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,OAAO,EAAE,eAAe;AACpC,GAAG,SAAS,OAAO,EAAE,eAAe;AACpC,GAAG,SAAS,OAAO,EAAE,+BAA+B;AACpD,GAAG,SAAS,MAAM,EAClB,KAAK,SAAS,GAAG,EAAE,IACnB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACzB;IAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,GAChC,GAAG,SAAS,IAAI,GAEZ,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GACjC,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC3D,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACtE,CAAC,SAAS,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,GAC7B,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC3D,GAAG,GAAG,GAAG,GACzB,GAAG,SAAS,IAAI,GACZ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,GAAG,GACX,GAAG,SAAS,IAAI,GACZ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAC9F,GAAG,GAEP,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GACpB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GACpB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GACnC,gBAAgB,CAAC,GAAG,CAAC,SAAS,IAAI,GAC9B,IAAI,SAAS,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,KAAK,EAAE,GAC/C,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAE3E,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,GACpB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GAEX,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,GACpB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACvE,GAAG,GACX,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACnB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC5B,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACzE,GAAG,CAAC;AAatC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAC3C,CAAC,SAAS,GAAG,MAAM,YAAY,MAAM,EAAE,GAKjC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC3B,mBAAmB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,kBAAkB,CAAC,CAAC,CAAC,GACrB,4BAA4B,CAAC,CAAC,CAAC,GACnC,kBAAkB,CAAC,CAAC,CAAC,GACzB,CAAC,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IACrE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,GAAG,YAAY,MAAM,SAAS,EAAE,GAC/C,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,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,EAAE,GAChD,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAClH,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAC/G,CAAC,GACL,CAAC,CAAC;AAMhB,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAC/E,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GACpB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,GAAG,YAAY,MAAM,SAAS,EAAE,GAC/C,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC7B,eAAe,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,SAAS,SAAS,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GAC7H,CAAC,GACL,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GACnD,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GACnD,CAAC,CAAC;AAEhB,MAAM,MAAM,wBAAwB,CAAC,GAAG,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,EAAE,IAClG,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAC5G,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,MAAM,EAAE,GAChD,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GACtI,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,KAAK,IAAI,4BAA4B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,GACnI,GAAG,GAAG,YAAY,SAAS,EAAE,CAAC;AASxC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,IAChG,MAAM,SAAS,CAAC,GACV,KAAK,GACL,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACvB,IAAI,GACJ,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,GAChC,eAAe,CAAC,CAAC,EAAE,IAAI,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GACrE,IAAI,CAAC;AAcvB,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACtC,MAAM,SAAS,CAAC,GACV,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAC5B,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAC5B,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,CAAC;AAWpB,MAAM,MAAM,iBAAiB,CACzB,CAAC,SAAS,MAAM,EAChB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,GAAG,SAAS,MAAM,GAAG,EAAE,EACvB,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EACxB,SAAS,SAAS,OAAO,GAAG,KAAK,IACjC,MAAM,SAAS,CAAC,GACd,CAAC,GACD,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GACvB,GAAG,GAAG,GAAG,CAAC,EAAE,GACZ,QAAQ,SAAS,IAAI,GACjB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,GAC/F,GAAG,GACP,SAAS,SAAS,IAAI,GAClB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAC9F,GAAG,GACP,CAAC,SAAS,KAAK,MAAM,SAAS,EAAE,GAC5B,SAAS,SAAS,GAAG,MAAM,KAAK,KAAK,MAAM,IAAI,EAAE,GAC7C,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,GACjE,GAAG,GAAG,GAAG,GACb,CAAC,SAAS,KAAK,MAAM,SAAS,EAAE,GAC5B,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,GACvF,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GAC/B,iBAAiB,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAClH,GAAG,CAAC;AAYlC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,MAAM,KAAK,EAAE,GAClC,GAAG,SAAS,GAAG,MAAM,KAAK,KAAK,MAAM,IAAI,EAAE,GACvC,KAAK,IAAI,KAAK,KAAK,EAAE,GACrB,KAAK,KAAK,EAAE,GAChB,CAAC,SAAS,GAAG,MAAM,EAAE,KAAK,MAAM,KAAK,EAAE,GACnC,KAAK,KAAK,EAAE,GACZ,EAAE,CAAC"} | ||
| {"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":"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"} |
+58
-13
| 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":"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"} | ||
| {"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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"} |
+1
-1
| { | ||
| "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", |
+11
-3
@@ -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" }` / |
+168
-32
@@ -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, |
+550
-57
@@ -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; |
+72
-32
@@ -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 |
+236
-72
@@ -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 |
+222
-144
| // 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< |
+9
-15
@@ -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 |
+546
-214
| 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; |
+15
-19
| // 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 |
1127393
11.48%12879
12.14%243
3.4%