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

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +45 -56
  3. package/dist/packages/mysql/src/bulk.d.ts +22 -0
  4. package/dist/packages/mysql/src/bulk.d.ts.map +1 -0
  5. package/dist/packages/mysql/src/bulk.js +205 -0
  6. package/dist/packages/mysql/src/bulk.js.map +1 -0
  7. package/dist/packages/mysql/src/decoding.d.ts +26 -0
  8. package/dist/packages/mysql/src/decoding.d.ts.map +1 -0
  9. package/dist/packages/mysql/src/decoding.js +172 -0
  10. package/dist/packages/mysql/src/decoding.js.map +1 -0
  11. package/dist/packages/mysql/src/index.d.ts +5 -1
  12. package/dist/packages/mysql/src/index.d.ts.map +1 -1
  13. package/dist/packages/mysql/src/index.js +16 -3
  14. package/dist/packages/mysql/src/index.js.map +1 -1
  15. package/dist/packages/mysql/src/mysql2.d.ts +60 -1
  16. package/dist/packages/mysql/src/mysql2.d.ts.map +1 -1
  17. package/dist/packages/mysql/src/mysql2.js +402 -1
  18. package/dist/packages/mysql/src/mysql2.js.map +1 -1
  19. package/dist/packages/mysql/src/prepared.d.ts +20 -0
  20. package/dist/packages/mysql/src/prepared.d.ts.map +1 -0
  21. package/dist/packages/mysql/src/prepared.js +47 -0
  22. package/dist/packages/mysql/src/prepared.js.map +1 -0
  23. package/dist/packages/mysql/src/provider.d.ts.map +1 -1
  24. package/dist/packages/mysql/src/provider.js +8 -1
  25. package/dist/packages/mysql/src/provider.js.map +1 -1
  26. package/dist/packages/mysql/src/resolver.d.ts.map +1 -1
  27. package/dist/packages/mysql/src/resolver.js +20 -1
  28. package/dist/packages/mysql/src/resolver.js.map +1 -1
  29. package/dist/packages/mysql/src/routing.d.ts +22 -0
  30. package/dist/packages/mysql/src/routing.d.ts.map +1 -0
  31. package/dist/packages/mysql/src/routing.js +72 -0
  32. package/dist/packages/mysql/src/routing.js.map +1 -0
  33. package/dist/packages/mysql/src/runtime.d.ts +22 -8
  34. package/dist/packages/mysql/src/runtime.d.ts.map +1 -1
  35. package/dist/packages/mysql/src/runtime.js +530 -70
  36. package/dist/packages/mysql/src/runtime.js.map +1 -1
  37. package/dist/packages/mysql/src/semantics.d.ts +5 -0
  38. package/dist/packages/mysql/src/semantics.d.ts.map +1 -0
  39. package/dist/packages/mysql/src/semantics.js +203 -0
  40. package/dist/packages/mysql/src/semantics.js.map +1 -0
  41. package/dist/packages/mysql/src/stream.d.ts +32 -0
  42. package/dist/packages/mysql/src/stream.d.ts.map +1 -0
  43. package/dist/packages/mysql/src/stream.js +175 -0
  44. package/dist/packages/mysql/src/stream.js.map +1 -0
  45. package/dist/packages/mysql/src/version.d.ts +2 -0
  46. package/dist/packages/mysql/src/version.d.ts.map +1 -0
  47. package/dist/packages/mysql/src/version.js +2 -0
  48. package/dist/packages/mysql/src/version.js.map +1 -0
  49. package/package.json +4 -4
@@ -1,5 +1,8 @@
1
+ import { createHash } from "node:crypto";
2
+ import { Readable } from "node:stream";
1
3
  import { MySqlSchemaProvider } from "./provider.js";
2
4
  import { createMySqlDatabase, } from "./runtime.js";
