@askdb/introspect 0.3.0-beta.2 → 0.3.0-beta.21

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 (46) hide show
  1. package/README.md +75 -3
  2. package/dist/index.d.ts +3 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/kit/driver.d.ts +76 -0
  7. package/dist/kit/driver.d.ts.map +1 -0
  8. package/dist/kit/driver.js +156 -0
  9. package/dist/kit/driver.js.map +1 -0
  10. package/dist/kit/filters.d.ts +29 -0
  11. package/dist/kit/filters.d.ts.map +1 -0
  12. package/dist/kit/filters.js +58 -0
  13. package/dist/kit/filters.js.map +1 -0
  14. package/dist/kit/ids.d.ts +16 -0
  15. package/dist/kit/ids.d.ts.map +1 -0
  16. package/dist/kit/ids.js +20 -0
  17. package/dist/kit/ids.js.map +1 -0
  18. package/dist/kit/index.d.ts +18 -0
  19. package/dist/kit/index.d.ts.map +1 -0
  20. package/dist/kit/index.js +18 -0
  21. package/dist/kit/index.js.map +1 -0
  22. package/dist/kit/label.d.ts +44 -0
  23. package/dist/kit/label.d.ts.map +1 -0
  24. package/dist/kit/label.js +110 -0
  25. package/dist/kit/label.js.map +1 -0
  26. package/dist/kit/provider.d.ts +57 -0
  27. package/dist/kit/provider.d.ts.map +1 -0
  28. package/dist/kit/provider.js +50 -0
  29. package/dist/kit/provider.js.map +1 -0
  30. package/dist/kit/rows.d.ts +42 -0
  31. package/dist/kit/rows.d.ts.map +1 -0
  32. package/dist/kit/rows.js +86 -0
  33. package/dist/kit/rows.js.map +1 -0
  34. package/dist/registry.d.ts +188 -0
  35. package/dist/registry.d.ts.map +1 -0
  36. package/dist/registry.js +156 -0
  37. package/dist/registry.js.map +1 -0
  38. package/dist/render/render.d.ts +27 -3
  39. package/dist/render/render.d.ts.map +1 -1
  40. package/dist/render/render.js +67 -11
  41. package/dist/render/render.js.map +1 -1
  42. package/dist/render/types.d.ts +10 -0
  43. package/dist/render/types.d.ts.map +1 -1
  44. package/dist/types.d.ts +13 -1
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +14 -7
@@ -0,0 +1,156 @@
1
+ import { formatConnectionLabel } from "./kit/label.js";
2
+ /** Provider ids of the first-party engine packages (`@askdb/<id>`). */
3
+ export const BUILT_IN_CONNECTOR_PROVIDERS = [
4
+ "postgres",
5
+ "prisma",
6
+ "mysql",
7
+ "sqlite",
8
+ "sqlserver",
9
+ ];
10
+ export function createConnectorRegistry(adapters) {
11
+ const byProvider = normalizeAdapters(adapters);
12
+ const loaded = new Map();
13
+ for (const [provider, entry] of byProvider) {
14
+ if (!isLazyEntry(entry))
15
+ loaded.set(provider, entry);
16
+ }
17
+ /** In-flight lazy loads, so concurrent callers share one `load()`. A failure clears its slot. */
18
+ const pending = new Map();
19
+ /** The loaded adapter; throws for a registered lazy entry that isn't loaded yet. */
20
+ function loadedAdapter(provider) {
21
+ const adapter = loaded.get(provider);
22
+ if (!adapter && byProvider.has(provider)) {
23
+ throw new Error(`Connector provider "${provider}" is not loaded yet. Call \`await registry.load("${provider}")\` first.`);
24
+ }
25
+ return adapter;
26
+ }
27
+ function adapterFor(provider) {
28
+ const adapter = loadedAdapter(provider);
29
+ if (!adapter)
30
+ throw new Error(connectorProviderMissingMessage(provider));
31
+ return adapter;
32
+ }
33
+ return {
34
+ hasProvider(provider) {
35
+ return byProvider.has(provider);
36
+ },
37
+ providers() {
38
+ return [...byProvider.keys()];
39
+ },
40
+ async load(provider) {
41
+ const ready = loaded.get(provider);
42
+ if (ready)
43
+ return ready;
44
+ const entry = byProvider.get(provider);
45
+ if (!entry || !isLazyEntry(entry))
46
+ throw new Error(connectorProviderMissingMessage(provider));
47
+ let promise = pending.get(provider);
48
+ if (!promise) {
49
+ // Deferred a tick so the slot is set before a synchronous throw from
50
+ // `load` settles it; `finally` frees it either way.
51
+ promise = Promise.resolve()
52
+ .then(() => entry.load())
53
+ .then((adapter) => {
54
+ if (adapter?.provider !== provider) {
55
+ throw new Error(`Connector provider adapter mismatch: the lazy entry "${provider}" loaded adapter "${adapter?.provider}".`);
56
+ }
57
+ loaded.set(provider, adapter);
58
+ return adapter;
59
+ })
60
+ .finally(() => pending.delete(provider));
61
+ pending.set(provider, promise);
62
+ }
63
+ return promise;
64
+ },
65
+ createConnector(config) {
66
+ return adapterFor(config.provider).createConnector(config);
67
+ },
68
+ getTemplates(provider) {
69
+ return loadedAdapter(provider)?.getTemplates?.();
70
+ },
71
+ resolveConnection(provider, request) {
72
+ const adapter = adapterFor(provider);
73
+ // A blank explicit value (an empty form field or env var a host forwards)
74
+ // is absent, so the configured connection still applies.
75
+ const normalized = { ...request, explicit: withoutBlankValues(request.explicit) };
76
+ const result = adapter.resolveConnection
77
+ ? adapter.resolveConnection(normalized)
78
+ : { ok: true, connection: { ...normalized.explicit } };
79
+ if (!result.ok)
80
+ return result;
81
+ return { ...result, sourceLabel: labelFor(adapter, provider, result.connection) };
82
+ },
83
+ connectionLabel(provider, connection) {
84
+ return labelFor(loadedAdapter(provider), provider, connection);
85
+ },
86
+ };
87
+ }
88
+ function labelFor(adapter, provider, connection) {
89
+ try {
90
+ return formatConnectionLabel(provider, adapter?.connectionLabelParts?.(connection));
91
+ }
92
+ catch {
93
+ // A throwing parser, or parts whose getter or Proxy trap throws while
94
+ // being read, get the fallback. The message may quote the connection
95
+ // string, so it must never become user-visible text.
96
+ return formatConnectionLabel(provider, undefined);
97
+ }
98
+ }
99
+ export function connectorProviderMissingMessage(provider) {
100
+ const install = BUILT_IN_CONNECTOR_PROVIDERS.includes(provider)
101
+ ? `Install @askdb/${provider}`
102
+ : "Install the package that provides it";
103
+ return (`Connector provider "${provider}" is not registered. ` +
104
+ `${install} and pass its connector provider adapter to createConnectorRegistry().`);
105
+ }
106
+ /**
107
+ * The install hint the first-party hosts (the `askdb` CLI and Studio) give for a
108
+ * registered engine whose package isn't installed: a lazy entry's `load()`
109
+ * throws it when the package resolves from nowhere (see
110
+ * `createOptionalDriverLoader` in `@askdb/introspect/kit`). `allowBuilds` names
111
+ * the dependencies whose install scripts pnpm must approve (pnpm 11 exits 1 on
112
+ * an unapproved one); with any, the hint gives an npm command and the pnpm 10.4+
113
+ * `--allow-build` one. It suggests a one-off `askdb` command, and the `askdb`
114
+ * binary registers only the first-party engines, so a third-party host writes
115
+ * its own message.
116
+ */
117
+ export function connectorPackageMissingMessage(input) {
118
+ const { provider, packageName, allowBuilds = [] } = input;
119
+ // pnpm 10.4 is the first pnpm whose `add` takes `--allow-build`; npm runs install scripts.
120
+ const example = allowBuilds.length
121
+ ? `\`npm install ${packageName}\`, or on pnpm 10.4 or later ` +
122
+ `\`pnpm add ${allowBuilds.map((name) => `--allow-build=${name} `).join("")}${packageName}\``
123
+ : `\`pnpm add ${packageName}\``;
124
+ return (`Engine "${provider}" needs the optional peer dependency \`${packageName}\`. ` +
125
+ `Install it in your project (e.g. ${example}) or include it in a one-off command ` +
126
+ `(\`npx -p askdb -p ${packageName} askdb ...\`).`);
127
+ }
128
+ function withoutBlankValues(explicit) {
129
+ if (explicit === undefined)
130
+ return undefined;
131
+ return Object.fromEntries(Object.entries(explicit).filter(([, value]) => typeof value !== "string" || value.trim() !== ""));
132
+ }
133
+ function normalizeAdapters(adapters) {
134
+ const entries = Array.isArray(adapters)
135
+ ? adapters.map((a) => [a.provider, a])
136
+ : Object.entries(adapters).filter(isAdapterEntry);
137
+ const byProvider = new Map();
138
+ for (const [provider, adapter] of entries) {
139
+ if (adapter.provider !== provider) {
140
+ throw new Error(`Connector provider adapter mismatch: registry key "${provider}" points to adapter "${adapter.provider}".`);
141
+ }
142
+ // A second adapter for the same id would silently replace the first one.
143
+ if (byProvider.has(provider)) {
144
+ throw new Error(`Connector provider "${provider}" is registered twice. Pass one adapter per provider id to createConnectorRegistry().`);
145
+ }
146
+ byProvider.set(provider, adapter);
147
+ }
148
+ return byProvider;
149
+ }
150
+ function isLazyEntry(entry) {
151
+ return typeof entry.createConnector !== "function";
152
+ }
153
+ function isAdapterEntry(entry) {
154
+ return entry[1] !== undefined;
155
+ }
156
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { type V2SchemaJson } from "@askdb/core";
2
2
  import type { SqlSchema } from "../types.js";
