@webda/content-mapper 4.0.0-beta.4 → 4.0.0-beta.6
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.
|
@@ -16,6 +16,13 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { SourceFile } from "typescript/unstable/ast";
|
|
18
18
|
import type { Generator } from "../plan.ts";
|
|
19
|
+
/**
|
|
20
|
+
* The statement keyword a query starts with, if any: `UPDATE.x = 1` or `DELETE = 1` are filters on fields named
|
|
21
|
+
* like a keyword
|
|
22
|
+
* @param query - the query text
|
|
23
|
+
* @returns DELETE, UPDATE or SELECT, undefined for a filter query
|
|
24
|
+
*/
|
|
25
|
+
export declare function statementHead(query: string): string | undefined;
|
|
19
26
|
/** Options for the WebdaQL generator. */
|
|
20
27
|
export interface QlValidatorOptions {
|
|
21
28
|
/**
|
|
@@ -33,7 +40,8 @@ export interface QlValidatorOptions {
|
|
|
33
40
|
*
|
|
34
41
|
* Deliberately syntactic: the compile-time check only needs the head of each
|
|
35
42
|
* comparison, and reusing the full query AST would tie this generator to the
|
|
36
|
-
* parser's shape.
|
|
43
|
+
* parser's shape. Statements are covered too: the fields of a `SELECT` list, and
|
|
44
|
+
* the targets of an `UPDATE SET` (written `field = value`, like a comparison).
|
|
37
45
|
* @param query - raw query text
|
|
38
46
|
* @returns referenced attribute heads
|
|
39
47
|
*/
|
|
@@ -48,6 +56,7 @@ export declare function qlValidatorGenerator(options?: QlValidatorOptions): Gene
|
|
|
48
56
|
export declare const WQL_CODES: {
|
|
49
57
|
UNKNOWN_ATTRIBUTE: number;
|
|
50
58
|
GRAMMAR_ERROR: number;
|
|
59
|
+
STATEMENT_NOT_ALLOWED: number;
|
|
51
60
|
};
|
|
52
61
|
export type { SourceFile };
|
|
53
62
|
//# sourceMappingURL=qlvalidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qlvalidator.d.ts","sourceRoot":"","sources":["../../src/generators/qlvalidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAyD,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"qlvalidator.d.ts","sourceRoot":"","sources":["../../src/generators/qlvalidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAyD,SAAS,EAAE,MAAM,YAAY,CAAC;AAiBnG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4ED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAa5D;AA2CD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,kBAAuB,GAAG,SAAS,CAqJhF;AAED,+DAA+D;AAC/D,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -5,8 +5,41 @@ const QL_MODULE = "@webda/ql";
|
|
|
5
5
|
const WQL_UNKNOWN_ATTRIBUTE = 9001;
|
|
6
6
|
/** Query text does not parse. */
|
|
7
7
|
const WQL_GRAMMAR_ERROR = 9002;
|
|
8
|
+
/** A DELETE / UPDATE / SELECT field list where a filter query is expected. */
|
|
9
|
+
const WQL_STATEMENT_NOT_ALLOWED = 9003;
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
11
|
+
* A statement head: DELETE, UPDATE or SELECT (keywords are uppercase only, so `delete = 1` is a filter)
|
|
12
|
+
*/
|
|
13
|
+
const STATEMENT_HEAD = /^\s*(DELETE|UPDATE|SELECT)(?=\s|$)(?!\s*(?:=|!=|<|>|IN\b|LIKE\b|CONTAINS\b|IS\b))/;
|
|
14
|
+
/**
|
|
15
|
+
* The statement keyword a query starts with, if any: `UPDATE.x = 1` or `DELETE = 1` are filters on fields named
|
|
16
|
+
* like a keyword
|
|
17
|
+
* @param query - the query text
|
|
18
|
+
* @returns DELETE, UPDATE or SELECT, undefined for a filter query
|
|
19
|
+
*/
|
|
20
|
+
export function statementHead(query) {
|
|
21
|
+
return STATEMENT_HEAD.exec(query)?.[1];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Whether a branded query parameter takes statements: `WebdaQLStatement<T>` (as `deleteMany` / `updateMany`),
|
|
25
|
+
* rather than the filter queries of `WebdaQLString<T>`
|
|
26
|
+
* @param ctx - analysis context
|
|
27
|
+
* @param type - the parameter type
|
|
28
|
+
* @returns true for a statement parameter
|
|
29
|
+
*/
|
|
30
|
+
function isStatementParameter(ctx, type) {
|
|
31
|
+
if (!type)
|
|
32
|
+
return false;
|
|
33
|
+
const aliasSymbol = type.getAliasSymbol?.() ?? type.aliasSymbol;
|
|
34
|
+
if (aliasSymbol?.name === "WebdaQLStatement")
|
|
35
|
+
return true;
|
|
36
|
+
if (type.isUnionOrIntersection?.()) {
|
|
37
|
+
return (type.types ?? []).some((member) => isStatementParameter(ctx, member));
|
|
38
|
+
}
|
|
39
|
+
return !!ctx.checker.getPropertyOfType(type, "__webdaQLStatement");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Unwrap `WebdaQLString<T>` or `WebdaQLStatement<T>` to `T`.
|
|
10
43
|
*
|
|
11
44
|
* The brand is an alias, so the alias arguments are checked first; a value that
|
|
12
45
|
* has flowed through a union keeps the brand as a property, which is the
|
|
@@ -19,7 +52,7 @@ function peelWebdaQLString(ctx, type) {
|
|
|
19
52
|
if (!type)
|
|
20
53
|
return undefined;
|
|
21
54
|
const aliasSymbol = type.getAliasSymbol?.() ?? type.aliasSymbol;
|
|
22
|
-
if (aliasSymbol?.name === "WebdaQLString") {
|
|
55
|
+
if (aliasSymbol?.name === "WebdaQLString" || aliasSymbol?.name === "WebdaQLStatement") {
|
|
23
56
|
const args = type.getAliasTypeArguments?.() ?? type.aliasTypeArguments;
|
|
24
57
|
if (args?.[0])
|
|
25
58
|
return args[0];
|
|
@@ -45,12 +78,28 @@ function queryableAttributes(ctx, type) {
|
|
|
45
78
|
.map((property) => property.name)
|
|
46
79
|
.filter((name) => typeof name === "string" && !name.startsWith("__"));
|
|
47
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Field list of a `SELECT f1, f2.g [WHERE ...]` statement: everything between `SELECT` and the first clause
|
|
83
|
+
* keyword (keywords are uppercase only, so a lowercase `where` is a field)
|
|
84
|
+
* @param query - raw query text
|
|
85
|
+
* @returns the raw field list, or undefined when the query is not a SELECT statement
|
|
86
|
+
*/
|
|
87
|
+
function selectFields(query) {
|
|
88
|
+
// Two linear scans instead of one lazy pattern, which backtracks quadratically on long runs of spaces
|
|
89
|
+
const head = /^\s*SELECT\s/.exec(query);
|
|
90
|
+
if (!head)
|
|
91
|
+
return undefined;
|
|
92
|
+
const rest = query.slice(head[0].length);
|
|
93
|
+
const end = rest.search(/\s(?:WHERE|ORDER BY|LIMIT|OFFSET)\b/);
|
|
94
|
+
return (end === -1 ? rest : rest.slice(0, end)).trim();
|
|
95
|
+
}
|
|
48
96
|
/**
|
|
49
97
|
* Attribute paths referenced by a query, as written.
|
|
50
98
|
*
|
|
51
99
|
* Deliberately syntactic: the compile-time check only needs the head of each
|
|
52
100
|
* comparison, and reusing the full query AST would tie this generator to the
|
|
53
|
-
* parser's shape.
|
|
101
|
+
* parser's shape. Statements are covered too: the fields of a `SELECT` list, and
|
|
102
|
+
* the targets of an `UPDATE SET` (written `field = value`, like a comparison).
|
|
54
103
|
* @param query - raw query text
|
|
55
104
|
* @returns referenced attribute heads
|
|
56
105
|
*/
|
|
@@ -61,6 +110,11 @@ export function referencedAttributes(query) {
|
|
|
61
110
|
if (!/^(AND|OR|NOT|TRUE|FALSE|IN|LIKE|IS|NULL)$/i.test(head))
|
|
62
111
|
names.add(head);
|
|
63
112
|
}
|
|
113
|
+
for (const field of selectFields(query)?.split(",") ?? []) {
|
|
114
|
+
const head = field.trim().split(".")[0];
|
|
115
|
+
if (head)
|
|
116
|
+
names.add(head);
|
|
117
|
+
}
|
|
64
118
|
return [...names];
|
|
65
119
|
}
|
|
66
120
|
/**
|
|
@@ -160,24 +214,25 @@ export function qlValidatorGenerator(options = {}) {
|
|
|
160
214
|
const target = peelWebdaQLString(ctx, parameterType);
|
|
161
215
|
if (!target)
|
|
162
216
|
return;
|
|
163
|
-
inspectArgument(argument, target);
|
|
217
|
+
inspectArgument(argument, target, isStatementParameter(ctx, parameterType));
|
|
164
218
|
});
|
|
165
219
|
}
|
|
166
220
|
/**
|
|
167
221
|
* Validate a query argument, rewriting template literals.
|
|
168
222
|
* @param argument - the argument expression
|
|
169
223
|
* @param target - the type attributes are checked against
|
|
224
|
+
* @param statement - whether the parameter takes statements
|
|
170
225
|
*/
|
|
171
|
-
function inspectArgument(argument, target) {
|
|
226
|
+
function inspectArgument(argument, target, statement) {
|
|
172
227
|
if (is.isStringLiteral(argument) || is.isNoSubstitutionTemplateLiteral(argument)) {
|
|
173
|
-
validateQuery(argument.text, argument, target);
|
|
228
|
+
validateQuery(argument.text, argument, target, statement);
|
|
174
229
|
return;
|
|
175
230
|
}
|
|
176
231
|
if (is.isTemplateExpression(argument)) {
|
|
177
232
|
// Static parts are validated with a placeholder standing in for each
|
|
178
233
|
// interpolation, so a hole cannot hide an unknown attribute.
|
|
179
234
|
const parts = [argument.head.text, ...argument.templateSpans.map((span) => span.literal.text)];
|
|
180
|
-
validateQuery(parts.join("?"), argument, target);
|
|
235
|
+
validateQuery(parts.join("?"), argument, target, statement);
|
|
181
236
|
const values = argument.templateSpans.map((span) => ctx.textOf(sf, span.expression)).join(", ");
|
|
182
237
|
const partsLiteral = parts.map(part => JSON.stringify(part)).join(", ");
|
|
183
238
|
edits.push({
|
|
@@ -194,10 +249,22 @@ export function qlValidatorGenerator(options = {}) {
|
|
|
194
249
|
* @param query - query text
|
|
195
250
|
* @param node - node used for diagnostic position
|
|
196
251
|
* @param target - the type attributes are checked against
|
|
252
|
+
* @param statement - whether the parameter takes statements
|
|
197
253
|
*/
|
|
198
|
-
function validateQuery(query, node, target) {
|
|
254
|
+
function validateQuery(query, node, target, statement) {
|
|
199
255
|
const start = node.getStart();
|
|
200
256
|
const length = node.end - start;
|
|
257
|
+
const head = statementHead(query);
|
|
258
|
+
if (head && !statement) {
|
|
259
|
+
diagnostics.push({
|
|
260
|
+
start,
|
|
261
|
+
length,
|
|
262
|
+
code: WQL_STATEMENT_NOT_ALLOWED,
|
|
263
|
+
messageText: head === "SELECT"
|
|
264
|
+
? "WebdaQL SELECT field lists are not accepted here: pass a filter query"
|
|
265
|
+
: `WebdaQL ${head} statements are not accepted here: use deleteMany / updateMany`
|
|
266
|
+
});
|
|
267
|
+
}
|
|
201
268
|
if (options.parse) {
|
|
202
269
|
try {
|
|
203
270
|
options.parse(query);
|
|
@@ -234,5 +301,9 @@ export function qlValidatorGenerator(options = {}) {
|
|
|
234
301
|
};
|
|
235
302
|
}
|
|
236
303
|
/** Re-exported so hosts can label diagnostics consistently. */
|
|
237
|
-
export const WQL_CODES = {
|
|
304
|
+
export const WQL_CODES = {
|
|
305
|
+
UNKNOWN_ATTRIBUTE: WQL_UNKNOWN_ATTRIBUTE,
|
|
306
|
+
GRAMMAR_ERROR: WQL_GRAMMAR_ERROR,
|
|
307
|
+
STATEMENT_NOT_ALLOWED: WQL_STATEMENT_NOT_ALLOWED
|
|
308
|
+
};
|
|
238
309
|
//# sourceMappingURL=qlvalidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qlvalidator.js","sourceRoot":"","sources":["../../src/generators/qlvalidator.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGjD,oDAAoD;AACpD,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,iCAAiC;AACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"qlvalidator.js","sourceRoot":"","sources":["../../src/generators/qlvalidator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/content-mapper",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.6",
|
|
4
4
|
"description": "Webda compile-time code generation as a TypeScript 7.1 content mapper",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"webda",
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
"codegen"
|
|
10
10
|
],
|
|
11
11
|
"author": "Remi Cattiau <remi@cattiau.com>",
|
|
12
|
-
"repository":
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/loopingz/webda.io.git",
|
|
15
|
+
"directory": "packages/content-mapper"
|
|
16
|
+
},
|
|
13
17
|
"main": "lib/index.js",
|
|
14
18
|
"typings": "lib/index.d.ts",
|
|
15
19
|
"exports": {
|