@askdb/mysql 0.1.0-beta.10 → 0.1.0-beta.12

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/README.md CHANGED
@@ -18,6 +18,13 @@ pnpm add @askdb/core @askdb/introspect @askdb/mysql
18
18
  pnpm add mysql2
19
19
  ```
20
20
 
21
+ For one-off CLI introspection, include the driver in the same ephemeral command:
22
+
23
+ ```bash
24
+ pnpm dlx -p askdb -p mysql2 askdb introspect --engine mysql --url "$MYSQL_URL"
25
+ npx -p askdb -p mysql2 askdb introspect --engine mysql --url "$MYSQL_URL"
26
+ ```
27
+
21
28
  ## Usage
22
29
 
23
30
  ### NL→SQL
@@ -57,4 +64,4 @@ Tables, views, columns (MySQL-native type strings), primary keys, unique constra
57
64
 
58
65
  ## License
59
66
 
60
- Apache-2.0
67
+ Apache-2.0 © [Yahya Gilany](https://yahyagilany.io). See [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAuBhF,8EAA8E;AAC9E,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AA8BD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,CAE1F"}
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKhF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAwDhF,8EAA8E;AAC9E,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AA8BD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,CAE1F"}
@@ -1,16 +1,52 @@
1
1
  import { AskDbError } from "@askdb/core";
2
+ import { createRequire } from "node:module";
3
+ import { join } from "node:path";
4
+ import { pathToFileURL } from "node:url";
2
5
  /**
3
6
  * Lazily resolve the optional `mysql2` peer dependency. Mirrors the pattern in
4
7
  * `@askdb/postgres` so consumers with a custom `CatalogQueryRunner` can use
5
8
  * `@askdb/mysql` without installing `mysql2`.
6
9
  */
7
10
  let mysql2ModulePromise;
11
+ function isModuleResolutionFailure(cause, packageName) {
12
+ if (!(cause instanceof Error))
13
+ return false;
14
+ const nestedCause = cause.cause;
15
+ if (nestedCause && nestedCause !== cause && isModuleResolutionFailure(nestedCause, packageName)) {
16
+ return true;
17
+ }
18
+ const code = cause.code;
19
+ if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND")
20
+ return false;
21
+ return cause.message.includes(packageName);
22
+ }
23
+ async function importOptionalMysql2() {
24
+ try {
25
+ return await import("mysql2/promise");
26
+ }
27
+ catch (cause) {
28
+ if (!isModuleResolutionFailure(cause, "mysql2"))
29
+ throw cause;
30
+ const projectRequire = createRequire(join(process.cwd(), "package.json"));
31
+ try {
32
+ const resolved = projectRequire.resolve("mysql2/promise");
33
+ return (await import(pathToFileURL(resolved).href));
34
+ }
35
+ catch (projectCause) {
36
+ if (!isModuleResolutionFailure(projectCause, "mysql2"))
37
+ throw projectCause;
38
+ throw new AggregateError([cause, projectCause], "Unable to resolve optional `mysql2` peer dependency");
39
+ }
40
+ }
41
+ }
8
42
  async function loadMysql2OrThrow() {
9
43
  if (!mysql2ModulePromise) {
10
- mysql2ModulePromise = import("mysql2/promise").catch((cause) => {
44
+ mysql2ModulePromise = importOptionalMysql2().catch((cause) => {
11
45
  mysql2ModulePromise = undefined;
12
46
  throw new AskDbError("The built-in MySQL catalog query runner requires the optional `mysql2` peer dependency. " +
13
- "Install it (e.g. `pnpm add mysql2`) or pass a custom catalog query runner to the MySQL connector.", cause);
47
+ "Install it in your project (e.g. `pnpm add mysql2`) or include it in the same one-off command " +
48
+ "(e.g. `pnpm dlx -p askdb -p mysql2 askdb ...` or `npx -p askdb -p mysql2 askdb ...`). " +
49
+ "You can also pass a custom catalog query runner to the MySQL connector.", cause);
14
50
  });
15
51
  }
16
52
  return mysql2ModulePromise;
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC;;;;GAIG;AACH,IAAI,mBAAyE,CAAC;AAE9E,KAAK,UAAU,iBAAiB;IAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7D,mBAAmB,GAAG,SAAS,CAAC;YAChC,MAAM,IAAI,UAAU,CAClB,0FAA0F;gBACxF,mGAAmG,EACrG,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gCAAgC;IAC9C,mBAAmB,GAAG,SAAS,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,gBAAwB,EACxB,GAAW,EACX,MAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACtC,MAAM,KAAK,GAAI,GAA2C,CAAC,OAAO,IAAI,GAAG,CAAC;IAC1E,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,CAC5C,GAAG,EACH,MAAM,CAAC,CAAC,CAAE,MAAoB,CAAC,CAAC,CAAC,SAAS,CAC3C,CAA8D,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,UAAU;YAAE,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC,+BAA+B,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,gBAAwB;IACpE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/mysql",
3
- "version": "0.1.0-beta.10",
3
+ "version": "0.1.0-beta.12",
4
4
  "description": "AskDB MySQL integration: introspection connector via information_schema and a mysql2-backed catalog query runner. Pairs with @askdb/core's MYSQL_DIALECT.",
5
5
  "keywords": [
6
6
  "askdb",
@@ -42,9 +42,9 @@
42
42
  "node": ">=20"
43
43
  },
44
44
  "dependencies": {
45
- "@askdb/connectors": "0.1.0-beta.2",
46
- "@askdb/introspect": "0.3.0-beta.11",
47
- "@askdb/core": "1.0.0-beta.21"
45
+ "@askdb/core": "1.0.0-beta.26",
46
+ "@askdb/introspect": "0.3.0-beta.12",
47
+ "@askdb/connectors": "0.1.0-beta.3"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "mysql2": ">=3"
@@ -55,9 +55,9 @@
55
55
  }
56
56
  },
57
57
  "devDependencies": {
58
- "mysql2": "^3.11.5",
59
- "typescript": "^5.7.3",
60
- "vitest": "^3.0.9"
58
+ "mysql2": "^3.22.5",
59
+ "typescript": "^6.0.3",
60
+ "vitest": "^4.1.8"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsc -p tsconfig.build.json",