3
- import type { RenderOptions, RenderResult } from "./types.js";
3
+ import type { RenderBodyOptions, RenderBodyResult, RenderOptions, RenderResult } from "./types.js";
4
4
  /**
5
5
  * Render a `SqlSchema` to a Schema v2 directory.
6
6
  *
7
7
  * Clean writes and ID-anchored re-introspection merges write `schema.json`
8
- * only. The describable layer (`tables/*.md`, `concepts.md`) is read only for
9
- * orphan detection when `existingArtifactDir` is supplied.
8
+ * only, through `saveSchemaFile()` from `@askdb/core`: a symbolic link at
9
+ * `schema.json` is refused, and the file is replaced by a temp file renamed
10
+ * over it (ADR 0028). The describable layer (`tables/*.md`, `concepts.md`) is
11
+ * read only for orphan detection when `existingArtifactDir` is supplied.
10
12
  *
11
13
  * Determinism contract (requirements.md §5):
12
14
  * - Schemas alphabetical at the source (the connector already produces
@@ -19,6 +21,28 @@ import type { RenderOptions, RenderResult } from "./types.js";
19
21
  * hand-authored Phase 5 fixtures).
20
22
  */
21
23
  export declare function renderToSchemaV2(schema: SqlSchema, options: RenderOptions): RenderResult;
