@cucumber/tag-expressions 2.0.4 → 4.1.0
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/.mocharc.json +6 -0
- package/README.md +0 -1
- package/default.mk +46 -28
- package/dist/src/{tag_expression_parser.d.ts → index.d.ts} +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/{tag_expression_parser.js → index.js} +56 -70
- package/dist/src/index.js.map +1 -0
- package/dist/test/tag_expression_parser_test.d.ts +1 -0
- package/dist/test/tag_expression_parser_test.d.ts.map +1 -0
- package/dist/test/tag_expression_parser_test.js +47 -18
- package/dist/test/tag_expression_parser_test.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +10 -20
- package/src/{tag_expression_parser.ts → index.ts} +10 -31
- package/test/tag_expression_parser_test.ts +41 -11
- package/tsconfig.build.json +11 -0
- package/tsconfig.json +1 -27
- package/.nycrc.json +0 -16
- package/.prettierrc +0 -5
- package/dist/src/tag_expression_parser.js.map +0 -1
- package/scripts/npm-link +0 -11
- package/test/mocha.opts +0 -5
- package/tslint.json +0 -23
package/.mocharc.json
ADDED
package/README.md
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://greenkeeper.io/)
|
|
4
4
|
|
|
5
|
-
[](https://travis-ci.org/cucumber/tag-expressions-javascript)
|
|
6
5
|
|
|
7
6
|
[The docs are here](https://cucumber.io/docs/cucumber/api/#tag-expressions).
|
|
8
7
|
|
package/default.mk
CHANGED
|
@@ -1,69 +1,87 @@
|
|
|
1
1
|
SHELL := /usr/bin/env bash
|
|
2
|
-
|
|
2
|
+
# https://stackoverflow.com/questions/2483182/recursive-wildcards-in-gnu-make
|
|
3
|
+
rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d))
|
|
4
|
+
TYPESCRIPT_SOURCE_FILES = $(sort $(call rwildcard,src test,*.ts *.tsx))
|
|
3
5
|
PRIVATE = $(shell node -e "console.log(require('./package.json').private)")
|
|
6
|
+
IS_TESTDATA = $(findstring -testdata,${CURDIR})
|
|
7
|
+
NPM_MODULE = $(shell cat package.json | jq .name --raw-output)
|
|
4
8
|
|
|
5
|
-
default: .
|
|
9
|
+
default: .tested
|
|
6
10
|
.PHONY: default
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
../../node_modules ../../package-lock.json: package.json
|
|
13
|
+
cd ../.. && npm install
|
|
10
14
|
|
|
11
|
-
.codegen:
|
|
15
|
+
.codegen:
|
|
12
16
|
touch $@
|
|
13
17
|
|
|
14
|
-
.
|
|
15
|
-
npm run build
|
|
16
|
-
touch $@
|
|
18
|
+
.tested: .tested-npm .built
|
|
17
19
|
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
+
.built: $(TYPESCRIPT_SOURCE_FILES) ../../node_modules ../../package-lock.json .codegen
|
|
21
|
+
pushd ../.. && \
|
|
22
|
+
npm run build && \
|
|
23
|
+
popd && \
|
|
20
24
|
touch $@
|
|
21
25
|
|
|
22
|
-
.
|
|
23
|
-
npm run
|
|
26
|
+
.tested-npm: $(TYPESCRIPT_SOURCE_FILES) ../../node_modules ../../package-lock.json .codegen
|
|
27
|
+
npm run test
|
|
24
28
|
touch $@
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
touch $@
|
|
30
|
+
pre-release: clean update-version update-dependencies default
|
|
31
|
+
.PHONY: pre-release
|
|
29
32
|
|
|
30
|
-
update-dependencies:
|
|
31
|
-
|
|
33
|
+
update-dependencies: ../../node_modules ../../package-lock.json
|
|
34
|
+
../../node_modules/.bin/npm-check-updates --upgrade --reject hast-util-sanitize,@types/node,react-markdown,rehype-raw,rehype-sanitize,remark-gfm
|
|
32
35
|
.PHONY: update-dependencies
|
|
33
36
|
|
|
34
|
-
remove-local-dependencies:
|
|
35
|
-
cat package.json | sed 's/"@cucumber\/\(.*\)": "file:..\/..\/.*"/"@cucumber\/\1": "0.0.0"/' > package.json.tmp
|
|
36
|
-
mv package.json.tmp package.json
|
|
37
|
-
.PHONY: remove-local-dependencies
|
|
38
|
-
|
|
39
|
-
pre-release: remove-local-dependencies update-version update-dependencies clean default
|
|
40
|
-
.PHONY: pre-release
|
|
41
|
-
|
|
42
37
|
update-version:
|
|
38
|
+
ifeq ($(IS_TESTDATA),-testdata)
|
|
39
|
+
# no-op
|
|
40
|
+
else
|
|
43
41
|
ifdef NEW_VERSION
|
|
44
42
|
npm --no-git-tag-version --allow-same-version version "$(NEW_VERSION)"
|
|
43
|
+
# Update all npm packages that depend on us
|
|
44
|
+
pushd ../.. && \
|
|
45
|
+
./scripts/npm-each update_npm_dependency_if_exists package.json "$(NPM_MODULE)" "$(NEW_VERSION)"
|
|
45
46
|
else
|
|
46
47
|
@echo -e "\033[0;31mNEW_VERSION is not defined. Can't update version :-(\033[0m"
|
|
47
48
|
exit 1
|
|
48
49
|
endif
|
|
50
|
+
endif
|
|
49
51
|
.PHONY: update-version
|
|
50
52
|
|
|
51
53
|
publish: .codegen
|
|
54
|
+
ifeq ($(IS_TESTDATA),-testdata)
|
|
55
|
+
# no-op
|
|
56
|
+
else
|
|
52
57
|
ifneq (true,$(PRIVATE))
|
|
53
58
|
npm publish --access public
|
|
54
59
|
else
|
|
55
60
|
@echo "Not publishing private npm module"
|
|
56
61
|
endif
|
|
62
|
+
endif
|
|
57
63
|
.PHONY: publish
|
|
58
64
|
|
|
59
65
|
post-release:
|
|
60
|
-
cat package.json | sed 's/"@cucumber\/\(.*\)": .*"/"@cucumber\/\1": "file:..\/..\/\1\/javascript"/' > package.json.tmp
|
|
61
|
-
mv package.json.tmp package.json
|
|
62
66
|
.PHONY: post-release
|
|
63
67
|
|
|
64
68
|
clean: clean-javascript
|
|
65
69
|
.PHONY: clean
|
|
66
70
|
|
|
67
71
|
clean-javascript:
|
|
68
|
-
rm -rf .deps .codegen .
|
|
72
|
+
rm -rf .deps .codegen .tested* coverage dist acceptance
|
|
69
73
|
.PHONY: clean-javascript
|
|
74
|
+
|
|
75
|
+
clobber: clean
|
|
76
|
+
rm -rf node_modules ../../node_modules
|
|
77
|
+
.PHONY: clobber
|
|
78
|
+
|
|
79
|
+
### COMMON stuff for all platforms
|
|
80
|
+
|
|
81
|
+
BERP_VERSION = 1.3.0
|
|
82
|
+
BERP_GRAMMAR = gherkin.berp
|
|
83
|
+
|
|
84
|
+
define berp-generate-parser =
|
|
85
|
+
-! dotnet tool list --tool-path /usr/bin | grep "berp\s*$(BERP_VERSION)" && dotnet tool update Berp --version $(BERP_VERSION) --tool-path /usr/bin
|
|
86
|
+
berp -g $(BERP_GRAMMAR) -t $< -o $@ --noBOM
|
|
87
|
+
endef
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAyDjD;AAmFD,UAAU,IAAI;IACZ,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;CACvC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const OPERAND = 'operand';
|
|
4
|
+
const OPERATOR = 'operator';
|
|
5
|
+
const PREC = {
|
|
6
6
|
'(': -2,
|
|
7
7
|
')': -1,
|
|
8
8
|
or: 0,
|
|
9
9
|
and: 1,
|
|
10
10
|
not: 2,
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
const ASSOC = {
|
|
13
13
|
or: 'left',
|
|
14
14
|
and: 'left',
|
|
15
15
|
not: 'right',
|
|
@@ -21,13 +21,13 @@ var ASSOC = {
|
|
|
21
21
|
* This expression can be evaluated by passing in an array of literals that resolve to true
|
|
22
22
|
*/
|
|
23
23
|
function parse(infix) {
|
|
24
|
-
|
|
24
|
+
const tokens = tokenize(infix);
|
|
25
25
|
if (tokens.length === 0) {
|
|
26
26
|
return new True();
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const expressions = [];
|
|
29
|
+
const operators = [];
|
|
30
|
+
let expectedTokenType = OPERAND;
|
|
31
31
|
tokens.forEach(function (token) {
|
|
32
32
|
if (isUnary(token)) {
|
|
33
33
|
check(expectedTokenType, OPERAND);
|
|
@@ -79,12 +79,12 @@ function parse(infix) {
|
|
|
79
79
|
}
|
|
80
80
|
exports.default = parse;
|
|
81
81
|
function tokenize(expr) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
for (
|
|
86
|
-
|
|
87
|
-
if ('\\' === c) {
|
|
82
|
+
const tokens = [];
|
|
83
|
+
let isEscaped = false;
|
|
84
|
+
let token;
|
|
85
|
+
for (let i = 0; i < expr.length; i++) {
|
|
86
|
+
const c = expr.charAt(i);
|
|
87
|
+
if ('\\' === c && !isEscaped) {
|
|
88
88
|
isEscaped = true;
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
@@ -142,11 +142,11 @@ function pop(stack) {
|
|
|
142
142
|
}
|
|
143
143
|
function pushExpr(token, stack) {
|
|
144
144
|
if (token === 'and') {
|
|
145
|
-
|
|
145
|
+
const rightAndExpr = pop(stack);
|
|
146
146
|
stack.push(new And(pop(stack), rightAndExpr));
|
|
147
147
|
}
|
|
148
148
|
else if (token === 'or') {
|
|
149
|
-
|
|
149
|
+
const rightOrExpr = pop(stack);
|
|
150
150
|
stack.push(new Or(pop(stack), rightOrExpr));
|
|
151
151
|
}
|
|
152
152
|
else if (token === 'not') {
|
|
@@ -156,73 +156,59 @@ function pushExpr(token, stack) {
|
|
|
156
156
|
stack.push(new Literal(token));
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
class Literal {
|
|
160
|
+
constructor(value) {
|
|
161
161
|
this.value = value;
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
evaluate(variables) {
|
|
164
164
|
return variables.indexOf(this.value) !== -1;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return this.value.replace(/\(/g, '\\(').replace(/\)/g, '\\)');
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
function Or(leftExpr, rightExpr) {
|
|
165
|
+
}
|
|
166
|
+
toString() {
|
|
167
|
+
return this.value.replace(/\\/g, '\\\\').replace(/\(/g, '\\(').replace(/\)/g, '\\)');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
class Or {
|
|
171
|
+
constructor(leftExpr, rightExpr) {
|
|
173
172
|
this.leftExpr = leftExpr;
|
|
174
173
|
this.rightExpr = rightExpr;
|
|
175
174
|
}
|
|
176
|
-
|
|
177
|
-
return
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return ('( ' +
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
};
|
|
186
|
-
return Or;
|
|
187
|
-
}());
|
|
188
|
-
var And = /** @class */ (function () {
|
|
189
|
-
function And(leftExpr, rightExpr) {
|
|
175
|
+
evaluate(variables) {
|
|
176
|
+
return this.leftExpr.evaluate(variables) || this.rightExpr.evaluate(variables);
|
|
177
|
+
}
|
|
178
|
+
toString() {
|
|
179
|
+
return '( ' + this.leftExpr.toString() + ' or ' + this.rightExpr.toString() + ' )';
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
class And {
|
|
183
|
+
constructor(leftExpr, rightExpr) {
|
|
190
184
|
this.leftExpr = leftExpr;
|
|
191
185
|
this.rightExpr = rightExpr;
|
|
192
186
|
}
|
|
193
|
-
|
|
194
|
-
return
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return ('( ' +
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
};
|
|
203
|
-
return And;
|
|
204
|
-
}());
|
|
205
|
-
var Not = /** @class */ (function () {
|
|
206
|
-
function Not(expr) {
|
|
187
|
+
evaluate(variables) {
|
|
188
|
+
return this.leftExpr.evaluate(variables) && this.rightExpr.evaluate(variables);
|
|
189
|
+
}
|
|
190
|
+
toString() {
|
|
191
|
+
return '( ' + this.leftExpr.toString() + ' and ' + this.rightExpr.toString() + ' )';
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
class Not {
|
|
195
|
+
constructor(expr) {
|
|
207
196
|
this.expr = expr;
|
|
208
197
|
}
|
|
209
|
-
|
|
198
|
+
evaluate(variables) {
|
|
210
199
|
return !this.expr.evaluate(variables);
|
|
211
|
-
}
|
|
212
|
-
|
|
200
|
+
}
|
|
201
|
+
toString() {
|
|
213
202
|
return 'not ( ' + this.expr.toString() + ' )';
|
|
214
|
-
};
|
|
215
|
-
return Not;
|
|
216
|
-
}());
|
|
217
|
-
var True = /** @class */ (function () {
|
|
218
|
-
function True() {
|
|
219
203
|
}
|
|
220
|
-
|
|
204
|
+
}
|
|
205
|
+
class True {
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
207
|
+
evaluate(variables) {
|
|
221
208
|
return true;
|
|
222
|
-
}
|
|
223
|
-
|
|
209
|
+
}
|
|
210
|
+
toString() {
|
|
224
211
|
return 'true';
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
//# sourceMappingURL=tag_expression_parser.js.map
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag_expression_parser_test.d.ts","sourceRoot":"","sources":["../../test/tag_expression_parser_test.ts"],"names":[],"mappings":""}
|
|
@@ -3,12 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
describe('TagExpressionParser',
|
|
9
|
-
describe('#parse',
|
|
10
|
-
|
|
11
|
-
[
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const src_1 = __importDefault(require("../src"));
|
|
8
|
+
describe('TagExpressionParser', () => {
|
|
9
|
+
describe('#parse', () => {
|
|
10
|
+
const tests = [
|
|
12
11
|
['', 'true'],
|
|
13
12
|
['a and b', '( a and b )'],
|
|
14
13
|
['a or b', '( a or b )'],
|
|
@@ -22,13 +21,22 @@ describe('TagExpressionParser', function () {
|
|
|
22
21
|
'not a\\(\\) or b and not c or not d or e and f',
|
|
23
22
|
'( ( ( not ( a\\(\\) ) or ( b and not ( c ) ) ) or not ( d ) ) or ( e and f ) )',
|
|
24
23
|
],
|
|
25
|
-
|
|
24
|
+
['a\\\\ and b', '( a\\\\ and b )'],
|
|
25
|
+
['\\a and b', '( a and b )'],
|
|
26
|
+
['a\\ and b', '( a and b )'],
|
|
27
|
+
['a and b\\', '( a and b )'],
|
|
28
|
+
['( a and b\\\\)', '( a and b\\\\ )'],
|
|
29
|
+
['a\\\\\\( and b\\\\\\)', '( a\\\\\\( and b\\\\\\) )'],
|
|
30
|
+
['(a and \\b)', '( a and b )'],
|
|
31
|
+
// a or not b
|
|
32
|
+
];
|
|
33
|
+
tests.forEach(function (inOut) {
|
|
26
34
|
it(inOut[0], function () {
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const infix = inOut[0];
|
|
36
|
+
const expr = (0, src_1.default)(infix);
|
|
29
37
|
assert_1.default.strictEqual(expr.toString(), inOut[1]);
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
const roundtripTokens = expr.toString();
|
|
39
|
+
const roundtripExpr = (0, src_1.default)(roundtripTokens);
|
|
32
40
|
assert_1.default.strictEqual(roundtripExpr.toString(), inOut[1]);
|
|
33
41
|
});
|
|
34
42
|
});
|
|
@@ -41,11 +49,12 @@ describe('TagExpressionParser', function () {
|
|
|
41
49
|
['a b', 'Syntax error. Expected operator'],
|
|
42
50
|
['( a and b ) )', 'Syntax error. Unmatched )'],
|
|
43
51
|
['( ( a and b )', 'Syntax error. Unmatched ('],
|
|
52
|
+
// a or not b
|
|
44
53
|
].forEach(function (inOut) {
|
|
45
54
|
it(inOut[0] + ' fails', function () {
|
|
46
|
-
|
|
55
|
+
const infix = inOut[0];
|
|
47
56
|
try {
|
|
48
|
-
|
|
57
|
+
(0, src_1.default)(infix);
|
|
49
58
|
throw new Error('Expected syntax error');
|
|
50
59
|
}
|
|
51
60
|
catch (expected) {
|
|
@@ -55,24 +64,24 @@ describe('TagExpressionParser', function () {
|
|
|
55
64
|
});
|
|
56
65
|
// evaluation
|
|
57
66
|
it('evaluates not', function () {
|
|
58
|
-
|
|
67
|
+
const expr = (0, src_1.default)('not x');
|
|
59
68
|
assert_1.default.strictEqual(expr.evaluate(['x']), false);
|
|
60
69
|
assert_1.default.strictEqual(expr.evaluate(['y']), true);
|
|
61
70
|
});
|
|
62
71
|
it('evaluates and', function () {
|
|
63
|
-
|
|
72
|
+
const expr = (0, src_1.default)('x and y');
|
|
64
73
|
assert_1.default.strictEqual(expr.evaluate(['x', 'y']), true);
|
|
65
74
|
assert_1.default.strictEqual(expr.evaluate(['y']), false);
|
|
66
75
|
assert_1.default.strictEqual(expr.evaluate(['x']), false);
|
|
67
76
|
});
|
|
68
77
|
it('evaluates or', function () {
|
|
69
|
-
|
|
78
|
+
const expr = (0, src_1.default)(' x or(y) ');
|
|
70
79
|
assert_1.default.strictEqual(expr.evaluate([]), false);
|
|
71
80
|
assert_1.default.strictEqual(expr.evaluate(['y']), true);
|
|
72
81
|
assert_1.default.strictEqual(expr.evaluate(['x']), true);
|
|
73
82
|
});
|
|
74
83
|
it('evaluates expressions with escaped chars', function () {
|
|
75
|
-
|
|
84
|
+
const expr = (0, src_1.default)(' x\\(1\\) or(y\\(2\\)) ');
|
|
76
85
|
assert_1.default.strictEqual(expr.evaluate([]), false);
|
|
77
86
|
assert_1.default.strictEqual(expr.evaluate(['y(2)']), true);
|
|
78
87
|
assert_1.default.strictEqual(expr.evaluate(['x(1)']), true);
|
|
@@ -80,11 +89,31 @@ describe('TagExpressionParser', function () {
|
|
|
80
89
|
assert_1.default.strictEqual(expr.evaluate(['x']), false);
|
|
81
90
|
});
|
|
82
91
|
it('evaluates empty expressions to true', function () {
|
|
83
|
-
|
|
92
|
+
const expr = (0, src_1.default)('');
|
|
84
93
|
assert_1.default.strictEqual(expr.evaluate([]), true);
|
|
85
94
|
assert_1.default.strictEqual(expr.evaluate(['y']), true);
|
|
86
95
|
assert_1.default.strictEqual(expr.evaluate(['x']), true);
|
|
87
96
|
});
|
|
97
|
+
it('evaluates expressions with escaped backslash', function () {
|
|
98
|
+
const expr = (0, src_1.default)('x\\\\ or(y\\\\\\)) or(z\\\\)');
|
|
99
|
+
assert_1.default.strictEqual(expr.evaluate([]), false);
|
|
100
|
+
assert_1.default.strictEqual(expr.evaluate(['x\\']), true);
|
|
101
|
+
assert_1.default.strictEqual(expr.evaluate(['y\\)']), true);
|
|
102
|
+
assert_1.default.strictEqual(expr.evaluate(['z\\']), true);
|
|
103
|
+
assert_1.default.strictEqual(expr.evaluate(['x']), false);
|
|
104
|
+
assert_1.default.strictEqual(expr.evaluate(['y)']), false);
|
|
105
|
+
assert_1.default.strictEqual(expr.evaluate(['z']), false);
|
|
106
|
+
});
|
|
107
|
+
it('evaluates expressions with backslash', function () {
|
|
108
|
+
const expr = (0, src_1.default)('\\x or y\\ or z\\');
|
|
109
|
+
assert_1.default.strictEqual(expr.evaluate([]), false);
|
|
110
|
+
assert_1.default.strictEqual(expr.evaluate(['x']), true);
|
|
111
|
+
assert_1.default.strictEqual(expr.evaluate(['y']), true);
|
|
112
|
+
assert_1.default.strictEqual(expr.evaluate(['z']), true);
|
|
113
|
+
assert_1.default.strictEqual(expr.evaluate(['\\x']), false);
|
|
114
|
+
assert_1.default.strictEqual(expr.evaluate(['y\\']), false);
|
|
115
|
+
assert_1.default.strictEqual(expr.evaluate(['z\\']), false);
|
|
116
|
+
});
|
|
88
117
|
});
|
|
89
118
|
});
|
|
90
119
|
//# sourceMappingURL=tag_expression_parser_test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag_expression_parser_test.js","sourceRoot":"","sources":["../../test/tag_expression_parser_test.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"tag_expression_parser_test.js","sourceRoot":"","sources":["../../test/tag_expression_parser_test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,iDAA0B;AAE1B,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG;YACZ,CAAC,EAAE,EAAE,MAAM,CAAC;YACZ,CAAC,SAAS,EAAE,aAAa,CAAC;YAC1B,CAAC,QAAQ,EAAE,YAAY,CAAC;YACxB,CAAC,OAAO,EAAE,WAAW,CAAC;YACtB,CAAC,4BAA4B,EAAE,gCAAgC,CAAC;YAChE;gBACE,0CAA0C;gBAC1C,0EAA0E;aAC3E;YACD;gBACE,gDAAgD;gBAChD,gFAAgF;aACjF;YACD,CAAC,aAAa,EAAE,iBAAiB,CAAC;YAClC,CAAC,WAAW,EAAE,aAAa,CAAC;YAC5B,CAAC,WAAW,EAAE,aAAa,CAAC;YAC5B,CAAC,WAAW,EAAE,aAAa,CAAC;YAC5B,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;YACtD,CAAC,aAAa,EAAE,aAAa,CAAC;YAC9B,aAAa;SACd,CAAA;QACD,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK;YAC3B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBACX,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACtB,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,CAAA;gBACzB,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACvC,MAAM,aAAa,GAAG,IAAA,aAAK,EAAC,eAAe,CAAC,CAAA;gBAC5C,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CACD;QAAA;YACC,CAAC,UAAU,EAAE,iCAAiC,CAAC;YAC/C,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;YACtD,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;YACxD,CAAC,WAAW,EAAE,gCAAgC,CAAC;YAC/C,CAAC,OAAO,EAAE,gCAAgC,CAAC;YAC3C,CAAC,KAAK,EAAE,iCAAiC,CAAC;YAC1C,CAAC,eAAe,EAAE,2BAA2B,CAAC;YAC9C,CAAC,eAAe,EAAE,2BAA2B,CAAC;YAC9C,aAAa;SACd,CAAC,OAAO,CAAC,UAAU,KAAK;YACvB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE;gBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACtB,IAAI;oBACF,IAAA,aAAK,EAAC,KAAK,CAAC,CAAA;oBACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;iBACzC;gBAAC,OAAO,QAAQ,EAAE;oBACjB,gBAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC/C;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,aAAa;QAEb,EAAE,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAA;YAC7B,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC/C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAA;YAC7B,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACnD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC/C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,YAAY,CAAC,CAAA;YAChC,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,0BAA0B,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACjD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACjD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC/C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE;YACxC,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,EAAE,CAAC,CAAA;YACtB,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC3C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE;YACjD,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,8BAA8B,CAAC,CAAA;YAClD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAChD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACjD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAChD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC/C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAChD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE;YACzC,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,mBAAmB,CAAC,CAAA;YACvC,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9C,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YACjD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YACjD,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/index.ts","../test/tag_expression_parser_test.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@types/braces/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/color-name/index.d.ts","../../../node_modules/@types/color-convert/conversions.d.ts","../../../node_modules/@types/color-convert/route.d.ts","../../../node_modules/@types/color-convert/index.d.ts","../../../node_modules/@types/color/index.d.ts","../../../node_modules/@types/elasticlunr/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/eslint/lib/rules/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/querystring/decode.d.ts","../../../node_modules/querystring/encode.d.ts","../../../node_modules/querystring/index.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/glob-base/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../node_modules/@types/is-function/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@types/js-search/index.d.ts","../../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../../node_modules/@types/parse5/index.d.ts","../../../node_modules/@types/tough-cookie/index.d.ts","../../../node_modules/@types/jsdom/base.d.ts","../../../node_modules/@types/jsdom/ts4.0/index.d.ts","../../../node_modules/@types/jsdom/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/markdown-to-jsx/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/micromatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../../node_modules/@types/overlayscrollbars/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/pretty-hrtime/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/reach__router/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/react-syntax-highlighter/index.d.ts","../../../node_modules/@types/scheduler/index.d.ts","../../../node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/source-list-map/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/stream-buffers/index.d.ts","../../../node_modules/@types/tapable/index.d.ts","../../../node_modules/@types/uglify-js/node_modules/source-map/source-map.d.ts","../../../node_modules/@types/uglify-js/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/vscode/index.d.ts","../../../node_modules/anymatch/index.d.ts","../../../node_modules/@types/webpack/node_modules/source-map/source-map.d.ts","../../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../../node_modules/@types/webpack-sources/lib/Source.d.ts","../../../node_modules/@types/webpack-sources/lib/CompatSource.d.ts","../../../node_modules/@types/webpack-sources/lib/ConcatSource.d.ts","../../../node_modules/@types/webpack-sources/lib/OriginalSource.d.ts","../../../node_modules/@types/webpack-sources/lib/PrefixSource.d.ts","../../../node_modules/@types/webpack-sources/lib/RawSource.d.ts","../../../node_modules/@types/webpack-sources/lib/ReplaceSource.d.ts","../../../node_modules/@types/webpack-sources/lib/SizeOnlySource.d.ts","../../../node_modules/@types/webpack-sources/lib/SourceMapSource.d.ts","../../../node_modules/@types/webpack-sources/lib/index.d.ts","../../../node_modules/@types/webpack-sources/lib/CachedSource.d.ts","../../../node_modules/@types/webpack-sources/index.d.ts","../../../node_modules/@types/webpack/index.d.ts","../../../node_modules/@types/webpack-env/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"11ad1f3abd540ceb381dc68576646e6a2f0b3f0d8b921800949bc146d1c56f73","762155b9a81eff6207f6e7e73b80e53ac2bb9ef4cfda00d3db7bb7ab49772150","5024433f8da3a7968f6d12cffd32f2cefae4442a9ad1c965fa2d23342338b700","40304c033bb6e39f0eb01b106d29523950148dfc3cd547ddb500167871171281",{"version":"0c9d1fd5b43d5e88c277f7f53cffc87778190f2f9a1f57743559421f04fc730b","affectsGlobalScope":true},"f0cb4b3ab88193e3e51e9e2622e4c375955003f1f81239d72c5b7a95415dad3e","92450d617e92f96354d281c8ed5613fd16cacea79eb60b1e9736494b3c057e69","8a9086357fe289efb682dc925358f30b6312c7219a5ca92212857a0a79612012","92bc42ed0e2d41559513fd457ee30d834c2f0fedb9ed5004c029cbf0ad2f8bd9","8dc44c4ad7e254d4404a302e5098e83ab9aae1d65e861c15fb67a7f419051524","13ef762b84fce9c55e11fac658fabf13b38dfb6aac6ddebecf8a5e0374ca0caf",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"0133ebdd17a823ae56861948870cde4dac18dd8818ab641039c85bbb720429e0","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","e300bf65972ac08167a72787e19d1b43c285c5424707194d0ba64422f6b02c77","82772e5d55062a042a2715a555d347275a663940926fc785705eb082010cb9f6","d555cd63a3fc837840db192596273fdf52fb28092b0a33bec98e89a0334b3a4c",{"version":"dc5f6951bbf5b544349cbdef895c08dee6929818abd27d7d53c38cf1209091b3","affectsGlobalScope":true},"85d545d430795d54a8b2896f67f9aeb7bf19fd74a1469ae0627311eb72f0dfa2","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","d5afcd002167b6b03d595fb8b9630a00456b6fb9d2c5e8b6aaa30cb31bc44e2b","3d68ecf05475492f041c88395372c3a01b30351619bebcd38287ab185be7f7e4",{"version":"a97ac401f6b334e9b1f6c8ee9319d6e21cc39d2f400e909805dfb8ab5eab0576","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","7674b65ac0a3b160232d84464b3486d727415581e5b99ff4aec324500adc98a4","ddd6169dff8e5263397a9399ba7ba92521d3959f8f9dcdc27f24403dc7b751ba","508e1e25ca40ea6cde332d3232c826fcd82f456f45ae535d817754684f048f9e",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"8f8f6ee2a0c94077f79439f51640a625ac7e2f5dd6866bd3b5a41705c836adfc","affectsGlobalScope":true},"ee97aed5b4667a5c3003a1da4b108827fc64b888391417617d89b02ff134de9a","839421b494b57cd2bc0074e914130277051850eba6def6c25870056e6652640b","e18a4b529c9a05593e612130554d93a2b78b949cf1cf48c0b183071258f0e95a","88587b5c94b0c4f5d78026e4beeb93383b3933c860d9840b55d6bf47d7b632bb","a473ecd14d9bafbd6a33105524b033237bbf1d6ce2cd81eb71cc54bec2d83d55","9e8947666e44137405fd378f3a8a0515a492e967e552406c02b991c98c78fc61","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","7a2a3ff87ffd4313a6a2f3b012e801dd249ee58152cedf90c8718dcd2c811fe3","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","a39a4c527b7a2dc7a2661b711a534c10c76852c5ad6ae320767d3f7d2621b67d","1bb5c9857b2ee32c199dd85bc0f4c0299112485d6e5dc91428eabfdee0dbd68c",{"version":"5daba568741c8ed283d67bf370c626a91e09fdfbc6d4abe22a7f93e2cf5138b9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","662661bbf9ccd869f3bca82d34234b2abdc95c657e2187c35352d42dddb24c2d","5caa645cc390a0a8d5a031072b6b4e49218c17017cd80a63bd2557b19be13c5f","4c4334eb5d8fae83416a361d787b55a5743916aed8af812a909898bc7333e709","6feb6f75a3e4e017f8e6e12740cf06f18eefcf829284fa310da6c7f4d44fb2eb","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","b709ff1f6d6235f5e9c8dcbce3e683ff24ec35046b232d5a281af083026018d1","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","ad7e61eca7f2f8bf47e72695f9f6663b75e41d87ef49abdb17c0cb843862f8aa","ecba2e44af95b0599c269a92628cec22e752868bce37396740deb51a5c547a26","46a9fb41a8f3bc7539eeebc15a6e04b9e55d7537a081615ad3614220d34c3e0f","ee6a154ecccde26b413e89c97a0b824f25b253c4c50a3c392bcb2b4c6ba9c314","71d6da3b0150ecdcd16c08b3b546fe4cc7f53df642eccfeb03c813ee788fae0c","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","c5ec3b97d9db756c689cd11f4a11eaa9e6077b2768e3e9b54ff727a93c03a909","c14e9e86f18189c7d32b5dd03b4cf3f40bed68f0509dec06d75d41b82c065fe2","bdb07038733b2d74a75ba9c381dcb92774cd6f161ee125bfa921eae7d883ccc9","ad93e960a3a07dff7394bf0c8a558006a9ff2d0725ab28fc33dec227d4cb251e",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"e0b57467c219609094799676d14077c40e6529c82c6882ea4bd3c29d67d3f56e","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","725b884357ba84171341a8e4cc08edf11417854fd069842ca6d22afb2e340e45","d1ae472dde31ac39e68d52e1e21dcccba3989d146b7b8472f03525d0caad1775","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","3d2cd8f3047fff04a71e7037a6a4cb9f4accb28dbd8c0d83164d414811025af0","70b34c8420d6226ed565d55f47fe04912d0ca0ad128825c5a06e018a3498db32","de1d6e224048139baf7494237a9231be6bab9e990fb239c7825bfd38b06d8c90","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","1fe11ac15c436f0f596ccf4f106de840b9aac12726c11ac5363c22beee3946ff","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","201f92d97704e7e17e1c6e208fea976d75ff7b04235b79057891a33c7330bd77","660fa40695c7ca19a59fd09d31d495d952eee946e445a2c455ec63f255ec3050","224b63b6ec3ed8fbabc53e119550862acde02075f1f37dd8822255eee310d994","389303117a81e90897689e7adb4b53a062e68a6fe4067088fae9552907aa28c3",{"version":"d4c4fe14b23180acf25e4a68dc3bb9e5c38233dd3de12a4ab9569e636090ac9b","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"5b1d4ebd62d975c7d3826202f8fac290bac0bae6e04d9e84d1707d7047e108df","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"4262a5a2f37c6b2e08570c70f3b8d5f868e2a2116e227d6bc71ced37fdd4e245","affectsGlobalScope":true},"9c138947e4cf970491111d971aa615db8353c7f0efc72bd84d8ad6e4743079c5","2a2e2c6463bcf3c59f31bc9ab4b6ef963bbf7dffb049cd017e2c1834e3adca63","1a255ad66d2b50f7b42eca69228b9587878cf06900780ad57a306a933c6eaeb4","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05",{"version":"e8bf92aabac2b11e1bf60a0161039cd6f5f0cd9713863ca2289dd7b10eddece8","affectsGlobalScope":true},"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","062bd2910098fc059ba93e347649b3e126c555f7b144033d21d3f8ef63d3e39b","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","fda7ad096a1619fbae01b3d869cc82e29116f22be50133ac8fb08cee21279acd","9751247ee3bbcf1c63592f0f4dafb44559680b2b3e5736b7f0578c6a737d74c8","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","c0a3ea3aee13c4946a6aefce3a6ab9292a40a29f6622cde0fda0b1067a1a1f5f","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc","94a274c882504de552300fc5d6be141820041e9e2c530064ea10a0b76e2f905f","b4dfafe583b829a382edccbe32303535d0785f0c02ba7f04418e2a81de97af8a",{"version":"cffd3848b7af4922d70028c805b7df5e8f0eac4a8d2410b0f55b47ca62c6c3a8","affectsGlobalScope":true},"74b0245c42990ed8a849df955db3f4362c81b13f799ebc981b7bec2d5b414a57","6b40029289530423f407a22755c85b81740f9acfd88d2b53564f8c1657c26660","9d92b037978bb9525bc4b673ebddd443277542e010c0aef019c03a170ccdaa73",{"version":"b98f6185455945922c7cfdad772ec1c46e5c169a2d71aca6530e041f77665f03","affectsGlobalScope":true},"4aabed97dcdae0cb96cc51b1d46bbd94f24e233580fbe24dbe9019d2bd960f05","67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","229b8c23448b98db8507667e46f54d20bd1e8425eaa8f3093bf9fecfbab862ec","3833c70307dc3d2b46cb6f2a8b6a90e4d7e7367a21ab18c481d7de0909a43e67","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","9d74c7330800b325bb19cc8c1a153a612c080a60094e1ab6cfb6e39cf1b88c36","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e",{"version":"b34ad0cd5ebc38052fba8e8cf77567126e7bf05b0255d05a0a89aaffa140eab2","affectsGlobalScope":true},"4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","05d64cc1118031b29786632a9a0f6d7cf1dcacb303f27023a466cf3cdc860538","e0fff9119e1a5d2fdd46345734126cd6cb99c2d98a9debf0257047fe3937cc3f","d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","e275297155ec3251200abbb334c7f5641fecc68b2a9573e40eed50dff7584762","cd6a7c1c2a6461c6868601ca2144a41f8ee6d4a85d4b4cf1deb651e6c2ebc9e5",{"version":"c856e68ae3c730c5b59b0a5c0c8e951596ae79da7d29c9a1b1a8257109f3f3cc","affectsGlobalScope":true},"f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","6ba73232c9d3267ca36ddb83e335d474d2c0e167481e3dec416c782894e11438","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e"],"options":{"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":2,"module":1,"noImplicitAny":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strictNullChecks":false,"target":2},"fileIdsList":[[112,113,114],[39,112,113,114],[40,41,112,113,114],[40,112,113,114],[42,112,113,114],[48,49,112,113,114],[45,46,47,48,112,113,114],[49,112,113,114],[63,97,98,112,113,114],[101,112,113,114],[105,112,113,114],[106,112,113,114],[63,92,97,110,111,113,114],[112,113],[112,114],[112,113,114,120],[37,112,113,114],[66,89,97,112,113,114,126,127],[63,64,71,80,112,113,114],[55,63,71,112,113,114],[90,112,113,114],[59,64,72,112,113,114],[80,112,113,114],[61,63,71,112,113,114],[63,112,113,114],[63,65,80,89,112,113,114],[64,112,113,114],[71,80,89,112,113,114],[63,64,66,71,80,83,89,112,113,114],[66,80,83,89,112,113,114],[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,89,90,91,92,93,94,95,96,112,113,114],[89,112,113,114],[61,63,80,112,113,114],[53,112,113,114],[85,112,113,114],[78,90,92,112,113,114],[71,112,113,114],[77,112,113,114],[63,65,80,89,92,112,113,114],[109,112,113,114],[110,112,113,114],[112,113,114,120,137],[112,113,114,116,117,118,119],[38,112,113,114,140],[112,113,114,139],[80,97,112,113,114],[112,113,114,147],[97,112,113,114,154,155,156,157,158,159,160,161,162,163,164],[112,113,114,153,154,163],[112,113,114,154,163],[112,113,114,143,153,154,163],[112,113,114,154],[59,112,113,114,153,163],[112,113,114,153,154,155,156,157,158,159,160,161,162,164],[59,97,112,113,114,146,147,148,151,165],[112,113,114,168],[63,80,97,112,113,114],[66,80,97,112,113,114],[86,87,112,113,114],[34,51,112,113,114]],"referencedMap":[[139,1],[36,1],[37,1],[38,1],[40,2],[42,3],[41,4],[39,1],[43,5],[44,1],[50,6],[45,1],[49,7],[46,8],[48,1],[100,1],[99,9],[102,10],[103,1],[104,1],[105,1],[106,11],[107,12],[108,1],[112,13],[114,14],[113,15],[47,1],[115,1],[121,16],[122,10],[123,17],[98,1],[124,1],[125,1],[127,1],[128,18],[51,1],[53,1],[54,1],[55,19],[56,20],[57,21],[58,22],[59,23],[60,24],[61,1],[62,25],[63,25],[64,26],[65,27],[52,1],[96,1],[66,28],[67,29],[68,30],[97,31],[69,25],[70,32],[71,33],[72,1],[73,1],[74,34],[75,35],[76,1],[77,1],[78,25],[79,36],[80,25],[81,1],[82,1],[83,37],[84,1],[85,37],[89,38],[90,1],[91,23],[92,1],[93,1],[94,39],[95,23],[129,1],[130,25],[131,1],[132,1],[110,40],[109,41],[133,1],[118,1],[134,1],[135,16],[136,16],[137,42],[116,1],[120,43],[138,1],[119,1],[141,44],[140,45],[142,1],[143,1],[144,1],[145,46],[146,1],[111,1],[148,47],[147,1],[101,1],[149,1],[150,1],[167,1],[165,48],[164,49],[155,50],[156,51],[157,51],[158,50],[159,50],[160,50],[161,52],[154,53],[162,49],[163,54],[153,1],[166,55],[152,1],[168,1],[169,56],[170,57],[151,1],[117,1],[126,58],[86,1],[87,1],[88,59],[7,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[1,1],[33,1],[34,1],[35,60]],"exportedModulesMap":[[139,1],[36,1],[37,1],[38,1],[40,2],[42,3],[41,4],[39,1],[43,5],[44,1],[50,6],[45,1],[49,7],[46,8],[48,1],[100,1],[99,9],[102,10],[103,1],[104,1],[105,1],[106,11],[107,12],[108,1],[112,13],[114,14],[113,15],[47,1],[115,1],[121,16],[122,10],[123,17],[98,1],[124,1],[125,1],[127,1],[128,18],[51,1],[53,1],[54,1],[55,19],[56,20],[57,21],[58,22],[59,23],[60,24],[61,1],[62,25],[63,25],[64,26],[65,27],[52,1],[96,1],[66,28],[67,29],[68,30],[97,31],[69,25],[70,32],[71,33],[72,1],[73,1],[74,34],[75,35],[76,1],[77,1],[78,25],[79,36],[80,25],[81,1],[82,1],[83,37],[84,1],[85,37],[89,38],[90,1],[91,23],[92,1],[93,1],[94,39],[95,23],[129,1],[130,25],[131,1],[132,1],[110,40],[109,41],[133,1],[118,1],[134,1],[135,16],[136,16],[137,42],[116,1],[120,43],[138,1],[119,1],[141,44],[140,45],[142,1],[143,1],[144,1],[145,46],[146,1],[111,1],[148,47],[147,1],[101,1],[149,1],[150,1],[167,1],[165,48],[164,49],[155,50],[156,51],[157,51],[158,50],[159,50],[160,50],[161,52],[154,53],[162,49],[163,54],[153,1],[166,55],[152,1],[168,1],[169,56],[170,57],[151,1],[117,1],[126,58],[86,1],[87,1],[88,59],[7,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[1,1],[33,1],[34,1],[35,60]],"semanticDiagnosticsPerFile":[139,36,37,38,40,42,41,39,43,44,50,45,49,46,48,100,99,102,103,104,105,106,107,108,112,114,113,47,115,121,122,123,98,124,125,127,128,51,53,54,55,56,57,58,59,60,61,62,63,64,65,52,96,66,67,68,97,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,89,90,91,92,93,94,95,129,130,131,132,110,109,133,118,134,135,136,137,116,120,138,119,141,140,142,143,144,145,146,111,148,147,101,149,150,167,165,164,155,156,157,158,159,160,161,154,162,163,153,166,152,168,169,170,151,117,126,86,87,88,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,1,33,34,35]},"version":"4.4.3"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cucumber/tag-expressions",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Cucumber Tag Expression parser",
|
|
5
|
-
"main": "dist/src/
|
|
6
|
-
"types": "dist/src/
|
|
5
|
+
"main": "dist/src/index.js",
|
|
6
|
+
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "mocha",
|
|
9
|
-
"
|
|
10
|
-
"lint-fix": "tslint --fix src/**/*.ts test/**/*.ts",
|
|
11
|
-
"coverage": "nyc --reporter=html --reporter=text mocha",
|
|
12
|
-
"build": "tsc",
|
|
13
|
-
"prepublishOnly": "npm run build"
|
|
9
|
+
"prepublishOnly": "tsc --build tsconfig.build.json"
|
|
14
10
|
},
|
|
15
11
|
"repository": {
|
|
16
12
|
"type": "git",
|
|
@@ -26,19 +22,13 @@
|
|
|
26
22
|
},
|
|
27
23
|
"homepage": "https://github.com/cucumber/tag-expressions-javascript",
|
|
28
24
|
"devDependencies": {
|
|
29
|
-
"@types/mocha": "
|
|
30
|
-
"@types/node": "
|
|
31
|
-
"mocha": "
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"ts-node": "^8.6.0",
|
|
35
|
-
"tslint": "^5.20.1",
|
|
36
|
-
"tslint-config-prettier": "^1.18.0",
|
|
37
|
-
"tslint-plugin-prettier": "^2.1.0",
|
|
38
|
-
"typescript": "^3.7.4"
|
|
25
|
+
"@types/mocha": "9.0.0",
|
|
26
|
+
"@types/node": "14.17.21",
|
|
27
|
+
"mocha": "9.1.2",
|
|
28
|
+
"ts-node": "10.2.1",
|
|
29
|
+
"typescript": "4.4.3"
|
|
39
30
|
},
|
|
40
31
|
"directories": {
|
|
41
32
|
"test": "test"
|
|
42
|
-
}
|
|
43
|
-
"dependencies": {}
|
|
33
|
+
}
|
|
44
34
|
}
|
|
@@ -28,7 +28,7 @@ export default function parse(infix: string): Node {
|
|
|
28
28
|
const operators: string[] = []
|
|
29
29
|
let expectedTokenType = OPERAND
|
|
30
30
|
|
|
31
|
-
tokens.forEach(function(token) {
|
|
31
|
+
tokens.forEach(function (token) {
|
|
32
32
|
if (isUnary(token)) {
|
|
33
33
|
check(expectedTokenType, OPERAND)
|
|
34
34
|
operators.push(token)
|
|
@@ -84,7 +84,7 @@ function tokenize(expr: string): string[] {
|
|
|
84
84
|
let token
|
|
85
85
|
for (let i = 0; i < expr.length; i++) {
|
|
86
86
|
const c = expr.charAt(i)
|
|
87
|
-
if ('\\' === c) {
|
|
87
|
+
if ('\\' === c && !isEscaped) {
|
|
88
88
|
isEscaped = true
|
|
89
89
|
} else {
|
|
90
90
|
if (/\s/.test(c)) {
|
|
@@ -171,53 +171,31 @@ class Literal implements Node {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
public toString() {
|
|
174
|
-
return this.value.replace(/\(/g, '\\(').replace(/\)/g, '\\)')
|
|
174
|
+
return this.value.replace(/\\/g, '\\\\').replace(/\(/g, '\\(').replace(/\)/g, '\\)')
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
class Or implements Node {
|
|
179
|
-
constructor(
|
|
180
|
-
private readonly leftExpr: Node,
|
|
181
|
-
private readonly rightExpr: Node
|
|
182
|
-
) {}
|
|
179
|
+
constructor(private readonly leftExpr: Node, private readonly rightExpr: Node) {}
|
|
183
180
|
|
|
184
181
|
public evaluate(variables: string[]) {
|
|
185
|
-
return (
|
|
186
|
-
this.leftExpr.evaluate(variables) || this.rightExpr.evaluate(variables)
|
|
187
|
-
)
|
|
182
|
+
return this.leftExpr.evaluate(variables) || this.rightExpr.evaluate(variables)
|
|
188
183
|
}
|
|
189
184
|
|
|
190
185
|
public toString() {
|
|
191
|
-
return (
|
|
192
|
-
'( ' +
|
|
193
|
-
this.leftExpr.toString() +
|
|
194
|
-
' or ' +
|
|
195
|
-
this.rightExpr.toString() +
|
|
196
|
-
' )'
|
|
197
|
-
)
|
|
186
|
+
return '( ' + this.leftExpr.toString() + ' or ' + this.rightExpr.toString() + ' )'
|
|
198
187
|
}
|
|
199
188
|
}
|
|
200
189
|
|
|
201
190
|
class And implements Node {
|
|
202
|
-
constructor(
|
|
203
|
-
private readonly leftExpr: Node,
|
|
204
|
-
private readonly rightExpr: Node
|
|
205
|
-
) {}
|
|
191
|
+
constructor(private readonly leftExpr: Node, private readonly rightExpr: Node) {}
|
|
206
192
|
|
|
207
193
|
public evaluate(variables: string[]) {
|
|
208
|
-
return (
|
|
209
|
-
this.leftExpr.evaluate(variables) && this.rightExpr.evaluate(variables)
|
|
210
|
-
)
|
|
194
|
+
return this.leftExpr.evaluate(variables) && this.rightExpr.evaluate(variables)
|
|
211
195
|
}
|
|
212
196
|
|
|
213
197
|
public toString() {
|
|
214
|
-
return (
|
|
215
|
-
'( ' +
|
|
216
|
-
this.leftExpr.toString() +
|
|
217
|
-
' and ' +
|
|
218
|
-
this.rightExpr.toString() +
|
|
219
|
-
' )'
|
|
220
|
-
)
|
|
198
|
+
return '( ' + this.leftExpr.toString() + ' and ' + this.rightExpr.toString() + ' )'
|
|
221
199
|
}
|
|
222
200
|
}
|
|
223
201
|
|
|
@@ -234,6 +212,7 @@ class Not implements Node {
|
|
|
234
212
|
}
|
|
235
213
|
|
|
236
214
|
class True implements Node {
|
|
215
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
237
216
|
public evaluate(variables: string[]) {
|
|
238
217
|
return true
|
|
239
218
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import assert from 'assert'
|
|
2
|
-
import parse from '../src
|
|
2
|
+
import parse from '../src'
|
|
3
3
|
|
|
4
4
|
describe('TagExpressionParser', () => {
|
|
5
5
|
describe('#parse', () => {
|
|
6
|
-
|
|
6
|
+
const tests = [
|
|
7
7
|
['', 'true'],
|
|
8
8
|
['a and b', '( a and b )'],
|
|
9
9
|
['a or b', '( a or b )'],
|
|
@@ -17,9 +17,17 @@ describe('TagExpressionParser', () => {
|
|
|
17
17
|
'not a\\(\\) or b and not c or not d or e and f',
|
|
18
18
|
'( ( ( not ( a\\(\\) ) or ( b and not ( c ) ) ) or not ( d ) ) or ( e and f ) )',
|
|
19
19
|
],
|
|
20
|
+
['a\\\\ and b', '( a\\\\ and b )'],
|
|
21
|
+
['\\a and b', '( a and b )'],
|
|
22
|
+
['a\\ and b', '( a and b )'],
|
|
23
|
+
['a and b\\', '( a and b )'],
|
|
24
|
+
['( a and b\\\\)', '( a and b\\\\ )'],
|
|
25
|
+
['a\\\\\\( and b\\\\\\)', '( a\\\\\\( and b\\\\\\) )'],
|
|
26
|
+
['(a and \\b)', '( a and b )'],
|
|
20
27
|
// a or not b
|
|
21
|
-
]
|
|
22
|
-
|
|
28
|
+
]
|
|
29
|
+
tests.forEach(function (inOut) {
|
|
30
|
+
it(inOut[0], function () {
|
|
23
31
|
const infix = inOut[0]
|
|
24
32
|
const expr = parse(infix)
|
|
25
33
|
assert.strictEqual(expr.toString(), inOut[1])
|
|
@@ -39,8 +47,8 @@ describe('TagExpressionParser', () => {
|
|
|
39
47
|
['( a and b ) )', 'Syntax error. Unmatched )'],
|
|
40
48
|
['( ( a and b )', 'Syntax error. Unmatched ('],
|
|
41
49
|
// a or not b
|
|
42
|
-
].forEach(function(inOut) {
|
|
43
|
-
it(inOut[0] + ' fails', function() {
|
|
50
|
+
].forEach(function (inOut) {
|
|
51
|
+
it(inOut[0] + ' fails', function () {
|
|
44
52
|
const infix = inOut[0]
|
|
45
53
|
try {
|
|
46
54
|
parse(infix)
|
|
@@ -53,27 +61,27 @@ describe('TagExpressionParser', () => {
|
|
|
53
61
|
|
|
54
62
|
// evaluation
|
|
55
63
|
|
|
56
|
-
it('evaluates not', function() {
|
|
64
|
+
it('evaluates not', function () {
|
|
57
65
|
const expr = parse('not x')
|
|
58
66
|
assert.strictEqual(expr.evaluate(['x']), false)
|
|
59
67
|
assert.strictEqual(expr.evaluate(['y']), true)
|
|
60
68
|
})
|
|
61
69
|
|
|
62
|
-
it('evaluates and', function() {
|
|
70
|
+
it('evaluates and', function () {
|
|
63
71
|
const expr = parse('x and y')
|
|
64
72
|
assert.strictEqual(expr.evaluate(['x', 'y']), true)
|
|
65
73
|
assert.strictEqual(expr.evaluate(['y']), false)
|
|
66
74
|
assert.strictEqual(expr.evaluate(['x']), false)
|
|
67
75
|
})
|
|
68
76
|
|
|
69
|
-
it('evaluates or', function() {
|
|
77
|
+
it('evaluates or', function () {
|
|
70
78
|
const expr = parse(' x or(y) ')
|
|
71
79
|
assert.strictEqual(expr.evaluate([]), false)
|
|
72
80
|
assert.strictEqual(expr.evaluate(['y']), true)
|
|
73
81
|
assert.strictEqual(expr.evaluate(['x']), true)
|
|
74
82
|
})
|
|
75
83
|
|
|
76
|
-
it('evaluates expressions with escaped chars', function() {
|
|
84
|
+
it('evaluates expressions with escaped chars', function () {
|
|
77
85
|
const expr = parse(' x\\(1\\) or(y\\(2\\)) ')
|
|
78
86
|
assert.strictEqual(expr.evaluate([]), false)
|
|
79
87
|
assert.strictEqual(expr.evaluate(['y(2)']), true)
|
|
@@ -82,11 +90,33 @@ describe('TagExpressionParser', () => {
|
|
|
82
90
|
assert.strictEqual(expr.evaluate(['x']), false)
|
|
83
91
|
})
|
|
84
92
|
|
|
85
|
-
it('evaluates empty expressions to true', function() {
|
|
93
|
+
it('evaluates empty expressions to true', function () {
|
|
86
94
|
const expr = parse('')
|
|
87
95
|
assert.strictEqual(expr.evaluate([]), true)
|
|
88
96
|
assert.strictEqual(expr.evaluate(['y']), true)
|
|
89
97
|
assert.strictEqual(expr.evaluate(['x']), true)
|
|
90
98
|
})
|
|
99
|
+
|
|
100
|
+
it('evaluates expressions with escaped backslash', function () {
|
|
101
|
+
const expr = parse('x\\\\ or(y\\\\\\)) or(z\\\\)')
|
|
102
|
+
assert.strictEqual(expr.evaluate([]), false)
|
|
103
|
+
assert.strictEqual(expr.evaluate(['x\\']), true)
|
|
104
|
+
assert.strictEqual(expr.evaluate(['y\\)']), true)
|
|
105
|
+
assert.strictEqual(expr.evaluate(['z\\']), true)
|
|
106
|
+
assert.strictEqual(expr.evaluate(['x']), false)
|
|
107
|
+
assert.strictEqual(expr.evaluate(['y)']), false)
|
|
108
|
+
assert.strictEqual(expr.evaluate(['z']), false)
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
it('evaluates expressions with backslash', function () {
|
|
112
|
+
const expr = parse('\\x or y\\ or z\\')
|
|
113
|
+
assert.strictEqual(expr.evaluate([]), false)
|
|
114
|
+
assert.strictEqual(expr.evaluate(['x']), true)
|
|
115
|
+
assert.strictEqual(expr.evaluate(['y']), true)
|
|
116
|
+
assert.strictEqual(expr.evaluate(['z']), true)
|
|
117
|
+
assert.strictEqual(expr.evaluate(['\\x']), false)
|
|
118
|
+
assert.strictEqual(expr.evaluate(['y\\']), false)
|
|
119
|
+
assert.strictEqual(expr.evaluate(['z\\']), false)
|
|
120
|
+
})
|
|
91
121
|
})
|
|
92
122
|
})
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"declaration": true,
|
|
4
|
-
"target": "es5",
|
|
5
|
-
"lib": [
|
|
6
|
-
"es5",
|
|
7
|
-
"es6",
|
|
8
|
-
"es7",
|
|
9
|
-
"es2015",
|
|
10
|
-
"es2017",
|
|
11
|
-
"dom"
|
|
12
|
-
],
|
|
13
|
-
"sourceMap": true,
|
|
14
|
-
"allowJs": false,
|
|
15
|
-
"jsx": "react",
|
|
16
|
-
"resolveJsonModule": true,
|
|
17
|
-
"module": "commonjs",
|
|
18
|
-
"esModuleInterop": true,
|
|
19
|
-
"noImplicitAny": true,
|
|
20
|
-
"moduleResolution": "node",
|
|
21
|
-
"outDir": "dist",
|
|
22
|
-
"downlevelIteration": true,
|
|
23
|
-
"skipLibCheck": true
|
|
24
|
-
},
|
|
25
|
-
"include": [
|
|
26
|
-
"src/**/*",
|
|
27
|
-
"test/**/*"
|
|
28
|
-
]
|
|
2
|
+
"extends": "../../tsconfig.json"
|
|
29
3
|
}
|
package/.nycrc.json
DELETED
package/.prettierrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tag_expression_parser.js","sourceRoot":"","sources":["../../src/tag_expression_parser.ts"],"names":[],"mappings":"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"}
|
package/scripts/npm-link
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
# Links an npm module
|
|
4
|
-
#
|
|
5
|
-
set -euf -o pipefail
|
|
6
|
-
|
|
7
|
-
# `npm link` does not work on CircleCI, so we're doing manual symlinking instead
|
|
8
|
-
rm -rf "node_modules/$1"
|
|
9
|
-
# Some modules have no dependencies in package.json, so we'll create it just in case
|
|
10
|
-
mkdir -p "node_modules"
|
|
11
|
-
ln -s "$(pwd)/../../$1/javascript" node_modules/$1
|
package/test/mocha.opts
DELETED
package/tslint.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"defaultSeverity": "error",
|
|
3
|
-
"extends": [
|
|
4
|
-
"tslint:latest",
|
|
5
|
-
"tslint-plugin-prettier",
|
|
6
|
-
"tslint-config-prettier"
|
|
7
|
-
],
|
|
8
|
-
"jsRules": {},
|
|
9
|
-
"rules": {
|
|
10
|
-
"object-literal-sort-keys": false,
|
|
11
|
-
"ordered-imports": false,
|
|
12
|
-
"no-submodule-imports": false,
|
|
13
|
-
"member-ordering": false,
|
|
14
|
-
"max-classes-per-file": false,
|
|
15
|
-
"interface-name": false,
|
|
16
|
-
"no-empty-interface": false,
|
|
17
|
-
"no-namespace": false,
|
|
18
|
-
"no-implicit-dependencies": [true, "dev"],
|
|
19
|
-
"only-arrow-functions": false,
|
|
20
|
-
"prettier": true
|
|
21
|
-
},
|
|
22
|
-
"rulesDirectory": []
|
|
23
|
-
}
|