@typed-sql/mysql 1.0.0-beta.1 → 1.0.0-rc.0

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 CHANGED
@@ -1,5 +1,48 @@
1
1
  # @typed-sql/mysql
2
2
 
3
+ ## 1.0.0-rc.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [69c7d87]
8
+ - @typed-sql/core@1.0.0-rc.0
9
+
10
+ ## 1.0.0-beta.2
11
+
12
+ ### Patch Changes
13
+
14
+ - 1563a7a: Declare and enforce the 1.0 package stability boundary. Core SQL, compiler, schema, config, AST,
15
+ PostgreSQL, MySQL, and CLI packages form the stable train; the TypeScript preview bridge and
16
+ language server remain explicitly experimental. Freeze public entrypoints and query type contracts,
17
+ and remove internal compiler/type helpers from stable package-root exports before 1.0.
18
+ - 9dd6bc4: Finalize dialect contract version 3 with explicit identifier quoting and grammar-owned capability
19
+ declarations. Accept third-party snapshot dialects, validate grammar versions, and document the
20
+ public grammar-authoring and conformance workflow.
21
+ - 642cebd: Prove and document runtime codec fidelity against live PostgreSQL and MySQL values. PostgreSQL now
22
+ delegates non-policy OIDs to the installed pg parser table, MySQL maps BIT to Uint8Array, and the
23
+ mysql2 adapter rejects pool settings that would contradict its type policy.
24
+ - bd26d6e: Replace potentially expensive parser regular expressions with bounded scanners, tighten editor
25
+ completion matching, and prevent releases while high-severity CodeQL alerts remain open.
26
+ - 3e2c75c: Infer ordered query parameter tuples and let TypeScript reject interpolation values that do not
27
+ match their SQL context. Dialect contract version 2 adds explicit parameter analysis; unresolved
28
+ positions remain `unknown`. Add typed nullable predicate composition through `sql.fragment()`,
29
+ `sql.and()`, `sql.or()`, `sql.where()`, and `sql.append()` while preserving row and parameter tuples.
30
+ Direct append fragments are grammar-analyzed cumulatively against their static base, so TypeScript
31
+ rejects fragment interpolation values that disagree with the referenced database columns.
32
+ Add `sql.empty` and SQL-template-native conditional structural fragments. The compiler analyzes
33
+ complete branch variants, preserves literal boolean-dependent result rows, and type-checks nested
34
+ fragment parameters without adding a query-builder DSL. Bound independent structural expansion at
35
+ 64 variants by default, correlate repeated conditions, merge diagnostics and fragment expectations
36
+ across variants, and fail closed on incompatible contexts. Share indexed catalog and conservative
37
+ parameter-resolution primitives across grammars, harden cooked-template scanning, and add runtime,
38
+ resolver, scanner, and structural performance gates.
39
+ - Updated dependencies [1563a7a]
40
+ - Updated dependencies [9dd6bc4]
41
+ - Updated dependencies [3e2c75c]
42
+ - @typed-sql/core@1.0.0-beta.2
43
+ - @typed-sql/ast@1.0.0-beta.2
44
+ - @typed-sql/schema@1.0.0-beta.2
45
+
3
46
  ## 1.0.0-beta.1
4
47
 
5
48
  ### Patch Changes