24
+ /**
25
+ * Pure (no-write) form of {@link renderToSchemaV2}: produces the exact
26
+ * `schema.json` bytes `--out` would write, including the ID-anchored merge
27
+ * with `existingArtifactDir` (human-set `sensitive` flags preserved) and the
28
+ * connector-detected `provider`.
29
+ *
30
+ * `askdb introspect --out`, `--print`, and `--diff` all go through this one
31
+ * function so `--diff` against an artifact produced by `--out` from the same
32
+ * source reports no change.
33
+ */
34
+ export declare function renderSchemaV2Body(schema: SqlSchema, options: RenderBodyOptions): RenderBodyResult;
35
+ /**
36
+ * True when `value` (a parsed `schema.json`) passes the same check
37
+ * `renderSchemaV2Body` applies before merging with an existing artifact. Lets a
38
+ * caller decide whether to pass `existingArtifactDir` without swallowing the
39
+ * merge's other errors (for example malformed `tables/*.md` front matter).
40
+ *
41
+ * It checks the shape the merge reads (version, schema id, and each table's and
42
+ * column's ids, names and types, plus their optional boolean `sensitive`
43
+ * flags), not every field of Schema v2.
44
+ */
45
+ export declare function isSchemaV2Json(value: unknown): boolean;
22
46
  /**
23
47
  * Pure-function form of {@link renderToSchemaV2} — exposed so callers (and
24
48
  * M6's merge) can produce the V2 JSON without writing it to disk.
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAIV,SAAS,EAEV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,YAAY,CAad;AA2HD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CAsBd;AAkED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,YAAY,CAQd;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAOlB;AA6CD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOtD;AAuFD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CAyBd;AAiFD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
@@ -1,12 +1,14 @@
1
- import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, } from "node:fs";
1
+ import { existsSync, mkdirSync, readFileSync, readdirSync } from "node:fs";
2
2
  import { join, resolve } from "node:path";
3
- import { parseTableMarkdown, } from "@askdb/core";
3
+ import { parseTableMarkdown, saveSchemaFile, } from "@askdb/core";
4
4
  /**
5
5
  * Render a `SqlSchema` to a Schema v2 directory.
6
6
  *
7
7
  * Clean writes and ID-anchored re-introspection merges write `schema.json`
8
- * only. The describable layer (`tables/*.md`, `concepts.md`) is read only for
9
- * orphan detection when `existingArtifactDir` is supplied.
8
+ * only, through `saveSchemaFile()` from `@askdb/core`: a symbolic link at
9
+ * `schema.json` is refused, and the file is replaced by a temp file renamed
10
+ * over it (ADR 0028). The describable layer (`tables/*.md`, `concepts.md`) is
11
+ * read only for orphan detection when `existingArtifactDir` is supplied.
10
12
  *
11
13
  * Determinism contract (requirements.md §5):
12
14
  * - Schemas alphabetical at the source (the connector already produces
@@ -19,16 +21,29 @@ import { parseTableMarkdown, } from "@askdb/core";
19
21
  * hand-authored Phase 5 fixtures).
20
22
  */