5
+ import { defaultMySqlTypePolicy, isKnownMySqlType, mapMySqlType } from "./type-policy.js";
3
6
  export async function loadMySql2Driver(importer = () => import("mysql2/promise")) {
4
7
  try {
5
8
  return await importer();
@@ -17,6 +20,271 @@ async function uri(value) {
17
20
  throw new TypeError("MySQL connectionUri must not be empty");
18
21
  return result;
19
22
  }
23
+ const MYSQL_LIVE_VERIFIER_VERSION = "mysql-com-stmt-prepare-v2";
24
+ const mysqlTypeNames = new Map([
25
+ [0, "decimal"],
26
+ [1, "tinyint"],
27
+ [2, "smallint"],
28
+ [3, "int"],
29
+ [4, "float"],
30
+ [5, "double"],
31
+ [6, "null"],
32
+ [7, "timestamp"],
33
+ [8, "bigint"],
34
+ [9, "mediumint"],
35
+ [10, "date"],
36
+ [11, "time"],
37
+ [12, "datetime"],
38
+ [13, "year"],
39
+ [15, "varchar"],
40
+ [16, "bit"],
41
+ [245, "json"],
42
+ [246, "decimal"],
43
+ [247, "enum"],
44
+ [248, "set"],
45
+ [249, "tinyblob"],
46
+ [250, "mediumblob"],
47
+ [251, "longblob"],
48
+ [252, "blob"],
49
+ [253, "varchar"],
50
+ [254, "char"],
51
+ [255, "geometry"],
52
+ ]);
53
+ function catalogColumnKey(schema, table, column) {
54
+ return `${schema}\0${table}\0${column}`;
55
+ }
56
+ function verificationField(field, index, policy, schema, catalogColumns, exposeNullability = true) {
57
+ const code = field.columnType ?? field.type ?? 6;
58
+ const length = field.columnLength ?? field.length;
59
+ const base = mysqlTypeNames.get(code) ?? `mysql-type-${code}`;
60
+ const originSchema = field.schema ?? field.db;
61
+ const originTable = field.orgTable ?? field.table;
62
+ const originColumn = field.orgName;
63
+ const catalogType = originSchema === undefined ||
64
+ originSchema.length === 0 ||
65
+ originTable === undefined ||
66
+ originTable.length === 0 ||
67
+ originColumn === undefined ||
68
+ originColumn.length === 0
69
+ ? undefined
70
+ : catalogColumns?.get(catalogColumnKey(originSchema, originTable, originColumn));
71
+ const databaseType = catalogType ?? (code === 1 && length === 1 ? "tinyint(1)" : base);
72
+ const flags = field.flags;
73
+ return {
74
+ index,
75
+ ...(field.name === undefined || field.name.length === 0 ? {} : { name: field.name }),
76
+ databaseType,
77
+ ...(isKnownMySqlType(databaseType, schema) ? { tsType: mapMySqlType(databaseType, policy, schema) } : {}),
78
+ ...(exposeNullability && typeof flags === "number" ? { nullable: (flags & 1) === 0 } : {}),
79
+ };
80
+ }
81
+ /** Creates a lazy adapter over MySQL's binary COM_STMT_PREPARE metadata. */
82
+ export function createMySql2LiveVerifier(options) {
83
+ const ownsPool = options.pool === undefined;
84
+ let poolPromise;
85
+ let serverPromise;
86
+ let catalogColumnsPromise;
87
+ const acquirePool = () => {
88
+ poolPromise ??= (async () => {
89
+ if (options.pool !== undefined)
90
+ return options.pool;
91
+ if (options.connectionUri === undefined)
92
+ throw new TypeError("MySQL live verification requires connectionUri or pool");
93
+ const driver = await loadMySql2Driver(options.driverImporter);
94
+ return driver.createPool({
95
+ ...options.poolConfig,
96
+ uri: await uri(options.connectionUri),
97
+ });
98
+ })();
99
+ return poolPromise;
100
+ };
101
+ const server = async () => {
102
+ serverPromise ??= (async () => {
103
+ const pool = await acquirePool();
104
+ const [rows] = await pool.query('SELECT VERSION() AS version, @@version_comment AS comment, @@sql_mode AS "sqlMode"');
105
+ const row = rows[0];
106
+ return {
107
+ version: row?.version ?? "unknown",
108
+ features: [`comment:${row?.comment ?? "unknown"}`, `sql-mode:${row?.sqlMode ?? ""}`],
109
+ };
110
+ })();
111
+ return serverPromise;
112
+ };
113
+ const catalogColumns = () => {
114
+ catalogColumnsPromise ??= (async () => {
115
+ const pool = await acquirePool();
116
+ const [rows] = await pool.query("SELECT TABLE_SCHEMA AS tableSchema, TABLE_NAME AS tableName, COLUMN_NAME AS columnName, COLUMN_TYPE AS columnType FROM information_schema.columns WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys') ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION");
117
+ return new Map(rows.map((row) => [catalogColumnKey(row.tableSchema, row.tableName, row.columnName), row.columnType]));
118
+ })();
119
+ return catalogColumnsPromise;
120
+ };
121
+ return {
122
+ dialect: "mysql",
123
+ adapterVersion: MYSQL_LIVE_VERIFIER_VERSION,
124
+ server,
125
+ async verify(request) {
126
+ const catalog = await catalogColumns();
127
+ const connection = await (await acquirePool()).getConnection();
128
+ let statement;
129
+ try {
130
+ statement = await connection.prepare(request.sql);
131
+ const native = statement.statement;
132
+ if (native === undefined) {
133
+ return { columns: [], parameters: [], unavailable: ["columns", "parameters"] };
134
+ }
135
+ const policy = options.typePolicy ?? defaultMySqlTypePolicy;
136
+ return {
137
+ columns: (native.columns ?? []).map((field, offset) => verificationField(field, offset + 1, policy, options.schema, catalog)),
138
+ parameters: (native.parameters ?? []).map((field, offset) => verificationField(field, offset + 1, policy, options.schema, catalog, false)),
139
+ };
140
+ }
141
+ finally {
142
+ try {
143
+ if (statement !== undefined)
144
+ await statement.close();
145
+ }
146
+ finally {
147
+ connection.release();
148
+ }
149
+ }
150
+ },
151
+ async close() {
152
+ if (ownsPool && poolPromise !== undefined)
153
+ await (await poolPromise).end();
154
+ },
155
+ };
156
+ }
157
+ const MYSQL_PLAN_INSPECTOR_VERSION = "mysql-explain-json-v1";
158
+ function numberValue(value) {
159
+ if (typeof value === "number" && Number.isFinite(value))
160
+ return value;
161
+ if (typeof value === "string" && value.length > 0) {
162
+ const parsed = Number(value);
163
+ if (Number.isFinite(parsed))
164
+ return parsed;
165
+ }
166
+ return undefined;
167
+ }
168
+ function mysqlPlan(value) {
169
+ const parsed = typeof value === "string" ? JSON.parse(value) : value;
170
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
171
+ throw new TypeError("MySQL returned an unsupported JSON plan");
172
+ }
173
+ const root = parsed;
174
+ const nodes = [];
175
+ const visit = (item) => {
176
+ if (Array.isArray(item)) {
177
+ for (const child of item)
178
+ visit(child);
179
+ return;
180
+ }
181
+ if (typeof item !== "object" || item === null)
182
+ return;
183
+ const record = item;
184
+ const access = record.access_type;
185
+ if (typeof access === "string" && access.length > 0) {
186
+ const relation = record.table_name;
187
+ const index = record.key ?? record.index_name;
188
+ const estimatedRows = numberValue(record.rows_produced_per_join ?? record.rows_examined_per_scan ?? record.estimated_rows);
189
+ const cost = typeof record.cost_info === "object" && record.cost_info !== null
190
+ ? numberValue(record.cost_info.prefix_cost)
191
+ : numberValue(record.estimated_total_cost);
192
+ nodes.push({
193
+ kind: `access:${access}`,
194
+ ...(typeof relation === "string" ? { relation } : {}),
195
+ ...(typeof index === "string" ? { index } : {}),
196
+ ...(estimatedRows === undefined ? {} : { estimatedRows }),
197
+ ...(cost === undefined ? {} : { estimatedCost: cost }),
198
+ });
199
+ }
200
+ for (const child of Object.values(record))
201
+ visit(child);
202
+ };
203
+ visit(root);
204
+ const queryBlock = typeof root.query_block === "object" && root.query_block !== null
205
+ ? root.query_block
206
+ : undefined;
207
+ const costInfo = typeof queryBlock?.cost_info === "object" && queryBlock.cost_info !== null
208
+ ? queryBlock.cost_info
209
+ : undefined;
210
+ const totalCost = numberValue(costInfo?.query_cost ?? root.estimated_total_cost);
211
+ const estimatedRows = numberValue(root.estimated_rows) ?? nodes[0]?.estimatedRows;
212
+ return {
213
+ ...(totalCost === undefined ? {} : { totalCost }),
214
+ ...(estimatedRows === undefined ? {} : { estimatedRows }),
215
+ nodes,
216
+ };
217
+ }
218
+ /** Creates a lazy, non-executing adapter over MySQL structured EXPLAIN. */
219
+ export function createMySql2PlanInspector(options) {
220
+ const ownsPool = options.pool === undefined;
221
+ let poolPromise;
222
+ let environmentPromise;
223
+ const acquirePool = () => {
224
+ poolPromise ??= (async () => {
225
+ if (options.pool !== undefined)
226
+ return options.pool;
227
+ if (options.connectionUri === undefined)
228
+ throw new TypeError("MySQL plan capture requires connectionUri or pool");
229
+ const driver = await loadMySql2Driver(options.driverImporter);
230
+ return driver.createPool({
231
+ ...options.poolConfig,
232
+ uri: await uri(options.connectionUri),
233
+ });
234
+ })();
235
+ return poolPromise;
236
+ };
237
+ return {
238
+ dialect: "mysql",
239
+ adapterVersion: MYSQL_PLAN_INSPECTOR_VERSION,
240
+ parameterMode: "samples-required",
241
+ async environment() {
242
+ environmentPromise ??= (async () => {
243
+ const pool = await acquirePool();
244
+ const [settings] = await pool.query("SELECT VERSION() AS version, @@optimizer_switch AS optimizerSwitch, @@optimizer_prune_level AS optimizerPruneLevel, @@optimizer_search_depth AS optimizerSearchDepth, @@explain_json_format_version AS explainJsonFormatVersion");
245
+ const [statistics] = await pool.query("SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, CAST(SEQ_IN_INDEX AS CHAR) AS SEQ_IN_INDEX, CAST(CARDINALITY AS CHAR) AS CARDINALITY FROM information_schema.statistics WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys') ORDER BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX");
246
+ const [histograms] = await pool.query("SELECT SCHEMA_NAME, TABLE_NAME, COLUMN_NAME, HISTOGRAM FROM information_schema.column_statistics WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys') ORDER BY SCHEMA_NAME, TABLE_NAME, COLUMN_NAME");
247
+ const row = settings[0];
248
+ return {
249
+ version: row?.version ?? "unknown",
250
+ settings: {
251
+ explain_json_format_version: String(row?.explainJsonFormatVersion ?? "unknown"),
252
+ optimizer_prune_level: String(row?.optimizerPruneLevel ?? "unknown"),
253
+ optimizer_search_depth: String(row?.optimizerSearchDepth ?? "unknown"),
254
+ optimizer_switch: String(row?.optimizerSwitch ?? "unknown"),
255
+ },
256
+ statisticsFingerprint: `sha256:${createHash("sha256")
257
+ .update(JSON.stringify([statistics, histograms]))
258
+ .digest("hex")}`,
259
+ };
260
+ })();
261
+ return environmentPromise;
262
+ },
263
+ async capture(request) {
264
+ if (!/^sha256:[a-f\d]{64}$/u.test(request.fingerprint)) {
265
+ throw new TypeError("MySQL plan capture requires a SHA-256 query fingerprint");
266
+ }
267
+ if (request.parameterCount > 0 && request.values === undefined) {
268
+ throw new TypeError("MySQL plan capture requires explicit transient parameter samples");
269
+ }
270
+ if (request.values !== undefined && request.values.length !== request.parameterCount) {
271
+ throw new TypeError("MySQL plan samples do not match the parameter count");
272
+ }
273
+ const connection = await (await acquirePool()).getConnection();
274
+ try {
275
+ const [rows] = await connection.query(`EXPLAIN FORMAT=JSON ${request.sql}`, request.values);
276
+ return mysqlPlan(rows[0]?.EXPLAIN);
277
+ }
278
+ finally {
279
+ connection.release();
280
+ }
281
+ },
282
+ async close() {
283
+ if (ownsPool && poolPromise !== undefined)
284
+ await (await poolPromise).end();
285
+ },
286
+ };
287
+ }
20
288
  const managedPoolOptions = [
21
289
  "supportBigNumbers",
22
290
  "bigNumberStrings",
@@ -49,23 +317,155 @@ async function execute(value, method, sql, values) {
49
317
  const [rows, metadata] = await value[method](sql, values);
50
318
  return {
51
319
  rows: rows,
52
- ...(metadata.length === 0 ? {} : { fields: fields(metadata) }),
320
+ ...(metadata === undefined || metadata.length === 0 ? {} : { fields: fields(metadata) }),
53
321
  };
54
322
  }
55
323
  function connectionAdapter(connection) {
56
324
  const executable = connection;
57
325
  return {
58
326
  execute: (sql, values) => execute(executable, "execute", sql, values),
327
+ stream: (sql, values, options) => createMySql2ProtocolStream(connection.connection, sql, values, options.batchSize),
59
328
  query: (sql) => execute(executable, "query", sql),
329
+ loadData: (statement, chunks) => loadData(connection.connection, statement, chunks),
60
330
  beginTransaction: () => connection.beginTransaction(),
61
331
  commit: () => connection.commit(),
62
332
  rollback: () => connection.rollback(),
333
+ destroy: () => connection.destroy(),
63
334
  release: () => connection.release(),
64
335
  };
65
336
  }
337
+ function loadData(connection, statement, chunks) {
338
+ const source = Readable.from((async function* () {
339
+ for await (const chunk of chunks)
340
+ yield Buffer.from(chunk);
341
+ })(), { objectMode: false });
342
+ return new Promise((resolve, reject) => {
343
+ const native = connection;
344
+ native.query({
345
+ sql: statement,
346
+ infileStreamFactory(path) {
347
+ if (path !== "typed-sql-stream") {
348
+ throw new Error(`MySQL requested an unexpected local infile path: ${path}`);
349
+ }
350
+ return source;
351
+ },
352
+ }, (error) => {
353
+ if (error === null)
354
+ resolve();
355
+ else
356
+ reject(error);
357
+ });
358
+ });
359
+ }
360
+ function createMySql2ProtocolStream(connection, sql, values, batchSize) {
361
+ // mysql2's promise API buffers execute() results. Its public PoolConnection.connection is the
362
+ // same callback connection, whose Execute command exposes the protocol-backed Readable while
363
+ // retaining mysql2's per-connection prepared statement cache.
364
+ const command = connection.execute(sql, values);
365
+ let resolveFields;
366
+ let rejectFields;
367
+ let fieldsSettled = false;
368
+ const fieldMetadata = new Promise((resolve, reject) => {
369
+ resolveFields = resolve;
370
+ rejectFields = reject;
371
+ });
372
+ // A driver failure can happen before the runtime starts awaiting metadata.
373
+ void fieldMetadata.catch(() => undefined);
374
+ let resolveTerminal;
375
+ const terminal = new Promise((resolve) => {
376
+ resolveTerminal = resolve;
377
+ });
378
+ let protocolError;
379
+ let connectionReusable = false;
380
+ let terminalSettled = false;
381
+ let readable;
382
+ const settleTerminal = (reusable) => {
383
+ if (terminalSettled)
384
+ return;
385
+ terminalSettled = true;
386
+ connectionReusable = reusable;
387
+ connection.removeListener("error", onConnectionError);
388
+ connection.removeListener("end", onConnectionEnd);
389
+ connection.removeListener("close", onConnectionEnd);
390
+ resolveTerminal();
391
+ };
392
+ const onConnectionError = (error) => {
393
+ protocolError ??= error;
394
+ if (!fieldsSettled) {
395
+ fieldsSettled = true;
396
+ rejectFields(error);
397
+ }
398
+ readable?.destroy(error);
399
+ settleTerminal(false);
400
+ };
401
+ const onConnectionEnd = () => {
402
+ const error = new Error("MySQL connection ended before the streaming command completed");
403
+ protocolError ??= error;
404
+ if (!fieldsSettled) {
405
+ fieldsSettled = true;
406
+ rejectFields(error);
407
+ }
408
+ readable?.destroy(error);
409
+ settleTerminal(false);
410
+ };
411
+ connection.once("error", onConnectionError);
412
+ connection.once("end", onConnectionEnd);
413
+ connection.once("close", onConnectionEnd);
414
+ command.once("fields", (value) => {
415
+ if (fieldsSettled)
416
+ return;
417
+ fieldsSettled = true;
418
+ resolveFields(value === undefined ? [] : fields(value));
419
+ });
420
+ command.once("error", (error) => {
421
+ protocolError = error;
422
+ if (!fieldsSettled) {
423
+ fieldsSettled = true;
424
+ rejectFields(error);
425
+ }
426
+ });
427
+ command.once("end", () => {
428
+ if (!fieldsSettled) {
429
+ fieldsSettled = true;
430
+ resolveFields([]);
431
+ }
432
+ settleTerminal(true);
433
+ });
434
+ readable = command.stream({ highWaterMark: batchSize });
435
+ // Query.stream can destroy with an error before next() installs the async iterator's listener.
436
+ // Keep the process safe while preserving the same error for fields/iteration/close.
437
+ readable.on("error", () => undefined);
438
+ const iterator = readable[Symbol.asyncIterator]();
439
+ let closePromise;
440
+ return {
441
+ fields: fieldMetadata,
442
+ get connectionReusable() {
443
+ return connectionReusable;
444
+ },
445
+ [Symbol.asyncIterator]() {
446
+ return this;
447
+ },
448
+ next: () => iterator.next(),
449
+ close() {
450
+ closePromise ??= (async () => {
451
+ // Destroying this Readable stops delivery and resumes the socket. The independently attached
452
+ // command listeners remain until the Execute command really ends, so the connection is never
453
+ // released or reused while protocol packets are still arriving.
454
+ if (!readable.destroyed)
455
+ readable.destroy();
456
+ await terminal;
457
+ if (protocolError !== undefined)
458
+ throw protocolError;
459
+ })();
460
+ return closePromise;
461
+ },
462
+ };
463
+ }
66
464
  export function adaptMySql2Pool(pool) {
67
465
  const executable = pool;
68
466
  return {
467
+ executionCapabilities: Object.freeze({ cancellation: true, deadlines: true }),
468
+ bulkLoad: true,
69
469
  execute: (sql, values) => execute(executable, "execute", sql, values),
70
470
  async getConnection() {
71
471
  return connectionAdapter(await pool.getConnection());
@@ -93,6 +493,7 @@ export async function createMySql2Database(options) {
93
493
  ownsPool: true,
94
494
  ...(options.typePolicy === undefined ? {} : { typePolicy: options.typePolicy }),
95
495
  ...(options.decimal === undefined ? {} : { decimal: options.decimal }),
496
+ ...(options.observer === undefined ? {} : { observer: options.observer }),
96
497
  });
97
498
  }
98
499
  export function mysql2(options) {
@@ -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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"}
@@ -0,0 +1,20 @@
1
+ import { type Query, type QueryRenderSkeleton, type RenderedQuery, type SqlRenderer } from "@typed-sql/core";
2
+ export interface MySqlPreparedQueryFactory<Arguments extends readonly unknown[], Row, Params extends readonly unknown[]> {
3
+ (...args: Arguments): Query<Row, Params>;
4
+ readonly statementName: string;
5
+ }
6
+ export interface MySqlPreparedQueryMetadata {
7
+ readonly statementName: string;
8
+ readonly rendered: RenderedQuery;
9
+ }
10
+ interface PreparedStatement {
11
+ skeleton: QueryRenderSkeleton | undefined;
12
+ }
13
+ export interface MySqlPreparedQueryState {
14
+ readonly statements: Map<string, PreparedStatement>;
15
+ readonly queries: WeakMap<object, MySqlPreparedQueryMetadata>;
16
+ }
17
+ export declare function createMySqlPreparedQueryState(): MySqlPreparedQueryState;
18
+ export declare function prepareMySqlQuery<Arguments extends readonly unknown[], Row, Params extends readonly unknown[]>(state: MySqlPreparedQueryState, renderer: SqlRenderer, statementName: string, factory: (...args: Arguments) => Query<Row, Params>): MySqlPreparedQueryFactory<Arguments, Row, Params>;
19
+ export {};
20
+ //# sourceMappingURL=prepared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared.d.ts","sourceRoot":"","sources":["../../../../src/prepared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,yBAAyB,CACxC,SAAS,SAAS,SAAS,OAAO,EAAE,EACpC,GAAG,EACH,MAAM,SAAS,SAAS,OAAO,EAAE;IAEjC,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CAC/D;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAKvE;AAQD,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EAC5G,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAClD,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAwCnD"}
@@ -0,0 +1,47 @@
1
+ import { bindQueryRenderSkeleton, compileQueryRenderSkeleton, } from "@typed-sql/core";
2
+ export function createMySqlPreparedQueryState() {
3
+ return {
4
+ statements: new Map(),
5
+ queries: new WeakMap(),
6
+ };
7
+ }
8
+ function validateStatementName(statementName) {
9
+ if (typeof statementName !== "string" || statementName.length === 0 || statementName.includes("\0")) {
10
+ throw new TypeError("Prepared statement names must be non-empty and cannot contain NUL");
11
+ }
12
+ }
13
+ export function prepareMySqlQuery(state, renderer, statementName, factory) {
14
+ validateStatementName(statementName);
15
+ if (state.statements.has(statementName)) {
16
+ throw new TypeError(`Prepared statement name ${JSON.stringify(statementName)} is already registered`);
17
+ }
18
+ const statement = { skeleton: undefined };
19
+ state.statements.set(statementName, statement);
20
+ const prepared = (...args) => {
21
+ const query = factory(...args);
22
+ const existing = state.queries.get(query);
23
+ if (existing !== undefined && existing.statementName !== statementName) {
24
+ throw new TypeError(`A query cannot use both prepared statement ${JSON.stringify(existing.statementName)} and ${JSON.stringify(statementName)}`);
25
+ }
26
+ let rendered = existing?.rendered;
27
+ const skeleton = statement.skeleton;
28
+ if (rendered === undefined) {
29
+ if (skeleton === undefined) {
30
+ const compiled = compileQueryRenderSkeleton(query, renderer);
31
+ statement.skeleton = compiled.skeleton;
32
+ rendered = compiled.rendered;
33
+ }
34
+ else {
35
+ rendered = bindQueryRenderSkeleton(query, skeleton);
36
+ }
37
+ }
38
+ if (rendered === undefined) {
39
+ throw new TypeError(`Prepared statement ${JSON.stringify(statementName)} must always render the same SQL text and structure`);
40
+ }
41
+ if (existing === undefined)
42
+ state.queries.set(query, { statementName, rendered });
43
+ return query;
44
+ };
45
+ return Object.freeze(Object.assign(prepared, { statementName }));
46
+ }
47
+ //# sourceMappingURL=prepared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared.js","sourceRoot":"","sources":["../../../../src/prepared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAK3B,MAAM,iBAAiB,CAAC;AAyBzB,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,OAAO,EAAE,IAAI,OAAO,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAqB;IAClD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAA8B,EAC9B,QAAqB,EACrB,aAAqB,EACrB,OAAmD;IAEnD,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAe,EAAsB,EAAE;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YACvE,MAAM,IAAI,SAAS,CACjB,8CAA8C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAC5H,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC7D,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CACjB,sBAAsB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qDAAqD,CACzG,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -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,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
+ {"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;AAwBD,eAAO,MAAM,mBAAmB;;;yBAGT,MAAM,GAAG,MAAM;0BAad,MAAM,GAAG,MAAM;EAarC,CAAC;AAEH,qBAAa,mBAAoB,YAAW,cAAc;;IAKxD,YAAY,OAAO,GAAE,0BAA+B,EAInD;IAEK,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA4E7D;CACF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAElG"}
@@ -19,7 +19,9 @@ export const mysqlCatalogQueries = Object.freeze({
19
19
  return `
20
20
  SELECT ROUTINE_SCHEMA AS schema_name,
21
21
  ROUTINE_NAME AS function_name,
22
- DTD_IDENTIFIER AS database_return_type
22
+ DTD_IDENTIFIER AS database_return_type,
23
+ IS_DETERMINISTIC AS is_deterministic,
24
+ SQL_DATA_ACCESS AS sql_data_access
23
25
  FROM information_schema.ROUTINES
24
26
  WHERE ROUTINE_TYPE = 'FUNCTION'
25
27
  AND ROUTINE_SCHEMA IN (${Array.from({ length: schemaCount }, () => "?").join(", ")})
@@ -73,6 +75,11 @@ export class MySqlSchemaProvider {
73
75
  databaseReturnType: row.database_return_type,
74
76
  returnType: mapMySqlType(row.database_return_type, this.#policy),
75
77
  nullable: true,
78
+ volatility: row.sql_data_access === "MODIFIES SQL DATA" || row.is_deterministic === "NO"
79
+ ? "volatile"
80
+ : row.sql_data_access === "READS SQL DATA"
81
+ ? "stable"
82
+ : "immutable",
76
83
  };
77
84
  }
78
85
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAwB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoC9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,oCAAoC;IAC7C,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,CAAC,WAAmB;QACzB,OAAO;;;;;;;;+BAQoB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;KAEnF,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,WAAmB;QAC1B,OAAO;;;;;;iCAMsB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;KAErF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,mBAAmB;IACrB,OAAO,CAA6B;IACpC,QAAQ,CAAgC;IACxC,OAAO,CAAkB;IAElC,YAAY,OAAO,GAA+B,EAAE;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAC5B,MAAM,IAAI,SAAS,CACjB,qGAAqG,CACtG,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAa,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;QAC5G,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAc,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,EAAE,aAAa,CAAC;QAClB,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACxG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;QAC3G,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAY,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAa,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;aAC9G,IAAI,CAAC;QACR,MAAM,MAAM,GAUR,EAAE,CAAC;QACP,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3F,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;gBAC/B,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,YAAY,EAAE,GAAG,CAAC,aAAa;gBAC/B,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;gBACrD,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,KAAK;gBACnC,GAAG,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAUX,EAAE,CAAC;QACP,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG;gBACvD,MAAM,EAAE,GAAG,CAAC,WAAW;gBACvB,IAAI,EAAE,GAAG,CAAC,aAAa;gBACvB,aAAa,EAAE,EAAE;gBACjB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;gBAC5C,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC;gBAChE,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QACD,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,OAAO;YACvB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAC7C,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAmC;IACvE,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAwB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsC9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,oCAAoC;IAC7C,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,CAAC,WAAmB;QACzB,OAAO;;;;;;;;+BAQoB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;KAEnF,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,WAAmB;QAC1B,OAAO;;;;;;;;iCAQsB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;KAErF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,mBAAmB;IACrB,OAAO,CAA6B;IACpC,QAAQ,CAAgC;IACxC,OAAO,CAAkB;IAElC,YAAY,OAAO,GAA+B,EAAE;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAC5B,MAAM,IAAI,SAAS,CACjB,qGAAqG,CACtG,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAa,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;QAC5G,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAc,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,EAAE,aAAa,CAAC;QAClB,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACxG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;QAC3G,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAY,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAa,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;aAC9G,IAAI,CAAC;QACR,MAAM,MAAM,GAUR,EAAE,CAAC;QACP,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3F,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;gBAC/B,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,YAAY,EAAE,GAAG,CAAC,aAAa;gBAC/B,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;gBACrD,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,KAAK;gBACnC,GAAG,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAWX,EAAE,CAAC;QACP,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG;gBACvD,MAAM,EAAE,GAAG,CAAC,WAAW;gBACvB,IAAI,EAAE,GAAG,CAAC,aAAa;gBACvB,aAAa,EAAE,EAAE;gBACjB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;gBAC5C,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC;gBAChE,QAAQ,EAAE,IAAI;gBACd,UAAU,EACR,GAAG,CAAC,eAAe,KAAK,mBAAmB,IAAI,GAAG,CAAC,gBAAgB,KAAK,IAAI;oBAC1E,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,gBAAgB;wBACxC,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,WAAW;aACpB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,OAAO;YACvB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAC7C,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAmC;IACvE,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -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,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"}
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;AAgpBD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAEpB"}