@webda/ql 4.0.0-beta.1

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.
@@ -0,0 +1,199 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import * as WebdaQL from "./query.js";
10
+ const targets = [
11
+ {
12
+ test: {
13
+ attr1: "plop"
14
+ },
15
+ attr2: "OK",
16
+ attr3: 13,
17
+ attr4: "ok",
18
+ attr5: ["test", "plip"]
19
+ }
20
+ ];
21
+ let QueryTest = class QueryTest {
22
+ dev() {
23
+ let queryMap = {
24
+ "a = 1 AND b = 2 AND c = 3 AND d = 4": "a = 1 AND b = 2 AND c = 3 AND d = 4",
25
+ "a = 1 AND (b = 2 AND c = 3) AND d = 4": "a = 1 AND b = 2 AND c = 3 AND d = 4",
26
+ "a = 1 AND ((b = 2 AND c = 3) AND d = 4)": "a = 1 AND b = 2 AND c = 3 AND d = 4",
27
+ "a = 1 AND ((b = 2 OR c = 3) AND d = 4)": "a = 1 AND ( b = 2 OR c = 3 ) AND d = 4",
28
+ "a = 1 AND (b = 2) AND c = 3 AND d = 4": "a = 1 AND b = 2 AND c = 3 AND d = 4",
29
+ "a = 1 OR b = 2 OR c = 3 OR d = 4": "a = 1 OR b = 2 OR c = 3 OR d = 4",
30
+ 'a = 1 AND (b = 2 OR c = 3) AND d = "plop"': 'a = 1 AND ( b = 2 OR c = 3 ) AND d = "plop"',
31
+ "a = 1 OR b = TRUE AND c = FALSE OR d = 'plop'": 'a = 1 OR ( b = TRUE AND c = FALSE ) OR d = "plop"',
32
+ "test.attr1 = 'plop'": true,
33
+ "test.attr1 = 'plop2'": false,
34
+ "test.attr1 = 'plop' AND attr2 IN ['TEST', TRUE, 3]": 'test.attr1 = "plop" AND attr2 IN ["TEST", TRUE, 3]',
35
+ "(test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK']) OR attr3 <= 12": null,
36
+ "test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK'] OR attr3 <= 12 AND attr4 = 'ok'": null,
37
+ "test.attr1 = 'plop' AND (attr2 IN ['TEST', 'OK'] OR attr3 <= 12) AND attr4 = 'ok'": null,
38
+ "test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK'] AND attr3 <= 12 AND attr4 = 'ok'": null,
39
+ "a = 1 OR b = 2": null,
40
+ "a = 1 AND b = 2 OR c = 3 AND d = 4": null,
41
+ "a = 1 AND b = 2 OR c = 3 AND d = 4 OR e = 5 AND f = 6": null,
42
+ "a = 1 AND (b = 2 OR (c = 3 AND (d = 4 OR e = 5))) AND f = 6": null,
43
+ "": true,
44
+ 'test.attr1 LIKE "pl_p"': true,
45
+ 'test.attr1 LIKE "pl__p"': false,
46
+ 'attr3 LIKE "1_"': true,
47
+ "attr3 >= 12": true,
48
+ "attr3 <= 12": false,
49
+ "attr3 != 12": true,
50
+ "attr3 > 12": true,
51
+ "attr3 < 13": false,
52
+ "attr5 CONTAINS 'test'": true,
53
+ "attr5 CONTAINS 'test2'": false,
54
+ 'test.attr1 LIKE "pl%"': true,
55
+ "a = 1 AND b=2 OR a=1 AND b=3": "( a = 1 AND b = 2 ) OR ( a = 1 AND b = 3 )", // TODO Might want to auto-simplify to a = 1 AND b IN [2,3]
56
+ "a = 1 ORDER BY a": null,
57
+ "a = 1 ORDER BY a DESC, b ASC": null,
58
+ "(attr3 >= 12)": true
59
+ };
60
+ for (let query in queryMap) {
61
+ const validator = new WebdaQL.QueryValidator(query);
62
+ assert.strictEqual(validator.displayTree().replace(/\s/g, ""), query.replace(/\s/g, ""));
63
+ if (typeof queryMap[query] === "string") {
64
+ assert.strictEqual(validator.getExpression().toString(), queryMap[query], `Failed optimization of query: ${query} => ${validator.getExpression().toString()}`);
65
+ }
66
+ else if (typeof queryMap[query] === "boolean") {
67
+ assert.strictEqual(validator.eval(targets[0]), queryMap[query], `Failed query: ${query}`);
68
+ }
69
+ else {
70
+ console.log("QUERY", query);
71
+ console.log("OPTIMIZED QUERY", validator.getExpression().toString(), "=>", validator.eval(targets[0]));
72
+ }
73
+ }
74
+ }
75
+ prependQuery() {
76
+ assert.strictEqual(WebdaQL.PrependCondition("", "test='plop'"), "test='plop'");
77
+ assert.strictEqual(WebdaQL.PrependCondition("test='plop'", ""), "test='plop'");
78
+ assert.strictEqual(WebdaQL.PrependCondition("test='plip'", "test='plop'"), "(test='plop') AND (test='plip')");
79
+ assert.strictEqual(WebdaQL.PrependCondition("ORDER BY test", "test='plop'"), "test='plop' ORDER BY test");
80
+ assert.strictEqual(WebdaQL.PrependCondition("ORDER BY test LIMIT 100", "test='plop'"), "test='plop' ORDER BY test LIMIT 100");
81
+ assert.strictEqual(WebdaQL.PrependCondition("ORDER BY test DESC LIMIT 100", "test='plop'"), "test='plop' ORDER BY test DESC LIMIT 100");
82
+ assert.strictEqual(WebdaQL.PrependCondition("test='plip' ORDER BY test ASC LIMIT 100", "test='plop'"), "(test='plop') AND (test='plip') ORDER BY test ASC LIMIT 100");
83
+ assert.strictEqual(WebdaQL.PrependCondition("test='plip' LIMIT 100", "test='plop'"), "(test='plop') AND (test='plip') LIMIT 100");
84
+ assert.strictEqual(WebdaQL.PrependCondition("test='plip' OFFSET 'test'", "test='plop'"), "(test='plop') AND (test='plip') OFFSET 'test'");
85
+ assert.strictEqual(WebdaQL.PrependCondition("test='ORDER BY plop' OFFSET 'test'", "test='plop'"), "(test='plop') AND (test='ORDER BY plop') OFFSET 'test'");
86
+ assert.strictEqual(WebdaQL.PrependCondition('test="ORDER BY plop" LIMIT 100', "test='plop'"), "(test='plop') AND (test=\"ORDER BY plop\") LIMIT 100");
87
+ }
88
+ likeRegexp() {
89
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("test"), /test/);
90
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("t_est"), /t.{1}est/);
91
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("_test"), /.{1}test/);
92
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("t\\_est"), /t_est/);
93
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("t%est"), /t.*est/);
94
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("%te?st"), /.*te\?st/);
95
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("t\\%est"), /t%est/);
96
+ assert.deepStrictEqual(WebdaQL.ComparisonExpression.likeToRegex("t\\eest"), /t\\est/);
97
+ }
98
+ simple() {
99
+ assert.strictEqual(new WebdaQL.QueryValidator("test.attr1 = 'plop'").eval(targets[0]), true);
100
+ assert.strictEqual(new WebdaQL.QueryValidator("test.attr1 = 'plop2'").eval(targets[0]), false);
101
+ }
102
+ contains() {
103
+ assert.strictEqual(new WebdaQL.QueryValidator("test.attr1 CONTAINS 'plop2'").eval(targets[0]), false);
104
+ }
105
+ andQuery() {
106
+ assert.strictEqual(new WebdaQL.QueryValidator("test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK']").eval(targets[0]), true);
107
+ }
108
+ orQuery() {
109
+ new WebdaQL.QueryValidator("(test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK']) OR attr3 <= 12").eval(targets[0]);
110
+ }
111
+ multipleQuery() {
112
+ new WebdaQL.QueryValidator("test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK'] OR attr3 <= 12 AND attr4 = 'ok'").eval(targets[0]);
113
+ new WebdaQL.QueryValidator("test.attr1 = 'plop' AND attr2 IN ['TEST', 'OK'] AND attr3 <= 12 AND attr4 = 'ok'").eval(targets[0]);
114
+ }
115
+ unsanitize() {
116
+ assert.strictEqual(WebdaQL.unsanitize("test.attr1 &lt; 12 AND attr2 &gt; 13"), "test.attr1 < 12 AND attr2 > 13");
117
+ }
118
+ limitOffset() {
119
+ let val = new WebdaQL.QueryValidator('LIMIT 10 OFFSET "pl"');
120
+ // getQuery
121
+ val.getQuery();
122
+ assert.strictEqual(val.getLimit(), 10);
123
+ assert.strictEqual(val.getOffset(), "pl");
124
+ val = new WebdaQL.QueryValidator('OFFSET "pl2"');
125
+ assert.strictEqual(val.getLimit(), 1000);
126
+ assert.strictEqual(val.getOffset(), "pl2");
127
+ }
128
+ badQuery() {
129
+ assert.throws(() => new WebdaQL.QueryValidator("test lo 'plop'").eval(targets[0]));
130
+ }
131
+ setters() {
132
+ let target = {};
133
+ new WebdaQL.SetterValidator('i = 10 AND j = "12"').eval(target);
134
+ assert.strictEqual(target.i, 10);
135
+ assert.strictEqual(target.j, "12");
136
+ target = {};
137
+ new WebdaQL.SetterValidator("").eval(target);
138
+ assert.strictEqual(Object.keys(target).length, 0);
139
+ new WebdaQL.SetterValidator('test.i = 10 AND j.k.l = "12"').eval(target);
140
+ assert.strictEqual(target.test.i, 10);
141
+ assert.strictEqual(target.j.k.l, "12");
142
+ target = {};
143
+ new WebdaQL.SetterValidator("test.__proto__.test = 10").eval(target);
144
+ assert.strictEqual(target.__proto__.test, undefined);
145
+ assert.throws(() => new WebdaQL.SetterValidator('i = 10 OR j = "12"').eval(target), SyntaxError);
146
+ assert.throws(() => new WebdaQL.SetterValidator('i > 10 AND j = "12"').eval(target), SyntaxError);
147
+ }
148
+ partialValidator() {
149
+ let validator = new WebdaQL.PartialValidator("attr1 = 'plop' AND attr2 = 'ok'");
150
+ assert.ok(validator.eval({ attr1: "plop" }));
151
+ assert.ok(validator.wasPartialMatch());
152
+ assert.ok(!validator.eval({ attr1: "plop" }, false));
153
+ assert.ok(!validator.eval({ attr1: "plop2" }));
154
+ assert.ok(new WebdaQL.PartialValidator("attr1 = 'plop' AND attr2 LIKE '?ok' AND attr3 IN ['test'] AND attr4 CONTAINS 'plop'").eval({ attr1: "plop" }));
155
+ }
156
+ };
157
+ __decorate([
158
+ test
159
+ ], QueryTest.prototype, "dev", null);
160
+ __decorate([
161
+ test
162
+ ], QueryTest.prototype, "prependQuery", null);
163
+ __decorate([
164
+ test
165
+ ], QueryTest.prototype, "likeRegexp", null);
166
+ __decorate([
167
+ test
168
+ ], QueryTest.prototype, "simple", null);
169
+ __decorate([
170
+ test
171
+ ], QueryTest.prototype, "contains", null);
172
+ __decorate([
173
+ test
174
+ ], QueryTest.prototype, "andQuery", null);
175
+ __decorate([
176
+ test
177
+ ], QueryTest.prototype, "orQuery", null);
178
+ __decorate([
179
+ test
180
+ ], QueryTest.prototype, "multipleQuery", null);
181
+ __decorate([
182
+ test
183
+ ], QueryTest.prototype, "unsanitize", null);
184
+ __decorate([
185
+ test
186
+ ], QueryTest.prototype, "limitOffset", null);
187
+ __decorate([
188
+ test
189
+ ], QueryTest.prototype, "badQuery", null);
190
+ __decorate([
191
+ test
192
+ ], QueryTest.prototype, "setters", null);
193
+ __decorate([
194
+ test
195
+ ], QueryTest.prototype, "partialValidator", null);
196
+ QueryTest = __decorate([
197
+ suite
198
+ ], QueryTest);
199
+ //# sourceMappingURL=query.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.spec.js","sourceRoot":"","sources":["../src/query.spec.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@webda/ql",
3
+ "version": "4.0.0-beta.1",
4
+ "description": "WebdaQL module",
5
+ "keywords": [
6
+ "webda"
7
+ ],
8
+ "author": "Remi Cattiau <remi@cattiau.com>",
9
+ "repository": "git://github.com/loopingz/webda.io.git",
10
+ "main": "lib/query.js",
11
+ "typings": "lib/query.d.ts",
12
+ "scripts": {
13
+ "build": "tsc-esm",
14
+ "grammar": "antlr4ts -visitor src/WebdaQLLexer.g4 src/WebdaQLParser.g4 && yarn run lint:fix",
15
+ "pretest": "npm run build",
16
+ "lint": "prettier --check src/**/*",
17
+ "lint:fix": "prettier --write src/**/*",
18
+ "test": "c8 mocha --recursive --exit --timeout=30000 'src/*.spec.ts'",
19
+ "test:debug": "mocha --recursive --exit --no-timeouts 'src/*.spec.ts'"
20
+ },
21
+ "devDependencies": {
22
+ "@testdeck/mocha": "^0.3.2",
23
+ "@types/node": "18.11.13",
24
+ "@webda/tsc-esm": "^4.0.0-beta.1",
25
+ "antlr4ts-cli": "^0.5.0-alpha.4",
26
+ "c8": "^9.0.0",
27
+ "mocha": "^10.0.0",
28
+ "prettier": "^3.0.0",
29
+ "sinon": "^17.0.0",
30
+ "ts-node": "^10.1.0",
31
+ "typescript": "~5.5.4"
32
+ },
33
+ "files": [
34
+ "lib"
35
+ ],
36
+ "c8": {
37
+ "report-dir": "./reports",
38
+ "reporter": [
39
+ "html",
40
+ "lcov",
41
+ "json",
42
+ "text"
43
+ ],
44
+ "exclude": [
45
+ "**/*.spec.ts",
46
+ "src/WebdaQL*"
47
+ ],
48
+ "excludeNodeModules": true
49
+ },
50
+ "homepage": "https://webda.io",
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "nx": {
55
+ "implicitDependencies": [
56
+ "@webda/workout"
57
+ ]
58
+ },
59
+ "webda": {
60
+ "namespace": "Webda"
61
+ },
62
+ "type": "module",
63
+ "engines": {
64
+ "node": ">=18.0.0"
65
+ },
66
+ "gitHead": "9f0c12d5e43b3484794b2a49c5701b8b9675c4a8"
67
+ }