21
23
  export function renderToSchemaV2(schema, options) {
24
+ const { body, warnings } = renderSchemaV2Body(schema, options);
25
+ mkdirSync(options.outDir, { recursive: true });
26
+ const schemaJsonPath = resolve(options.outDir, "schema.json");
27
+ saveSchemaFile(options.outDir, "schema.json", body);
28
+ return { schemaJsonPath, warnings };
29
+ }
30
+ /**
31
+ * Pure (no-write) form of {@link renderToSchemaV2}: produces the exact
32
+ * `schema.json` bytes `--out` would write, including the ID-anchored merge
33
+ * with `existingArtifactDir` (human-set `sensitive` flags preserved) and the
34
+ * connector-detected `provider`.
35
+ *
36
+ * `askdb introspect --out`, `--print`, and `--diff` all go through this one
37
+ * function so `--diff` against an artifact produced by `--out` from the same
38
+ * source reports no change.
39
+ */
40
+ export function renderSchemaV2Body(schema, options) {
22
41
  const warnings = [];
23
42
  const fresh = toV2SchemaJson(schema, options.schemaId, options.provider);
24
- const v2 = options.existingArtifactDir
43
+ const json = options.existingArtifactDir
25
44
  ? mergeWithExistingArtifact(fresh, options.existingArtifactDir, warnings)
26
45
  : fresh;
27
- mkdirSync(options.outDir, { recursive: true });
28
- const schemaJsonPath = resolve(options.outDir, "schema.json");
29
- const body = JSON.stringify(v2, null, 2) + "\n";
30
- writeFileSync(schemaJsonPath, body, "utf8");
31
- return { schemaJsonPath, warnings };
46
+ return { json, body: JSON.stringify(json, null, 2) + "\n", warnings };
32
47
  }
