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

@kuindji/typed-sql

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kuindji/typed-sql - npm Package Compare versions

Comparing version
0.6.0
to
0.7.0
+49
dist/validation/cte-join.d.ts
import type { CteName, StripRecursiveKw } from "./cte.js";
import type { DatabaseSchema } from "../schema.js";
import type { DerivedExprToObject, DerivedSubRow, JoinModNullable } from "./return-derived.js";
import type { ExprToObject, RefQualifier } from "../expressions.js";
import type { CleanIdent, ExtractAliasResult, ExtractFromClause, ExtractSelectList, SplitBalancedParen, SplitSelectList, Trim } from "../parsing.js";
import type { MergeRow, Simplify } from "../utils.js";
export type CteBodyByName<N extends string, Name extends string> = StripRecursiveKw<N> extends `with ${infer AfterWith}` ? FindCteBody<Trim<AfterWith>, Name> : never;
export type FindCteBody<S extends string, Name extends string, Steps extends any[] = []> = Steps["length"] extends 30 ? never : S extends `${infer Head} as ${infer Tail}` ? Trim<Tail> extends `(${string}` ? SplitBalancedParen<Trim<Tail>> extends {
inner: infer Body extends string;
rest: infer Rest extends string;
} ? CteName<Trim<Head>> extends Name ? Trim<Body> : Trim<Rest> extends `, ${infer More}` ? FindCteBody<Trim<More>, Name, [any, ...Steps]> : never : never : never : never;
type SourceKeyword = "on" | "using" | "left" | "right" | "full" | "inner" | "cross" | "outer" | "join" | "where" | "group" | "order" | "limit" | "having" | "natural";
type FirstWord<S extends string> = S extends `${infer W} ${string}` ? W : S;
type LastWord<S extends string, Steps extends any[] = []> = Steps["length"] extends 40 ? Trim<S> : Trim<S> extends `${string} ${infer R}` ? LastWord<R, [any, ...Steps]> : Trim<S>;
type SourceRelAlias<Src extends string> = Trim<Src> extends `${infer Rel} ${infer After}` ? Trim<After> extends `as ${infer A2}` ? {
rel: CleanIdent<Rel>;
alias: CleanIdent<FirstWord<Trim<A2>>>;
} : Lowercase<FirstWord<Trim<After>>> extends SourceKeyword ? {
rel: CleanIdent<Rel>;
alias: CleanIdent<Rel>;
} : {
rel: CleanIdent<Rel>;
alias: CleanIdent<FirstWord<Trim<After>>>;
} : {
rel: CleanIdent<Trim<Src>>;
alias: CleanIdent<Trim<Src>>;
};
export type CteAliasToName<Outer extends string, Q extends string> = ScanCteSources<Trim<ExtractFromClause<Outer>>, Q>;
export type ScanCteSources<F extends string, Q extends string, Steps extends any[] = []> = Steps["length"] extends 30 ? never : F extends `${infer Src} join ${infer Rest}` ? SourceRelAlias<Src> extends {
rel: infer Rel extends string;
alias: infer A extends string;
} ? A extends Q ? Rel : ScanCteSources<Rest, Q, [any, ...Steps]> : ScanCteSources<Rest, Q, [any, ...Steps]> : SourceRelAlias<F> extends {
rel: infer Rel extends string;
alias: infer A extends string;
} ? A extends Q ? Rel : never : never;
export type CteAliasNullable<Outer extends string, Q extends string> = ScanCteNullable<Trim<ExtractFromClause<Outer>>, Q, "">;
export type ScanCteNullable<F extends string, Q extends string, PrevMod extends string, Steps extends any[] = []> = Steps["length"] extends 30 ? never : F extends `${infer Src} join ${infer Rest}` ? SourceRelAlias<Src> extends {
alias: infer A extends string;
} ? A extends Q ? JoinModNullable<PrevMod> extends true ? Q : never : ScanCteNullable<Rest, Q, LastWord<Src>, [any, ...Steps]> : ScanCteNullable<Rest, Q, LastWord<Src>, [any, ...Steps]> : SourceRelAlias<F> extends {
alias: infer A extends string;
} ? A extends Q ? JoinModNullable<PrevMod> extends true ? Q : never : never : never;
export type CteJoinOuterReturn<N extends string, Outer extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string = never> = BuildCteJoinReturn<SplitSelectList<ExtractSelectList<Outer>>, N, Outer, Tables, Aliases, S, Nullable>;
type CteJoinBaseProj<H extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string, Acc> = MergeRow<Acc, ExprToObject<H, Tables, Aliases, S, Nullable>>;
export type BuildCteJoinReturn<Exprs extends string[], N extends string, Outer extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Nullable extends string, Acc = {}, Steps extends any[] = []> = Steps["length"] extends 50 ? Simplify<Acc> : Exprs extends [infer H extends string, ...infer Rest extends string[]] ? ExtractAliasResult<H> extends {
expr: infer RawExpr extends string;
alias: infer _OutAlias;
} ? RefQualifier<RawExpr> extends infer Q extends string ? [Q] extends [never] ? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]> : CteAliasToName<Outer, Q> extends infer Name extends string ? [Name] extends [never] ? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]> : CteBodyByName<N, Name> extends infer Body extends string ? [Body] extends [never] ? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]> : BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, MergeRow<Acc, DerivedExprToObject<H, Q, DerivedSubRow<Body, S>, CteAliasNullable<Outer, Q>>>, [any, ...Steps]> : BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]> : BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]> : BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]> : BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]> : Simplify<Acc>;
export {};
//# sourceMappingURL=cte-join.d.ts.map
{"version":3,"file":"cte-join.d.ts","sourceRoot":"","sources":["../../src/validation/cte-join.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=cte-join.js.map
{"version":3,"file":"cte-join.js","sourceRoot":"","sources":["../../src/validation/cte-join.ts"],"names":[],"mappings":""}
// Multi-CTE outer that JOINs CTEs: `WITH a AS (...), b AS (...) SELECT ...
// FROM a x JOIN b y ...`. The outer reads from MORE THAN ONE CTE via a join.
// Each outer projection ref (`x.col`) is resolved against the CTE body its
// alias points to, with outer-join nullability. Mirrors the joined-derived
// machinery (return-derived.ts) but the join sources are NAMED CTE relations,
// not inline subqueries — so instead of slicing a subquery body out of the
// FROM/JOIN text, we look the body up by name in the WITH list.
import type { CteName, StripRecursiveKw } from "./cte.js";
import type { DatabaseSchema } from "../schema.js";
import type { DerivedExprToObject, DerivedSubRow, JoinModNullable } from "./return-derived.js";
import type { ExprToObject, RefQualifier } from "../expressions.js";
import type { CleanIdent, ExtractAliasResult, ExtractFromClause, ExtractSelectList, SplitBalancedParen, SplitSelectList, Trim } from "../parsing.js";
import type { MergeRow, Simplify } from "../utils.js";
// The CTE body (the whole `AS (...)` inner text) for a given CTE name, walking
// the WITH list. `DerivedSubRow` later extracts its first SELECT term — which is
// the correct row even for a `UNION ALL` recursive body (anchor term).
export type CteBodyByName<N extends string, Name extends string> =
StripRecursiveKw<N> extends `with ${infer AfterWith}`
? FindCteBody<Trim<AfterWith>, Name>
: never;
export type FindCteBody<S extends string, Name extends string, Steps extends any[] = []> =
Steps["length"] extends 30
? never
: S extends `${infer Head} as ${infer Tail}`
? Trim<Tail> extends `(${string}`
? SplitBalancedParen<Trim<Tail>> extends { inner: infer Body extends string; rest: infer Rest extends string }
? CteName<Trim<Head>> extends Name
? Trim<Body>
: Trim<Rest> extends `, ${infer More}`
? FindCteBody<Trim<More>, Name, [any, ...Steps]>
: never
: never
: never
: never;
// Keywords that can immediately follow a FROM/JOIN relation token. When the word
// after `<rel>` is one of these there is NO alias — the relation name is its own
// qualifier (`FROM a JOIN b ON ...` → `a` and `b` are both aliases).
type SourceKeyword =
"on" | "using" | "left" | "right" | "full" | "inner" | "cross" | "outer"
| "join" | "where" | "group" | "order" | "limit" | "having" | "natural";
// First whitespace-delimited word of a token run.
type FirstWord<S extends string> = S extends `${infer W} ${string}` ? W : S;
// Last whitespace-delimited word of a token run (the trailing join modifier of a
// source: `a x left` → `left`). Step-capped for safety on long sources.
type LastWord<S extends string, Steps extends any[] = []> =
Steps["length"] extends 40
? Trim<S>
: Trim<S> extends `${string} ${infer R}`
? LastWord<R, [any, ...Steps]>
: Trim<S>;
// Resolve a single FROM/JOIN source token run to its relation name + alias.
// `a` → { rel: a; alias: a }
// `a x` → { rel: a; alias: x }
// `a as x` → { rel: a; alias: x }
// `b on a.id...` → { rel: b; alias: b } (next word is a keyword → no alias)
type SourceRelAlias<Src extends string> =
Trim<Src> extends `${infer Rel} ${infer After}`
? Trim<After> extends `as ${infer A2}`
? { rel: CleanIdent<Rel>; alias: CleanIdent<FirstWord<Trim<A2>>> }
: Lowercase<FirstWord<Trim<After>>> extends SourceKeyword
? { rel: CleanIdent<Rel>; alias: CleanIdent<Rel> }
: { rel: CleanIdent<Rel>; alias: CleanIdent<FirstWord<Trim<After>>> }
: { rel: CleanIdent<Trim<Src>>; alias: CleanIdent<Trim<Src>> };
// Map an outer qualifier `Q` to the CTE relation name it refers to, by scanning
// the outer FROM + JOIN sources (split on ` join `).
export type CteAliasToName<Outer extends string, Q extends string> =
ScanCteSources<Trim<ExtractFromClause<Outer>>, Q>;
export type ScanCteSources<F extends string, Q extends string, Steps extends any[] = []> =
Steps["length"] extends 30
? never
: F extends `${infer Src} join ${infer Rest}`
? SourceRelAlias<Src> extends { rel: infer Rel extends string; alias: infer A extends string }
? A extends Q ? Rel : ScanCteSources<Rest, Q, [any, ...Steps]>
: ScanCteSources<Rest, Q, [any, ...Steps]>
: SourceRelAlias<F> extends { rel: infer Rel extends string; alias: infer A extends string }
? A extends Q ? Rel : never
: never;
// Whether the join that introduces qualifier `Q`'s source is a LEFT/FULL join
// (so the CTE's columns gain `| null`). `PrevMod` is the trailing modifier word
// of the PREVIOUS source — the keyword sitting before this source's ` join `
// (`a x left join b y` splits to `a x left` + `b y`, so `b`'s modifier is
// `left`). The leading FROM source has `PrevMod = ""` → never nullable.
export type CteAliasNullable<Outer extends string, Q extends string> =
ScanCteNullable<Trim<ExtractFromClause<Outer>>, Q, "">;
export type ScanCteNullable<F extends string, Q extends string, PrevMod extends string, Steps extends any[] = []> =
Steps["length"] extends 30
? never
: F extends `${infer Src} join ${infer Rest}`
? SourceRelAlias<Src> extends { alias: infer A extends string }
? A extends Q
? JoinModNullable<PrevMod> extends true ? Q : never
: ScanCteNullable<Rest, Q, LastWord<Src>, [any, ...Steps]>
: ScanCteNullable<Rest, Q, LastWord<Src>, [any, ...Steps]>
: SourceRelAlias<F> extends { alias: infer A extends string }
? A extends Q
? JoinModNullable<PrevMod> extends true ? Q : never
: never
: never;
// Result row for a multi-CTE outer that JOINs CTEs (or a CTE↔base join).
// `Outer` is the pre-stripped outer query (`CteOuterQuery<N>`); `N` is the full
// statement (for CTE-body lookup); `Tables`/`Aliases`/`Nullable` are the
// query's resolved base relations + join-nullability, used to resolve the
// non-CTE projections (unqualified refs and base-table-qualified refs).
//
// SINGLE PASS: each outer projection is resolved exactly once — a CTE-qualified
// ref against its CTE body (`DerivedExprToObject`), everything else against the
// base tables (`ExprToObject`, the same path the plain SELECT row uses). The
// earlier design resolved the WHOLE list twice (a base `SelectReturnWith` plus
// this overlay) and merged; the base pass was pure waste for CTE refs, since the
// overlay always won. Folding the base path in here drops that redundancy.
export type CteJoinOuterReturn<
N extends string,
Outer extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Nullable extends string = never
> = BuildCteJoinReturn<SplitSelectList<ExtractSelectList<Outer>>, N, Outer, Tables, Aliases, S, Nullable>;
// Resolve a single non-CTE projection against the base tables. Used for an
// unqualified ref (`count(*)`, a literal), and for a qualifier that names a base
// table rather than a CTE (the `ip` side of a CTE↔base join).
type CteJoinBaseProj<
H extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Nullable extends string,
Acc
> = MergeRow<Acc, ExprToObject<H, Tables, Aliases, S, Nullable>>;
export type BuildCteJoinReturn<
Exprs extends string[],
N extends string,
Outer extends string,
Tables extends string,
Aliases extends string,
S extends DatabaseSchema,
Nullable extends string,
Acc = {},
Steps extends any[] = []
> = Steps["length"] extends 50
? Simplify<Acc>
: Exprs extends [infer H extends string, ...infer Rest extends string[]]
? ExtractAliasResult<H> extends { expr: infer RawExpr extends string; alias: infer _OutAlias }
? RefQualifier<RawExpr> extends infer Q extends string
? [Q] extends [never]
// Unqualified ref / literal / function — base-resolve.
? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]>
: CteAliasToName<Outer, Q> extends infer Name extends string
? [Name] extends [never]
// Qualifier matches no outer source — base-resolve (lenient).
? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]>
: CteBodyByName<N, Name> extends infer Body extends string
? [Body] extends [never]
// Qualifier names a base-table source, not a CTE — base-resolve.
? BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, CteJoinBaseProj<H, Tables, Aliases, S, Nullable, Acc>, [any, ...Steps]>
// Qualifier names a CTE — resolve the ref against the CTE body.
: BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, MergeRow<Acc, DerivedExprToObject<H, Q, DerivedSubRow<Body, S>, CteAliasNullable<Outer, Q>>>, [any, ...Steps]>
: BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]>
: BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]>
: BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]>
: BuildCteJoinReturn<Rest, N, Outer, Tables, Aliases, S, Nullable, Acc, [any, ...Steps]>
: Simplify<Acc>;
+8
-8

