@typesql/core 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @typesql/core
2
+
3
+ ## 0.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - A parameter tested with `IS NULL` or `IS NOT NULL`, as in `($1::text IS NULL OR col = $1)`, accepts `null`.
@@ -4,7 +4,7 @@ import type { AnyErr, SqlError } from "./engine/errors.js";
4
4
  import type { CheckCarried, Enc, InlineMarker, RewriteInlineStr, Skip } from "./engine/inline.js";
5
5
  import type { HasSlots, JoinedText, MaxParamStr, QuotedIdent, SlotNames, Splice, SpliceCarried, Take, UnknownTuple } from "./engine/splice.js";
6
6
  import type { DefaultTypeMap } from "./type-map/index.js";
7
- import { type CARRIED, type Fragment, type Query, type TextType } from "./query.js";
7
+ import { type CARRIED, type Executor, type Fragment, type Query, type TextType } from "./query.js";
8
8
  /** Fragments accepted in a slot object: fragments or whole queries (subqueries). */
9
9
  export type Slottable = Fragment<string, readonly unknown[], readonly unknown[]> | Query<unknown, readonly unknown[], string>;
10
10
  export type SlotMap = {
@@ -61,7 +61,7 @@ type SplicedOr<Q extends string, S> = SplicedText<Q, S> extends infer X extends
61
61
  type FragCheck<Text extends string, Slotted extends boolean> = IsLiteral<Text> extends false ? SqlError<NotLiteralMessage, 0> : HasSlots<Text> extends Slotted ? Prepared<Text> extends infer P ? (P extends AnyErr ? P : unknown) : never : never;
62
62
  /**
63
63
  * Arguments to `sql.fragment`: positional values for its `$n`, or one `:name` object. Applied as
64
- * `...params: A & FragArgs<Text>` with `A` unconstrained: a constraint that goes through
64
+ * `...params: A & BoxFragArgs<Text>` with `A` unconstrained: a constraint that goes through
65
65
  * `Prepared` cannot be resolved during inference, and TS would replace `A` by the constraint.
66
66
  */
67
67
  type FragArgs<Text extends string> = Prepared<Text> extends [string, infer Names extends string[], readonly unknown[], infer M extends number] ? Names extends [] ? UnknownTuple<M> : [params: {
@@ -77,6 +77,26 @@ type EncNamed<Names extends string[], O> = {
77
77
  [I in keyof Names]: Names[I] extends keyof O ? Enc<O[Names[I]]> : "*";
78
78
  };
79
79
  type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknown[] = []> = Items extends readonly [infer H, ...infer R] ? JoinedCarried<R, [...Acc, ...(CarriedOf<H> extends infer C extends readonly unknown[] ? C : [])]> : Acc;
80
+ type GateCallCheck<DB, TM, Q extends string> = [DB, TM, Q] extends [infer D, infer M, infer Q2 extends string] ? CallCheck<D, M, Q2> : never;
81
+ type GateSlottedCheck<DB, TM, Q extends string, S> = [
82
+ DB,
83
+ TM,
84
+ Q,
85
+ S
86
+ ] extends [infer D, infer M, infer Q2 extends string, infer S2] ? SlottedCheck<D, M, Q2, S2> : never;
87
+ type GateFragCheck<Text extends string, Slotted extends boolean> = [
88
+ Text,
89
+ Slotted
90
+ ] extends [infer T2 extends string, infer B extends boolean] ? FragCheck<T2, B> : never;
91
+ type BoxCallArgs<DB, TM, Q extends string> = Extract<{
92
+ [K in Q as `${K}`]: CallArgs<DB, TM, K>;
93
+ }[`${Q}`], readonly unknown[]>;
94
+ type BoxSlottedArgs<DB, TM, Q extends string, S> = Extract<{
95
+ [K in Q as `${K}`]: SlottedArgs<DB, TM, K, S>;
96
+ }[`${Q}`], readonly unknown[]>;
97
+ type BoxFragArgs<Text extends string> = Extract<{
98
+ [K in Text as `${K}`]: FragArgs<K>;
99
+ }[`${Text}`], readonly unknown[]>;
80
100
  /**
81
101
  * The typed SQL function returned by `createSql<DB, TypeMap>()`.
82
102
  *
@@ -89,8 +109,8 @@ type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknow
89
109
  * so the compile error lands on the SQL text.
90
110
  */
91
111
  export interface Sql<DB, TM> {
92
- <const Q extends string>(query: Q & CallCheck<DB, TM, Q>, ...params: CallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
93
- <const Q extends string, const S extends SlotMap>(query: Q & SlottedCheck<DB, TM, Q, S>, slots: S & SlotsFor<Q, S>, ...params: SlottedArgs<DB, TM, Q, S>): Query<RowOf<DB, TM, SplicedOr<Q, S>>, ParamsOf<DB, TM, SplicedOr<Q, S>>, SplicedOr<Q, S>>;
112
+ <const Q extends string>(query: Q & GateCallCheck<DB, TM, Q>, ...params: BoxCallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
113
+ <const Q extends string, const S extends SlotMap>(query: Q & GateSlottedCheck<DB, TM, Q, S>, slots: S & SlotsFor<Q, S>, ...params: BoxSlottedArgs<DB, TM, Q, S>): Query<RowOf<DB, TM, SplicedOr<Q, S>>, ParamsOf<DB, TM, SplicedOr<Q, S>>, SplicedOr<Q, S>>;
94
114
  /** Escape hatch: bypass inference and assert the row type. Accepts slots, `:name` and inline params like the main call. */
95
115
  as<Row>(query: string, ...params: readonly unknown[]): Query<Row, readonly unknown[]>;
96
116
  as<Row>(query: string, slots: SlotMap, ...params: readonly unknown[]): Query<Row, readonly unknown[]>;
@@ -104,8 +124,8 @@ export interface Sql<DB, TM> {
104
124
  * `:name` and inline parameters are resolved at creation, so a fragment can be reused; the
105
125
  * values' types are checked when the fragment is spliced.
106
126
  */
107
- fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & FragCheck<Text, false>, ...params: A & FragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
108
- fragment<const Text extends string, const S extends SlotMap, const A extends readonly unknown[]>(text: Text & FragCheck<Text, true>, slots: S & SlotsFor<Text, S>, ...params: A & FragArgs<Text>): Fragment<SplicedOr<Text, S>, readonly unknown[], [...FragCarried<Text, A>, ...SpliceCarried<PText<Text>, SlotCarried<S>>]>;
127
+ fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & GateFragCheck<Text, false>, ...params: A & BoxFragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
128
+ fragment<const Text extends string, const S extends SlotMap, const A extends readonly unknown[]>(text: Text & GateFragCheck<Text, true>, slots: S & SlotsFor<Text, S>, ...params: A & BoxFragArgs<Text>): Fragment<SplicedOr<Text, S>, readonly unknown[], [...FragCarried<Text, A>, ...SpliceCarried<PText<Text>, SlotCarried<S>>]>;
109
129
  /** Quoted identifier fragment: `sql.id("col")` → `"col"`, `sql.id("s", "t")` → `"s"."t"`. */
110
130
  id<const Parts extends readonly [string, ...string[]]>(...parts: Parts): Fragment<QuotedIdent<Parts>, [], []>;
111
131
  /** Join fragments with a separator; a tuple input keeps the literal text, an array yields a dynamic fragment. */
@@ -115,6 +135,7 @@ export interface Sql<DB, TM> {
115
135
  /** Raw, untyped SQL text. Splicing it forces the override path (`sql.as`). */
116
136
  raw(text: string): Fragment<string, [], []>;
117
137
  }
118
- export declare function createSql<DB, TM = DefaultTypeMap>(): Sql<DB, TM>;
138
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
139
+ export declare function createSql<DB, TM = DefaultTypeMap>(executor?: Executor): Sql<DB, TM>;
119
140
  export {};
120
141
  //# sourceMappingURL=create-sql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-sql.d.ts","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sql.d.ts","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
@@ -48,15 +48,16 @@ function build(text, rest) {
48
48
  }
49
49
  return slots ? splice(positional, slots, values) : { text: positional, values };
50
50
  }
51
- export function createSql() {
51
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
52
+ export function createSql(executor) {
52
53
  const call = (query, ...rest) => {
53
54
  const { text, values } = build(query, rest);
54
- return makeQuery(text, values);
55
+ return makeQuery(text, values, executor);
55
56
  };
56
57
  const api = Object.assign(call, {
57
58
  as: (query, ...rest) => {
58
59
  const { text, values } = build(query, rest);
59
- return makeQuery(text, values);
60
+ return makeQuery(text, values, executor);
60
61
  },
61
62
  param,
62
63
  fragment: (text, ...rest) => {
@@ -1 +1 @@
1
- {"version":3,"file":"create-sql.js","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sql.js","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import type { ParseProgram } from "./parser/stmt.js";
7
7
  import type { ProjectStmt } from "./project/stmt.js";
8
8
  import type { ParamsOfDml } from "./project/dml.js";
9
9
  import type { Cols, ColsToMap, Simplify } from "./types.js";
10
- import type { MaxParam, ParamMap, ParamsOfSelect, ParamsToMap } from "./typer/params.js";
10
+ import type { MaxParam, NullTest, ParamMap, ParamsOfSelect, ParamsToMap } from "./typer/params.js";
11
11
  import type { TsOf } from "../type-map/index.js";
12
12
  import type { ApplyDdlAll } from "./ddl/apply.js";
13
13
  import type { NamedParams, RewriteNamed } from "./named.js";
@@ -74,8 +74,12 @@ type BuildParams<P extends ParamMap, N extends number, TM, DB, I extends number,
74
74
  * A parameter used in several places has a union of `ColInfo`s; its TS type is the
75
75
  * intersection of each use's TS type. Intersect per `ColInfo` (not per TS union member,
76
76
  * which would turn a nullable `string | null` into `string & null` = `never`).
77
+ * A `$n` tested with `IS [NOT] NULL` (a `NullTest` entry) also accepts null.
77
78
  */
78
- type ParamTs<U, TM, DB> = (U extends {
79
+ type ParamTs<U, TM, DB> = [
80
+ Extract<U, NullTest>
81
+ ] extends [never] ? IntersectUses<U, TM, DB> : [Exclude<U, NullTest>] extends [never] ? unknown : IntersectUses<Exclude<U, NullTest>, TM, DB> | null;
82
+ type IntersectUses<U, TM, DB> = (U extends {
79
83
  readonly type: string;
80
84
  readonly nullable: boolean;
81
85
  } ? (u: TsOf<TM, DB, U>) => void : never) extends (u: infer X) => void ? X : never;
@@ -1 +1 @@
1
- {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/engine/infer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/engine/infer.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import type { TypeList, TypeOf } from "./typeof.js";
29
29
  * (`array_append(nums, $1)` → int4)
30
30
  * SUBSTRING(x FROM $1) → text (Postgres picks the regex form); FROM 1 FOR $1 → int4
31
31
  * $1::T → T (cast beats context), non-null
32
+ * $1 IS [NOT] NULL, $1::T IS NULL → adds `| null` to the intersection of the other uses
32
33
  * LIMIT $1, OFFSET $1 → int4 (number)
33
34
  * no context → unknown
34
35
  */
@@ -65,6 +66,22 @@ type MaxAt<T extends Toks, I extends number, Max extends number> = T[I] extends
65
66
  } ? (Gt<N, Max> extends true ? N : Max) : Max;
66
67
  type Gt<A extends number, B extends number> = Tup<B> extends [...Tup<A>, ...unknown[]] ? false : true;
67
68
  type Tup<N extends number, A extends unknown[] = []> = A["length"] extends N ? A : Tup<N, [...A, 0]>;
69
+ /** Marks a `$n` that the statement tests with `IS [NOT] NULL`: the caller may pass null. */
70
+ export type NullTest = {
71
+ readonly type: "unknown";
72
+ readonly nullable: true;
73
+ readonly nullTest: true;
74
+ };
75
+ type NullTested<E extends Expr, M> = E extends {
76
+ readonly t: "param";
77
+ readonly n: infer N extends number;
78
+ } ? AddParam<M, N, NullTest> : E extends {
79
+ readonly t: "cast";
80
+ readonly e: {
81
+ readonly t: "param";
82
+ readonly n: infer N extends number;
83
+ };
84
+ } ? AddParam<M, N, NullTest> : M;
68
85
  /** Comparison and pattern operators give a non-null param type (`WHERE id = $1` → `number`). */
69
86
  type IsComparison<Op extends string> = Op extends "=" | "<" | ">" | "<=" | ">=" | "<>" | "!=" | "~" | "~*" | "!~" | "!~*" | "~~" | "~~*" | "!~~" | "!~~*" ? true : false;
70
87
  type NotNull<T> = T extends ColInfo ? Mk<T["type"], false> : Mk<"unknown", false>;
@@ -95,7 +112,7 @@ export type ParamsOfExpr<E extends Expr, C extends Ctx, M> = E extends {
95
112
  readonly t: "case";
96
113
  } ? ParamsOfCase<E["operand"], E["whens"], E["else"], C, M> : E extends {
97
114
  readonly t: "is";
98
- } ? ParamsOfExpr<E["e"], C, M> : E extends {
115
+ } ? (E["what"] extends "null" ? NullTested<E["e"], ParamsOfExpr<E["e"], C, M>> : ParamsOfExpr<E["e"], C, M>) : E extends {
99
116
  readonly t: "isdistinct";
100
117
  } ? ParamsOfBin<"=", E["l"], E["r"], C, M> : E extends {
101
118
  readonly t: "between";
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../src/engine/typer/params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../src/engine/typer/params.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql, type Sql, type SlotMap, type Slottable, type SlotsFor, type SplicedText } from "./create-sql.js";
2
- export { makeQuery, makeFragment, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError, type Executor, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export type { InlineMarker, Enc, CheckEnc, DescribeEnc, RewriteInlineStr } from "./engine/inline.js";
5
5
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed, type Spliceable, type SlotValues } from "./runtime/splice.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChI,YAAY,EACV,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAC7G,UAAU,EAAE,YAAY,EAAE,iBAAiB,GAC5C,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7H,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC3G,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5M,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChI,YAAY,EACV,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAC7G,UAAU,EAAE,YAAY,EAAE,iBAAiB,GAC5C,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7H,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC3G,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql } from "./create-sql.js";
2
- export { makeQuery, makeFragment } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed } from "./runtime/splice.js";
5
5
  export { Migrations, migrations, runMigrations } from "./migrations.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2E,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAA2H,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAoC,MAAM,qBAAqB,CAAC;AAgB5J,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAyD,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2E,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAA0I,MAAM,YAAY,CAAC;AAC5M,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAoC,MAAM,qBAAqB,CAAC;AAgB5J,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAyD,MAAM,iBAAiB,CAAC"}
@@ -5,6 +5,7 @@ import type { AnyErr, SqlError } from "./engine/errors.js";
5
5
  * `ddl: Q & ValidateDdl<DB, Q>` so a bad statement is a compile error on the literal.
6
6
  */
7
7
  export type ValidateDdl<DB, Q extends string> = string extends Q ? SqlError<"migrations need a string literal; use .raw() for SQL the type checker cannot see", null> : ApplyDdl<DB, Q> extends infer R ? (R extends AnyErr ? R : Q) : never;
8
+ type GateValidateDdl<DB, Q extends string> = [DB, Q] extends [infer D, infer Q2 extends string] ? ValidateDdl<D, Q2> : never;
8
9
  /**
9
10
  * An immutable list of migration statements plus, at the type level, the schema they
10
11
  * produce. Build one with `migrations()`; every `.add()` returns a new builder.
@@ -29,7 +30,7 @@ export declare class Migrations<DB = {}> {
29
30
  * builder's `schema` is the schema after it. Queries and DML (seed data) are validated
30
31
  * and leave the schema unchanged.
31
32
  */
32
- add<const Q extends string>(ddl: Q & ValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>>;
33
+ add<const Q extends string>(ddl: Q & GateValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>>;
33
34
  /**
34
35
  * Escape hatch: append SQL without checking it. The schema type is unchanged unless you
35
36
  * state the resulting schema: `.raw<NewSchema>("...")`.
@@ -60,4 +61,5 @@ export interface MigrationClient {
60
61
  export declare function runMigrations(client: MigrationClient, m: {
61
62
  readonly statements: readonly string[];
62
63
  }): Promise<void>;
64
+ export {};
63
65
  //# sourceMappingURL=migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,IAC1C,MAAM,SAAS,CAAC,GAAG,QAAQ,CAAC,kFAAkF,EAAE,IAAI,CAAC,GACnH,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,qBAAa,UAAU,CAAC,EAAE,GAAG,EAAE;IAC7B,0FAA0F;IAC1F,SAAiB,MAAM,EAAE,EAAE,CAAC;IAC5B,sHAAsH;IACtH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,0BAA0B;IAC1B,YAAY,UAAU,GAAE,SAAS,MAAM,EAAO,EAG7C;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAEpF;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAE9C;CACF;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,UAAU,CAAC,IAAI,CAAC,CAExD;AAED,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAazH"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,IAC1C,MAAM,SAAS,CAAC,GAAG,QAAQ,CAAC,kFAAkF,EAAE,IAAI,CAAC,GACnH,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAEzE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;AAE7H;;;;;;;;;;GAUG;AACH,qBAAa,UAAU,CAAC,EAAE,GAAG,EAAE;IAC7B,0FAA0F;IAC1F,SAAiB,MAAM,EAAE,EAAE,CAAC;IAC5B,sHAAsH;IACtH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,0BAA0B;IAC1B,YAAY,UAAU,GAAE,SAAS,MAAM,EAAO,EAG7C;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAExF;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAE9C;CACF;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,UAAU,CAAC,IAAI,CAAC,CAExD;AAED,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAazH"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAU;IAGrB,sHAAsH;IAC7G,UAAU,CAAoB;IAEvC,0BAA0B;IAC1B,YAAY,UAAU,GAAsB,EAAE;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAyB,GAA2B;QACrD,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAa,GAAW;QACzB,OAAO,IAAI,UAAU,CAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,UAAU,EAAQ,CAAC;AAChC,CAAC;AAeD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAuB,EAAE,CAA6C;IACxG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAU;IAGrB,sHAAsH;IAC7G,UAAU,CAAoB;IAEvC,0BAA0B;IAC1B,YAAY,UAAU,GAAsB,EAAE;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAyB,GAA+B;QACzD,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAa,GAAW;QACzB,OAAO,IAAI,UAAU,CAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,UAAU,EAAQ,CAAC;AAChC,CAAC;AAeD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAuB,EAAE,CAA6C;IACxG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
package/dist/query.d.ts CHANGED
@@ -1,17 +1,34 @@
1
1
  /**
2
- * Runtime query object: `{ text, values }` plus phantom row/param/text types.
3
- * A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
2
+ * Runtime query object: `{ text, values }` plus phantom row/param/text types, and `execute*`
3
+ * methods that run it. A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
4
4
  */
5
5
  export declare const ROW: unique symbol;
6
6
  export declare const PARAMS: unique symbol;
7
7
  export declare const TEXT: unique symbol;
8
8
  export declare const CARRIED: unique symbol;
9
+ /**
10
+ * Runs a statement and resolves to its rows. Adapters build one from a driver client
11
+ * (`executor(pool)` in `@typesql/pg`); pass it to `createSql(executor)` or to `q.execute(executor)`.
12
+ */
13
+ export type Executor = (text: string, values: readonly unknown[]) => PromiseLike<readonly unknown[]>;
14
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
15
+ export declare class NoResultError extends Error {
16
+ readonly name = "NoResultError";
17
+ readonly text: string;
18
+ constructor(text: string);
19
+ }
9
20
  export interface Query<Row, Params extends readonly unknown[] = readonly unknown[], Text extends string = string> {
10
21
  readonly text: string;
11
22
  readonly values: readonly unknown[];
12
23
  readonly [ROW]?: Row;
13
24
  readonly [PARAMS]?: Params;
14
25
  readonly [TEXT]?: Text;
26
+ /** Run the query and return all rows. Uses `executor` if given, else the one bound by `createSql(executor)`. */
27
+ execute(executor?: Executor): Promise<Row[]>;
28
+ /** The first row, or `undefined` when there are none. */
29
+ executeTakeFirst(executor?: Executor): Promise<Row | undefined>;
30
+ /** The first row; throws `NoResultError` when there are none. */
31
+ executeTakeFirstOrThrow(executor?: Executor): Promise<Row>;
15
32
  }
16
33
  /**
17
34
  * A spliceable piece of SQL. `Text` is the literal when known, `string` when dynamic.
@@ -32,6 +49,10 @@ export type ParamsType<Q> = Q extends {
32
49
  export type TextType<Q> = Q extends {
33
50
  readonly [TEXT]?: infer T extends string;
34
51
  } ? T : string;
35
- export declare function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[]): Query<Row, Params, Text>;
52
+ /**
53
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
54
+ * `{ text, values }` (strictly, too).
55
+ */
56
+ export declare function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[], executor?: Executor): Query<Row, Params, Text>;
36
57
  export declare function makeFragment<Text extends string, Params extends readonly unknown[], Carried extends readonly unknown[] = readonly unknown[]>(text: string, values: readonly unknown[]): Fragment<Text, Params, Carried>;
37
58
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,MAAM,CAAC;AACxC,MAAM,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,MAAM,CAAC;AAC3C,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC,MAAM,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAE5C,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM;IAC9G,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE;IACrK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1F,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAClF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AAE9F,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAElK;AAED,wBAAgB,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EAAE,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAEvN"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/query.js CHANGED
@@ -1,5 +1,35 @@
1
- export function makeQuery(text, values) {
2
- return { text, values };
1
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
2
+ export class NoResultError extends Error {
3
+ name = "NoResultError";
4
+ text;
5
+ constructor(text) {
6
+ super("The query returned no rows");
7
+ this.text = text;
8
+ }
9
+ }
10
+ /**
11
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
12
+ * `{ text, values }` (strictly, too).
13
+ */
14
+ export function makeQuery(text, values, executor) {
15
+ const execute = async (given) => {
16
+ const run = given ?? executor;
17
+ if (!run)
18
+ throw new Error("typesql: no executor: pass one to createSql(executor) or to execute(executor)");
19
+ return Array.from(await run(text, values));
20
+ };
21
+ return Object.defineProperties({ text, values }, {
22
+ execute: { value: execute },
23
+ executeTakeFirst: { value: async (given) => (await execute(given))[0] },
24
+ executeTakeFirstOrThrow: {
25
+ value: async (given) => {
26
+ const rows = await execute(given);
27
+ if (rows.length === 0)
28
+ throw new NoResultError(text);
29
+ return rows[0];
30
+ },
31
+ },
32
+ });
3
33
  }
4
34
  export function makeFragment(text, values) {
5
35
  return { text, values };
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,SAAS,CAAuE,IAAY,EAAE,MAA0B;IACtI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAkH,IAAY,EAAE,MAA0B;IACpL,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAeA,0EAA0E;AAC1E,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAG,eAAe,CAAC;IAChC,IAAI,CAAS;IACtB,YAAY,IAAY;QACtB,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAiCD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAuE,IAAY,EAAE,MAA0B,EAAE,QAAmB;IAC3J,MAAM,OAAO,GAAG,KAAK,EAAE,KAAgB,EAAsB,EAAE;QAC7D,MAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC3G,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QAC3B,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAgB,EAAE,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAClF,uBAAuB,EAAE;YACvB,KAAK,EAAE,KAAK,EAAE,KAAgB,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;SACF;KACF,CAAwC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAkH,IAAY,EAAE,MAA0B;IACpL,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typesql/core",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Type-level Postgres SQL inference for TypeScript. Zero runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/create-sql.ts CHANGED
@@ -4,7 +4,7 @@ import type { AnyErr, SqlError } from "./engine/errors.js";
4
4
  import type { CheckCarried, Enc, InlineMarker, RewriteInlineStr, Skip } from "./engine/inline.js";
5
5
  import type { HasSlots, JoinedText, MaxParamStr, QuotedIdent, SlotNames, Splice, SpliceCarried, Take, UnknownTuple } from "./engine/splice.js";
6
6
  import type { DefaultTypeMap } from "./type-map/index.js";
7
- import { makeFragment, makeQuery, type CARRIED, type Fragment, type Query, type TextType } from "./query.js";
7
+ import { makeFragment, makeQuery, type CARRIED, type Executor, type Fragment, type Query, type TextType } from "./query.js";
8
8
  import { joinFragments, maxParam, quoteIdent, rewriteNamed, splice, type Spliceable } from "./runtime/splice.js";
9
9
  import { hasInline, param, resolveInline } from "./runtime/inline.js";
10
10
 
@@ -122,7 +122,7 @@ type FragCheck<Text extends string, Slotted extends boolean> =
122
122
  : never;
123
123
  /**
124
124
  * Arguments to `sql.fragment`: positional values for its `$n`, or one `:name` object. Applied as
125
- * `...params: A & FragArgs<Text>` with `A` unconstrained: a constraint that goes through
125
+ * `...params: A & BoxFragArgs<Text>` with `A` unconstrained: a constraint that goes through
126
126
  * `Prepared` cannot be resolved during inference, and TS would replace `A` by the constraint.
127
127
  */
128
128
  type FragArgs<Text extends string> =
@@ -141,6 +141,15 @@ type EncNamed<Names extends string[], O> = { [I in keyof Names]: Names[I] extend
141
141
  type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknown[] = []> =
142
142
  Items extends readonly [infer H, ...infer R] ? JoinedCarried<R, [...Acc, ...(CarriedOf<H> extends infer C extends readonly unknown[] ? C : [])]> : Acc;
143
143
 
144
+ type GateCallCheck<DB, TM, Q extends string> = [DB, TM, Q] extends [infer D, infer M, infer Q2 extends string] ? CallCheck<D, M, Q2> : never;
145
+ type GateSlottedCheck<DB, TM, Q extends string, S> =
146
+ [DB, TM, Q, S] extends [infer D, infer M, infer Q2 extends string, infer S2] ? SlottedCheck<D, M, Q2, S2> : never;
147
+ type GateFragCheck<Text extends string, Slotted extends boolean> =
148
+ [Text, Slotted] extends [infer T2 extends string, infer B extends boolean] ? FragCheck<T2, B> : never;
149
+ type BoxCallArgs<DB, TM, Q extends string> = Extract<{ [K in Q as `${K}`]: CallArgs<DB, TM, K> }[`${Q}`], readonly unknown[]>;
150
+ type BoxSlottedArgs<DB, TM, Q extends string, S> = Extract<{ [K in Q as `${K}`]: SlottedArgs<DB, TM, K, S> }[`${Q}`], readonly unknown[]>;
151
+ type BoxFragArgs<Text extends string> = Extract<{ [K in Text as `${K}`]: FragArgs<K> }[`${Text}`], readonly unknown[]>;
152
+
144
153
  /**
145
154
  * The typed SQL function returned by `createSql<DB, TypeMap>()`.
146
155
  *
@@ -153,11 +162,11 @@ type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknow
153
162
  * so the compile error lands on the SQL text.
154
163
  */
155
164
  export interface Sql<DB, TM> {
156
- <const Q extends string>(query: Q & CallCheck<DB, TM, Q>, ...params: CallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
165
+ <const Q extends string>(query: Q & GateCallCheck<DB, TM, Q>, ...params: BoxCallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
157
166
  <const Q extends string, const S extends SlotMap>(
158
- query: Q & SlottedCheck<DB, TM, Q, S>,
167
+ query: Q & GateSlottedCheck<DB, TM, Q, S>,
159
168
  slots: S & SlotsFor<Q, S>,
160
- ...params: SlottedArgs<DB, TM, Q, S>
169
+ ...params: BoxSlottedArgs<DB, TM, Q, S>
161
170
  ): Query<RowOf<DB, TM, SplicedOr<Q, S>>, ParamsOf<DB, TM, SplicedOr<Q, S>>, SplicedOr<Q, S>>;
162
171
 
163
172
  /** Escape hatch: bypass inference and assert the row type. Accepts slots, `:name` and inline params like the main call. */
@@ -175,11 +184,11 @@ export interface Sql<DB, TM> {
175
184
  * `:name` and inline parameters are resolved at creation, so a fragment can be reused; the
176
185
  * values' types are checked when the fragment is spliced.
177
186
  */
178
- fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & FragCheck<Text, false>, ...params: A & FragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
187
+ fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & GateFragCheck<Text, false>, ...params: A & BoxFragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
179
188
  fragment<const Text extends string, const S extends SlotMap, const A extends readonly unknown[]>(
180
- text: Text & FragCheck<Text, true>,
189
+ text: Text & GateFragCheck<Text, true>,
181
190
  slots: S & SlotsFor<Text, S>,
182
- ...params: A & FragArgs<Text>
191
+ ...params: A & BoxFragArgs<Text>
183
192
  ): Fragment<SplicedOr<Text, S>, readonly unknown[], [...FragCarried<Text, A>, ...SpliceCarried<PText<Text>, SlotCarried<S>>]>;
184
193
 
185
194
  /** Quoted identifier fragment: `sql.id("col")` → `"col"`, `sql.id("s", "t")` → `"s"."t"`. */
@@ -239,15 +248,16 @@ function build(text: string, rest: readonly unknown[]): { text: string; values:
239
248
  return slots ? splice(positional, slots, values) : { text: positional, values };
240
249
  }
241
250
 
242
- export function createSql<DB, TM = DefaultTypeMap>(): Sql<DB, TM> {
251
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
252
+ export function createSql<DB, TM = DefaultTypeMap>(executor?: Executor): Sql<DB, TM> {
243
253
  const call = (query: string, ...rest: readonly unknown[]) => {
244
254
  const { text, values } = build(query, rest);
245
- return makeQuery(text, values);
255
+ return makeQuery(text, values, executor);
246
256
  };
247
257
  const api = Object.assign(call, {
248
258
  as: (query: string, ...rest: readonly unknown[]) => {
249
259
  const { text, values } = build(query, rest);
250
- return makeQuery(text, values);
260
+ return makeQuery(text, values, executor);
251
261
  },
252
262
  param,
253
263
  fragment: (text: string, ...rest: readonly unknown[]) => {
@@ -7,7 +7,7 @@ import type { ParseProgram } from "./parser/stmt.js";
7
7
  import type { ProjectStmt } from "./project/stmt.js";
8
8
  import type { ParamsOfDml } from "./project/dml.js";
9
9
  import type { Cols, ColsToMap, Simplify } from "./types.js";
10
- import type { MaxParam, ParamMap, ParamsOfSelect, ParamsToMap } from "./typer/params.js";
10
+ import type { MaxParam, NullTest, ParamMap, ParamsOfSelect, ParamsToMap } from "./typer/params.js";
11
11
  import type { TsOf } from "../type-map/index.js";
12
12
  import type { ApplyDdlAll } from "./ddl/apply.js";
13
13
  import type { NamedParams, RewriteNamed } from "./named.js";
@@ -110,8 +110,13 @@ type BuildParams<P extends ParamMap, N extends number, TM, DB, I extends number,
110
110
  * A parameter used in several places has a union of `ColInfo`s; its TS type is the
111
111
  * intersection of each use's TS type. Intersect per `ColInfo` (not per TS union member,
112
112
  * which would turn a nullable `string | null` into `string & null` = `never`).
113
+ * A `$n` tested with `IS [NOT] NULL` (a `NullTest` entry) also accepts null.
113
114
  */
114
115
  type ParamTs<U, TM, DB> =
116
+ [Extract<U, NullTest>] extends [never] ? IntersectUses<U, TM, DB>
117
+ : [Exclude<U, NullTest>] extends [never] ? unknown
118
+ : IntersectUses<Exclude<U, NullTest>, TM, DB> | null;
119
+ type IntersectUses<U, TM, DB> =
115
120
  (U extends { readonly type: string; readonly nullable: boolean } ? (u: TsOf<TM, DB, U>) => void : never) extends (u: infer X) => void ? X : never;
116
121
  type Inc<I extends number> = Nx<I>;
117
122
 
@@ -30,6 +30,7 @@ import type { TypeList, TypeOf } from "./typeof.js";
30
30
  * (`array_append(nums, $1)` → int4)
31
31
  * SUBSTRING(x FROM $1) → text (Postgres picks the regex form); FROM 1 FOR $1 → int4
32
32
  * $1::T → T (cast beats context), non-null
33
+ * $1 IS [NOT] NULL, $1::T IS NULL → adds `| null` to the intersection of the other uses
33
34
  * LIMIT $1, OFFSET $1 → int4 (number)
34
35
  * no context → unknown
35
36
  */
@@ -75,6 +76,13 @@ type MaxAt<T extends Toks, I extends number, Max extends number> =
75
76
  type Gt<A extends number, B extends number> = Tup<B> extends [...Tup<A>, ...unknown[]] ? false : true;
76
77
  type Tup<N extends number, A extends unknown[] = []> = A["length"] extends N ? A : Tup<N, [...A, 0]>;
77
78
 
79
+ /** Marks a `$n` that the statement tests with `IS [NOT] NULL`: the caller may pass null. */
80
+ export type NullTest = { readonly type: "unknown"; readonly nullable: true; readonly nullTest: true };
81
+ type NullTested<E extends Expr, M> =
82
+ E extends { readonly t: "param"; readonly n: infer N extends number } ? AddParam<M, N, NullTest>
83
+ : E extends { readonly t: "cast"; readonly e: { readonly t: "param"; readonly n: infer N extends number } } ? AddParam<M, N, NullTest>
84
+ : M;
85
+
78
86
  /** Comparison and pattern operators give a non-null param type (`WHERE id = $1` → `number`). */
79
87
  type IsComparison<Op extends string> = Op extends "=" | "<" | ">" | "<=" | ">=" | "<>" | "!=" | "~" | "~*" | "!~" | "!~*" | "~~" | "~~*" | "!~~" | "!~~*" ? true : false;
80
88
  type NotNull<T> = T extends ColInfo ? Mk<T["type"], false> : Mk<"unknown", false>;
@@ -90,7 +98,7 @@ export type ParamsOfExpr<E extends Expr, C extends Ctx, M> =
90
98
  : E extends { readonly t: "cast" } ? (E["e"] extends { readonly t: "param"; readonly n: infer N extends number } ? AddParam<M, N, Info<E["to"], false>> : ParamsOfExpr<E["e"], C, M>)
91
99
  : E extends { readonly t: "call" } ? ParamsOfCall<Extract<E, Call>, C, M>
92
100
  : E extends { readonly t: "case" } ? ParamsOfCase<E["operand"], E["whens"], E["else"], C, M>
93
- : E extends { readonly t: "is" } ? ParamsOfExpr<E["e"], C, M>
101
+ : E extends { readonly t: "is" } ? (E["what"] extends "null" ? NullTested<E["e"], ParamsOfExpr<E["e"], C, M>> : ParamsOfExpr<E["e"], C, M>)
94
102
  : E extends { readonly t: "isdistinct" } ? ParamsOfBin<"=", E["l"], E["r"], C, M>
95
103
  : E extends { readonly t: "between" } ? (E["e"] extends { readonly t: "param"; readonly n: infer N extends number }
96
104
  ? ParamsOfList<[E["lo"], E["hi"]], C, AddParam<M, N, Mk<CommonOfExprs<[E["lo"], E["hi"]], C>, false>>, null>
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql, type Sql, type SlotMap, type Slottable, type SlotsFor, type SplicedText } from "./create-sql.js";
2
- export { makeQuery, makeFragment, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError, type Executor, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export type { InlineMarker, Enc, CheckEnc, DescribeEnc, RewriteInlineStr } from "./engine/inline.js";
5
5
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed, type Spliceable, type SlotValues } from "./runtime/splice.js";
package/src/migrations.ts CHANGED
@@ -9,6 +9,8 @@ export type ValidateDdl<DB, Q extends string> =
9
9
  string extends Q ? SqlError<"migrations need a string literal; use .raw() for SQL the type checker cannot see", null>
10
10
  : ApplyDdl<DB, Q> extends infer R ? (R extends AnyErr ? R : Q) : never;
11
11
 
12
+ type GateValidateDdl<DB, Q extends string> = [DB, Q] extends [infer D, infer Q2 extends string] ? ValidateDdl<D, Q2> : never;
13
+
12
14
  /**
13
15
  * An immutable list of migration statements plus, at the type level, the schema they
14
16
  * produce. Build one with `migrations()`; every `.add()` returns a new builder.
@@ -38,7 +40,7 @@ export class Migrations<DB = {}> {
38
40
  * builder's `schema` is the schema after it. Queries and DML (seed data) are validated
39
41
  * and leave the schema unchanged.
40
42
  */
41
- add<const Q extends string>(ddl: Q & ValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>> {
43
+ add<const Q extends string>(ddl: Q & GateValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>> {
42
44
  return new Migrations([...this.statements, ddl]);
43
45
  }
44
46
 
package/src/query.ts CHANGED
@@ -1,18 +1,40 @@
1
1
  /**
2
- * Runtime query object: `{ text, values }` plus phantom row/param/text types.
3
- * A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
2
+ * Runtime query object: `{ text, values }` plus phantom row/param/text types, and `execute*`
3
+ * methods that run it. A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
4
4
  */
5
5
  export declare const ROW: unique symbol;
6
6
  export declare const PARAMS: unique symbol;
7
7
  export declare const TEXT: unique symbol;
8
8
  export declare const CARRIED: unique symbol;
9
9
 
10
+ /**
11
+ * Runs a statement and resolves to its rows. Adapters build one from a driver client
12
+ * (`executor(pool)` in `@typesql/pg`); pass it to `createSql(executor)` or to `q.execute(executor)`.
13
+ */
14
+ export type Executor = (text: string, values: readonly unknown[]) => PromiseLike<readonly unknown[]>;
15
+
16
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
17
+ export class NoResultError extends Error {
18
+ override readonly name = "NoResultError";
19
+ readonly text: string;
20
+ constructor(text: string) {
21
+ super("The query returned no rows");
22
+ this.text = text;
23
+ }
24
+ }
25
+
10
26
  export interface Query<Row, Params extends readonly unknown[] = readonly unknown[], Text extends string = string> {
11
27
  readonly text: string;
12
28
  readonly values: readonly unknown[];
13
29
  readonly [ROW]?: Row;
14
30
  readonly [PARAMS]?: Params;
15
31
  readonly [TEXT]?: Text;
32
+ /** Run the query and return all rows. Uses `executor` if given, else the one bound by `createSql(executor)`. */
33
+ execute(executor?: Executor): Promise<Row[]>;
34
+ /** The first row, or `undefined` when there are none. */
35
+ executeTakeFirst(executor?: Executor): Promise<Row | undefined>;
36
+ /** The first row; throws `NoResultError` when there are none. */
37
+ executeTakeFirstOrThrow(executor?: Executor): Promise<Row>;
16
38
  }
17
39
 
18
40
  /**
@@ -32,8 +54,27 @@ export type RowType<Q> = Q extends Query<infer R, readonly unknown[], string> ?
32
54
  export type ParamsType<Q> = Q extends { readonly [PARAMS]?: infer P } ? P : never;
33
55
  export type TextType<Q> = Q extends { readonly [TEXT]?: infer T extends string } ? T : string;
34
56
 
35
- export function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[]): Query<Row, Params, Text> {
36
- return { text, values };
57
+ /**
58
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
59
+ * `{ text, values }` (strictly, too).
60
+ */
61
+ export function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[], executor?: Executor): Query<Row, Params, Text> {
62
+ const execute = async (given?: Executor): Promise<unknown[]> => {
63
+ const run = given ?? executor;
64
+ if (!run) throw new Error("typesql: no executor: pass one to createSql(executor) or to execute(executor)");
65
+ return Array.from(await run(text, values));
66
+ };
67
+ return Object.defineProperties({ text, values }, {
68
+ execute: { value: execute },
69
+ executeTakeFirst: { value: async (given?: Executor) => (await execute(given))[0] },
70
+ executeTakeFirstOrThrow: {
71
+ value: async (given?: Executor) => {
72
+ const rows = await execute(given);
73
+ if (rows.length === 0) throw new NoResultError(text);
74
+ return rows[0];
75
+ },
76
+ },
77
+ }) as unknown as Query<Row, Params, Text>;
37
78
  }
38
79
 
39
80
  export function makeFragment<Text extends string, Params extends readonly unknown[], Carried extends readonly unknown[] = readonly unknown[]>(text: string, values: readonly unknown[]): Fragment<Text, Params, Carried> {