@cucumber/tag-expressions 2.0.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,69 @@
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
12
+ .codegen:
9
13
  touch $@
10
14
 
11
- .codegen: .deps
12
- touch $@
13
-
14
- .built: .codegen $(TYPESCRIPT_SOURCE_FILES)
15
- npm run build
16
- touch $@
15
+ .tested: .tested-npm
17
16
 
18
- .tested: .built $(TYPESCRIPT_SOURCE_FILES)
19
- TS_NODE_TRANSPILE_ONLY=1 npm run test
17
+ .tested-npm: $(TYPESCRIPT_SOURCE_FILES) .codegen
18
+ npm run test
20
19
  touch $@
21
20
 
22
- .linted: $(TYPESCRIPT_SOURCE_FILES) package-lock.json
23
- npm run lint-fix
24
- touch $@
25
-
26
- package-lock.json: package.json
27
- npm install
28
- touch $@
21
+ pre-release: clean update-version update-dependencies default
22
+ .PHONY: pre-release
29
23
 
30
24
  update-dependencies:
31
- npx npm-check-updates --upgrade
25
+ ../../node_modules/.bin/npm-check-updates --upgrade && \
26
+ pushd ../.. && \
27
+ npm install && \
28
+ npm run build && \
29
+ popd
32
30
  .PHONY: update-dependencies
33
31
 
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
32
  update-version:
33
+ ifeq ($(IS_TESTDATA),-testdata)
34
+ # no-op
35
+ else
43
36
  ifdef NEW_VERSION
44
37
  npm --no-git-tag-version --allow-same-version version "$(NEW_VERSION)"
38
+ # Update all npm packages that depend on us
39
+ pushd ../.. && \
40
+ ./scripts/npm-each update_npm_dependency_if_exists package.json "$(NPM_MODULE)" "^$(NEW_VERSION)"
41
+ # npm install
45
42
  else
46
43
  @echo -e "\033[0;31mNEW_VERSION is not defined. Can't update version :-(\033[0m"
47
44
  exit 1
48
45
  endif
46
+ endif
49
47
  .PHONY: update-version
50
48
 
51
49
  publish: .codegen
50
+ ifeq ($(IS_TESTDATA),-testdata)
51
+ # no-op
52
+ else
52
53
  ifneq (true,$(PRIVATE))
53
54
  npm publish --access public
54
55
  else
55
56
  @echo "Not publishing private npm module"
56
57
  endif
58
+ endif
57
59
  .PHONY: publish
58
60
 
59
61
  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
62
  .PHONY: post-release
63
63
 
64
64
  clean: clean-javascript
65
65
  .PHONY: clean
66
66
 
67
67
  clean-javascript:
68
- rm -rf .deps .codegen .built .tested* .linted package-lock.json node_modules coverage dist acceptance
68
+ rm -rf .deps .codegen .tested* node_modules coverage dist acceptance
69
69
  .PHONY: clean-javascript
@@ -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,11 +79,11 @@ 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);
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
87
  if ('\\' === c) {
88
88
  isEscaped = true;
89
89
  }
@@ -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 () {
165
+ }
166
+ toString() {
167
167
  return this.value.replace(/\(/g, '\\(').replace(/\)/g, '\\)');
168
- };
169
- return Literal;
170
- }());
171
- var Or = /** @class */ (function () {
172
- function Or(leftExpr, rightExpr) {
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,15 @@ 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 or not b
25
+ ];
26
+ tests.forEach(function (inOut) {
26
27
  it(inOut[0], function () {
27
- var infix = inOut[0];
28
- var expr = tag_expression_parser_1.default(infix);
28
+ const infix = inOut[0];
29
+ const expr = src_1.default(infix);
29
30
  assert_1.default.strictEqual(expr.toString(), inOut[1]);
30
- var roundtripTokens = expr.toString();
31
- var roundtripExpr = tag_expression_parser_1.default(roundtripTokens);
31
+ const roundtripTokens = expr.toString();
32
+ const roundtripExpr = src_1.default(roundtripTokens);
32
33
  assert_1.default.strictEqual(roundtripExpr.toString(), inOut[1]);
33
34
  });
34
35
  });
@@ -41,11 +42,12 @@ describe('TagExpressionParser', function () {
41
42
  ['a b', 'Syntax error. Expected operator'],
42
43
  ['( a and b ) )', 'Syntax error. Unmatched )'],
43
44
  ['( ( a and b )', 'Syntax error. Unmatched ('],
45
+ // a or not b
44
46
  ].forEach(function (inOut) {
45
47
  it(inOut[0] + ' fails', function () {
46
- var infix = inOut[0];
48
+ const infix = inOut[0];
47
49
  try {
48
- tag_expression_parser_1.default(infix);
50
+ src_1.default(infix);
49
51
  throw new Error('Expected syntax error');
50
52
  }
51
53
  catch (expected) {
@@ -55,24 +57,24 @@ describe('TagExpressionParser', function () {
55
57
  });
56
58
  // evaluation
57
59
  it('evaluates not', function () {
58
- var expr = tag_expression_parser_1.default('not x');
60
+ const expr = src_1.default('not x');
59
61
  assert_1.default.strictEqual(expr.evaluate(['x']), false);
60
62
  assert_1.default.strictEqual(expr.evaluate(['y']), true);
61
63
  });
62
64
  it('evaluates and', function () {
63
- var expr = tag_expression_parser_1.default('x and y');
65
+ const expr = src_1.default('x and y');
64
66
  assert_1.default.strictEqual(expr.evaluate(['x', 'y']), true);
65
67
  assert_1.default.strictEqual(expr.evaluate(['y']), false);
66
68
  assert_1.default.strictEqual(expr.evaluate(['x']), false);
67
69
  });
68
70
  it('evaluates or', function () {
69
- var expr = tag_expression_parser_1.default(' x or(y) ');
71
+ const expr = src_1.default(' x or(y) ');
70
72
  assert_1.default.strictEqual(expr.evaluate([]), false);
71
73
  assert_1.default.strictEqual(expr.evaluate(['y']), true);
72
74
  assert_1.default.strictEqual(expr.evaluate(['x']), true);
73
75
  });
74
76
  it('evaluates expressions with escaped chars', function () {
75
- var expr = tag_expression_parser_1.default(' x\\(1\\) or(y\\(2\\)) ');
77
+ const expr = src_1.default(' x\\(1\\) or(y\\(2\\)) ');
76
78
  assert_1.default.strictEqual(expr.evaluate([]), false);
77
79
  assert_1.default.strictEqual(expr.evaluate(['y(2)']), true);
78
80
  assert_1.default.strictEqual(expr.evaluate(['x(1)']), true);
@@ -80,7 +82,7 @@ describe('TagExpressionParser', function () {
80
82
  assert_1.default.strictEqual(expr.evaluate(['x']), false);
81
83
  });
82
84
  it('evaluates empty expressions to true', function () {
83
- var expr = tag_expression_parser_1.default('');
85
+ const expr = src_1.default('');
84
86
  assert_1.default.strictEqual(expr.evaluate([]), true);
85
87
  assert_1.default.strictEqual(expr.evaluate(['y']), true);
86
88
  assert_1.default.strictEqual(expr.evaluate(['x']), true);
@@ -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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"}