pickle-jar 1.3.1 → 1.4.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.
@@ -0,0 +1,6 @@
1
+ export interface FeatureContext {
2
+ file: string;
3
+ directory: string;
4
+ absoluteFeaturePath: string;
5
+ relativeFeaturePath: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=feature-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-context.js","sourceRoot":"","sources":["../../src/feature-context.ts"],"names":[],"mappings":""}
@@ -2,6 +2,8 @@ import { AbstractParseTreeVisitor } from "antlr4ts/tree";
2
2
  import { BackgroundContext, FeatureContext, FeatureFileContext, ScenarioContext, ScenarioOutlineContext } from "./grammar/GherkinParser";
3
3
  import { GherkinParserVisitor } from "./grammar/GherkinParserVisitor";
4
4
  import { StepDefinition } from "./step-definition";
5
+ import { WorldFactory } from "./world";
6
+ import { FeatureContext as PickleFeatureContext } from "./feature-context";
5
7
  interface WorldObject<TWorld> {
6
8
  world: TWorld;
7
9
  }
@@ -9,15 +11,14 @@ export declare class FeatureFileVisitor<TWorld> extends AbstractParseTreeVisitor
9
11
  private readonly worldFactory;
10
12
  private readonly stepDefinitions;
11
13
  private tagFilter;
12
- constructor(worldFactory: () => TWorld, stepDefinitions: StepDefinition<TWorld>[], tagFilter: (tags: string[]) => boolean);
14
+ private readonly featureContext;
15
+ constructor(worldFactory: WorldFactory<TWorld>, stepDefinitions: StepDefinition<TWorld>[], tagFilter: (tags: string[]) => boolean, featureContext: PickleFeatureContext);
13
16
  visitFeatureFile(ctx: FeatureFileContext): void;
14
17
  visitFeature(ctx: FeatureContext): void;
15
18
  visitScenario(ctx: ScenarioContext, worldObject?: WorldObject<TWorld>): void;
16
19
  setupBackground(backgroundCtx: BackgroundContext, ctx: FeatureContext): void;
17
20
  visitScenarioOutline(ctx: ScenarioOutlineContext, worldObject?: WorldObject<TWorld>): void;
18
21
  protected defaultResult(): void;
19
- private extractTags;
20
- private extractTestTags;
21
22
  private replaceKeywords;
22
23
  private runNextStep;
23
24
  private defineTestStep;
@@ -4,18 +4,20 @@ exports.FeatureFileVisitor = void 0;
4
4
  const tree_1 = require("antlr4ts/tree");
5
5
  const os_1 = require("os");
6
6
  const GherkinParser_1 = require("./grammar/GherkinParser");
7
+ const tags_1 = require("./tags");
7
8
  class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
8
- constructor(worldFactory, stepDefinitions, tagFilter) {
9
+ constructor(worldFactory, stepDefinitions, tagFilter, featureContext) {
9
10
  super();
10
11
  this.worldFactory = worldFactory;
11
12
  this.stepDefinitions = stepDefinitions;
12
13
  this.tagFilter = tagFilter;
14
+ this.featureContext = featureContext;
13
15
  }
14
16
  visitFeatureFile(ctx) {
15
17
  this.visitChildren(ctx);
16
18
  }
17
19
  visitFeature(ctx) {
18
- const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
20
+ const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
19
21
  if (!this.tagFilter(tags)) {
20
22
  return;
21
23
  }
@@ -31,7 +33,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
31
33
  });
32
34
  }
33
35
  visitScenario(ctx, worldObject) {
34
- const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
36
+ const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
35
37
  if (!this.tagFilter(tags)) {
36
38
  return;
37
39
  }
@@ -40,7 +42,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
40
42
  const worldObj = {};
41
43
  beforeEach(() => {
42
44
  if (!worldObject) {
43
- worldObj.world = this.worldFactory();
45
+ worldObj.world = this.worldFactory(this.featureContext);
44
46
  }
45
47
  });
46
48
  const step = ctx.step();
@@ -49,7 +51,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
49
51
  });
50
52
  }