33
48
  function mergeWithExistingArtifact(fresh, existingArtifactDir, warnings) {
34
49
  const existing = readExistingPhysical(existingArtifactDir);
@@ -64,6 +79,25 @@ function readExistingPhysical(existingArtifactDir) {
64
79
  const parsed = JSON.parse(readFileSync(schemaJsonPath, "utf8"));
65
80
  return assertV2SchemaJson(parsed, schemaJsonPath);
66
81
  }
82
+ /**
83
+ * True when `value` (a parsed `schema.json`) passes the same check
84
+ * `renderSchemaV2Body` applies before merging with an existing artifact. Lets a
85
+ * caller decide whether to pass `existingArtifactDir` without swallowing the
86
+ * merge's other errors (for example malformed `tables/*.md` front matter).
87
+ *
88
+ * It checks the shape the merge reads (version, schema id, and each table's and
89
+ * column's ids, names and types, plus their optional boolean `sensitive`
90
+ * flags), not every field of Schema v2.
91
+ */
92
+ export function isSchemaV2Json(value) {
93
+ try {
94
+ assertV2SchemaJson(value, "schema.json");
95
+ return true;
96
+ }
97
+ catch {
98
+ return false;
99
+ }
100
+ }
67
101
  function assertV2SchemaJson(value, filePath) {
68
102
  if (!isRecord(value) || value.version !== 2) {
69
103
  throw new Error(`@askdb/introspect: invalid Schema v2 file at ${filePath}`);
@@ -76,6 +110,7 @@ function assertV2SchemaJson(value, filePath) {
76
110
  typeof table.id !== "string" ||
77
111
  typeof table.name !== "string" ||
78
112
  typeof table.schema !== "string" ||
113
+ !isOptionalBoolean(table.sensitive) ||
79
114
  !Array.isArray(table.columns)) {
80
115
  throw new Error(`@askdb/introspect: invalid Schema v2 table in ${filePath}`);
81
116
  }
@@ -84,13 +119,18 @@ function assertV2SchemaJson(value, filePath) {
84
119
  typeof column.id !== "string" ||
85
120
  typeof column.name !== "string" ||
86
121
  typeof column.type !== "string" ||
87
- typeof column.nullable !== "boolean") {
122
+ typeof column.nullable !== "boolean" ||
123
+ !isOptionalBoolean(column.sensitive)) {
88
124
  throw new Error(`@askdb/introspect: invalid Schema v2 column in ${filePath}`);
89
125
  }
90
126
  }
91
127
  }
92
128
  return value;
93
129
  }
130
+ // The merge copies `sensitive` into the new artifact, so only a boolean may pass.
131
+ function isOptionalBoolean(value) {
132
+ return value === undefined || typeof value === "boolean";
133
+ }
94
134
  function isRecord(value) {
95
135
  return typeof value === "object" && value !== null && !Array.isArray(value);
96
136
  }
@@ -135,6 +175,9 @@ export function toV2SchemaJson(schema, schemaId, provider) {
135
175
  for (const t of ns.tables) {
136
176
  tables.push(toV2Table(t));
137
177
  }
178
+ for (const v of ns.views) {
179
+ tables.push(toV2View(v));
180
+ }
138
181
  }
