@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.
- package/README.md +75 -3
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kit/driver.d.ts +76 -0
- package/dist/kit/driver.d.ts.map +1 -0
- package/dist/kit/driver.js +156 -0
- package/dist/kit/driver.js.map +1 -0
- package/dist/kit/filters.d.ts +29 -0
- package/dist/kit/filters.d.ts.map +1 -0
- package/dist/kit/filters.js +58 -0
- package/dist/kit/filters.js.map +1 -0
- package/dist/kit/ids.d.ts +16 -0
- package/dist/kit/ids.d.ts.map +1 -0
- package/dist/kit/ids.js +20 -0
- package/dist/kit/ids.js.map +1 -0
- package/dist/kit/index.d.ts +18 -0
- package/dist/kit/index.d.ts.map +1 -0
- package/dist/kit/index.js +18 -0
- package/dist/kit/index.js.map +1 -0
- package/dist/kit/label.d.ts +44 -0
- package/dist/kit/label.d.ts.map +1 -0
- package/dist/kit/label.js +110 -0
- package/dist/kit/label.js.map +1 -0
- package/dist/kit/provider.d.ts +57 -0
- package/dist/kit/provider.d.ts.map +1 -0
- package/dist/kit/provider.js +50 -0
- package/dist/kit/provider.js.map +1 -0
- package/dist/kit/rows.d.ts +42 -0
- package/dist/kit/rows.d.ts.map +1 -0
- package/dist/kit/rows.js +86 -0
- package/dist/kit/rows.js.map +1 -0
- package/dist/registry.d.ts +188 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +156 -0
- package/dist/registry.js.map +1 -0
- package/dist/render/render.d.ts +27 -3
- package/dist/render/render.d.ts.map +1 -1
- package/dist/render/render.js +67 -11
- package/dist/render/render.js.map +1 -1
- package/dist/render/types.d.ts +10 -0
- package/dist/render/types.d.ts.map +1 -1
- package/dist/types.d.ts +13 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -7
package/dist/registry.js
ADDED
|
@@ -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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"}
|
package/dist/render/render.d.ts
CHANGED
|
@@ -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
|
|
9
|
-
*
|
|
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":"
|
|
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"}
|
package/dist/render/render.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync
|
|
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
|
|
9
|
-
*
|
|
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
|
|
43
|
+
const json = options.existingArtifactDir
|
|
25
44
|
? mergeWithExistingArtifact(fresh, options.existingArtifactDir, warnings)
|
|
26
45
|
: fresh;
|
|
27
|
-
|
|
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":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
|
package/dist/render/types.d.ts
CHANGED
|
@@ -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;
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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.
|
|
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://
|
|
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": ">=
|
|
45
|
+
"node": ">=22.23.4"
|
|
39
46
|
},
|
|
40
47
|
"dependencies": {
|
|
41
|
-
"@askdb/core": "0.
|
|
48
|
+
"@askdb/core": "1.0.0-beta.47"
|
|
42
49
|
},
|
|
43
50
|
"devDependencies": {
|
|
44
|
-
"typescript": "^
|
|
45
|
-
"vitest": "^
|
|
51
|
+
"typescript": "^6.0.3",
|
|
52
|
+
"vitest": "^5.0.5"
|
|
46
53
|
},
|
|
47
54
|
"scripts": {
|
|
48
55
|
"build": "tsc -p tsconfig.build.json",
|