@@ -35,10 +35,10 @@ import { assembleInsertSQL, buildRowsClause } from "./write-assemble.js";

withParams(params) {
// The __tsqlrow_ namespace is reserved for .rows() synthetic params; a
// user key there would silently overwrite a row value (user params merge
// last), so reject it outright.
if (this.st.rows) {
for (const k of Object.keys(params)) {
if (k.startsWith("__tsqlrow_")) {
throw new Error(`Query parameter ":${k}" uses the reserved __tsqlrow_ prefix`);
}
// The __tsqlrow_ namespace is reserved for .rows() synthetic params.
// Reject it unconditionally — NOT only when this.st.rows is already set:
// .rows() can be called *after* withParams, and it strips every existing
// __tsqlrow_ key, so a user value bound here first would be silently
// dropped (and its placeholder rebound to a row cell) rather than merged.
for (const k of Object.keys(params)) {
if (k.startsWith("__tsqlrow_")) {
throw new Error(`Query parameter ":${k}" uses the reserved __tsqlrow_ prefix`);
}

@@ -45,0 +45,0 @@ }

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

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

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

} ? 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 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<StripGuardedCoalesce<SC, Tables, Aliases, S, Nullable>, 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;
type StripGuardedCoalesce<S extends string, Tables extends string, Aliases extends string, Sch extends DatabaseSchema, Nullable extends string, Acc extends string = "", Steps extends any[] = []> = Steps["length"] extends 12 ? `${Acc}${S}` : S extends `${infer Before}coalesce(${infer AfterOpen}` ? SplitBalancedParen<`(${AfterOpen}`> extends {
inner: infer Inner extends string;
rest: infer Rest extends string;
} ? CoalesceAllArgsNullable<SplitTopLevel<Inner>, Tables, Aliases, Sch, Nullable> extends true ? StripGuardedCoalesce<Rest, Tables, Aliases, Sch, Nullable, `${Acc}${Before}(${Inner})`, [any, ...Steps]> : StripGuardedCoalesce<Rest, Tables, Aliases, Sch, Nullable, `${Acc}${Before} `, [any, ...Steps]> : `${Acc}${S}` : `${Acc}${S}`;
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;

@@ -112,3 +116,3 @@ 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;

} ? 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 : Args extends `${string}) over${string}` ? Func extends "count" | "sum" | "avg" ? number : unknown : Func extends "count" ? number : Func extends "sum" | "avg" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? number | null : number : Func extends "min" | "max" ? FirstArgType<Args, Tables, Aliases, S, Steps> : Func extends "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 : Func extends NumericScalarFn ? null extends UnionArgTypes<Args, Tables, Aliases, S, Steps> ? number | null : number : Func extends StringScalarFn ? null extends UnionArgTypes<Args, Tables, Aliases, S, Steps> ? string | null : string : Func extends "string_agg" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? string | null : string : Func extends "bool_and" | "bool_or" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? boolean | null : boolean : Func extends "array_agg" ? unknown extends FirstArgType<Args, Tables, Aliases, S, Steps> ? unknown : FirstArgType<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 : Args extends `${string}) over${string}` ? Func extends "count" | "sum" | "avg" ? number : unknown : Func extends "count" ? number : Func extends "sum" | "avg" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? number | null : number : Func extends "min" | "max" ? FirstArgType<Args, Tables, Aliases, S, Steps> : Func extends "concat" ? string : Func extends "coalesce" ? CoalesceArgUnion<Args, Tables, Aliases, S, Steps> : Func extends "extract" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? number | null : number : Func extends NumericScalarFn ? null extends UnionArgTypes<Args, Tables, Aliases, S, Steps> ? number | null : number : Func extends StringScalarFn ? null extends UnionArgTypes<Args, Tables, Aliases, S, Steps> ? string | null : string : Func extends "string_agg" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? string | null : string : Func extends "bool_and" | "bool_or" ? null extends FirstArgType<Args, Tables, Aliases, S, Steps> ? boolean | null : boolean : Func extends "array_agg" ? unknown extends FirstArgType<Args, Tables, Aliases, S, Steps> ? unknown : FirstArgType<Args, Tables, Aliases, S, Steps>[] : unknown;
type NumericScalarFn = "length" | "char_length" | "character_length" | "octet_length" | "bit_length" | "strpos" | "round" | "floor" | "ceil" | "ceiling" | "abs" | "trunc" | "sign" | "mod" | "power" | "sqrt";

@@ -135,5 +139,16 @@ type StringScalarFn = "upper" | "lower" | "trim" | "btrim" | "ltrim" | "rtrim" | "initcap" | "replace" | "repeat" | "reverse" | "lpad" | "rpad" | "translate" | "md5" | "split_part" | "substr" | "substring" | "to_char";

export type UnionArgTypes<Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = SplitTopLevel<Args> extends infer Parts extends string[] ? Parts[number] extends infer P extends string ? ExprType<P, Tables, Aliases, S, Steps> : unknown : unknown;
export type CoalesceArgUnion<Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = SplitTopLevel<Args> extends infer Parts extends string[] ? KnownArgUnion<Parts, Tables, Aliases, S, Steps> extends infer U ? [U] extends [never] ? unknown : U : unknown : unknown;
type KnownArgUnion<Parts extends string[], Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = DropUnknownArgs<Parts[number], Tables, Aliases, S, Steps>;
type DropUnknownArgs<P extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = P extends string ? DropIfUnknown<ExprType<P, Tables, Aliases, S, Steps>> : never;
type DropIfUnknown<T> = unknown extends T ? never : T;
export type ArgsValid<Args extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema, Steps extends any[]> = Trim<Args> extends "" ? true : SplitTopLevel<Args> extends infer Parts extends string[] ? AllTrue<Parts[number] extends infer P extends string ? (ExprType<P, Tables, Aliases, S, Steps> extends never ? false : true) : true> : true;
export type SqlTypeToTs<T extends string> = Trim<T> extends `${string}::${infer Rest}` ? SqlTypeToTs<Rest> : Trim<T> extends `${infer Base}[]` ? SqlScalarToTs<NormalizeTypeName<Base>>[] : SqlScalarToTs<NormalizeTypeName<T>>;
export type SqlScalarToTs<N extends string> = N extends "int" | "integer" | "bigint" | "smallint" | "numeric" | "decimal" | "real" | "double" | "float" | "int2" | "int4" | "int8" | "float4" | "float8" ? number : N extends "bool" | "boolean" ? boolean : N extends "text" | "varchar" | "char" | "character" | "uuid" ? string : N extends "date" | "time" | "timestamp" | "timestamptz" ? string : N extends "json" | "jsonb" ? unknown : N extends "bytea" | "blob" ? Uint8Array : unknown;
export interface PgTypeOverrides {
}
export type CanonicalScalarName<N extends string> = N extends "decimal" ? "numeric" : N extends "bigint" ? "int8" : N extends "int" | "integer" ? "int4" : N extends "smallint" ? "int2" : N extends "real" ? "float4" : N extends "double" | "double precision" | "float" ? "float8" : N extends "bool" ? "boolean" : N;
export type DefaultScalarToTs<N extends string> = N extends "numeric" | "decimal" | "bigint" | "int8" | "money" ? string : N extends "int" | "integer" | "smallint" | "real" | "double" | "float" | "int2" | "int4" | "float4" | "float8" ? number : N extends "bool" | "boolean" ? boolean : N extends "text" | "varchar" | "char" | "character" | "uuid" ? string : N extends "date" | "timestamp" | "timestamptz" ? Date : N extends "time" | "timetz" ? string : N extends "json" | "jsonb" ? unknown : N extends "bytea" | "blob" ? Uint8Array : unknown;
export type SqlScalarToTsWith<N extends string, O> = [
keyof O
] extends [never] ? DefaultScalarToTs<N> : CanonicalScalarName<N> extends keyof O ? O[CanonicalScalarName<N>] : DefaultScalarToTs<N>;
export type SqlScalarToTs<N extends string> = SqlScalarToTsWith<N, PgTypeOverrides>;
export type NormalizeTypeName<S extends string> = CleanIdent<ExtractBefore<Trim<S>, "(">>;

@@ -149,5 +164,16 @@ export type OuterCastTs<E extends string> = CleanExpr<E> extends `${string}::${infer CastName}` ? SqlTypeToTs<CastName> : CleanExpr<E> extends `cast(${string} as ${infer CastName})` ? SqlTypeToTs<CastName> : CleanExpr<E> extends `cast (${string} as ${infer CastName})` ? SqlTypeToTs<CastName> : unknown;

else: infer EE extends string;
} ? ExprType<T, Tables, Aliases, S, [any, ...Steps]> | ExprType<EE, Tables, Aliases, S, [any, ...Steps]> : P extends {
} ? CasePick<E, T, ExprType<T, Tables, Aliases, S, [any, ...Steps]> | ExprType<EE, Tables, Aliases, S, [any, ...Steps]>, true> : P extends {
then: infer T extends string;
} ? ExprType<T, Tables, Aliases, S, [any, ...Steps]> | null : unknown : unknown;
} ? CasePick<E, T, ExprType<T, Tables, Aliases, S, [any, ...Steps]> | null, false> : unknown : unknown;
type CasePick<E extends string, FirstThen extends string, Widen, HasElse extends boolean> = FirstThen extends `'${string}'` ? CaseLiteralUnion<E, HasElse> extends infer U ? [U] extends [never] ? Widen : U : Widen : Widen;
declare const CaseNonLiteral: unique symbol;
type CaseNonLiteral = typeof CaseNonLiteral;
type CaseLiteralUnion<E extends string, HasElse extends boolean> = CaseArmLiterals<CaseArmExprs<E>> extends infer U ? [CaseNonLiteral] extends [U] ? never : HasElse extends true ? U : U | null : never;
type CaseArmExprs<E extends string> = Trim<E> extends `(${infer Inner})` ? CaseArmExprs<Trim<Inner>> : Trim<E> extends `case ${infer Body}` ? ArmsFromBody<Trim<StripTrailingEnd<Trim<Body>>>> : never;
type ArmsFromBody<B extends string> = B extends `when ${infer _Cond} then ${infer Rest}` ? ArmsFromThen<Trim<Rest>> : never;
type ArmsFromThen<Rest extends string> = Rest extends `${infer R} when ${infer After}` ? Trim<R> | ArmsFromBody<`when ${After}`> : Rest extends `${infer R} else ${infer RE}` ? Trim<R> | Trim<RE> : Trim<Rest>;
type CaseArmLiteral<A extends string> = A extends `'${infer L}'` ? L : A extends "null" ? null : CaseNonLiteral;
type CaseArmLiterals<Arms extends string> = [
Arms
] extends [never] ? CaseNonLiteral : Arms extends any ? CaseArmLiteral<Arms> : never;
export type CaseParts<E extends string> = Trim<E> extends `(${infer Inner})` ? CaseParts<Trim<Inner>> : Trim<E> extends `case ${infer AfterCase}` ? Trim<AfterCase> extends `${infer _Cond} then ${infer Rest}` ? CasePartsFromRest<Trim<Rest>> : unknown : unknown;

