@wdio/cucumber-framework 8.11.0 → 8.12.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/build/index.d.ts CHANGED
@@ -22,6 +22,7 @@ declare class CucumberAdapter {
22
22
  private _eventDataCollector;
23
23
  private _pickleFilter;
24
24
  private getHookParams?;
25
+ private gherkinParser;
25
26
  constructor(_cid: string, _config: Options.Testrunner, _specs: string[], _capabilities: Capabilities.RemoteCapability, _reporter: EventEmitter);
26
27
  readFiles(filePaths?: Options.Testrunner['specs']): (string | string[])[];
27
28
  getGherkinDocuments(files?: Options.Testrunner['specs']): (GherkinDocument | GherkinDocument[])[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -17,9 +17,6 @@ import { DEFAULT_OPTS } from './constants.js';
17
17
  import { setUserHookNames, shouldRun } from './utils.js';
18
18
  const { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, Given, Then, When, DataTable, World, PickleFilter, Runtime, Status, setDefaultTimeout, setDefinitionFunctionWrapper, setWorldConstructor, defineParameterType, defineStep, parseGherkinMessageStream, supportCodeLibraryBuilder, } = Cucumber;
19
19
  const uuidFn = IdGenerator.uuid();
20
- const builder = new Gherkin.AstBuilder(uuidFn);
21
- const matcher = new Gherkin.GherkinClassicTokenMatcher();
22
- const gherkinParser = new Gherkin.Parser(builder, matcher);
23
20
  const require = createRequire(import.meta.url);
24
21
  // EventDataCollector is not exported from main package
25
22
  // Cannot import from path mapping without require
@@ -50,6 +47,7 @@ class CucumberAdapter {
50
47
  _eventDataCollector;
51
48
  _pickleFilter;
52
49
  getHookParams;
50
+ gherkinParser;
53
51
  constructor(_cid, _config, _specs, _capabilities, _reporter) {
54
52
  this._cid = _cid;
55
53
  this._config = _config;
@@ -67,6 +65,9 @@ class CucumberAdapter {
67
65
  this._cucumberFeaturesWithLineNumbers = this._config.cucumberFeaturesWithLineNumbers || [];
68
66
  this._eventBroadcaster = new EventEmitter();
69
67
  this._eventDataCollector = new EventDataCollector(this._eventBroadcaster);
68
+ const builder = new Gherkin.AstBuilder(uuidFn);
69
+ const matcher = new Gherkin.GherkinClassicTokenMatcher(this._config.cucumberOpts?.featureDefaultLanguage || 'en');
70
+ this.gherkinParser = new Gherkin.Parser(builder, matcher);
70
71
  this._specs = this._specs.map((spec) => (
71
72
  /**
72
73
  * as Cucumber doesn't support file:// formats yet we have to
@@ -105,7 +106,7 @@ class CucumberAdapter {
105
106
  const docs = [specContent]
106
107
  .flat(1)
107
108
  .map((content, ctIdx) => ({
108
- ...gherkinParser.parse(content),
109
+ ...this.gherkinParser.parse(content),
109
110
  uri: Array.isArray(specContent)
110
111
  ? files[idx][ctIdx]
111
112
  : files[idx],
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAEjI,OAAO,qBAAqB,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAa7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IAfd,aAAa,EAAE,qBAAqB,CAAA;IACpC,WAAW,SAAI;IAEtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAM;gBAGrB,gBAAgB,EAAE,YAAY,EAC9B,YAAY,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC,EACvC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,YAAY;IAkBnC,mBAAmB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAclD,oBAAoB,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB;IAgB9B,gBAAgB,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ;IAS/B,eAAe,CACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,EAC3B,MAAM,EAAE,cAAc;IAS1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc;IAkB1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,cAAc;IA+F1B,mBAAmB,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc;IAiB1B,kBAAkB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAWjD,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAUjC,QAAQ,CAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM;CAQhD"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAEjI,OAAO,qBAAqB,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAa7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IAfd,aAAa,EAAE,qBAAqB,CAAA;IACpC,WAAW,SAAI;IAEtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAM;gBAGrB,gBAAgB,EAAE,YAAY,EAC9B,YAAY,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC,EACvC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,YAAY;IAkBnC,mBAAmB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAclD,oBAAoB,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB;IAgB9B,gBAAgB,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ;IAS/B,eAAe,CACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,EAC3B,MAAM,EAAE,cAAc;IAS1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc;IAsB1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,cAAc;IA+F1B,mBAAmB,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc;IAiB1B,kBAAkB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAWjD,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAUjC,QAAQ,CAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM;CAQhD"}
package/build/reporter.js CHANGED
@@ -75,6 +75,9 @@ export default class CucumberReporter {
75
75
  error = new Error(result.message.split('\n')[0]);
76
76
  error.stack = result.message;
77
77
  }
78
+ if (result.status === Status.FAILED) {
79
+ this.failedCount++;
80
+ }
78
81
  const payload = buildStepPayload(uri, feature, scenario, step, {
79
82
  type: 'hook',
80
83
  state: result.status,
package/build/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type TagExpressionParser from '@cucumber/tag-expressions';
2
2
  import type { supportCodeLibraryBuilder } from '@cucumber/cucumber';
3
- import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus, GherkinDocument, FeatureChild, RuleChild } from '@cucumber/messages';
3
+ import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus, GherkinDocument } from '@cucumber/messages';
4
4
  import type { Capabilities } from '@wdio/types';
5
5
  import type { ReporterStep } from './constants.js';
6
6
  /**
@@ -88,10 +88,6 @@ export declare function getRule(feature: Feature, scenarioId: string): string |
88
88
  * This will aad them
89
89
  */
90
90
  export declare function addKeywordToStep(steps: ReporterStep[], feature: Feature): ReporterStep[];
91
- export declare function hasTags(msg: GherkinDocument | FeatureChild | RuleChild, { tagParser, lineOnFile }: {
92
- tagParser: ReturnType<typeof TagExpressionParser>;
93
- lineOnFile: number | undefined;
94
- }): boolean;
95
91
  export declare function shouldRun(doc: GherkinDocument, tagParser: ReturnType<typeof TagExpressionParser>): boolean;
96
92
  export {};
97
93
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAA;AAGhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAGR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,SAAS,EACZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,EAAE,QAAQ,EAAE,EAAE,UAAU;;;;cAoB3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,EAAE,OAAY,EAAE,EAAE,GAAG,OAgBnD;AAED,aAAK,QAAQ;IACT,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAE,IAAI,EAAE,QAAQ,YAE1C;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAE1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,oBAAY,EAAE,IAAI,oBAAY,EAAE,IAAI,EAAC,MAAM,UAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;;;;;;UAPS,MAAM;;;;;EAqBnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,OAAO,yBAAyB,QAe1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,WA+B1F;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAS3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,kBA4BvE;AAED,wBAAgB,OAAO,CACnB,GAAG,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS,EAC/C,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,WAiBnH;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,WA6BhG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAA;AAKhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAGR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,oBAAoB,EACpB,eAAe,EAClB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,EAAE,QAAQ,EAAE,EAAE,UAAU;;;;cAoB3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,EAAE,OAAY,EAAE,EAAE,GAAG,OAgBnD;AAED,aAAK,QAAQ;IACT,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAE,IAAI,EAAE,QAAQ,YAE1C;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAE1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,oBAAY,EAAE,IAAI,oBAAY,EAAE,IAAI,EAAC,MAAM,UAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;;;;;;UAPS,MAAM;;;;;EAqBnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,OAAO,yBAAyB,QAe1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,WA+B1F;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAS3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,kBA4BvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,WAShG"}
package/build/utils.js CHANGED
@@ -2,6 +2,8 @@ import path from 'node:path';
2
2
  import logger from '@wdio/logger';
3
3
  import { isFunctionAsync } from '@wdio/utils';
4
4
  import { CUCUMBER_HOOK_DEFINITION_TYPES } from './constants.js';
5
+ import { compile } from '@cucumber/gherkin';
6
+ import { IdGenerator } from '@cucumber/messages';
5
7
  const log = logger('@wdio/cucumber-framework:utils');
6
8
  /**
7
9
  * NOTE: this function is exported for testing only
@@ -185,38 +187,11 @@ export function addKeywordToStep(steps, feature) {
185
187
  return step;
186
188
  });
187
189
  }
188
- export function hasTags(msg, { tagParser, lineOnFile }) {
189
- const type = (msg.feature
190
- ?? msg.rule
191
- ?? msg.scenario);
192
- if (type) {
193
- const matches = tagParser.evaluate(type.tags.map(t => t.name));
194
- return lineOnFile
195
- // Evaluate only specific line
196
- ? type.location.line === lineOnFile && matches
197
- : matches;
198
- }
199
- return false;
200
- }
201
190
  export function shouldRun(doc, tagParser) {
202
191
  if (!doc.feature) {
203
192
  return false;
204
193
  }
205
- const ext = path.extname(doc.uri);
206
- const lineOnFile = ext.startsWith('feature:')
207
- ? Number(ext.split('feature:').pop())
208
- : undefined;
209
- return (
210
- // Check if Feature has matching tags
211
- hasTags(doc, { tagParser, lineOnFile })
212
- // Check if some root Scenarios have matching tags
213
- || doc.feature.children.filter(c => c.scenario).some(child => hasTags(child, { tagParser, lineOnFile }))
214
- // Check if some Rules have matching tags
215
- || doc.feature.children.filter(c => c.rule).some(child => hasTags(child, { tagParser, lineOnFile }))
216
- // Check if some Scenarios within Rules have matching tags
217
- || doc.feature.children
218
- .filter(c => c.rule)
219
- .map(c => c.rule.children.filter(c => c.scenario))
220
- .flat(1)
221
- .some(child => hasTags(child, { tagParser, lineOnFile })));
194
+ const pickles = compile(doc, '', IdGenerator.uuid());
195
+ const tags = pickles.map((pickle) => pickle.tags.map((tag) => tag.name));
196
+ return tags.some((tag) => tagParser.evaluate(tag));
222
197
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/cucumber-framework",
3
- "version": "8.11.0",
3
+ "version": "8.12.1",
4
4
  "description": "A WebdriverIO plugin. Adapter for Cucumber.js testing framework.",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cucumber-framework",
@@ -46,7 +46,7 @@
46
46
  "@types/node": "^20.1.0",
47
47
  "@wdio/logger": "8.11.0",
48
48
  "@wdio/types": "8.10.4",
49
- "@wdio/utils": "8.11.0",
49
+ "@wdio/utils": "8.12.1",
50
50
  "glob": "^10.2.2",
51
51
  "is-glob": "^4.0.0",
52
52
  "mockery": "^2.1.0"
@@ -58,5 +58,5 @@
58
58
  "publishConfig": {
59
59
  "access": "public"
60
60
  },
61
- "gitHead": "6fa7ae486537cbd3f6dd9e3bcc1812eb0acc6262"
61
+ "gitHead": "be1e7959a7599e2afe33e60856be9a7ca16eb3aa"
62
62
  }