@askdb/sqlite 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/sqlite
18
18
  pnpm add better-sqlite3
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 better-sqlite3 askdb introspect --engine sqlite --url ./my-database.db
25
+ npx -p askdb -p better-sqlite3 askdb introspect --engine sqlite --url ./my-database.db
26
+ ```
27
+
21
28
  ## Usage
22
29
 
23
30
  ### NL→SQL
@@ -55,4 +62,4 @@ Tables, views, columns (SQLite affinity type strings), primary keys, unique cons
55
62
 
56
63
  ## License
57
64
 
58
- Apache-2.0
65
+ Apache-2.0 © [Yahya Gilany](https://yahyagilany.io). See [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exec/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMhF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA2BhF,sFAAsF;AACtF,wBAAgB,uCAAuC,IAAI,IAAI,CAE9D;AA6BD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAEnF"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exec/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAShF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA0DhF,sFAAsF;AACtF,wBAAgB,uCAAuC,IAAI,IAAI,CAE9D;AA6BD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAEnF"}
@@ -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 `better-sqlite3` peer dependency. Mirrors the
4
7
  * pattern in `@askdb/postgres` / `@askdb/mysql` so consumers with a custom
5
8
  * `CatalogQueryRunner` can use `@askdb/sqlite` without installing the driver.
6
9
  */
7
10
  let bs3ModulePromise;
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 importOptionalBetterSqlite3() {
24
+ try {
25
+ return (await import("better-sqlite3"));
26
+ }
27
+ catch (cause) {
28
+ if (!isModuleResolutionFailure(cause, "better-sqlite3"))
29
+ throw cause;
30
+ const projectRequire = createRequire(join(process.cwd(), "package.json"));
31
+ try {
32
+ const resolved = projectRequire.resolve("better-sqlite3");
33
+ return (await import(pathToFileURL(resolved).href));
34
+ }
35
+ catch (projectCause) {
36
+ if (!isModuleResolutionFailure(projectCause, "better-sqlite3"))
37
+ throw projectCause;
38
+ throw new AggregateError([cause, projectCause], "Unable to resolve optional `better-sqlite3` peer dependency");
39
+ }
40
+ }
41
+ }
8
42
  async function loadBetterSqlite3OrThrow() {
9
43
  if (!bs3ModulePromise) {
10
- bs3ModulePromise = import("better-sqlite3").catch((cause) => {
44
+ bs3ModulePromise = importOptionalBetterSqlite3().catch((cause) => {
11
45
  bs3ModulePromise = undefined;
12
46
  throw new AskDbError("The built-in SQLite catalog query runner requires the optional `better-sqlite3` peer dependency. " +
13
- "Install it (e.g. `pnpm add better-sqlite3`) or pass a custom catalog query runner to the SQLite connector.", cause);
47
+ "Install it in your project (e.g. `pnpm add better-sqlite3`) or include it in the same one-off command " +
48
+ "(e.g. `pnpm dlx -p askdb -p better-sqlite3 askdb ...` or `npx -p askdb -p better-sqlite3 askdb ...`). " +
49
+ "You can also pass a custom catalog query runner to the SQLite connector.", cause);
14
50
  });
15
51
  }
16
52
  return bs3ModulePromise;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/exec/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC;;;;GAIG;AACH,IAAI,gBAAmD,CAAC;AAExD,KAAK,UAAU,wBAAwB;IACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GACd,MAAM,CAAC,gBAAgB,CACxB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,gBAAgB,GAAG,SAAS,CAAC;YAC7B,MAAM,IAAI,UAAU,CAClB,mGAAmG;gBACjG,4GAA4G,EAC9G,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,uCAAuC;IACrD,gBAAgB,GAAG,SAAS,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,QAAgB,EAChB,GAAW,EACX,MAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,MAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3F,MAAM,UAAU,GAAoC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAI,IAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,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,gCAAgC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC7D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/exec/sqlite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/sqlite",
3
- "version": "0.1.0-beta.10",
3
+ "version": "0.1.0-beta.12",
4
4
  "description": "AskDB SQLite integration: introspection connector via sqlite_master + PRAGMA functions and a better-sqlite3-backed catalog query runner. Pairs with @askdb/core's SQLITE_DIALECT.",
5
5
  "keywords": [
6
6
  "askdb",
@@ -41,12 +41,12 @@
41
41
  "node": ">=20"
42
42
  },
43
43
  "dependencies": {
44
- "@askdb/connectors": "0.1.0-beta.2",
45
- "@askdb/core": "1.0.0-beta.21",
46
- "@askdb/introspect": "0.3.0-beta.11"
44
+ "@askdb/core": "1.0.0-beta.26",
45
+ "@askdb/introspect": "0.3.0-beta.12",
46
+ "@askdb/connectors": "0.1.0-beta.3"
47
47
  },
48
48
  "peerDependencies": {
49
- "better-sqlite3": ">=11"
49
+ "better-sqlite3": ">=12"
50
50
  },
51
51
  "peerDependenciesMeta": {
52
52
  "better-sqlite3": {
@@ -54,10 +54,10 @@
54
54
  }
55
55
  },
56
56
  "devDependencies": {
57
- "@types/better-sqlite3": "^7.6.12",
58
- "better-sqlite3": "^11.5.0",
59
- "typescript": "^5.7.3",
60
- "vitest": "^3.0.9"
57
+ "@types/better-sqlite3": "^7.6.13",
58
+ "better-sqlite3": "^12.10.0",
59
+ "typescript": "^6.0.3",
60
+ "vitest": "^4.1.8"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsc -p tsconfig.build.json",