@@ -154,0 +180,0 @@ type CasePartsFromRest<Rest extends string> = Rest extends `case ${infer Inner} end${infer After}` ? MkCaseParts<`case ${Inner} end`, CaseElseHead<Trim<After>>> : Rest extends `${infer R} when ${infer After}` ? MkCaseParts<StripTrailingEnd<R>, CaseElseInTail<After>> : Rest extends `${infer R} else ${infer E}` ? MkCaseParts<StripTrailingEnd<R>, {

@@ -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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"}
export type { DatabaseSchema } from "./schema.js";
export type { PgTypeOverrides, SqlScalarToTs, SqlScalarToTsWith, DefaultScalarToTs, CanonicalScalarName, } from "./expressions.js";
import type { DatabaseSchema } from "./schema.js";

@@ -3,0 +4,0 @@ import type { NormalizeQuery } from "./parsing.js";

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

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

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

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wFAAwF;AAoFxF,+CAA+C;AAC/C,cAAc,oBAAoB,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wFAAwF;AA+FxF,+CAA+C;AAC/C,cAAc,oBAAoB,CAAC"}

@@ -13,2 +13,5 @@ export type And<A extends boolean, B extends boolean, C extends boolean, D extends boolean, E extends boolean = true> = A extends true ? (B extends true ? (C extends true ? (D extends true ? (E extends true ? true : false) : false) : false) : false) : false;

} & {};
export type MergeRow<Acc, Next> = [
Next
] extends [never] ? Acc : [Acc] extends [never] ? Next : Omit<Acc, keyof Next> & Next;
//# sourceMappingURL=utils.d.ts.map

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