package/README.md CHANGED
@@ -62,8 +62,22 @@ const rows = await database.execute(query);
62
62
  ```
63
63
 
64
64
  The adapter enables lossless bigint/decimal defaults, explicit alternative codecs, catalog
65
- introspection, and nested savepoints without changing global `mysql2` behavior.
65
+ introspection, and nested savepoints without changing global `mysql2` behavior. It rejects
66
+ `poolConfig` options that would contradict the selected type policy. See the tested
67
+ [runtime codec matrix](https://github.com/Lojhan/typed-sql/blob/main/docs/CODEC_FIDELITY.md#mysql-and-mysql2).
66
68
 
67
- See the complete [MySQL support matrix](https://github.com/Lojhan/typed-sql/blob/main/docs/MYSQL_SUPPORT.md).
69
+ ## Supported SQL
70
+
71
+ The grammar targets MySQL 8.4 LTS and supports aliases and stars, inner/outer/cross joins, CTEs,
72
+ derived and correlated subqueries, grouping, aggregates, windows, `CASE`, scalar/EXISTS/IN/BETWEEN
73
+ expressions, common JSON functions/operators, and `INSERT`/`UPDATE`/`DELETE` command typing. Catalog
74
+ inference covers enums, unsigned integers, decimals, JSON, dates, binary values and `tinyint(1)`
75
+ policy mapping. Ordered parameters infer from column comparisons, DML targets, casts, ranges,
76
+ limits, and cataloged function arguments; positions without enough evidence remain `unknown`.
77
+
78
+ Recursive CTE inference, `FULL JOIN`, array constructors, aggregate `FILTER` and incompatible
79
+ `RETURNING` clauses produce `TSQ401`. Commands without a result surface infer
80
+ `Query<never, Parameters>`.
81
+ Unknown functions warn and infer `unknown`; ambiguous or structurally unsafe queries are errors.
68
82
 
69
83
  MIT © typed-sql contributors
@@ -9,11 +9,11 @@ export interface MySqlDialectOptions {
9
9
  readonly typePolicy?: MySqlTypePolicy;
10
10
  }
11
11
  export declare function mysql(options?: MySqlDialectOptions): DialectPlugin<MySqlSchemaSnapshot, MySqlTypePolicy>;
12
- export { parseSchemaSnapshot } from "@typed-sql/schema";
13
12
  export { sql } from "@typed-sql/core";
14
- export { MySqlSchemaProvider, introspectMySql, mysqlCatalogQueries } from "./provider.js";
15
- export { defaultMySqlTypePolicy, defaultMySqlTypePolicy as typePolicy, isKnownMySqlType, mapMySqlType } from "./type-policy.js";
16
- export type { MySqlTypePolicy } from "./type-policy.js";
17
13
  export type { SchemaSnapshot } from "@typed-sql/schema";
14
+ export { parseSchemaSnapshot } from "@typed-sql/schema";
18
15
  export type { MySqlQueryable, MySqlSchemaProviderOptions } from "./provider.js";
16
+ export { introspectMySql, MySqlSchemaProvider, mysqlCatalogQueries } from "./provider.js";
17
+ export type { MySqlTypePolicy } from "./type-policy.js";
18
+ export { defaultMySqlTypePolicy, defaultMySqlTypePolicy as typePolicy, isKnownMySqlType, mapMySqlType, } from "./type-policy.js";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhF,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAQD,wBAAgB,KAAK,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAsB5G;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,IAAI,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChI,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhF,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAwBD,wBAAgB,KAAK,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa,CAAC,mBAAmB,EAAE,eAAe,CAAC,CA8B5G;AAED,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1F,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,UAAU,EACpC,gBAAgB,EAChB,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -4,10 +4,22 @@ import { parseSchemaSnapshot } from "@typed-sql/schema";
4
4
  import { resolveMySqlStatement } from "./resolver.js";
5
5
  import { defaultMySqlTypePolicy } from "./type-policy.js";
6
6
  export const MYSQL_DIALECT_VERSION = "1.0.0";
7
+ const capabilities = Object.freeze({
8
+ aggregateFilter: false,
9
+ arrays: false,
10
+ distinctOn: false,
11
+ fullJoins: false,
12
+ recursiveCtes: false,
13
+ returning: false,
14
+ setOperations: false,
15
+ });
7
16
  function validateMySqlSnapshot(value) {
8
17
  const snapshot = parseSchemaSnapshot(value);
9
18
  if (snapshot.dialect !== "mysql")
10
19
  throw new TypeError(`@typed-sql/mysql cannot use a ${snapshot.dialect} schema snapshot`);
20
+ if (snapshot.dialectVersion !== undefined && snapshot.dialectVersion !== MYSQL_DIALECT_VERSION) {
21
+ throw new TypeError(`@typed-sql/mysql grammar ${MYSQL_DIALECT_VERSION} cannot use snapshot dialectVersion ${snapshot.dialectVersion}`);
22
+ }
11
23
  return snapshot;
12
24
  }
13
25
  export function mysql(options = {}) {
@@ -17,12 +29,16 @@ export function mysql(options = {}) {
17
29
  id: "mysql",
18
30
  grammarVersion: MYSQL_DIALECT_VERSION,
19
31
  sqlModule: "@typed-sql/mysql",
32
+ capabilities,
20
33
  defaultTypePolicy,
21
34
  placeholder(index) {
22
35
  if (!Number.isInteger(index) || index < 1)
23
36
  throw new RangeError("MySQL parameter indexes start at 1");
24
37
  return "?";
25
38
  },
39
+ quoteIdentifier(identifier) {
40
+ return `\`${identifier.replaceAll("`", "``")}\``;
41
+ },
26
42
  analyze(sql, snapshot, policy = defaultTypePolicy) {
27
43
  try {
28
44
  return resolveMySqlStatement(parseStatement(sql, { syntax: "mysql" }), snapshot, { typePolicy: policy });
@@ -30,14 +46,18 @@ export function mysql(options = {}) {
30
46
  catch (error) {
31
47
  if (!(error instanceof SqlParseError))
32
48
  throw error;
33
- return { columns: [], diagnostics: [{ code: error.code, message: error.message, severity: "error", range: error.range }] };
49
+ return {
50
+ columns: [],
51
+ parameters: [],
52
+ diagnostics: [{ code: error.code, message: error.message, severity: "error", range: error.range }],
53
+ };
34
54
  }
35
55
  },
36
56
  validateSnapshot: validateMySqlSnapshot,
37
57
  });
