@askdb/core 1.0.0-beta.44 → 1.0.0-beta.46
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 +20 -19
- package/dist/ask.d.ts +45 -45
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +153 -310
- package/dist/ask.js.map +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/enrichment/index.d.ts.map +1 -1
- package/dist/enrichment/prompt.d.ts +3 -3
- package/dist/enrichment/prompt.d.ts.map +1 -1
- package/dist/enrichment/prompt.js +43 -17
- package/dist/enrichment/prompt.js.map +1 -1
- package/dist/enrichment/suggest.d.ts +2 -2
- package/dist/enrichment/suggest.d.ts.map +1 -1
- package/dist/enrichment/suggest.js +3 -1
- package/dist/enrichment/suggest.js.map +1 -1
- package/dist/enrichment/types.d.ts +29 -9
- package/dist/enrichment/types.d.ts.map +1 -1
- package/dist/errors.d.ts +97 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/logging/askdb-logger.d.ts +2 -0
- package/dist/logging/askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.js +3 -0
- package/dist/logging/create-askdb-logger.js.map +1 -1
- package/dist/logging/log-events.d.ts +8 -0
- package/dist/logging/log-events.d.ts.map +1 -1
- package/dist/logging/log-events.js +8 -0
- package/dist/logging/log-events.js.map +1 -1
- package/dist/retrieval/synthesize-ddl.d.ts +7 -1
- package/dist/retrieval/synthesize-ddl.d.ts.map +1 -1
- package/dist/retrieval/synthesize-ddl.js +36 -33
- package/dist/retrieval/synthesize-ddl.js.map +1 -1
- package/dist/schema/normalize.d.ts +6 -2
- package/dist/schema/normalize.d.ts.map +1 -1
- package/dist/schema/normalize.js +1 -4
- package/dist/schema/normalize.js.map +1 -1
- package/dist/schema/v2/format.d.ts +28 -1
- package/dist/schema/v2/format.d.ts.map +1 -1
- package/dist/schema/v2/format.js +53 -19
- package/dist/schema/v2/format.js.map +1 -1
- package/dist/schema/v2/index.d.ts +4 -3
- package/dist/schema/v2/index.d.ts.map +1 -1
- package/dist/schema/v2/index.js +4 -3
- package/dist/schema/v2/index.js.map +1 -1
- package/dist/schema/v2/loader.d.ts +28 -7
- package/dist/schema/v2/loader.d.ts.map +1 -1
- package/dist/schema/v2/loader.js +220 -96
- package/dist/schema/v2/loader.js.map +1 -1
- package/dist/schema/v2/mentions.d.ts +12 -0
- package/dist/schema/v2/mentions.d.ts.map +1 -1
- package/dist/schema/v2/mentions.js +65 -11
- package/dist/schema/v2/mentions.js.map +1 -1
- package/dist/schema/v2/save-file.d.ts +56 -0
- package/dist/schema/v2/save-file.d.ts.map +1 -0
- package/dist/schema/v2/save-file.js +138 -0
- package/dist/schema/v2/save-file.js.map +1 -0
- package/dist/schema/v2/tenant-policy-loader.d.ts +1 -10
- package/dist/schema/v2/tenant-policy-loader.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy-loader.js +65 -51
- package/dist/schema/v2/tenant-policy-loader.js.map +1 -1
- package/dist/schema/v2/tenant-policy.d.ts +7 -2
- package/dist/schema/v2/tenant-policy.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.js +26 -0
- package/dist/schema/v2/tenant-policy.js.map +1 -1
- package/dist/sql/bind.d.ts +27 -7
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +33 -18
- package/dist/sql/bind.js.map +1 -1
- package/dist/sql/dialect-spec.d.ts +1 -0
- package/dist/sql/dialect-spec.d.ts.map +1 -1
- package/dist/sql/dialect-spec.js +7 -2
- package/dist/sql/dialect-spec.js.map +1 -1
- package/dist/sql/generate.d.ts +17 -11
- package/dist/sql/generate.d.ts.map +1 -1
- package/dist/sql/generate.js +65 -33
- package/dist/sql/generate.js.map +1 -1
- package/dist/sql/guardrail-decide.d.ts +58 -0
- package/dist/sql/guardrail-decide.d.ts.map +1 -0
- package/dist/sql/guardrail-decide.js +161 -0
- package/dist/sql/guardrail-decide.js.map +1 -0
- package/dist/sql/guardrails.d.ts +52 -0
- package/dist/sql/guardrails.d.ts.map +1 -0
- package/dist/sql/guardrails.js +100 -0
- package/dist/sql/guardrails.js.map +1 -0
- package/dist/sql/index.d.ts +2 -1
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js +2 -1
- package/dist/sql/index.js.map +1 -1
- package/dist/sql/lexer.d.ts +13 -0
- package/dist/sql/lexer.d.ts.map +1 -1
- package/dist/sql/lexer.js +42 -7
- package/dist/sql/lexer.js.map +1 -1
- package/dist/sql/prompt-identifiers.d.ts +9 -0
- package/dist/sql/prompt-identifiers.d.ts.map +1 -1
- package/dist/sql/prompt-identifiers.js +22 -3
- package/dist/sql/prompt-identifiers.js.map +1 -1
- package/dist/sql/prompt.d.ts.map +1 -1
- package/dist/sql/prompt.js +5 -2
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/rebind.d.ts +116 -0
- package/dist/sql/rebind.d.ts.map +1 -0
- package/dist/sql/rebind.js +215 -0
- package/dist/sql/rebind.js.map +1 -0
- package/dist/sql/sensitive-guardrail.d.ts +7 -2
- package/dist/sql/sensitive-guardrail.d.ts.map +1 -1
- package/dist/sql/sensitive-guardrail.js +14 -33
- package/dist/sql/sensitive-guardrail.js.map +1 -1
- package/dist/sql/tenant-guardrail.d.ts +3 -14
- package/dist/sql/tenant-guardrail.d.ts.map +1 -1
- package/dist/sql/tenant-guardrail.js +16 -65
- package/dist/sql/tenant-guardrail.js.map +1 -1
- package/dist/sql/tenant-placeholders.d.ts +40 -14
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +92 -48
- package/dist/sql/tenant-placeholders.js.map +1 -1
- package/dist/sql/tenant-policy-warnings.d.ts +8 -0
- package/dist/sql/tenant-policy-warnings.d.ts.map +1 -0
- package/dist/sql/tenant-policy-warnings.js +21 -0
- package/dist/sql/tenant-policy-warnings.js.map +1 -0
- package/dist/sql/tenant-scope-expand.d.ts +46 -0
- package/dist/sql/tenant-scope-expand.d.ts.map +1 -0
- package/dist/sql/tenant-scope-expand.js +101 -0
- package/dist/sql/tenant-scope-expand.js.map +1 -0
- package/dist/sql/tsql-batch.d.ts +56 -0
- package/dist/sql/tsql-batch.d.ts.map +1 -0
- package/dist/sql/tsql-batch.js +246 -0
- package/dist/sql/tsql-batch.js.map +1 -0
- package/dist/sql/validate.d.ts +18 -3
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +127 -8
- package/dist/sql/validate.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, } from "./prompt.js";
|
|
2
2
|
export { parseCandidates, suggestEnrichment, type SuggestEnrichmentDeps, } from "./suggest.js";
|
|
3
|
-
export type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget, } from "./types.js";
|
|
3
|
+
export type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget, } from "./types.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrichment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EnrichmentContext, EnrichmentTarget } from "./types.js";
|
|
2
|
-
export declare const ENRICHMENT_SYSTEM_PROMPT = "You enrich AskDB Schema v2 describable metadata.\n\nRules:\n- Be concise. Descriptions: one sentence, no marketing language.\n- Aliases: 2\u20134 lowercase, comma-separated, the way people *say* the thing\n in plain English. No quotes, no synonyms of synonyms.\n- Common query language: 2\u20134 short bullet lines mapping a colloquial term\n to the SQL filter or aggregation it implies.\n- Never invent columns, tables, or relationships not in the schema.\n- Never suggest values for
|
|
3
|
-
export declare function buildEnrichmentUserPrompt(target: EnrichmentTarget, ctx: EnrichmentContext): string;
|
|
1
|
+
import type { EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget } from "./types.js";
|
|
2
|
+
export declare const ENRICHMENT_SYSTEM_PROMPT = "You enrich AskDB Schema v2 describable metadata.\n\nRules:\n- Be concise. Descriptions: one sentence, no marketing language.\n- Aliases: 2\u20134 lowercase, comma-separated, the way people *say* the thing\n in plain English. No quotes, no synonyms of synonyms.\n- Common query language: 2\u20134 short bullet lines mapping a colloquial term\n to the SQL filter or aggregation it implies.\n- Never invent columns, tables, or relationships not in the schema.\n- Never suggest values for a column tagged (sensitive), and don't name one in\n other text: AskDB keeps text that names a sensitive column out of its index.\n- Reply with 1\u20133 candidate options separated by exactly the line \"---\".\n Do not number, prefix, or label the candidates.";
|
|
3
|
+
export declare function buildEnrichmentUserPrompt(target: EnrichmentTarget, ctx: EnrichmentContext, options?: EnrichmentPromptOptions): string;
|
|
4
4
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/F,eAAO,MAAM,wBAAwB,ivBAYa,CAAC;AAEnD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,iBAAiB,EACtB,OAAO,GAAE,uBAA4B,GACpC,MAAM,CA0BR"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { SensitiveEnrichmentTargetError } from "../errors.js";
|
|
2
|
+
import { formatSchemaV2ForNlToSql } from "../schema/v2/format.js";
|
|
1
3
|
export const ENRICHMENT_SYSTEM_PROMPT = `You enrich AskDB Schema v2 describable metadata.
|
|
2
4
|
|
|
3
5
|
Rules:
|
|
@@ -7,18 +9,23 @@ Rules:
|
|
|
7
9
|
- Common query language: 2–4 short bullet lines mapping a colloquial term
|
|
8
10
|
to the SQL filter or aggregation it implies.
|
|
9
11
|
- Never invent columns, tables, or relationships not in the schema.
|
|
10
|
-
- Never suggest values for
|
|
12
|
+
- Never suggest values for a column tagged (sensitive), and don't name one in
|
|
13
|
+
other text: AskDB keeps text that names a sensitive column out of its index.
|
|
11
14
|
- Reply with 1–3 candidate options separated by exactly the line "---".
|
|
12
15
|
Do not number, prefix, or label the candidates.`;
|
|
13
|
-
export function buildEnrichmentUserPrompt(target, ctx) {
|
|
16
|
+
export function buildEnrichmentUserPrompt(target, ctx, options = {}) {
|
|
17
|
+
const omit = options.omitSensitiveIdentifiersFromPrompt === true;
|
|
18
|
+
if (omit && "columnId" in target) {
|
|
19
|
+
const column = findColumn(target.table, target.columnId);
|
|
20
|
+
// `loadSchema()` marks every column of a sensitive table sensitive; a table built by hand
|
|
21
|
+
// may flag only the table.
|
|
22
|
+
if (column.sensitive || target.table.sensitive) {
|
|
23
|
+
throw new SensitiveEnrichmentTargetError();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
14
26
|
const lines = [];
|
|
15
27
|
lines.push(`Schema: ${ctx.schemaId}`);
|
|
16
|
-
lines.push(
|
|
17
|
-
// Always include the column list for context.
|
|
18
|
-
lines.push("Columns:");
|
|
19
|
-
for (const c of target.table.columns) {
|
|
20
|
-
lines.push(` - ${describeColumn(c)}`);
|
|
21
|
-
}
|
|
28
|
+
lines.push(tableForPrompt(target.table, ctx.schemaId, omit));
|
|
22
29
|
if (ctx.neighbors && ctx.neighbors.length > 0) {
|
|
23
30
|
lines.push("");
|
|
24
31
|
lines.push("Related tables (FK neighbors):");
|
|
@@ -50,15 +57,34 @@ function targetInstruction(target) {
|
|
|
50
57
|
return `Suggest 2–4 "common query language" bullet lines for \`${target.table.name}\` that map colloquial business terms to the SQL conditions they imply.`;
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
/**
|
|
61
|
+
* The target table's physical layer as `ask()`'s prompt lists it (ADR 0026):
|
|
62
|
+
* `formatSchemaV2ForNlToSql` tags sensitive columns, or withholds them under omission, and
|
|
63
|
+
* lists a sensitive table's columns as sensitive, or only its name under omission. The copy
|
|
64
|
+
* carries no describable text.
|
|
65
|
+
*/
|
|
66
|
+
function tableForPrompt(table, schemaId, omit) {
|
|
67
|
+
const physical = {
|
|
68
|
+
schemaId,
|
|
69
|
+
warnings: [],
|
|
70
|
+
tables: [
|
|
71
|
+
{
|
|
72
|
+
id: table.id,
|
|
73
|
+
name: table.name,
|
|
74
|
+
schema: table.schema,
|
|
75
|
+
sensitive: table.sensitive,
|
|
76
|
+
columns: table.columns.map((column) => ({
|
|
77
|
+
id: column.id,
|
|
78
|
+
name: column.name,
|
|
79
|
+
type: column.type,
|
|
80
|
+
nullable: column.nullable,
|
|
81
|
+
primaryKey: column.primaryKey,
|
|
82
|
+
sensitive: column.sensitive,
|
|
83
|
+
})),
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
return formatSchemaV2ForNlToSql(physical, { omitSensitiveIdentifiersFromPrompt: omit }).ddl;
|
|
62
88
|
}
|
|
63
89
|
function findColumn(table, columnId) {
|
|
64
90
|
const col = table.columns.find((c) => c.id === columnId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LanguageModel } from "ai";
|
|
2
2
|
import { generateText as defaultGenerateText } from "ai";
|
|
3
|
-
import type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget } from "./types.js";
|
|
4
|
-
export type SuggestEnrichmentDeps = {
|
|
3
|
+
import type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget } from "./types.js";
|
|
4
|
+
export type SuggestEnrichmentDeps = EnrichmentPromptOptions & {
|
|
5
5
|
generateText?: typeof defaultGenerateText;
|
|
6
6
|
/** Optional cap on the number of candidates returned. Default 3. */
|
|
7
7
|
maxCandidates?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAKzD,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG;
|
|
1
|
+
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAKzD,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,GAAG;IAC5D,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBhC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAU/E"}
|
|
@@ -14,7 +14,9 @@ export async function suggestEnrichment(target, context, model, deps = {}) {
|
|
|
14
14
|
// `system`, not `instructions`: works on both AI SDK 6 and 7 (see the
|
|
15
15
|
// matching comment in `sql/generate.ts`).
|
|
16
16
|
system: ENRICHMENT_SYSTEM_PROMPT,
|
|
17
|
-
prompt: buildEnrichmentUserPrompt(target, context
|
|
17
|
+
prompt: buildEnrichmentUserPrompt(target, context, {
|
|
18
|
+
omitSensitiveIdentifiersFromPrompt: deps.omitSensitiveIdentifiersFromPrompt,
|
|
19
|
+
}),
|
|
18
20
|
temperature: deps.temperature ?? 0.4,
|
|
19
21
|
// Cast: AskDB's public `providerOptions` type is a plain opaque bag
|
|
20
22
|
// (`Record<string, unknown>`) so callers don't need AI SDK JSON types.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAuBrB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,OAA0B,EAC1B,KAAoB,EACpB,OAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK;QACL,sEAAsE;QACtE,0CAA0C;QAC1C,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE;YACjD,kCAAkC,EAAE,IAAI,CAAC,kCAAkC;SAC5E,CAAC;QACF,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;QACpC,oEAAoE;QACpE,uEAAuE;QACvE,4DAA4D;QAC5D,GAAG,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAwE,EAAE;YACpG,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,IAAI,GAAI,MAA2B,CAAC,IAAI,CAAC;IAC/C,OAAO,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM;IACtC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NormalizedV2Table } from "../schema/v2/normalized.js";
|
|
2
2
|
/**
|
|
3
3
|
* What to suggest for. An authoring surface (Studio) builds one of these per
|
|
4
4
|
* active prompt and asks `suggestEnrichment` for 1–3 candidates the user
|
|
5
5
|
* reviews and confirms.
|
|
6
|
+
*
|
|
7
|
+
* `table` is a `NormalizedV2Table`, so it has a `sensitive` flag on the table and every
|
|
8
|
+
* column, which the enrichment prompt's omission rule reads (ADR 0026). The type can't tell
|
|
9
|
+
* where the flags came from: take the table from `loadSchema()` on the schema directory or a
|
|
10
|
+
* bundle, as Studio does, so front-matter escalation applies. `loadSchemaFromJson()` of a bare
|
|
11
|
+
* `schema.json` has no front-matter flags.
|
|
6
12
|
*/
|
|
7
13
|
export type EnrichmentTarget = {
|
|
8
14
|
kind: "table-description";
|
|
9
|
-
table:
|
|
15
|
+
table: NormalizedV2Table;
|
|
10
16
|
} | {
|
|
11
17
|
kind: "table-aliases";
|
|
12
|
-
table:
|
|
18
|
+
table: NormalizedV2Table;
|
|
13
19
|
} | {
|
|
14
20
|
kind: "table-primary-entity";
|
|
15
|
-
table:
|
|
21
|
+
table: NormalizedV2Table;
|
|
16
22
|
} | {
|
|
17
23
|
kind: "column-description";
|
|
18
|
-
table:
|
|
24
|
+
table: NormalizedV2Table;
|
|
19
25
|
columnId: string;
|
|
20
26
|
} | {
|
|
21
27
|
kind: "column-aliases";
|
|
22
|
-
table:
|
|
28
|
+
table: NormalizedV2Table;
|
|
23
29
|
columnId: string;
|
|
24
30
|
} | {
|
|
25
31
|
kind: "common-query-language";
|
|
26
|
-
table:
|
|
32
|
+
table: NormalizedV2Table;
|
|
27
33
|
};
|
|
28
34
|
/**
|
|
29
35
|
* One suggestion candidate. For free-text fields, `text` is the value.
|
|
@@ -33,13 +39,27 @@ export type EnrichmentCandidate = {
|
|
|
33
39
|
/** The suggested text. Whitespace at the ends is stripped. */
|
|
34
40
|
text: string;
|
|
35
41
|
};
|
|
42
|
+
/** How the enrichment prompt treats sensitive columns. */
|
|
43
|
+
export type EnrichmentPromptOptions = {
|
|
44
|
+
/**
|
|
45
|
+
* When true, sensitive columns and every column of a sensitive table are left out of the
|
|
46
|
+
* prompt, by the same rule as `ask()`'s `omitSensitiveIdentifiersFromNlToSqlPrompt`; a
|
|
47
|
+
* sensitive table keeps its name. A target that is itself a sensitive column is refused with
|
|
48
|
+
* `SensitiveEnrichmentTargetError`. Hosts pass their `modes.omitSensitiveFromPrompt` here.
|
|
49
|
+
* Default false: sensitive columns are listed, tagged `(sensitive)`.
|
|
50
|
+
*/
|
|
51
|
+
omitSensitiveIdentifiersFromPrompt?: boolean;
|
|
52
|
+
};
|
|
36
53
|
/**
|
|
37
54
|
* Optional context: neighboring tables (joined via FK) and the schema id, so
|
|
38
55
|
* the model can ground suggestions beyond the immediate table.
|
|
39
56
|
*/
|
|
40
57
|
export type EnrichmentContext = {
|
|
41
58
|
schemaId: string;
|
|
42
|
-
/**
|
|
43
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Tables linked to the target table by foreign keys, from `loadSchema()`'s result
|
|
61
|
+
* like the target. Capped by the caller; untracked tables are the caller's to leave out.
|
|
62
|
+
*/
|
|
63
|
+
neighbors?: NormalizedV2Table[];
|
|
44
64
|
};
|
|
45
65
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/enrichment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/enrichment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;;;OAMG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -10,11 +10,23 @@ export type SqlValidationRuleCode = "SQL_EMPTY" | "SQL_MULTI_STATEMENT" | "SQL_C
|
|
|
10
10
|
/** A call to a function in the dialect's `blockedFunctions` (e.g. `pg_sleep(`, `LOAD_FILE(`). */
|
|
11
11
|
| "SQL_FORBIDDEN_FUNCTION"
|
|
12
12
|
/** A string, quoted identifier, dollar-quoted string, or block comment never closes. */
|
|
13
|
-
| "SQL_UNTERMINATED"
|
|
13
|
+
| "SQL_UNTERMINATED"
|
|
14
|
+
/**
|
|
15
|
+
* A locking read: `FOR UPDATE`, `FOR SHARE`, `LOCK IN SHARE MODE`, or a T-SQL lock hint such as
|
|
16
|
+
* `UPDLOCK`; on SQL Server, also a name that isn't printable ASCII, unquoted or quoted alone in
|
|
17
|
+
* parentheses after a name, which SQL Server may read as a hint.
|
|
18
|
+
*/
|
|
19
|
+
| "SQL_LOCKING_READ";
|
|
14
20
|
export declare class SqlValidationError extends AskDbError {
|
|
15
21
|
readonly rule: SqlValidationRuleCode;
|
|
16
22
|
/** Extra human context (why the rule exists, remediation). */
|
|
17
23
|
readonly hint?: string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Every guardrail finding for the statement, when the error comes from an enforcement
|
|
26
|
+
* point (`ask()`, `generateSelectSql()`, `bindPreparedQuery()`). Absent when thrown by a
|
|
27
|
+
* direct `validateSelectSql()` call.
|
|
28
|
+
*/
|
|
29
|
+
verdict?: GuardrailVerdict;
|
|
18
30
|
constructor(message: string, rule: SqlValidationRuleCode,
|
|
19
31
|
/** Extra human context (why the rule exists, remediation). */
|
|
20
32
|
hint?: string | undefined);
|
|
@@ -41,16 +53,40 @@ export type TenantScopeRejectionReason = "MISSING_SCOPE" | "UNKNOWN_TENANT_ROOT"
|
|
|
41
53
|
/** A multi-ID scope met a tenant predicate with no list form (e.g. `<=`). */
|
|
42
54
|
| "UNSUPPORTED_TENANT_PREDICATE"
|
|
43
55
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
56
|
+
* A tenant ID that isn't printable ASCII (U+0020 to U+007E), or that contains a
|
|
57
|
+
* backslash, would be inlined as a literal: by `ask()`, `resolveTenantSql()` or
|
|
58
|
+
* `bindPreparedQuery()` in `sql-only` mode. It's refused on
|
|
59
|
+
* every dialect, because a server whose string settings or connection charset differ
|
|
60
|
+
* from the dialect's can read part of it as the end of the literal (a backslash, or a
|
|
61
|
+
* `¥` sent as byte 0x5C under `sjis`). Use `tenantSqlMode: "sql-params"` (the default)
|
|
62
|
+
* to pass such IDs as driver parameters.
|
|
63
|
+
*/
|
|
64
|
+
| "UNESCAPABLE_TENANT_ID"
|
|
65
|
+
/**
|
|
66
|
+
* `ask()` got a tenant scope, no `tenantSqlMode`, and a custom `AskDialect` or a
|
|
67
|
+
* `DialectSpec` whose `id` isn't built in. AskDB can't know which driver markers such a
|
|
68
|
+
* dialect takes, and its `$N` default is a money constant on SQL Server, so the host
|
|
69
|
+
* must choose `"sql-params"` or `"sql-only"`.
|
|
70
|
+
* Also thrown, on every dialect, when `ask()` (with a tenant scope) or
|
|
71
|
+
* `resolveTenantSql()` gets a `tenantSqlMode` that is neither of the two.
|
|
47
72
|
*/
|
|
48
|
-
| "
|
|
73
|
+
| "TENANT_SQL_MODE_REQUIRED";
|
|
49
74
|
export declare class TenantScopeError extends AskDbError {
|
|
50
75
|
readonly reason: TenantScopeRejectionReason;
|
|
51
76
|
constructor(message: string, reason: TenantScopeRejectionReason);
|
|
52
77
|
}
|
|
53
|
-
export type QueryParameterRejectionReason = "INVALID_NAME" | "RESERVED_NAME" | "INVALID_VALUE" | "MISSING_VALUE" | "UNRESOLVED_PLACEHOLDER" | "INVALID_LIST_CONTEXT" | "DIALECT_UNSUPPORTED"
|
|
78
|
+
export type QueryParameterRejectionReason = "INVALID_NAME" | "RESERVED_NAME" | "INVALID_VALUE" | "MISSING_VALUE" | "UNRESOLVED_PLACEHOLDER" | "INVALID_LIST_CONTEXT" | "DIALECT_UNSUPPORTED"
|
|
79
|
+
/** `bindPreparedQuery()` was called without its third argument (`BindGuardrails`), or without `schema` in it. */
|
|
80
|
+
| "MISSING_GUARDRAIL_CONTEXT"
|
|
81
|
+
/** `values` has a `:tenant_*` key. Tenant IDs come from `tenantScope` only. */
|
|
82
|
+
| "TENANT_VALUE_SUPPLIED"
|
|
83
|
+
/** The tenant markers in `unboundSql` can't be lined up with the business parameters. */
|
|
84
|
+
| "TENANT_PARAM_ALIGNMENT"
|
|
85
|
+
/**
|
|
86
|
+
* `bindPreparedQuery()` needs `guardrails.dialect`: the template was made under a host's
|
|
87
|
+
* `DialectSpec` (`dialectRules: "host"`), or stored without `dialectRules`.
|
|
88
|
+
*/
|
|
89
|
+
| "DIALECT_SPEC_REQUIRED";
|
|
54
90
|
export declare class QueryParameterError extends AskDbError {
|
|
55
91
|
readonly reason: QueryParameterRejectionReason;
|
|
56
92
|
constructor(message: string, reason: QueryParameterRejectionReason);
|
|
@@ -63,6 +99,8 @@ export type TenantGuardrailWarning = {
|
|
|
63
99
|
};
|
|
64
100
|
export declare class TenantGuardrailError extends AskDbError {
|
|
65
101
|
readonly warnings: TenantGuardrailWarning[];
|
|
102
|
+
/** Every guardrail finding for the statement, when thrown by an enforcement point. */
|
|
103
|
+
verdict?: GuardrailVerdict;
|
|
66
104
|
constructor(message: string, warnings: TenantGuardrailWarning[]);
|
|
67
105
|
}
|
|
68
106
|
/** How a sensitive identifier was matched inside a statement. */
|
|
@@ -116,6 +154,59 @@ export declare class SensitiveReferenceError extends AskDbError {
|
|
|
116
154
|
readonly rule: SensitiveReferenceRuleCode;
|
|
117
155
|
readonly references: SensitiveReference[];
|
|
118
156
|
readonly unresolvedScope?: SensitiveScopeReport | undefined;
|
|
157
|
+
/** Every guardrail finding for the statement, when thrown by an enforcement point. */
|
|
158
|
+
verdict?: GuardrailVerdict;
|
|
119
159
|
constructor(message: string, rule: SensitiveReferenceRuleCode, references: SensitiveReference[], unresolvedScope?: SensitiveScopeReport | undefined);
|
|
120
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* An enrichment suggestion was asked for a sensitive column while
|
|
163
|
+
* `omitSensitiveIdentifiersFromPrompt` is on: the prompt can't name the column, so no model is
|
|
164
|
+
* called (ADR 0026). The message names no identifier.
|
|
165
|
+
*/
|
|
166
|
+
export declare class SensitiveEnrichmentTargetError extends AskDbError {
|
|
167
|
+
constructor();
|
|
168
|
+
}
|
|
169
|
+
/** The SQL checks AskDB runs on model-generated SQL. */
|
|
170
|
+
export type GuardrailCheckId = "read-only" | "tenant" | "sensitive";
|
|
171
|
+
/**
|
|
172
|
+
* Which form of the statement a finding is about, before AskDB renders it: `sql` is the
|
|
173
|
+
* model's bound SQL, `template` is its `sql-unbound` block (`preparedQuery.namedSql`),
|
|
174
|
+
* both with their `:tenant_<root>_ids` placeholders in place.
|
|
175
|
+
*/
|
|
176
|
+
export type GuardrailForm = "sql" | "template";
|
|
177
|
+
/** `allow`: no findings. `warn`: returned (or bound) and reported. `deny`: refused with a typed error. */
|
|
178
|
+
export type GuardrailOutcome = "allow" | "warn" | "deny";
|
|
179
|
+
/** One problem a check found. The `check` field says which check, and which detail fields are set. */
|
|
180
|
+
export type GuardrailFinding = {
|
|
181
|
+
check: "read-only";
|
|
182
|
+
form: GuardrailForm;
|
|
183
|
+
rule: SqlValidationRuleCode;
|
|
184
|
+
message: string;
|
|
185
|
+
hint?: string;
|
|
186
|
+
} | {
|
|
187
|
+
check: "tenant";
|
|
188
|
+
/** `"generator"`: reported by a custom `AskDialect`'s `tenantGuardrail`. */
|
|
189
|
+
form: GuardrailForm | "generator";
|
|
190
|
+
rule: TenantGuardrailRuleCode;
|
|
191
|
+
message: string;
|
|
192
|
+
/** The table the finding is about; empty for a custom generator's failure with no details. */
|
|
193
|
+
tableId: string;
|
|
194
|
+
} | {
|
|
195
|
+
check: "sensitive";
|
|
196
|
+
form: GuardrailForm;
|
|
197
|
+
rule: SensitiveReferenceRuleCode;
|
|
198
|
+
message: string;
|
|
199
|
+
/** The sensitive table or column referenced (`SENSITIVE_TABLE_REFERENCED` / `SENSITIVE_COLUMN_REFERENCED`). */
|
|
200
|
+
reference?: SensitiveReference;
|
|
201
|
+
/** Why the table scope couldn't be resolved (`UNRESOLVED_TABLE_SCOPE`). */
|
|
202
|
+
unresolvedScope?: SensitiveScopeReport;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* The decision for one statement: the most severe outcome across its findings, and every
|
|
206
|
+
* finding. In-memory only: AskDB doesn't persist it, so it carries no format version.
|
|
207
|
+
*/
|
|
208
|
+
export type GuardrailVerdict = {
|
|
209
|
+
outcome: GuardrailOutcome;
|
|
210
|
+
findings: GuardrailFinding[];
|
|
211
|
+
};
|
|
121
212
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGjB,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI7C;AAED,kEAAkE;AAClE,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,qBAAqB,GACrB,aAAa,GACb,wBAAwB,GACxB,uBAAuB;AACzB,iGAAiG;GAC/F,wBAAwB;AAC1B,wFAAwF;GACtF,kBAAkB,CAAC;AAEvB,qBAAa,kBAAmB,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -15,6 +15,12 @@ export class SchemaParseError extends AskDbError {
|
|
|
15
15
|
export class SqlValidationError extends AskDbError {
|
|
16
16
|
rule;
|
|
17
17
|
hint;
|
|
18
|
+
/**
|
|
19
|
+
* Every guardrail finding for the statement, when the error comes from an enforcement
|
|
20
|
+
* point (`ask()`, `generateSelectSql()`, `bindPreparedQuery()`). Absent when thrown by a
|
|
21
|
+
* direct `validateSelectSql()` call.
|
|
22
|
+
*/
|
|
23
|
+
verdict;
|
|
18
24
|
constructor(message, rule,
|
|
19
25
|
/** Extra human context (why the rule exists, remediation). */
|
|
20
26
|
hint) {
|
|
@@ -57,6 +63,8 @@ export class QueryParameterError extends AskDbError {
|
|
|
57
63
|
}
|
|
58
64
|
export class TenantGuardrailError extends AskDbError {
|
|
59
65
|
warnings;
|
|
66
|
+
/** Every guardrail finding for the statement, when thrown by an enforcement point. */
|
|
67
|
+
verdict;
|
|
60
68
|
constructor(message, warnings) {
|
|
61
69
|
super(message);
|
|
62
70
|
this.warnings = warnings;
|
|
@@ -67,6 +75,8 @@ export class SensitiveReferenceError extends AskDbError {
|
|
|
67
75
|
rule;
|
|
68
76
|
references;
|
|
69
77
|
unresolvedScope;
|
|
78
|
+
/** Every guardrail finding for the statement, when thrown by an enforcement point. */
|
|
79
|
+
verdict;
|
|
70
80
|
constructor(message, rule, references, unresolvedScope) {
|
|
71
81
|
super(message);
|
|
72
82
|
this.rule = rule;
|
|
@@ -75,4 +85,15 @@ export class SensitiveReferenceError extends AskDbError {
|
|
|
75
85
|
this.name = "SensitiveReferenceError";
|
|
76
86
|
}
|
|
77
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* An enrichment suggestion was asked for a sensitive column while
|
|
90
|
+
* `omitSensitiveIdentifiersFromPrompt` is on: the prompt can't name the column, so no model is
|
|
91
|
+
* called (ADR 0026). The message names no identifier.
|
|
92
|
+
*/
|
|
93
|
+
export class SensitiveEnrichmentTargetError extends AskDbError {
|
|
94
|
+
constructor() {
|
|
95
|
+
super("The suggestion is for a sensitive column, and omitSensitiveIdentifiersFromPrompt keeps sensitive columns out of the prompt.");
|
|
96
|
+
this.name = "SensitiveEnrichmentTargetError";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
78
99
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAoBD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAU9B;IAEA;IAXlB;;;;OAIG;IACH,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,IAA2B;IAC3C,8DAA8D;IAC9C,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAuB;QAE3B,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,SAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAuCD,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAG5B;IAFlB,YACE,OAAe,EACC,MAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA4B;QAGlD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAsBD,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,MAAqC;QAErD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA+B;QAGrD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAgBD,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAMhC;IALlB,sFAAsF;IACtF,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,QAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAA0B;QAGlD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAyDD,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IAMnC;IACA;IACA;IAPlB,sFAAsF;IACtF,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,IAAgC,EAChC,UAAgC,EAChC,eAAsC;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAChC,eAAU,GAAV,UAAU,CAAsB;QAChC,oBAAe,GAAf,eAAe,CAAuB;QAGtD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,8BAA+B,SAAQ,UAAU;IAC5D;QACE,KAAK,CACH,6HAA6H,CAC9H,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,9 @@ export { validateTenantScope } from "./sql/tenant-scope-validate.js";
|
|
|
3
3
|
export { buildTenantPromptBlock } from "./sql/tenant-prompt.js";
|
|
4
4
|
export { validateTenantGuardrails, type TenantGuardrailResult, type ValidateTenantGuardrailsOptions, } from "./sql/tenant-guardrail.js";
|
|
5
5
|
export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, type SensitiveGuardrailMode, type SensitiveGuardrailResult, type ValidateSensitiveReferencesOptions, } from "./sql/sensitive-guardrail.js";
|
|
6
|
-
export { resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, type TenantSqlOutputMode, type TenantPlaceholderResult, type TenantBinding, type TenantSqlDialect, } from "./sql/tenant-placeholders.js";
|
|
6
|
+
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, type TenantSqlOutputMode, type TenantPlaceholderResult, type TenantBinding, type TenantSqlDialect, } from "./sql/tenant-placeholders.js";
|
|
7
7
|
export { expandClosure } from "./sql/tenant-hierarchy.js";
|
|
8
|
+
export { expandTenantScope } from "./sql/tenant-scope-expand.js";
|
|
8
9
|
export { ask, type AskPipelineOptions, type AskPipelineResult, type AskDialect, type AskDialectInput, type AskDialectGenerateOptions, type AskUsage, type AskDialectGenerateResult, type AskGenerateDeps, type ResolveTenantDescendants, type TenantIdsByRoot, } from "./ask.js";
|
|
9
10
|
export { parseAskDbModeV1, formatAskDbModesV1, DEFAULT_ASKDB_MODE, ASKDB_MODES_V1, type AskDbModeV1, } from "./modes/types.js";
|
|
10
11
|
export { AskDbLogEvent } from "./logging/log-events.js";
|
|
@@ -14,13 +15,14 @@ export { createAskDbLogger, type AskDbLogLevel, type CreateAskDbLoggerOptions, }
|
|
|
14
15
|
export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
|
|
15
16
|
export { loadNormalizedSchemaFromJson, parseAskDbSchemaJson } from "./schema/parse.js";
|
|
16
17
|
export type { AskDbSchemaFile, NormalizedSchema, AnyNormalizedSchema, } from "./schema/types.js";
|
|
17
|
-
export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, type MentionMatcher, type MentionName, } from "./schema/v2/index.js";
|
|
18
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, formatTenantPolicyWarning, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, sensitiveMentionNames, type MentionMatcher, type MentionName, } from "./schema/v2/index.js";
|
|
18
19
|
export type { V2SchemaJson, V2Table, V2Column, V2TableFrontmatter, V2ColumnFrontmatter, V2ConceptsFrontmatter, V2Concept, ParsedTableMarkdown, ParsedConceptsMarkdown, RecognizedH2Section, NormalizedSchemaV2, BundledSchemaV2, NormalizedV2Table, NormalizedV2Column, SchemaV2Warning, TenantPolicyFrontmatter, TenantRoot, HierarchyEdge, ScopedTable, ScopeThrough, PolymorphicTable, EnforcementMode, TenantScope, TenantAccess, TenantAccessIds, TenantAccessSubtree, TenantAccessMultiRoot, TenantAccessGlobal, TenantScopeContext, ParsedTenantPolicyMarkdown, NormalizedTenantPolicy, TenantPolicyWarning, TableCoverageEntry, TableTenantClassification, TenantPolicyH2Section, } from "./schema/v2/index.js";
|
|
19
20
|
export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, suggestEnrichment, } from "./enrichment/index.js";
|
|
20
|
-
export type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
|
|
21
|
-
export { formatSchemaForNlToSql,
|
|
21
|
+
export type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
|
|
22
|
+
export { formatSchemaForNlToSql, normalizeAskDbSchema, type FormatNlToSqlOptions, type NlToSqlSchemaFormatStats, } from "./schema/normalize.js";
|
|
22
23
|
export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
|
|
23
|
-
export {
|
|
24
|
+
export { escapeSqlLiteral, type QueryParameterType, type QueryParameterValue, type QueryParamSlot, type QueryParameterBinding, type PreparedQuery, } from "./sql/bind.js";
|
|
25
|
+
export { bindPreparedQuery, type BindGuardrails, type BoundQuery } from "./sql/rebind.js";
|
|
24
26
|
export { type DialectId, type DialectSpec, type BuiltInDialectId, POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, SINGLE_NAMESPACE_LABEL, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
|
|
25
27
|
export { generateSelectSql, type GenerateSelectSqlResult, type GenerateSqlDeps, } from "./sql/generate.js";
|
|
26
28
|
export { validateSelectSql, buildSelectGuardrailExplanation, type SelectGuardrailExplain, } from "./sql/validate.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,9 @@ export { validateTenantScope } from "./sql/tenant-scope-validate.js";
|
|
|
3
3
|
export { buildTenantPromptBlock } from "./sql/tenant-prompt.js";
|
|
4
4
|
export { validateTenantGuardrails, } from "./sql/tenant-guardrail.js";
|
|
5
5
|
export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, } from "./sql/sensitive-guardrail.js";
|
|
6
|
-
export { resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, } from "./sql/tenant-placeholders.js";
|
|
6
|
+
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, } from "./sql/tenant-placeholders.js";
|
|
7
7
|
export { expandClosure } from "./sql/tenant-hierarchy.js";
|
|
8
|
+
export { expandTenantScope } from "./sql/tenant-scope-expand.js";
|
|
8
9
|
export { ask, } from "./ask.js";
|
|
9
10
|
export { parseAskDbModeV1, formatAskDbModesV1, DEFAULT_ASKDB_MODE, ASKDB_MODES_V1, } from "./modes/types.js";
|
|
10
11
|
export { AskDbLogEvent } from "./logging/log-events.js";
|
|
@@ -12,11 +13,12 @@ export { ASKDB_LOG_REQUIRED_EVENTS, ASKDB_LOG_REQUIRED_FIELDS, } from "./logging
|
|
|
12
13
|
export { createAskDbLogger, } from "./logging/create-askdb-logger.js";
|
|
13
14
|
export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
|
|
14
15
|
export { loadNormalizedSchemaFromJson, parseAskDbSchemaJson } from "./schema/parse.js";
|
|
15
|
-
export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, } from "./schema/v2/index.js";
|
|
16
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, formatTenantPolicyWarning, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, sensitiveMentionNames, } from "./schema/v2/index.js";
|
|
16
17
|
export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, suggestEnrichment, } from "./enrichment/index.js";
|
|
17
|
-
export { formatSchemaForNlToSql,
|
|
18
|
+
export { formatSchemaForNlToSql, normalizeAskDbSchema, } from "./schema/normalize.js";
|
|
18
19
|
export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
|
|
19
|
-
export {
|
|
20
|
+
export { escapeSqlLiteral, } from "./sql/bind.js";
|
|
21
|
+
export { bindPreparedQuery } from "./sql/rebind.js";
|
|
20
22
|
export { POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, SINGLE_NAMESPACE_LABEL, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
|
|
21
23
|
export { generateSelectSql, } from "./sql/generate.js";
|
|
22
24
|
export { validateSelectSql, buildSelectGuardrailExplanation, } from "./sql/validate.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,GAIzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,GAAG,GAYJ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
export type AskDbLogger = {
|
|
8
8
|
info(context: Record<string, unknown>, message: string): void;
|
|
9
9
|
error(context: Record<string, unknown>, message: string): void;
|
|
10
|
+
/** Optional — a problem the host should fix that doesn't stop the run. Without it, `info` is used. */
|
|
11
|
+
warn?(context: Record<string, unknown>, message: string): void;
|
|
10
12
|
/** Optional — used for prompt redaction notices without leaking sensitive identifiers. */
|
|
11
13
|
debug?(context: Record<string, unknown>, message: string): void;
|
|
12
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"askdb-logger.d.ts","sourceRoot":"","sources":["../../src/logging/askdb-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,0FAA0F;IAC1F,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjE,CAAC"}
|
|
1
|
+
{"version":3,"file":"askdb-logger.d.ts","sourceRoot":"","sources":["../../src/logging/askdb-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,sGAAsG;IACtG,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,0FAA0F;IAC1F,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-askdb-logger.d.ts","sourceRoot":"","sources":["../../src/logging/create-askdb-logger.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-askdb-logger.d.ts","sourceRoot":"","sources":["../../src/logging/create-askdb-logger.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CA8BhF"}
|
|
@@ -9,6 +9,9 @@ function wrapPinoAsAskDbLogger(pinoLogger) {
|
|
|
9
9
|
error(context, message) {
|
|
10
10
|
pinoLogger.error(context, message);
|
|
11
11
|
},
|
|
12
|
+
warn(context, message) {
|
|
13
|
+
pinoLogger.warn(context, message);
|
|
14
|
+
},
|
|
12
15
|
debug(context, message) {
|
|
13
16
|
pinoLogger.debug(context, message);
|
|
14
17
|
},
|