@askdb/core 1.0.0-beta.45 → 1.0.0-beta.47
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 +15 -13
- package/dist/ask.d.ts +26 -9
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +29 -5
- package/dist/ask.js.map +1 -1
- package/dist/enrichment/prompt.d.ts.map +1 -1
- package/dist/enrichment/prompt.js +6 -4
- package/dist/enrichment/prompt.js.map +1 -1
- package/dist/enrichment/types.d.ts +13 -12
- package/dist/enrichment/types.d.ts.map +1 -1
- package/dist/errors.d.ts +67 -9
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- 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 +4 -1
- package/dist/logging/create-askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.js +24 -3
- 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/schema/normalize.d.ts +0 -2
- package/dist/schema/normalize.d.ts.map +1 -1
- package/dist/schema/normalize.js +0 -4
- package/dist/schema/normalize.js.map +1 -1
- package/dist/schema/v2/index.d.ts +3 -2
- package/dist/schema/v2/index.d.ts.map +1 -1
- package/dist/schema/v2/index.js +3 -2
- package/dist/schema/v2/index.js.map +1 -1
- package/dist/schema/v2/loader.d.ts +24 -6
- package/dist/schema/v2/loader.d.ts.map +1 -1
- package/dist/schema/v2/loader.js +164 -100
- package/dist/schema/v2/loader.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 +5 -0
- 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 +11 -4
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +5 -8
- 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 +2 -1
- package/dist/sql/dialect-spec.js.map +1 -1
- package/dist/sql/guardrail-decide.d.ts +4 -2
- package/dist/sql/guardrail-decide.d.ts.map +1 -1
- package/dist/sql/guardrail-decide.js.map +1 -1
- package/dist/sql/lexer.d.ts +12 -0
- package/dist/sql/lexer.d.ts.map +1 -1
- package/dist/sql/lexer.js +27 -0
- package/dist/sql/lexer.js.map +1 -1
- package/dist/sql/parameter-manifest.d.ts +5 -1
- package/dist/sql/parameter-manifest.d.ts.map +1 -1
- package/dist/sql/parameter-manifest.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 +3 -1
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/rebind.d.ts +34 -7
- package/dist/sql/rebind.d.ts.map +1 -1
- package/dist/sql/rebind.js +50 -10
- package/dist/sql/rebind.js.map +1 -1
- package/dist/sql/tenant-guardrail.d.ts.map +1 -1
- package/dist/sql/tenant-guardrail.js +176 -2
- package/dist/sql/tenant-guardrail.js.map +1 -1
- package/dist/sql/tenant-placeholders.d.ts +26 -11
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +50 -25
- 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-validate.d.ts.map +1 -1
- package/dist/sql/tenant-scope-validate.js +8 -1
- package/dist/sql/tenant-scope-validate.js.map +1 -1
- package/dist/sql/tsql-batch.d.ts +10 -0
- package/dist/sql/tsql-batch.d.ts.map +1 -1
- package/dist/sql/tsql-batch.js +2 -2
- package/dist/sql/tsql-batch.js.map +1 -1
- package/dist/sql/validate.d.ts +24 -3
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +123 -11
- package/dist/sql/validate.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AskDbLogger } from "../logging/askdb-logger.js";
|
|
2
|
+
import type { NormalizedTenantPolicy } from "../schema/v2/tenant-policy.js";
|
|
3
|
+
/**
|
|
4
|
+
* Log a loaded tenant policy's warnings once per loaded schema (ADR 0023).
|
|
5
|
+
* `loadSchema()` takes no logger, so the first `ask()` with a logger reports them.
|
|
6
|
+
*/
|
|
7
|
+
export declare function logTenantPolicyWarningsOnce(logger: AskDbLogger | undefined, policy: NormalizedTenantPolicy): void;
|
|
8
|
+
//# sourceMappingURL=tenant-policy-warnings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-policy-warnings.d.ts","sourceRoot":"","sources":["../../src/sql/tenant-policy-warnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAM5E;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAcN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AskDbLogEvent } from "../logging/log-events.js";
|
|
2
|
+
import { formatTenantPolicyWarning } from "../schema/v2/tenant-policy.js";
|
|
3
|
+
/** Policies whose warnings were already logged. Each `loadSchema()` returns a new policy object. */
|
|
4
|
+
const logged = new WeakSet();
|
|
5
|
+
/**
|
|
6
|
+
* Log a loaded tenant policy's warnings once per loaded schema (ADR 0023).
|
|
7
|
+
* `loadSchema()` takes no logger, so the first `ask()` with a logger reports them.
|
|
8
|
+
*/
|
|
9
|
+
export function logTenantPolicyWarningsOnce(logger, policy) {
|
|
10
|
+
if (!logger || policy.warnings.length === 0 || logged.has(policy))
|
|
11
|
+
return;
|
|
12
|
+
logged.add(policy);
|
|
13
|
+
const log = logger.warn ?? logger.info;
|
|
14
|
+
log.call(logger, {
|
|
15
|
+
event: AskDbLogEvent.TenantPolicyWarnings,
|
|
16
|
+
enforcement: policy.enforcement,
|
|
17
|
+
warningCount: policy.warnings.length,
|
|
18
|
+
warnings: policy.warnings,
|
|
19
|
+
}, `tenant policy doesn't match schema.json: ${policy.warnings.map(formatTenantPolicyWarning).join("; ")}`);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=tenant-policy-warnings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-policy-warnings.js","sourceRoot":"","sources":["../../src/sql/tenant-policy-warnings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,oGAAoG;AACpG,MAAM,MAAM,GAAG,IAAI,OAAO,EAA0B,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAA+B,EAC/B,MAA8B;IAE9B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IAC1E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IACvC,GAAG,CAAC,IAAI,CACN,MAAM,EACN;QACE,KAAK,EAAE,aAAa,CAAC,oBAAoB;QACzC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,EACD,4CAA4C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxG,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope-validate.d.ts","sourceRoot":"","sources":["../../src/sql/tenant-scope-validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,sBAAsB,EACpC,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"tenant-scope-validate.d.ts","sourceRoot":"","sources":["../../src/sql/tenant-scope-validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,sBAAsB,EACpC,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,CAwEN"}
|
|
@@ -13,6 +13,13 @@ export function validateTenantScope(tenantPolicy, tenantScope) {
|
|
|
13
13
|
throw new TenantScopeError("Tenant policy is active but no tenantScope was provided. " +
|
|
14
14
|
"Pass a TenantScope to ask() or remove tenant-policy.md to disable enforcement.", "MISSING_SCOPE");
|
|
15
15
|
}
|
|
16
|
+
// Global access must say why, for the audit record: checked before the shape so a missing
|
|
17
|
+
// or blank reason gets its own code rather than INVALID_SCOPE_SHAPE.
|
|
18
|
+
const rawAccess = tenantScope.access;
|
|
19
|
+
if (rawAccess?.kind === "global" && (typeof rawAccess.reason !== "string" || rawAccess.reason.trim() === "")) {
|
|
20
|
+
throw new TenantScopeError("A global tenantScope needs a non-blank reason, for the audit record: " +
|
|
21
|
+
"{ access: { kind: \"global\", reason: \"<why this user sees every tenant>\" } }.", "GLOBAL_WITHOUT_REASON");
|
|
22
|
+
}
|
|
16
23
|
// Validate shape with zod
|
|
17
24
|
const parsed = tenantScopeSchema.safeParse(tenantScope);
|
|
18
25
|
if (!parsed.success) {
|
|
@@ -42,7 +49,7 @@ export function validateTenantScope(tenantPolicy, tenantScope) {
|
|
|
42
49
|
}
|
|
43
50
|
break;
|
|
44
51
|
case "global":
|
|
45
|
-
// reason is already
|
|
52
|
+
// reason is already checked above
|
|
46
53
|
break;
|
|
47
54
|
}
|
|
48
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope-validate.js","sourceRoot":"","sources":["../../src/sql/tenant-scope-validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoC,EACpC,WAAoC;IAEpC,8BAA8B,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnD,0CAA0C;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CACxB,2DAA2D;YACzD,gFAAgF,EAClF,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,gBAAgB,CACxB,8BAA8B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACpD,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAElC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK;YACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,UAAU,KAAK;oBAC1E,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,UAAU,KAAK;oBAC1E,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,MAAM;QAER,KAAK,YAAY;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,gBAAgB,CACxB,6DAA6D,KAAK,CAAC,UAAU,KAAK;wBAChF,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,
|
|
1
|
+
{"version":3,"file":"tenant-scope-validate.js","sourceRoot":"","sources":["../../src/sql/tenant-scope-validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoC,EACpC,WAAoC;IAEpC,8BAA8B,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnD,0CAA0C;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CACxB,2DAA2D;YACzD,gFAAgF,EAClF,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,0FAA0F;IAC1F,qEAAqE;IACrE,MAAM,SAAS,GAAI,WAAiE,CAAC,MAAM,CAAC;IAC5F,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7G,MAAM,IAAI,gBAAgB,CACxB,uEAAuE;YACrE,kFAAkF,EACpF,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,gBAAgB,CACxB,8BAA8B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACpD,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAElC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK;YACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,UAAU,KAAK;oBAC1E,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,MAAM,CAAC,UAAU,KAAK;oBAC1E,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,MAAM;QAER,KAAK,YAAY;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,gBAAgB,CACxB,6DAA6D,KAAK,CAAC,UAAU,KAAK;wBAChF,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,qBAAqB,CACtB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,kCAAkC;YAClC,MAAM;IACV,CAAC;AACH,CAAC"}
|
package/dist/sql/tsql-batch.d.ts
CHANGED
|
@@ -32,6 +32,16 @@ export type TsqlStatementBoundary = {
|
|
|
32
32
|
*/
|
|
33
33
|
kind: "select" | "query" | "label";
|
|
34
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Reserved words after which an expression or a subquery follows, so a `(SELECT …`
|
|
37
|
+
* after one of them is a subquery. Each is reserved in T-SQL, so none is an alias.
|
|
38
|
+
*/
|
|
39
|
+
export declare const EXPRESSION_KEYWORDS: ReadonlySet<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Punctuation an expression may follow: `(`, a comma, an operator, and `.` or `::`
|
|
42
|
+
* before a qualified function name.
|
|
43
|
+
*/
|
|
44
|
+
export declare const EXPRESSION_PUNCTUATION: ReadonlySet<string>;
|
|
35
45
|
/**
|
|
36
46
|
* Code SQL Server may split into tokens differently from the lexer, described for an
|
|
37
47
|
* error message, or `undefined`. Text inside strings and quoted identifiers is not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsql-batch.d.ts","sourceRoot":"","sources":["../../src/sql/tsql-batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"tsql-batch.d.ts","sourceRoot":"","sources":["../../src/sql/tsql-batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAMlD,CAAC;AAQH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAA8F,CAAC;AAatJ;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,GAAG,SAAS,CA6BlG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,qBAAqB,GAAG,SAAS,CA8HxG"}
|
package/dist/sql/tsql-batch.js
CHANGED
|
@@ -3,7 +3,7 @@ import { SQLSERVER_RESERVED_WORDS } from "./reserved-words.js";
|
|
|
3
3
|
* Reserved words after which an expression or a subquery follows, so a `(SELECT …`
|
|
4
4
|
* after one of them is a subquery. Each is reserved in T-SQL, so none is an alias.
|
|
5
5
|
*/
|
|
6
|
-
const EXPRESSION_KEYWORDS = new Set([
|
|
6
|
+
export const EXPRESSION_KEYWORDS = new Set([
|
|
7
7
|
"select", "distinct", "all", "any", "some", "top", "percent",
|
|
8
8
|
"from", "join", "where", "on", "having", "by",
|
|
9
9
|
"and", "or", "not", "in", "exists", "like", "between", "escape",
|
|
@@ -19,7 +19,7 @@ const RESERVED_FUNCTIONS = new Set([
|
|
|
19
19
|
* Punctuation an expression may follow: `(`, a comma, an operator, and `.` or `::`
|
|
20
20
|
* before a qualified function name.
|
|
21
21
|
*/
|
|
22
|
-
const EXPRESSION_PUNCTUATION = new Set(["(", ",", "=", "<", ">", "+", "-", "*", "/", "%", "&", "|", "^", "~", ".", "::"]);
|
|
22
|
+
export const EXPRESSION_PUNCTUATION = new Set(["(", ",", "=", "<", ">", "+", "-", "*", "/", "%", "&", "|", "^", "~", ".", "::"]);
|
|
23
23
|
const RESERVED = new Set(SQLSERVER_RESERVED_WORDS);
|
|
24
24
|
const SET_OPERATORS = new Set(["union", "except", "intersect"]);
|
|
25
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsql-batch.js","sourceRoot":"","sources":["../../src/sql/tsql-batch.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY/D;;;GAGG;AACH,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"tsql-batch.js","sourceRoot":"","sources":["../../src/sql/tsql-batch.ts"],"names":[],"mappings":"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"}
|
package/dist/sql/validate.d.ts
CHANGED
|
@@ -17,9 +17,17 @@ import { type DialectSpec } from "./dialect-spec.js";
|
|
|
17
17
|
* 6. `SQL_MULTI_STATEMENT`, SQL Server lexer only (so also for a dialect id that is no
|
|
18
18
|
* built-in engine) — a second statement written without `;`, which T-SQL doesn't
|
|
19
19
|
* need, or code SQL Server may split differently from the lexer (see `tsql-batch.ts`).
|
|
20
|
-
* 7. `
|
|
20
|
+
* 7. `SQL_LOCKING_READ` — a locking read, at any depth: `FOR UPDATE`, `FOR NO KEY UPDATE`,
|
|
21
|
+
* `FOR SHARE`, `FOR KEY SHARE` or `LOCK IN SHARE MODE` on every lexer, and on the SQL Server
|
|
22
|
+
* lexer a lock hint such as `UPDLOCK` or `HOLDLOCK` unquoted anywhere, or quoted alone in
|
|
23
|
+
* parentheses right after a name, at any depth and with trailing spaces, and any such name
|
|
24
|
+
* that isn't printable ASCII, which SQL Server may read as a hint (#319).
|
|
25
|
+
* 8. `SQL_UNICODE_ESCAPED_IDENTIFIER`, Postgres lexer only (postgres, cockroachdb, and a
|
|
26
|
+
* dialect id that is no built-in engine) — a `U&"…"` identifier, whose escapes could spell
|
|
27
|
+
* a blocked function or a sensitive column that the later checks match by name (#692).
|
|
28
|
+
* 9. `SQL_FORBIDDEN_KEYWORD` — an unquoted keyword from the shared denylist or the
|
|
21
29
|
* dialect's `extraForbiddenKeywords`.
|
|
22
|
-
*
|
|
30
|
+
* 10. `SQL_FORBIDDEN_FUNCTION` — a call (`name(`) to a function in the dialect's
|
|
23
31
|
* `blockedFunctions` (side-effecting or file/network/sleep functions).
|
|
24
32
|
*
|
|
25
33
|
* Then the dialect's `extraValidate` runs on the statement without its trailing `;`.
|
|
@@ -35,9 +43,22 @@ export declare function validateSelectSql(dialect: DialectSpec, sql: string): st
|
|
|
35
43
|
/**
|
|
36
44
|
* The words `validateSelectSql` rejects unquoted for a dialect, lowercase: the shared denylist
|
|
37
45
|
* and the spec's `extraForbiddenKeywords`, plus every built-in spec's for an id that is no
|
|
38
|
-
* built-in engine family
|
|
46
|
+
* built-in engine family, and T-SQL's lock hints wherever the SQL Server lexer runs. The
|
|
47
|
+
* NL→SQL prompt quotes names in this set.
|
|
39
48
|
*/
|
|
40
49
|
export declare function keywordsRejectedUnquoted(dialect: Pick<DialectSpec, "id" | "backslashEscapes" | "extraForbiddenKeywords">): Set<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Whether `validateSelectSql` runs the SQL Server lexer, and so the T-SQL hint checks, for a
|
|
52
|
+
* dialect: `sqlserver`, and an id that is no built-in engine family, which is checked every
|
|
53
|
+
* engine's way. The NL→SQL prompt follows it (#319).
|
|
54
|
+
*/
|
|
55
|
+
export declare function checkedAsTsql(dialect: Pick<DialectSpec, "id" | "backslashEscapes">): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The `SQL_FORBIDDEN_KEYWORD` denylist: the shared list and the spec's `extraForbiddenKeywords`,
|
|
58
|
+
* plus every built-in spec's for an id that is no built-in engine family. The tenant check reads
|
|
59
|
+
* SQL Server's as the verbs that start a T-SQL statement with no `;` before it.
|
|
60
|
+
*/
|
|
61
|
+
export declare function denylistFor(dialect: Pick<DialectSpec, "id" | "backslashEscapes" | "extraForbiddenKeywords">): Set<string>;
|
|
41
62
|
/** Explanation of guardrails satisfied by a string already passing {@link validateSelectSql}. */
|
|
42
63
|
export type SelectGuardrailExplain = {
|
|
43
64
|
statementKind: "select" | "with";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0CxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAyB3E;AAoID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB,CAAC,GAC/E,GAAG,CAAC,MAAM,CAAC,CAIb;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,kBAAkB,CAAC,GAAG,OAAO,CAG5F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAIzH;AA2GD,iGAAiG;AACjG,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAkB5F"}
|
package/dist/sql/validate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SqlValidationError } from "../errors.js";
|
|
2
2
|
import { BUILT_IN_DIALECTS } from "./dialect-spec.js";
|
|
3
|
-
import { ENGINE_LEXER_PROFILES, GENERIC_LEXER, lexSql, lexerProfileFor, } from "./lexer.js";
|
|
3
|
+
import { ENGINE_LEXER_PROFILES, findUnicodeEscapedIdentifier, GENERIC_LEXER, lexSql, lexerProfileFor, } from "./lexer.js";
|
|
4
4
|
import { findAmbiguousTsqlText, findTsqlStatementBoundary } from "./tsql-batch.js";
|
|
5
5
|
/**
|
|
6
6
|
* Keywords rejected in every dialect. Matched against unquoted word tokens only, so
|
|
@@ -48,9 +48,17 @@ function validationError(rule, summary, hint) {
|
|
|
48
48
|
* 6. `SQL_MULTI_STATEMENT`, SQL Server lexer only (so also for a dialect id that is no
|
|
49
49
|
* built-in engine) — a second statement written without `;`, which T-SQL doesn't
|
|
50
50
|
* need, or code SQL Server may split differently from the lexer (see `tsql-batch.ts`).
|
|
51
|
-
* 7. `
|
|
51
|
+
* 7. `SQL_LOCKING_READ` — a locking read, at any depth: `FOR UPDATE`, `FOR NO KEY UPDATE`,
|
|
52
|
+
* `FOR SHARE`, `FOR KEY SHARE` or `LOCK IN SHARE MODE` on every lexer, and on the SQL Server
|
|
53
|
+
* lexer a lock hint such as `UPDLOCK` or `HOLDLOCK` unquoted anywhere, or quoted alone in
|
|
54
|
+
* parentheses right after a name, at any depth and with trailing spaces, and any such name
|
|
55
|
+
* that isn't printable ASCII, which SQL Server may read as a hint (#319).
|
|
56
|
+
* 8. `SQL_UNICODE_ESCAPED_IDENTIFIER`, Postgres lexer only (postgres, cockroachdb, and a
|
|
57
|
+
* dialect id that is no built-in engine) — a `U&"…"` identifier, whose escapes could spell
|
|
58
|
+
* a blocked function or a sensitive column that the later checks match by name (#692).
|
|
59
|
+
* 9. `SQL_FORBIDDEN_KEYWORD` — an unquoted keyword from the shared denylist or the
|
|
52
60
|
* dialect's `extraForbiddenKeywords`.
|
|
53
|
-
*
|
|
61
|
+
* 10. `SQL_FORBIDDEN_FUNCTION` — a call (`name(`) to a function in the dialect's
|
|
54
62
|
* `blockedFunctions` (side-effecting or file/network/sleep functions).
|
|
55
63
|
*
|
|
56
64
|
* Then the dialect's `extraValidate` runs on the statement without its trailing `;`.
|
|
@@ -69,7 +77,7 @@ export function validateSelectSql(dialect, sql) {
|
|
|
69
77
|
}
|
|
70
78
|
const profile = lexerProfileFor(dialect);
|
|
71
79
|
let tokens;
|
|
72
|
-
const keywords =
|
|
80
|
+
const keywords = denylistFor(dialect);
|
|
73
81
|
if (profile) {
|
|
74
82
|
tokens = checkWithProfile(trimmed, profile, keywords, blockedFunctionsFor(dialect));
|
|
75
83
|
}
|
|
@@ -125,16 +133,29 @@ function checkWithProfile(sql, profile, keywords, functions) {
|
|
|
125
133
|
throw validationError("SQL_MULTI_STATEMENT", `Multiple SQL statements are not allowed: T-SQL needs no semicolon between statements, so ${what} starts a second statement.`, "Ask for a single SELECT (WITH … SELECT allowed). Combine results with UNION, a CTE, or a subquery after an operator, a comma, or a keyword such as IN, EXISTS, FROM or APPLY.");
|
|
126
134
|
}
|
|
127
135
|
}
|
|
136
|
+
const locking = findLockingRead(tokens, profile);
|
|
137
|
+
if (locking) {
|
|
138
|
+
throw validationError("SQL_LOCKING_READ", `Locking reads are not allowed: generated SQL uses ${locking}.`, "A locking read can hold locks that other sessions wait on until the host's transaction ends. Regenerate as a plain SELECT, without FOR UPDATE, FOR SHARE, LOCK IN SHARE MODE or a SQL Server lock hint such as UPDLOCK or HOLDLOCK. On SQL Server, quote a name that isn't plain ASCII ([Größe]), and qualify it when it's the only thing inside parentheses (COUNT(t.[Größe])).");
|
|
139
|
+
}
|
|
140
|
+
if (profile.id === "postgres") {
|
|
141
|
+
const escaped = findUnicodeEscapedIdentifier(tokens);
|
|
142
|
+
if (escaped) {
|
|
143
|
+
throw validationError("SQL_UNICODE_ESCAPED_IDENTIFIER", `Unicode-escaped identifiers are not allowed: generated SQL uses ${escaped}.`, `Write the name in plain double quotes ("Größe"), or unquoted. A U&"…" name can spell a blocked function or a sensitive column with escapes the other checks don't decode.`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
128
146
|
for (const t of tokens) {
|
|
129
147
|
if (t.kind === "word" && keywords.has(t.lower)) {
|
|
130
148
|
throw validationError("SQL_FORBIDDEN_KEYWORD", `Forbidden keyword in generated SQL: ${t.lower.toUpperCase()}.`, `Matched whole-word guardrail keyword "${t.lower}". This build allows read-only SELECT shape only; DDL/DML, SELECT … INTO, and similar verbs are rejected.`);
|
|
131
149
|
}
|
|
132
150
|
}
|
|
133
151
|
tokens.forEach((t, idx) => {
|
|
134
|
-
|
|
152
|
+
// A `:name` parameter token counts too: before `(` it's no placeholder, and in an array slice
|
|
153
|
+
// (`[1:set_config(…)]`) Postgres reads the `:` as the separator and the rest as a call.
|
|
154
|
+
const colonName = t.kind === "parameter" && t.text.startsWith(":");
|
|
155
|
+
const nameLike = t.kind === "word" || t.kind === "quoted_identifier" || (t.kind === "string" && t.quote === '"') || colonName;
|
|
135
156
|
if (!nameLike)
|
|
136
157
|
return;
|
|
137
|
-
const name = t.kind === "string" ? t.text.slice(1, -1).toLowerCase() : t.lower;
|
|
158
|
+
const name = t.kind === "string" ? t.text.slice(1, -1).toLowerCase() : colonName ? t.lower.slice(1) : t.lower;
|
|
138
159
|
if (functions.has(name) && isPunct(tokens[idx + 1], "(")) {
|
|
139
160
|
throw validationError("SQL_FORBIDDEN_FUNCTION", `Forbidden function in generated SQL: ${name}().`, `"${name}" has side effects (writes, file or network access, sleeping, session changes) and is blocked for this dialect. Remove the call.`);
|
|
140
161
|
}
|
|
@@ -144,18 +165,37 @@ function checkWithProfile(sql, profile, keywords, functions) {
|
|
|
144
165
|
/**
|
|
145
166
|
* The words `validateSelectSql` rejects unquoted for a dialect, lowercase: the shared denylist
|
|
146
167
|
* and the spec's `extraForbiddenKeywords`, plus every built-in spec's for an id that is no
|
|
147
|
-
* built-in engine family
|
|
168
|
+
* built-in engine family, and T-SQL's lock hints wherever the SQL Server lexer runs. The
|
|
169
|
+
* NL→SQL prompt quotes names in this set.
|
|
148
170
|
*/
|
|
149
171
|
export function keywordsRejectedUnquoted(dialect) {
|
|
150
|
-
const
|
|
172
|
+
const words = denylistFor(dialect);
|
|
173
|
+
if (checkedAsTsql(dialect))
|
|
174
|
+
for (const hint of TSQL_LOCK_HINTS)
|
|
175
|
+
words.add(hint);
|
|
176
|
+
return words;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Whether `validateSelectSql` runs the SQL Server lexer, and so the T-SQL hint checks, for a
|
|
180
|
+
* dialect: `sqlserver`, and an id that is no built-in engine family, which is checked every
|
|
181
|
+
* engine's way. The NL→SQL prompt follows it (#319).
|
|
182
|
+
*/
|
|
183
|
+
export function checkedAsTsql(dialect) {
|
|
184
|
+
const profile = lexerProfileFor(dialect);
|
|
185
|
+
return !profile || profile.id === "sqlserver";
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The `SQL_FORBIDDEN_KEYWORD` denylist: the shared list and the spec's `extraForbiddenKeywords`,
|
|
189
|
+
* plus every built-in spec's for an id that is no built-in engine family. The tenant check reads
|
|
190
|
+
* SQL Server's as the verbs that start a T-SQL statement with no `;` before it.
|
|
191
|
+
*/
|
|
192
|
+
export function denylistFor(dialect) {
|
|
193
|
+
const keywords = new Set([...BASE_FORBIDDEN, ...(dialect.extraForbiddenKeywords ?? [])].map((w) => w.toLowerCase()));
|
|
151
194
|
if (!lexerProfileFor(dialect))
|
|
152
195
|
for (const word of allBuiltInKeywords())
|
|
153
196
|
keywords.add(word.toLowerCase());
|
|
154
197
|
return keywords;
|
|
155
198
|
}
|
|
156
|
-
function forbiddenKeywordsFor(dialect) {
|
|
157
|
-
return new Set([...BASE_FORBIDDEN, ...(dialect.extraForbiddenKeywords ?? [])].map((w) => w.toLowerCase()));
|
|
158
|
-
}
|
|
159
199
|
function blockedFunctionsFor(dialect) {
|
|
160
200
|
return new Set((dialect.blockedFunctions ?? []).map((w) => w.toLowerCase()));
|
|
161
201
|
}
|
|
@@ -165,6 +205,77 @@ function allBuiltInKeywords() {
|
|
|
165
205
|
function allBuiltInFunctions() {
|
|
166
206
|
return Object.values(BUILT_IN_DIALECTS).flatMap((d) => [...(d.blockedFunctions ?? [])]);
|
|
167
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Locking clauses, as the unquoted words they are written with: Postgres and CockroachDB
|
|
210
|
+
* `FOR UPDATE`, `FOR NO KEY UPDATE`, `FOR SHARE`, `FOR KEY SHARE`; MySQL and MariaDB
|
|
211
|
+
* `FOR UPDATE`, `FOR SHARE` (MySQL), `LOCK IN SHARE MODE`. Matched on every lexer, at any
|
|
212
|
+
* depth, because the engines allow them in subqueries and CTEs (#319).
|
|
213
|
+
*/
|
|
214
|
+
const LOCKING_CLAUSES = [
|
|
215
|
+
["for", "update"],
|
|
216
|
+
["for", "no", "key", "update"],
|
|
217
|
+
["for", "share"],
|
|
218
|
+
["for", "key", "share"],
|
|
219
|
+
["lock", "in", "share", "mode"],
|
|
220
|
+
];
|
|
221
|
+
/**
|
|
222
|
+
* T-SQL table hints that take or hold locks. Matched as unquoted words anywhere on the SQL
|
|
223
|
+
* Server lexer, because SQL Server also takes them without `WITH` (`FROM t (UPDLOCK)`), and
|
|
224
|
+
* quoted when one stands alone in parentheses right after a name, at any depth and with trailing
|
|
225
|
+
* spaces, which SQL Server also reads as the hint (`FROM t ([UPDLOCK])`, `t (("UPDLOCK "))`).
|
|
226
|
+
* SQL Server 2022 refused quoted hints in other positions: inside `WITH`, in a list, and after an
|
|
227
|
+
* alias or a function call.
|
|
228
|
+
* `NOLOCK`, `READUNCOMMITTED`, `READPAST`, `READCOMMITTEDLOCK` and `NOWAIT` stay allowed.
|
|
229
|
+
*/
|
|
230
|
+
const TSQL_LOCK_HINTS = new Set([
|
|
231
|
+
"updlock", "xlock", "holdlock", "paglock", "tablock", "tablockx", "rowlock", "serializable", "repeatableread",
|
|
232
|
+
]);
|
|
233
|
+
/** The first locking clause or T-SQL lock hint in the SQL, uppercase (`FOR SHARE`), or undefined. */
|
|
234
|
+
function findLockingRead(tokens, profile) {
|
|
235
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
236
|
+
const t = tokens[i];
|
|
237
|
+
const hint = profile.id === "sqlserver" ? tsqlLockHint(tokens, i) : undefined;
|
|
238
|
+
if (hint)
|
|
239
|
+
return hint;
|
|
240
|
+
if (t.kind !== "word")
|
|
241
|
+
continue;
|
|
242
|
+
for (const clause of LOCKING_CLAUSES) {
|
|
243
|
+
if (clause.every((word, k) => tokens[i + k]?.kind === "word" && tokens[i + k].lower === word)) {
|
|
244
|
+
return clause.join(" ").toUpperCase();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return undefined;
|
|
249
|
+
}
|
|
250
|
+
/** Printable ASCII: the only spellings the hint check can match by name. */
|
|
251
|
+
const PRINTABLE_ASCII = /^[\x20-\x7e]*$/;
|
|
252
|
+
/**
|
|
253
|
+
* What makes token `i` a lock hint, or undefined: an unquoted word, or a quoted name alone in
|
|
254
|
+
* parentheses after a name, that spells a hint or isn't printable ASCII. SQL Server compares
|
|
255
|
+
* hint names loosely: it ignores some characters (U+FEFF, U+200D, `Ș`) and reads others as
|
|
256
|
+
* ASCII letters (`ʟ` as L), so only a printable-ASCII name can be checked by its spelling.
|
|
257
|
+
*/
|
|
258
|
+
function tsqlLockHint(tokens, i) {
|
|
259
|
+
const t = tokens[i];
|
|
260
|
+
const quoted = t.kind === "quoted_identifier";
|
|
261
|
+
if (!(t.kind === "word" || (quoted && isLoneQuotedHint(tokens, i))))
|
|
262
|
+
return undefined;
|
|
263
|
+
if (!PRINTABLE_ASCII.test(t.value)) {
|
|
264
|
+
return `the ${quoted ? "quoted name" : "unquoted name"} ${t.text}, which SQL Server may read as a lock hint`;
|
|
265
|
+
}
|
|
266
|
+
// SQL Server ignores trailing spaces when it compares a quoted name, so `[UPDLOCK ]` is the hint.
|
|
267
|
+
// Past the ASCII check, a space is the only whitespace left, so `trimEnd()` strips just those.
|
|
268
|
+
const name = quoted ? t.lower.trimEnd() : t.lower;
|
|
269
|
+
return TSQL_LOCK_HINTS.has(name) ? `the table hint ${name.toUpperCase()}` : undefined;
|
|
270
|
+
}
|
|
271
|
+
/** `name ( [hint] )` or `name (( [hint] ))`: a quoted identifier alone in parentheses right after a name. */
|
|
272
|
+
function isLoneQuotedHint(tokens, i) {
|
|
273
|
+
let depth = 1;
|
|
274
|
+
while (isPunct(tokens[i - depth], "(") && isPunct(tokens[i + depth], ")"))
|
|
275
|
+
depth++;
|
|
276
|
+
const before = tokens[i - depth];
|
|
277
|
+
return depth > 1 && (before?.kind === "word" || before?.kind === "quoted_identifier");
|
|
278
|
+
}
|
|
168
279
|
function isPunct(t, text) {
|
|
169
280
|
return t?.kind === "punct" && t.text === text;
|
|
170
281
|
}
|
|
@@ -196,6 +307,7 @@ export function buildSelectGuardrailExplanation(validatedSql) {
|
|
|
196
307
|
"single_statement",
|
|
197
308
|
"no_line_or_block_comments",
|
|
198
309
|
"leading_select_or_with",
|
|
310
|
+
"no_locking_reads",
|
|
199
311
|
"no_blocked_write_or_ddl_keywords",
|
|
200
312
|
"no_blocked_side_effect_functions",
|
|
201
313
|
],
|
package/dist/sql/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/core",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "AskDB core:
|
|
3
|
+
"version": "1.0.0-beta.47",
|
|
4
|
+
"description": "AskDB core: NL→SQL pipeline with the built-in SQL dialects. Provides ask() orchestration, schema/IR types, modes, logging, and retrieval input. Pass a dialect id such as \"postgres\" and bring your own model.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
7
7
|
"nl-to-sql",
|