139
182
  tables.sort((a, b) => {
140
183
  const aSchema = a.schema;
@@ -168,6 +211,19 @@ function toV2Table(table) {
168
211
  }
169
212
  return v2Table;
170
213
  }
214
+ function toV2View(view) {
215
+ const columns = view.columns
216
+ .slice()
217
+ .sort((a, b) => a.ordinalPosition - b.ordinalPosition)
218
+ .map(toV2Column);
219
+ return {
220
+ id: `table:${view.schema}.${view.name}`,
221
+ name: view.name,
222
+ schema: view.schema,
223
+ sensitive: false,
224
+ columns,
225
+ };
226
+ }
171
227
  function toV2Column(column) {
172
228
  // Field order matches the Phase 5 hand-authored fixtures:
173
229
  // id, name, type, nullable, [primaryKey], sensitive.
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { V2SchemaJson } from "@askdb/core";
1
2
  import type { IntrospectionWarning } from "../types.js";
2
3
  export type RenderOptions = {
3
4
  /** Output directory, typically `"<schemaId>.schema/"`. */
@@ -21,4 +22,13 @@ export type RenderResult = {
21
22
  schemaJsonPath: string;
22
23
  warnings: IntrospectionWarning[];
23
24
  };
25
+ /** Options for `renderSchemaV2Body` — `RenderOptions` without the output directory. */
26
+ export type RenderBodyOptions = Omit<RenderOptions, "outDir">;
27
+ export type RenderBodyResult = {
28
+ /** The Schema v2 document (after the optional merge with an existing artifact). */
29
+ json: V2SchemaJson;
30
+ /** Exact `schema.json` file contents: `JSON.stringify(json, null, 2) + "\n"`. */
31
+ body: string;
32
+ warnings: IntrospectionWarning[];
33
+ };
24
34
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/render/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG;IAC1B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/render/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG;IAC1B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mFAAmF;IACnF,IAAI,EAAE,YAAY,CAAC;IACnB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -103,7 +103,7 @@ export type SqlView = {
103
103
  columns: SqlColumn[];
104
104
  };
105
105
  export type IntrospectionFilters = {
106
- /** Include-list; default `["public"]`. */
106
+ /** Include-list; defaults to all non-system schemas when omitted. */
107
107
  schemas?: string[];
108
108
  /**
109
109
  * Always excludes `information_schema`, `pg_catalog`, `pg_toast*`, `pg_temp_*`
@@ -132,6 +132,18 @@ export type IntrospectionWarning = {
132
132
  } | {
133
133
  code: "ambiguous_filter";
134
134
  filter: string;
135
+ } | {
136
+ /**
137
+ * A foreign key whose target lives in a different database/catalog than
138
+ * the one being introspected (e.g. MySQL `REFERENCES otherdb.t`). The
139
+ * target is not part of the artifact, so the relationship is omitted.
140
+ */
141
+ code: "cross_database_fk";
142
+ /** `table:<schema>.<name>` of the table declaring the FK. */
143
+ table: string;
144
+ constraint: string;
145
+ referencedDatabase: string;
146
+ referencedTable: string;
135
147
  };
136
148
  export type IntrospectionResult = {
137
149
  schema: SqlSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/introspect",
3
- "version": "0.3.0-beta.2",
3
+ "version": "0.3.0-beta.21",
4
4
  "description": "AskDB schema introspection: engine-agnostic Connector contract + orchestrator + Schema v2 renderer. Integration packages (e.g. @askdb/postgres) supply connectors.",
5
5
  "keywords": [
6
6
  "askdb",
@@ -8,7 +8,7 @@
8
8
  "schema",
9
9
  "schema-v2"
10
10
  ],
11
- "homepage": "https://github.com/Ygilany/AskDB#readme",
11
+ "homepage": "https://askdb.tools/reference/packages/",
12
12
  "bugs": {
13
13
  "url": "https://github.com/Ygilany/AskDB/issues"
14
14
  },
@@ -20,12 +20,19 @@
20
20
  "license": "Apache-2.0",
21
21
  "author": "Yahya Gilany",
22
22
  "type": "module",
23
+ "sideEffects": false,
23
24
  "main": "./dist/index.js",
24
25
  "types": "./dist/index.d.ts",
25
26
  "exports": {
26
27
  ".": {
27
28
  "types": "./dist/index.d.ts",
28
- "import": "./dist/index.js"
29
+ "import": "./dist/index.js",
30
+ "default": "./dist/index.js"
31
+ },
32
+ "./kit": {
33
+ "types": "./dist/kit/index.d.ts",
34
+ "import": "./dist/kit/index.js",
35
+ "default": "./dist/kit/index.js"
29
36
  }
30
37
  },
31
38
  "files": [
@@ -35,14 +42,14 @@
35
42
  "NOTICE"
36
43
  ],
37
44
  "engines": {
38
- "node": ">=20"
45
+ "node": ">=22.23.4"
39
46
  },
40
47
  "dependencies": {
41
- "@askdb/core": "0.5.0-beta.4"
48
+ "@askdb/core": "1.0.0-beta.47"
42
49
  },
43
50
  "devDependencies": {
44
- "typescript": "^5.7.3",
45
- "vitest": "^3.0.9"
51
+ "typescript": "^6.0.3",
52
+ "vitest": "^5.0.5"
46
53
  },
47
54
  "scripts": {
48
55
  "build": "tsc -p tsconfig.build.json",