38
58
  }
39
- export { parseSchemaSnapshot } from "@typed-sql/schema";
40
59
  export { sql } from "@typed-sql/core";
41
- export { MySqlSchemaProvider, introspectMySql, mysqlCatalogQueries } from "./provider.js";
42
- export { defaultMySqlTypePolicy, defaultMySqlTypePolicy as typePolicy, isKnownMySqlType, mapMySqlType } from "./type-policy.js";
60
+ export { parseSchemaSnapshot } from "@typed-sql/schema";
61
+ export { introspectMySql, MySqlSchemaProvider, mysqlCatalogQueries } from "./provider.js";
62
+ export { defaultMySqlTypePolicy, defaultMySqlTypePolicy as typePolicy, isKnownMySqlType, mapMySqlType, } from "./type-policy.js";
43
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAsB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAuB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAwB,MAAM,kBAAkB,CAAC;AAEhF,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAO7C,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,QAAQ,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC3H,OAAO,QAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAO,GAAwB,EAAE;IACrD,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,wBAAwB;QACzC,EAAE,EAAE,OAAO;QACX,cAAc,EAAE,qBAAqB;QACrC,SAAS,EAAE,kBAAkB;QAC7B,iBAAiB;QACjB,WAAW,CAAC,KAAa;YACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;YACtG,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAW,EAAE,QAA6B,EAAE,MAAM,GAAG,iBAAiB;YAC5E,IAAI,CAAC;gBACH,OAAO,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3G,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACtI,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,qBAAqB;KACxC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,IAAI,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { type MySqlDatabase, type MySqlPoolLike } from "./runtime.js";
5
5
  import type { MySqlTypePolicy } from "./type-policy.js";