{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,CACX,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,GAAG,IAAI,IACxB,CAAC,SAAS,IAAI,GACZ,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GAC/B,KAAK,CAAC,GACV,KAAK,CAAC,GACV,KAAK,CAAC,GACV,KAAK,CAAC;AAEZ,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAEvE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAK5D,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IACxB;IAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,GACL,CAAC,SAAS,GAAG,GACT,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACX,KAAK,GACL,IAAI,GACR,KAAK,CAAC;AAEpB,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAC1D,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC"}
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,CACX,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,GAAG,IAAI,IACxB,CAAC,SAAS,IAAI,GACZ,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GACX,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GAC/B,KAAK,CAAC,GACV,KAAK,CAAC,GACV,KAAK,CAAC,GACV,KAAK,CAAC;AAEZ,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAEvE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAK5D,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IACxB;IAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,GACL,CAAC,SAAS,GAAG,GACT,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACX,KAAK,GACL,IAAI,GACR,KAAK,CAAC;AAEpB,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAC1D,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAYxD,MAAM,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,IAC1B;IAAC,IAAI;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAC1B,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC"}

@@ -5,4 +5,4 @@ import type { AliasesInQuery, NullableRelations, TablesInQuery } from "../tables.js";

import type { DatabaseSchema } from "../schema.js";
import type { MergeRow, SelectReturnWith } from "./return-types.js";
import type { Simplify, UnionToIntersection } from "../utils.js";
import type { SelectReturnWith } from "./return-types.js";
import type { MergeRow, Simplify, UnionToIntersection } from "../utils.js";
export type DerivedTableMatch<N extends string> = Trim<ExtractFromClause<N>> extends `(${string}` ? SplitBalancedParen<Trim<ExtractFromClause<N>>> extends {

@@ -9,0 +9,0 @@ inner: infer Body extends string;

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

{"version":3,"file":"return-derived.d.ts","sourceRoot":"","sources":["../../src/validation/return-derived.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"return-derived.d.ts","sourceRoot":"","sources":["../../src/validation/return-derived.ts"],"names":[],"mappings":"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"}
import type { AliasesInQuery, NullableRelations, TablesInQuery } from "../tables.js";
import type { AllTrue, Simplify } from "../utils.js";
import type { AllTrue, MergeRow, Simplify } from "../utils.js";
import type { CleanIdent, ExtractAlias, ExtractAliasResult, ExtractReturningList, ExtractSelectList, SplitSelectList, StripSubqueries, Trim } from "../parsing.js";
import type { ColumnExists, DatabaseSchema } from "../schema.js";
import type { CteOuterQuery, CteReturn, MultiCteReturn, SingleCteMatch, WithDmlOuter } from "./cte.js";
import type { CteJoinOuterReturn } from "./cte-join.js";
import type { DerivedTableMatch, DerivedTableReturn, JoinedDerivedReturn } from "./return-derived.js";

@@ -10,3 +11,3 @@ import type { ExprToObject } from "../expressions.js";

export type GetReturnTypeNormalized<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? [WithDmlOuter<N>] extends [never] ? HasReturning<N> extends true ? SelectReturnWith<ExtractReturningList<N>, Tables, Aliases, S> : QueryKind<N> extends "select" ? [SingleCteMatch<N>] extends [never] ? [DerivedTableMatch<N>] extends [never] ? OuterSelectReturn<N, Tables, Aliases, S> : DerivedTableReturn<N, S> : CteReturn<N, S> : number : WithDmlReturn<N, Tables, Aliases, S> : number : number;
export type OuterSelectReturn<N extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = N extends `with ${string}` ? CteOuterQuery<N> extends infer Outer extends string ? Outer extends `${string} join ${string}` ? SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>> : MultiCteReturn<Outer> : SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>> : StripSubqueries<N> extends infer Outer extends string ? TablesInQuery<Outer, S> extends infer OT extends string ? AliasesInQuery<Outer, S> extends infer OA extends string ? WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, OT, OA, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>>;
export type OuterSelectReturn<N extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = N extends `with ${string}` ? CteOuterQuery<N> extends infer Outer extends string ? Outer extends `${string} join ${string}` ? Simplify<CteJoinOuterReturn<N, Outer, Tables, Aliases, S, NullableRelations<N, S>>> : MultiCteReturn<Outer> : SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>> : StripSubqueries<N> extends infer Outer extends string ? TablesInQuery<Outer, S> extends infer OT extends string ? AliasesInQuery<Outer, S> extends infer OA extends string ? WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, OT, OA, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>> : WithJoinedDerived<N, S, SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>>;
export type WithJoinedDerived<N extends string, S extends DatabaseSchema, Row> = Simplify<MergeRow<Row, JoinedDerivedReturn<N, S, NullableRelations<N, S>>>>;

@@ -21,5 +22,2 @@ export type WithDmlReturn<N extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = WithDmlOuter<N> extends infer Outer extends string ? HasReturningQuoteAware<Outer> extends true ? SelectReturnWith<ExtractReturningList<Outer>, Tables, Aliases, S> : number : number;

type MergeAll<T extends any[]> = T extends [] ? {} : T extends [infer Only] ? MergeRowProj<{}, Only> : MergeAll<PairMerge<T>>;
export type MergeRow<Acc, Next> = [
Next
] extends [never] ? Acc : [Acc] extends [never] ? Next : Omit<Acc, keyof Next> & Next;
type IsUnknown<T> = [T] extends [never] ? false : [unknown] extends [T] ? true : false;

@@ -26,0 +24,0 @@ type PreferInformative<A, B> = IsUnknown<A> extends true ? B : IsUnknown<B> extends true ? A : [NonNullable<A>] extends [NonNullable<B>] ? ([NonNullable<B>] extends [NonNullable<A>] ? B : A) : B;

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

{"version":3,"file":"return-types.d.ts","sourceRoot":"","sources":["../../src/validation/return-types.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"return-types.d.ts","sourceRoot":"","sources":["../../src/validation/return-types.ts"],"names":[],"mappings":"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"}
{
"name": "@kuindji/typed-sql",
"version": "0.6.0",
"version": "0.7.0",
"description": "Type-level SQL parser for TypeScript",

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

@@ -132,11 +132,11 @@ // src/builder/insert.ts

withParams(params: Record<string, DriverParamValue>): any {
// The __tsqlrow_ namespace is reserved for .rows() synthetic params; a
// user key there would silently overwrite a row value (user params merge
// last), so reject it outright.
if (this.st.rows) {
for (const k of Object.keys(params)) {
if (k.startsWith("__tsqlrow_")) {
throw new Error(
`Query parameter ":${k}" uses the reserved __tsqlrow_ prefix`);
}
// The __tsqlrow_ namespace is reserved for .rows() synthetic params.
// Reject it unconditionally — NOT only when this.st.rows is already set:
// .rows() can be called *after* withParams, and it strips every existing
// __tsqlrow_ key, so a user value bound here first would be silently
// dropped (and its placeholder rebound to a row cell) rather than merged.
for (const k of Object.keys(params)) {
if (k.startsWith("__tsqlrow_")) {
throw new Error(
`Query parameter ":${k}" uses the reserved __tsqlrow_ prefix`);
}

@@ -143,0 +143,0 @@ }

@@ -6,2 +6,13 @@ // Pure type-level SQL validation and result inference.

// pg → TS scalar mapping config. `PgTypeOverrides` is the augmentation point
// for consumers whose driver maps a pg type differently from the node-postgres
// defaults (see the interface doc in expressions.ts).
export type {
PgTypeOverrides,
SqlScalarToTs,
SqlScalarToTsWith,
DefaultScalarToTs,
CanonicalScalarName,
} from "./expressions.js";
import type { DatabaseSchema } from "./schema.js";

@@ -8,0 +19,0 @@ import type { NormalizeQuery } from "./parsing.js";

@@ -44,1 +44,16 @@ // Shared boolean and type utilities.

export type Simplify<T> = { [K in keyof T]: T[K] } & {};
// Merge a "later" column object into an "earlier" one, last write wins: a
// duplicate output alias keeps the later column's type instead of intersecting
// (which would collapse two differing same-named outputs to never). Either side
// may be `never` (an expression that projects nothing) — guard both.
//
// Used for JOIN/derived OVERLAYS, where a later contribution (e.g. an outer-join
// re-projection that adds `| null`) is meant to override an earlier same-named
// column — there, last-write-wins is correct. Lives here, not in a validation
// module, so overlay builders (`return-types`, `return-derived`, `cte-join`)
// can all reuse it without forming an import cycle.
export type MergeRow<Acc, Next> =
[Next] extends [never] ? Acc
: [Acc] extends [never] ? Next
: Omit<Acc, keyof Next> & Next;

@@ -6,4 +6,4 @@ // Derived-table & JOIN LATERAL / joined-derived result inference.

import type { DatabaseSchema } from "../schema.js";
import type { MergeRow, SelectReturnWith } from "./return-types.js";
import type { Simplify, UnionToIntersection } from "../utils.js";
import type { SelectReturnWith } from "./return-types.js";
import type { MergeRow, Simplify, UnionToIntersection } from "../utils.js";
// The outer columns come from the subquery's projection rather than a real

@@ -10,0 +10,0 @@ // table, so the normal table/alias machinery yields `never`. Detect a single

// SELECT/RETURNING result inference + select-return assembly.
import type { AliasesInQuery, NullableRelations, TablesInQuery } from "../tables.js";
import type { AllTrue, Simplify } from "../utils.js";
import type { AllTrue, MergeRow, Simplify } from "../utils.js";
import type { CleanIdent, ExtractAlias, ExtractAliasResult, ExtractReturningList, ExtractSelectList, SplitSelectList, StripSubqueries, Trim } from "../parsing.js";
import type { ColumnExists, DatabaseSchema } from "../schema.js";
import type { CteOuterQuery, CteReturn, MultiCteReturn, SingleCteMatch, WithDmlOuter } from "./cte.js";
import type { CteJoinOuterReturn } from "./cte-join.js";
import type { DerivedTableMatch, DerivedTableReturn, JoinedDerivedReturn } from "./return-derived.js";

@@ -47,8 +48,10 @@ import type { ExprToObject } from "../expressions.js";

? Outer extends `${string} join ${string}`
// CTE outer that JOINs (CTE↔CTE or CTE↔base): outer cols are
// CTE-qualified (`a.id`) and the CTE rows aren't modeled, so the
// derived-table path can't resolve them. Keep the prior lenient
// behavior (resolve the first inner select list against the base
// table set) — unchanged, to avoid regressing those queries.
? SelectReturnWith<ExtractSelectList<N>, Tables, Aliases, S, NullableRelations<N, S>>
// CTE outer that JOINs: resolve the OUTER select list in a single
// pass — each CTE-qualified ref against the CTE body its alias
// points to (with outer-join nullability), and every other ref
// (unqualified, or qualified by a base table like `ip` in a
// CTE↔base join) against the base tables. `CteJoinOuterReturn`
// reads `ExtractSelectList<Outer>` (the real outer list) — not
// `<N>`, which would leak the first inner CTE's select list.
? Simplify<CteJoinOuterReturn<N, Outer, Tables, Aliases, S, NullableRelations<N, S>>>
// Outer reads from a single CTE (no join): resolve as a derived

@@ -166,15 +169,2 @@ // table so casts over CTE columns type precisely (via OuterCastTs)

// Merge a "later" column object into an "earlier" one, last write wins: a
// duplicate output alias keeps the later column's type instead of intersecting
// (which would collapse two differing same-named outputs to never). Either side
// may be `never` (an expression that projects nothing) — guard both.
//
// Used for JOIN/derived OVERLAYS, where a later contribution (e.g. an outer-join
// re-projection that adds `| null`) is meant to override an earlier same-named
// column — there, last-write-wins is correct.
export type MergeRow<Acc, Next> =
[Next] extends [never] ? Acc
: [Acc] extends [never] ? Next
: Omit<Acc, keyof Next> & Next;
// `true` for the `unknown` top type only (a column whose type we couldn't infer).

@@ -181,0 +171,0 @@ // `[unknown] extends [T]` holds only when T is `unknown` (or `any`, which never

Sorry, the diff of this file is too big to display