@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 ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "require": ["tsconfig-paths/register", "ts-node/register", "source-map-support/register"],
3
+ "extension": ["ts", "tsx"],
4
+ "recursive": true,
5
+ "timeout": 10000
6
+ }
package/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Greenkeeper badge](https://badges.greenkeeper.io/cucumber/tag-expressions-javascript.svg)](https://greenkeeper.io/)
4
4
 
5
- [![Build Status](https://travis-ci.org/cucumber/tag-expressions-javascript.svg?branch=master)](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
- TYPESCRIPT_SOURCE_FILES = $(shell find src test -type f -name "*.ts" -o -name "*.tsx")
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: .linted .tested .built
9
+ default: .tested
6
10
  .PHONY: default
7
11
 
8
- .deps: package-lock.json
9
- touch $@
12
+ ../../node_modules ../../package-lock.json: package.json
13
+ cd ../.. && npm install
10
14
 
11
- .codegen: .deps
15
+ .codegen:
12
16
  touch $@
13
17
 
14
- .built: .codegen $(TYPESCRIPT_SOURCE_FILES)
15
- npm run build
16
- touch $@
18
+ .tested: .tested-npm .built
17
19
 
18
- .tested: .built $(TYPESCRIPT_SOURCE_FILES)
19
- TS_NODE_TRANSPILE_ONLY=1 npm run test
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
- .linted: $(TYPESCRIPT_SOURCE_FILES) package-lock.json
23
- npm run lint-fix
26
+ .tested-npm: $(TYPESCRIPT_SOURCE_FILES) ../../node_modules ../../package-lock.json .codegen
27
+ npm run test
24
28
  touch $@
25
29
 
26
- package-lock.json: package.json
27
- npm install
28
- touch $@
30
+ pre-release: clean update-version update-dependencies default
31
+ .PHONY: pre-release
29
32
 
30
- update-dependencies:
31
- npx npm-check-updates --upgrade
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 .built .tested* .linted package-lock.json node_modules coverage dist acceptance
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
@@ -9,3 +9,4 @@ interface Node {
9
9
  evaluate(variables: string[]): boolean;
10
10
  }
11
11
  export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -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
- var OPERAND = 'operand';
4
- var OPERATOR = 'operator';
5
- var PREC = {
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
- var ASSOC = {
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
- var tokens = tokenize(infix);
24
+ const tokens = tokenize(infix);
25
25
  if (tokens.length === 0) {
26
26
  return new True();
27
27
  }
28
- var expressions = [];
29
- var operators = [];
30
- var expectedTokenType = OPERAND;
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
- var tokens = [];
83
- var isEscaped = false;
84
- var token;
85
- for (var i = 0; i < expr.length; i++) {
86
- var c = expr.charAt(i);
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
- var rightAndExpr = pop(stack);
145
+ const rightAndExpr = pop(stack);
146
146
  stack.push(new And(pop(stack), rightAndExpr));
147
147
  }
148
148
  else if (token === 'or') {
149
- var rightOrExpr = pop(stack);
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
- var Literal = /** @class */ (function () {
160
- function Literal(value) {
159
+ class Literal {
160
+ constructor(value) {
161
161
  this.value = value;
162
162
  }
163
- Literal.prototype.evaluate = function (variables) {
163
+ evaluate(variables) {
164
164
  return variables.indexOf(this.value) !== -1;
165
- };
166
- Literal.prototype.toString = function () {
167
- return this.value.replace(/\(/g, '\\(').replace(/\)/g, '\\)');
168
- };
169
- return Literal;
170
- }());
171
- var Or = /** @class */ (function () {
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
- Or.prototype.evaluate = function (variables) {
177
- return (this.leftExpr.evaluate(variables) || this.rightExpr.evaluate(variables));
178
- };
179
- Or.prototype.toString = function () {
180
- return ('( ' +
181
- this.leftExpr.toString() +
182
- ' or ' +
183
- this.rightExpr.toString() +
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
- And.prototype.evaluate = function (variables) {
194
- return (this.leftExpr.evaluate(variables) && this.rightExpr.evaluate(variables));
195
- };
196
- And.prototype.toString = function () {
197
- return ('( ' +
198
- this.leftExpr.toString() +
199
- ' and ' +
200
- this.rightExpr.toString() +
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
- Not.prototype.evaluate = function (variables) {
198
+ evaluate(variables) {
210
199
  return !this.expr.evaluate(variables);
211
- };
212
- Not.prototype.toString = function () {
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
- True.prototype.evaluate = function (variables) {
204
+ }
205
+ class True {
206
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
207
+ evaluate(variables) {
221
208
  return true;
222
- };
223
- True.prototype.toString = function () {
209
+ }
210
+ toString() {
224
211
  return 'true';
225
- };
226
- return True;
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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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=tag_expression_parser_test.d.ts.map
@@ -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
- var assert_1 = __importDefault(require("assert"));
7
- var tag_expression_parser_1 = __importDefault(require("../src/tag_expression_parser"));
8
- describe('TagExpressionParser', function () {
9
- describe('#parse', function () {
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
- ].forEach(function (inOut) {
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
- var infix = inOut[0];
28
- var expr = tag_expression_parser_1.default(infix);
35
+ const infix = inOut[0];
36
+ const expr = (0, src_1.default)(infix);
29
37
  assert_1.default.strictEqual(expr.toString(), inOut[1]);
30
- var roundtripTokens = expr.toString();
31
- var roundtripExpr = tag_expression_parser_1.default(roundtripTokens);
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
- var infix = inOut[0];
55
+ const infix = inOut[0];
47
56
  try {
48
- tag_expression_parser_1.default(infix);
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
- var expr = tag_expression_parser_1.default('not x');
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
- var expr = tag_expression_parser_1.default('x and y');
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
- var expr = tag_expression_parser_1.default(' x or(y) ');
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
- var expr = tag_expression_parser_1.default(' x\\(1\\) or(y\\(2\\)) ');
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
- var expr = tag_expression_parser_1.default('');
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":"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"}
1
+ {"version":3,"file":"tag_expression_parser_test.js","sourceRoot":"","sources":["../../test/tag_expression_parser_test.ts"],"names":[],"mappings":"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"}
@@ -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": "2.0.4",
3
+ "version": "4.1.0",
4
4
  "description": "Cucumber Tag Expression parser",
5
- "main": "dist/src/tag_expression_parser.js",
6
- "types": "dist/src/tag_expression_parser.d.ts",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
7
  "scripts": {
8
8
  "test": "mocha",
9
- "lint": "tslint src/**/*.ts test/**/*.ts",
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": "^5.2.7",
30
- "@types/node": "^13.1.6",
31
- "mocha": "^7.0.0",
32
- "nyc": "^15.0.0",
33
- "prettier": "^1.19.1",
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/tag_expression_parser'
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
- ].forEach(function(inOut) {
22
- it(inOut[0], function() {
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
  })
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "../../tsconfig.build.json",
3
+ "compilerOptions": {
4
+ "rootDir": ".",
5
+ "outDir": "dist"
6
+ },
7
+ "include": [
8
+ "src",
9
+ "test"
10
+ ]
11
+ }
package/tsconfig.json CHANGED
@@ -1,29 +1,3 @@
1
1
  {
2
- "compilerOptions": {
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
@@ -1,16 +0,0 @@
1
- {
2
- "extension": [
3
- ".ts",
4
- ".tsx"
5
- ],
6
- "exclude": [
7
- "coverage",
8
- "dist",
9
- "src/**/*.d.ts"
10
- ],
11
- "reporter": [
12
- "html",
13
- "text"
14
- ],
15
- "all": true
16
- }
package/.prettierrc DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "trailingComma": "es5",
3
- "semi": false,
4
- "singleQuote": true
5
- }
@@ -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
@@ -1,5 +0,0 @@
1
- --require ts-node/register
2
- --require source-map-support/register
3
- --extension ts,tsx
4
- --recursive
5
- --timeout 60000
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
- }