6
6
  export interface MySql2Options {
7
7
  readonly connectionUri: string | (() => string | Promise<string>);
8
- readonly poolConfig?: Omit<PoolOptions, "uri">;
8
+ readonly poolConfig?: Omit<PoolOptions, "uri" | "supportBigNumbers" | "bigNumberStrings" | "decimalNumbers" | "dateStrings" | "jsonStrings" | "typeCast" | "rowsAsArray">;
9
9
  readonly typePolicy?: MySqlTypePolicy;
10
10
  readonly decimal?: (value: string) => unknown;
11
11
  /** Test or host-injected loader. Applications normally leave this unset. */
@@ -1 +1 @@
1
- {"version":3,"file":"mysql2.d.ts","sourceRoot":"","sources":["../../../../src/mysql2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,IAAI,EAAkB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAiD,KAAK,aAAa,EAAkD,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACrK,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAAC;CAC1E;AAOD,wBAAsB,gBAAgB,CACpC,QAAQ,GAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAkC,GACxF,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAS1C;AAoCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,CAOzD;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBzF;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG;IAAE,UAAU,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAAE,CA6B3G"}
1
+ {"version":3,"file":"mysql2.d.ts","sourceRoot":"","sources":["../../../../src/mysql2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,IAAI,EAAkB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,eAAe,CAAC;AACzE,OAAO,EAGL,KAAK,aAAa,EAGlB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CACxB,WAAW,EACT,KAAK,GACL,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,UAAU,GACV,aAAa,CAChB,CAAC;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAAC;CAC1E;AAOD,wBAAsB,gBAAgB,CACpC,QAAQ,GAAE,MAAM,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAkC,GACxF,OAAO,CAAC,cAAc,gBAAgB,CAAC,CAAC,CAY1C;AAiED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,CAWzD;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBzF;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG;IAAE,UAAU,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAAE,CAgC3G"}
@@ -1,5 +1,5 @@
1
1
  import { MySqlSchemaProvider } from "./provider.js";
2
- import { createMySqlDatabase } from "./runtime.js";
2
+ import { createMySqlDatabase, } from "./runtime.js";
3
3
  export async function loadMySql2Driver(importer = () => import("mysql2/promise")) {
4
4
  try {
5
5
  return await importer();
@@ -17,11 +17,32 @@ async function uri(value) {
17
17
  throw new TypeError("MySQL connectionUri must not be empty");
18
18
  return result;
19
19
  }
20
+ const managedPoolOptions = [
21
+ "supportBigNumbers",
22
+ "bigNumberStrings",
23
+ "decimalNumbers",
24
+ "dateStrings",
25
+ "jsonStrings",
26
+ "typeCast",
27
+ "rowsAsArray",
28
+ ];
29
+ function validatePoolConfig(poolConfig) {
30
+ if (poolConfig === undefined)
31
+ return;
32
+ const configured = poolConfig;
33
+ for (const option of managedPoolOptions) {
34
+ if (option in configured) {
35
+ throw new TypeError(`@typed-sql/mysql/mysql2 owns poolConfig.${option} so decoded values match typePolicy; remove that option`);
36
+ }
37
+ }
38
+ }
20
39
  function fields(values) {
21
40
  return values.map((field) => ({
22
41
  name: field.name,
23
42
  columnType: field.columnType ?? field.type ?? 0,
24
- ...(field.columnLength === undefined && field.length === undefined ? {} : { columnLength: field.columnLength ?? field.length }),
43
+ ...(field.columnLength === undefined && field.length === undefined
44
+ ? {}
45
+ : { columnLength: field.columnLength ?? field.length }),
25
46
  }));
26
47
  }
27
48
  async function execute(value, method, sql, values) {
@@ -46,11 +67,16 @@ export function adaptMySql2Pool(pool) {
46
67
  const executable = pool;
47
68
  return {
48
69
  execute: (sql, values) => execute(executable, "execute", sql, values),
49
- async getConnection() { return connectionAdapter(await pool.getConnection()); },
50
- async end() { await pool.end(); },
70
+ async getConnection() {
71
+ return connectionAdapter(await pool.getConnection());
72
+ },
73
+ async end() {
74
+ await pool.end();
75
+ },
51
76
  };
52
77
  }
53
78
  export async function createMySql2Database(options) {
79
+ validatePoolConfig(options.poolConfig);
54
80
  const driver = await loadMySql2Driver(options.driverImporter);
55
81
  const pool = driver.createPool({
56
82
  ...options.poolConfig,
@@ -59,6 +85,8 @@ export async function createMySql2Database(options) {
59
85
  bigNumberStrings: true,
60
86
  decimalNumbers: false,
61
87
  dateStrings: true,
88
+ jsonStrings: false,
89
+ rowsAsArray: false,
62
90
  });
63
91
  return createMySqlDatabase({
64
92
  pool: adaptMySql2Pool(pool),
@@ -71,11 +99,11 @@ export function mysql2(options) {
71
99
  return {
72
100
  async introspect() {
73
101
  if (options.client !== undefined) {
74
- return await new MySqlSchemaProvider({
102
+ return (await new MySqlSchemaProvider({
75
103
  client: options.client,
76
104
  ...(options.schemas === undefined ? {} : { includeSchemas: options.schemas }),
77
105
  ...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
78
- }).introspect({});
106
+ }).introspect({}));
79
107
  }
80
108
  if (options.connectionUri === undefined)
81
109
  throw new TypeError("mysql2 schema provider requires connectionUri or client");
@@ -89,11 +117,11 @@ export function mysql2(options) {
89
117
  },
90
118
  };
91
119
  try {
92
- return await new MySqlSchemaProvider({
120
+ return (await new MySqlSchemaProvider({
93
121
  client,
94
122
  ...(options.schemas === undefined ? {} : { includeSchemas: options.schemas }),
95
123
  ...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
96
- }).introspect({});
124
+ }).introspect({}));
97
125
  }
98
126
  finally {
99
127
  await pool.end();
@@ -1 +1 @@
1
- {"version":3,"file":"mysql2.js","sourceRoot":"","sources":["../../../../src/mysql2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql2.js","sourceRoot":"","sources":["../../../../src/mysql2.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE9F,MAAM,WAAW,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7F,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;CACtH;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAkBD,eAAO,MAAM,mBAAmB;;;yBAGT,MAAM,GAAG,MAAM;0BAad,MAAM,GAAG,MAAM;EAWrC,CAAC;AAEH,qBAAa,mBAAoB,YAAW,cAAc;;IAKxD,YAAY,OAAO,GAAE,0BAA+B,EAInD;IAEK,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAuC7D;CACF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAElG"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAA0B,KAAK,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AAE9F,MAAM,WAAW,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7F,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;CACtH;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAsBD,eAAO,MAAM,mBAAmB;;;yBAGT,MAAM,GAAG,MAAM;0BAad,MAAM,GAAG,MAAM;EAWrC,CAAC;AAEH,qBAAa,mBAAoB,YAAW,cAAc;;IAKxD,YAAY,OAAO,GAAE,0BAA+B,EAInD;IAEK,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAqE7D;CACF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAElG"}
@@ -1,4 +1,4 @@
1
- import { mapMySqlType, defaultMySqlTypePolicy } from "./type-policy.js";
1
+ import { defaultMySqlTypePolicy, mapMySqlType } from "./type-policy.js";
2
2
  export const mysqlCatalogQueries = Object.freeze({
3
3
  version: "SELECT VERSION() AS server_version",
4
4
  database: "SELECT DATABASE() AS database_name",
@@ -40,16 +40,22 @@ export class MySqlSchemaProvider {
40
40
  if (this.#client === undefined)
41
41
  throw new TypeError("MySQL schema provider requires an injected client; use @typed-sql/mysql/mysql2 for a connection URI");
42
42
  const version = (await this.#client.query(mysqlCatalogQueries.version)).rows[0]?.server_version;
43
- const currentDatabase = (await this.#client.query(mysqlCatalogQueries.database)).rows[0]?.database_name;
43
+ const currentDatabase = (await this.#client.query(mysqlCatalogQueries.database)).rows[0]
44
+ ?.database_name;
44
45
  const schemas = this.#schemas ?? (currentDatabase === null || currentDatabase === undefined ? [] : [currentDatabase]);
45
46
  if (schemas.length === 0)
46
47
  throw new TypeError("MySQL introspection requires at least one database schema");
47
48
  const columnRows = (await this.#client.query(mysqlCatalogQueries.columns(schemas.length), schemas)).rows;
48
- const routineRows = (await this.#client.query(mysqlCatalogQueries.routines(schemas.length), schemas)).rows;
49
+ const routineRows = (await this.#client.query(mysqlCatalogQueries.routines(schemas.length), schemas))
50
+ .rows;
49
51
  const tables = {};
50
52
  for (const row of columnRows) {
51
53
  const key = schemas.length === 1 ? row.table_name : `${row.schema_name}.${row.table_name}`;
52
- const table = tables[key] ??= { schema: row.schema_name, name: row.table_name, columns: {} };
54
+ let table = tables[key];
55
+ if (table === undefined) {
56
+ table = { schema: row.schema_name, name: row.table_name, columns: {} };
57
+ tables[key] = table;
58
+ }
53
59
  table.columns[row.column_name] = {
54
60
  name: row.column_name,
55
61
  databaseType: row.database_type,
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { SourceRange, SqlDiagnostic, Statement } from "@typed-sql/ast";
2
+ import { type ResolvedParameter } from "@typed-sql/core";
2
3
  import type { SchemaSnapshot } from "@typed-sql/schema";
3
4
  import { type MySqlTypePolicy } from "./type-policy.js";
4
5
  interface ResolvedType {
@@ -12,6 +13,7 @@ export interface ResolvedMySqlColumn extends ResolvedType {
12
13
  }
13
14
  export interface ResolvedMySqlQuery {
14
15
  readonly columns: readonly ResolvedMySqlColumn[];
16
+ readonly parameters: readonly ResolvedParameter[];
15
17
  readonly diagnostics: readonly SqlDiagnostic[];
16
18
  readonly resultKind: "rows" | "command";
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,WAAW,EACX,aAAa,EACb,SAAS,EAGV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAoC,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACzG,OAAO,EAA0D,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhH,UAAU,YAAY;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAcD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAqXD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,mBAAwB,GAAG,kBAAkB,CAEzI"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,WAAW,EACX,aAAa,EACb,SAAS,EAGV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAsB,KAAK,iBAAiB,EAA0C,MAAM,iBAAiB,CAAC;AACrH,OAAO,KAAK,EAAoC,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACzG,OAAO,EAA4C,KAAK,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AAEhH,UAAU,YAAY;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAcD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AA8nBD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAEpB"}