51
53
  setupBackground(backgroundCtx, ctx) {
52
- const { tags, isOnly, isSkip } = this.extractTags(backgroundCtx.tags());
54
+ const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(backgroundCtx.tags());
53
55
  if (!this.tagFilter(tags)) {
54
56
  return;
55
57
  }
@@ -57,7 +59,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
57
59
  describeFunc(`Background: ${backgroundCtx.multilineText().text.trim()}`, () => {
58
60
  const worldObj = {};
59
61
  beforeEach(() => {
60
- worldObj.world = this.worldFactory();
62
+ worldObj.world = this.worldFactory(this.featureContext);
61
63
  });
62
64
  const steps = [backgroundCtx.givenStep(), ...backgroundCtx.andGivenStep(), ...ctx.scenario(), ...ctx.scenarioOutline()];
63
65
  this.runNextStep(steps, undefined, worldObj);
@@ -71,7 +73,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
71
73
  });
72
74
  }
73
75
  visitScenarioOutline(ctx, worldObject) {
74
- const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
76
+ const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
75
77
  if (!this.tagFilter(tags)) {
76
78
  return;
77
79
  }
@@ -90,7 +92,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
90
92
  const worldObj = {};
91
93
  beforeEach(() => {
92
94
  if (!worldObject) {
93
- worldObj.world = this.worldFactory();
95
+ worldObj.world = this.worldFactory(this.featureContext);
94
96
  }
95
97
  });
96
98
  for (const row of valueMap) {
@@ -103,22 +105,6 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
103
105
  defaultResult() {
104
106
  return;
105
107
  }
106
- extractTags(tagsContext) {
107
- var _a;
108
- const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
109
- const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
110
- const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
111
- return { tags, isOnly, isSkip };
112
- }
113
- extractTestTags(tagsContext) {
114
- var _a;
115
- const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
116
- const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
117
- const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
118
- const isTodo = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TODO_TAG().length);
119
- const isFail = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.FAIL_TAG().length);
120
- return { tags, isOnly, isSkip, isTodo, isFail };
121
- }
122
108
  replaceKeywords(input, replacements) {
123
109
  return input
124
110
  .replace(/<([^>]+)>/g, (match, keyword) => {
@@ -145,21 +131,21 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
145
131
  let prepare = true;
146
132
  if (step instanceof GherkinParser_1.GivenStepContext || step instanceof GherkinParser_1.AndGivenStepContext) {
147
133
  prefix = 'Given';
148
- tags = this.extractTags(step.tags());
134
+ tags = (0, tags_1.extractTags)(step.tags());
149
135
  }
150
136
  else if (step instanceof GherkinParser_1.WhenStepContext || step instanceof GherkinParser_1.AndWhenStepContext) {
151
137
  prefix = 'When';
152
- tags = this.extractTags(step.tags());
138
+ tags = (0, tags_1.extractTags)(step.tags());
153
139
  }
154
140
  else if (step instanceof GherkinParser_1.ThenStepContext || step instanceof GherkinParser_1.AndStepContext) {
155
141
  prefix = "Then";
156
142
  prepare = false;
157
- tags = this.extractTestTags(step.thenTags());
143
+ tags = (0, tags_1.extractTestTags)(step.thenTags());
158
144
  }
159
145
  else {
160
146
  prefix = 'But';
161
147
  prepare = false;
162
- tags = this.extractTestTags(step.thenTags());
148
+ tags = (0, tags_1.extractTestTags)(step.thenTags());
163
149
  }
164
150
  if (!this.tagFilter(tags.tags)) {
165
151
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-file-visitor.js","sourceRoot":"","sources":["../../src/feature-file-visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-file-visitor.js","sourceRoot":"","sources":["../../src/feature-file-visitor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- export * from "./test-runner";
2
- export * from "./step-definition";
3
- export * from "./step";
4
- export * from "./jest-error-listener";
1
+ export * from './step-tags';
2
+ export * from './test-runner';
3
+ export * from './step-definition';
4
+ export * from './jest-error-listener';
5
+ export * from './step';
6
+ export * from './feature-context';
7
+ export * from './world';
8
+ export * from './tags';
package/dist/src/index.js CHANGED
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./step-tags"), exports);
4
5
  tslib_1.__exportStar(require("./test-runner"), exports);
5
6
  tslib_1.__exportStar(require("./step-definition"), exports);
6
- tslib_1.__exportStar(require("./step"), exports);
7
7
  tslib_1.__exportStar(require("./jest-error-listener"), exports);
8
+ tslib_1.__exportStar(require("./step"), exports);
9
+ tslib_1.__exportStar(require("./feature-context"), exports);
10
+ tslib_1.__exportStar(require("./world"), exports);
11
+ tslib_1.__exportStar(require("./tags"), exports);
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,4DAAkC;AAClC,iDAAuB;AACvB,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,wDAA6B;AAC7B,4DAAiC;AACjC,gEAAqC;AACrC,iDAAsB;AACtB,4DAAiC;AACjC,kDAAuB;AACvB,iDAAsB"}
@@ -0,0 +1,7 @@
1
+ export interface StepTags {
2
+ tags: string[];
3
+ isSkip: boolean;
4
+ isOnly: boolean;
5
+ isFail?: boolean;
6
+ isTodo?: boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=step-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-tags.js","sourceRoot":"","sources":["../../src/step-tags.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { TagsContext, ThenTagsContext } from "./grammar/GherkinParser";
2
+ import { StepTags } from "./step-tags";
3
+ export declare function extractTags(tagsContext: TagsContext | undefined): StepTags;
4
+ export declare function extractTestTags(tagsContext: ThenTagsContext | undefined): StepTags;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractTestTags = exports.extractTags = void 0;
4
+ function extractTags(tagsContext) {
5
+ var _a;
6
+ const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
7
+ const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
8
+ const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
9
+ return { tags, isOnly, isSkip };
10
+ }
11
+ exports.extractTags = extractTags;
12
+ function extractTestTags(tagsContext) {
13
+ var _a;
14
+ const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
15
+ const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
16
+ const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
17
+ const isTodo = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TODO_TAG().length);
18
+ const isFail = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.FAIL_TAG().length);
19
+ return { tags, isOnly, isSkip, isTodo, isFail };
20
+ }
21
+ exports.extractTestTags = extractTestTags;
22
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tags.ts"],"names":[],"mappings":";;;AAIA,SAAgB,WAAW,CAAC,WAAoC;;IAC5D,MAAM,IAAI,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;AAClC,CAAC;AALD,kCAKC;AAED,SAAgB,eAAe,CAAC,WAAwC;;IACpE,MAAM,IAAI,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,GAAG,MAAM,CAAA,CAAC;IAChD,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;AAClD,CAAC;AAPD,0CAOC"}
@@ -1,2 +1,3 @@
1
1
  import { StepDefinition } from "./step-definition";
2
- export declare function testRunner<TWorld>(globPattern: string, stepDefinitions: StepDefinition<TWorld>[], worldFactory: () => TWorld, tagFilter?: (tags: string[]) => boolean): void;
2
+ import { WorldFactory } from "./world";
3
+ export declare function testRunner<TWorld>(globPattern: string, stepDefinitions: StepDefinition<TWorld>[], worldFactory: WorldFactory<TWorld>, tagFilter?: (tags: string[]) => boolean): void;
@@ -21,6 +21,12 @@ function testRunner(globPattern, stepDefinitions, worldFactory, tagFilter = () =
21
21
  const dir = path.dirname(file);
22
22
  const absoluteFeaturePath = path.resolve(dir, featureFile);
23
23
  const relativeFeaturePath = path.relative(dir, absoluteFeaturePath);
24
+ const featureContext = {
25
+ file: file,
26
+ directory: dir,
27
+ absoluteFeaturePath: absoluteFeaturePath,
28
+ relativeFeaturePath: relativeFeaturePath,
29
+ };
24
30
  describe(relativeFeaturePath, () => {
25
31
  const listener = new jest_error_listener_1.JestErrorListener();
26
32
  const featureText = fs.readFileSync(absoluteFeaturePath, "utf-8") + os_1.EOL;
@@ -33,7 +39,7 @@ function testRunner(globPattern, stepDefinitions, worldFactory, tagFilter = () =
33
39
  parser.removeErrorListeners();
34
40
  parser.addErrorListener(listener);
35
41
  const parsedFeatureFile = parser.featureFile();
36
- const visitor = new feature_file_visitor_1.FeatureFileVisitor(worldFactory, stepDefinitions, tagFilter);
42
+ const visitor = new feature_file_visitor_1.FeatureFileVisitor(worldFactory, stepDefinitions, tagFilter, featureContext);
37
43
  parsedFeatureFile.accept(visitor);
38
44
  listener.reportErrors();
39
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/test-runner.ts"],"names":[],"mappings":";;;;AAAA,uCAA0D;AAC1D,+CAAyB;AACzB,+BAA0B;AAC1B,2BAAuB;AACvB,mDAA6B;AAE7B,iEAA0D;AAC1D,qDAA8C;AAC9C,yDAAoD;AACpD,2DAA0E;AAC1E,+DAAwD;AAGxD,SAAgB,UAAU,CAAS,WAAmB,EAAE,eAAyC,EAAE,YAA0B,EAAE,YAAwC,GAAE,EAAE,CAAC,IAAI;;IAE5K,MAAM,YAAY,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACpC,MAAM,QAAQ,GAAG,IAAA,6BAAY,GAAE,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAEpE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,MAAM,QAAQ,GAAG,IAAI,uCAAiB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG,QAAG,CAAC;YACxE,MAAM,KAAK,GAAG,sBAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC7B,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjC,MAAM,WAAW,GAAG,IAAI,8BAAmB,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAElC,MAAM,iBAAiB,GAAuB,MAAM,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,yCAAkB,CAAS,YAAY,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YACzF,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;KACN;AAGL,CAAC;AAhCD,gCAgCC"}
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/test-runner.ts"],"names":[],"mappings":";;;;AAAA,uCAA0D;AAC1D,+CAAyB;AACzB,+BAA0B;AAC1B,2BAAuB;AACvB,mDAA6B;AAE7B,iEAA0D;AAC1D,qDAA8C;AAC9C,yDAAoD;AACpD,2DAA0E;AAC1E,+DAAwD;AAKxD,SAAgB,UAAU,CAAS,WAAmB,EAAE,eAAyC,EAAE,YAAkC,EAAE,YAAwC,GAAE,EAAE,CAAC,IAAI;;IAEpL,MAAM,YAAY,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACpC,MAAM,QAAQ,GAAG,IAAA,6BAAY,GAAE,CAAC,CAAC,CAAC,CAAC;QAGnC,MAAM,IAAI,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAoB;YACpC,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,GAAG;YACd,mBAAmB,EAAE,mBAAmB;YACxC,mBAAmB,EAAE,mBAAmB;SAC3C,CAAA;QAGD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,MAAM,QAAQ,GAAG,IAAI,uCAAiB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG,QAAG,CAAC;YACxE,MAAM,KAAK,GAAG,sBAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC7B,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjC,MAAM,WAAW,GAAG,IAAI,8BAAmB,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAElC,MAAM,iBAAiB,GAAuB,MAAM,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,yCAAkB,CAAS,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACzG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;KACN;AAGL,CAAC;AA1CD,gCA0CC"}
@@ -0,0 +1,2 @@
1
+ import { FeatureContext } from "./feature-context";
2
+ export type WorldFactory<TWorld> = (featureContext: FeatureContext) => TWorld;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=world.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/world.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pickle-jar",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "repository": "git@github0.com:nseba/pickle-jar.git",
@@ -12,7 +12,7 @@
12
12
  ],
13
13
  "devDependencies": {
14
14
  "@types/glob": "^8.1.0",
15
- "@types/jest": "^29.5.1",
15
+ "@types/jest": "^29.5.4",
16
16
  "@typescript-eslint/eslint-plugin": "^5.59.7",
17
17
  "@typescript-eslint/parser": "^5.59.7",
18
18
  "antlr4": "^4.13.0",