quickpickle 1.10.1 → 1.11.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/dist/index.cjs +87 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.esm.js +87 -29
- package/dist/index.esm.js.map +1 -1
- package/dist/models/DocString.d.ts +1 -0
- package/dist/steps.d.ts +2 -1
- package/dist/world.d.ts +30 -2
- package/package.json +5 -2
package/dist/index.cjs
CHANGED
|
@@ -15,8 +15,10 @@ var Gherkin = require('@cucumber/gherkin');
|
|
|
15
15
|
var Messages = require('@cucumber/messages');
|
|
16
16
|
var fromPairs = require('lodash/fromPairs');
|
|
17
17
|
var escapeRegExp = require('lodash/escapeRegExp');
|
|
18
|
+
var yaml = require('js-yaml');
|
|
18
19
|
var pixelmatch = require('pixelmatch');
|
|
19
20
|
var ariaRoles = require('@a11y-tools/aria-roles');
|
|
21
|
+
var imageCropOrPad = require('image-crop-or-pad');
|
|
20
22
|
|
|
21
23
|
function _interopNamespaceDefault(e) {
|
|
22
24
|
var n = Object.create(null);
|
|
@@ -48,22 +50,31 @@ const buildParameterType = (type) => {
|
|
|
48
50
|
const defineParameterType = (parameterType) => {
|
|
49
51
|
parameterTypeRegistry.defineParameterType(buildParameterType(parameterType));
|
|
50
52
|
};
|
|
51
|
-
const addStepDefinition = (expression, f) => {
|
|
53
|
+
const addStepDefinition = (expression, f, priority = 0) => {
|
|
52
54
|
const cucumberExpression = expressionFactory.createExpression(expression);
|
|
53
|
-
steps.push({ expression, f, cucumberExpression });
|
|
55
|
+
steps.push({ expression, f, cucumberExpression, priority });
|
|
54
56
|
};
|
|
55
57
|
const findStepDefinitionMatches = (step) => {
|
|
56
58
|
return steps.reduce((accumulator, stepDefinition) => {
|
|
59
|
+
// Get the highest priority from the accumulator
|
|
60
|
+
const priority = accumulator?.[0]?.stepDefinition.priority ?? -9999;
|
|
61
|
+
// If the StepDefinition has a lower priority, don't even check it
|
|
62
|
+
if (stepDefinition.priority < priority)
|
|
63
|
+
return accumulator;
|
|
64
|
+
// Check the StepDefinition for matches
|
|
57
65
|
const matches = stepDefinition.cucumberExpression.match(step);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
stepDefinition,
|
|
61
|
-
parameters: matches.map((match) => match.getValue())
|
|
62
|
-
}];
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
66
|
+
// If there are no matches, skip it
|
|
67
|
+
if (!matches)
|
|
65
68
|
return accumulator;
|
|
66
|
-
|
|
69
|
+
// If the StepDefinition matches the step, create a StepDefinitionMatch
|
|
70
|
+
const stepDefinitionMatch = {
|
|
71
|
+
stepDefinition,
|
|
72
|
+
parameters: matches.map((match) => match.getValue())
|
|
73
|
+
};
|
|
74
|
+
// Add to or replace the accumulator, depending on the priority
|
|
75
|
+
return stepDefinition.priority === priority
|
|
76
|
+
? [...accumulator, stepDefinitionMatch]
|
|
77
|
+
: [stepDefinitionMatch];
|
|
67
78
|
}, []);
|
|
68
79
|
};
|
|
69
80
|
const findStepDefinitionMatch = (step, snippetData) => {
|
|
@@ -76,7 +87,12 @@ ${snippet}
|
|
|
76
87
|
`);
|
|
77
88
|
}
|
|
78
89
|
if (stepDefinitionMatches.length > 1) {
|
|
79
|
-
|
|
90
|
+
const priority = stepDefinitionMatches[0].stepDefinition?.priority ?? 0;
|
|
91
|
+
const patterns = stepDefinitionMatches.map(m => m.stepDefinition.expression).join('\n - ');
|
|
92
|
+
throw new Error(`Ambiguous step: '${step}'\n` +
|
|
93
|
+
`Multiple patterns match with equal priority (${priority}):\n - ${patterns}\n\n` +
|
|
94
|
+
`Resolve by adding a higher priority to one of them:\n` +
|
|
95
|
+
` Given('${step}', yourFunction, ${priority + 1});`);
|
|
80
96
|
}
|
|
81
97
|
return stepDefinitionMatches[0];
|
|
82
98
|
};
|
|
@@ -122,6 +138,8 @@ function normalizeTags(tags) {
|
|
|
122
138
|
* @returns string[]|null
|
|
123
139
|
*/
|
|
124
140
|
function tagsMatch(confTags, testTags) {
|
|
141
|
+
if (!confTags || !testTags)
|
|
142
|
+
return null;
|
|
125
143
|
let tags = intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
|
|
126
144
|
return tags?.length ? tags : null;
|
|
127
145
|
}
|
|
@@ -297,16 +315,16 @@ ${sp}});
|
|
|
297
315
|
function renderScenario(child, config, tags, sp = ' ') {
|
|
298
316
|
let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
|
|
299
317
|
tags = [...tags, ...child.scenario.tags.map(t => t.name)];
|
|
300
|
-
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
301
|
-
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
302
|
-
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
303
|
-
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
304
|
-
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
305
|
-
let attrs = todo + skip + fails + concurrent + sequential;
|
|
306
318
|
// Deal with exploding tags
|
|
307
319
|
let taglists = explodeTags(config.explodeTags, tags);
|
|
308
320
|
let isExploded = taglists.length > 1 ? true : false;
|
|
309
321
|
return taglists.map((tags, explodedIdx) => {
|
|
322
|
+
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
323
|
+
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
324
|
+
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
325
|
+
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
326
|
+
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
327
|
+
let attrs = todo + skip + fails + concurrent + sequential;
|
|
310
328
|
let tagTextForVitest = tags.length ? ` (${tags.join(' ')})` : '';
|
|
311
329
|
// For Scenario Outlines with examples
|
|
312
330
|
if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
|
|
@@ -633,7 +651,17 @@ class DataTable {
|
|
|
633
651
|
class DocString extends String {
|
|
634
652
|
constructor(content, mediaType = '') {
|
|
635
653
|
super(content);
|
|
636
|
-
this.mediaType = mediaType;
|
|
654
|
+
this.mediaType = mediaType ?? '';
|
|
655
|
+
if (this.mediaType)
|
|
656
|
+
try {
|
|
657
|
+
if (this.mediaType === 'json')
|
|
658
|
+
this.data = JSON.parse(content);
|
|
659
|
+
else if (this.mediaType?.match(/^ya?ml$/))
|
|
660
|
+
this.data = yaml.load(content);
|
|
661
|
+
}
|
|
662
|
+
catch (e) {
|
|
663
|
+
throw new Error(`parsing ${this.mediaType} content failed: ${e?.message || 'Unknown error'}${e?.stack ? '\n' + e.stack : ''}`);
|
|
664
|
+
}
|
|
637
665
|
}
|
|
638
666
|
toString() {
|
|
639
667
|
return this.valueOf();
|
|
@@ -788,6 +816,9 @@ async function getPNG() {
|
|
|
788
816
|
return cachedPNG;
|
|
789
817
|
}
|
|
790
818
|
|
|
819
|
+
function isAriaRoleExtended(role) {
|
|
820
|
+
return role === 'element' || role === 'input' || ariaRoles.ariaRoles.hasOwnProperty(role);
|
|
821
|
+
}
|
|
791
822
|
class QuickPickleWorld {
|
|
792
823
|
constructor(context, info) {
|
|
793
824
|
this._projectRoot = '';
|
|
@@ -860,8 +891,10 @@ function setWorldConstructor(constructor) {
|
|
|
860
891
|
}
|
|
861
892
|
const defaultScreenshotComparisonOptions = {
|
|
862
893
|
maxDiffPercentage: 0,
|
|
894
|
+
resizeColor: [255, 0, 128],
|
|
895
|
+
anchor: 'top left',
|
|
863
896
|
threshold: 0.1,
|
|
864
|
-
alpha: 0.6
|
|
897
|
+
alpha: 0.6,
|
|
865
898
|
};
|
|
866
899
|
class VisualWorld extends QuickPickleWorld {
|
|
867
900
|
constructor(context, info) {
|
|
@@ -872,7 +905,7 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
872
905
|
return this.sanitizePath(this.worldConfig.screenshotDir);
|
|
873
906
|
}
|
|
874
907
|
get screenshotFilename() {
|
|
875
|
-
return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
|
|
908
|
+
return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '').replace(/\//g, ' ')}.png`;
|
|
876
909
|
}
|
|
877
910
|
get screenshotPath() {
|
|
878
911
|
return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
|
|
@@ -904,8 +937,34 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
904
937
|
// Get the PNG constructor using the shim
|
|
905
938
|
const PNG = await getPNG();
|
|
906
939
|
// Parse PNG images to get raw pixel data
|
|
907
|
-
|
|
908
|
-
|
|
940
|
+
let actualPng = PNG.sync.read(actual);
|
|
941
|
+
let expectedPng = PNG.sync.read(expected);
|
|
942
|
+
// Check if dimensions differ and resize if necessary
|
|
943
|
+
if ((opts?.resizeEnabled || this?.worldConfig?.screenshotOptions?.resizeEnabled)
|
|
944
|
+
&& (actualPng.width !== expectedPng.width || actualPng.height !== expectedPng.height)) {
|
|
945
|
+
// Calculate the maximum dimensions
|
|
946
|
+
const maxWidth = Math.max(actualPng.width, expectedPng.width);
|
|
947
|
+
const maxHeight = Math.max(actualPng.height, expectedPng.height);
|
|
948
|
+
// Get the anchor setting
|
|
949
|
+
const rgba = opts?.resizeColor || this.screenshotOptions.resizeColor || [255, 0, 128];
|
|
950
|
+
rgba[3] = (opts?.resizeIgnored || this.screenshotOptions.resizeIgnored) ? 0 : 255;
|
|
951
|
+
const anchor = opts?.anchor || this.screenshotOptions.anchor || 'top left';
|
|
952
|
+
// Resize both images to the maximum dimensions
|
|
953
|
+
if (actualPng.width !== maxWidth || actualPng.height !== maxHeight) {
|
|
954
|
+
const resizedActualData = imageCropOrPad.resizeImage(actualPng.data, actualPng.width, actualPng.height, maxWidth, maxHeight, { rgba, anchor });
|
|
955
|
+
/**
|
|
956
|
+
* There are a couple of choices for initializing the data property:
|
|
957
|
+
* 1. We could use Buffer.from(), except that causes problems if QuickPickle is run in a browser.
|
|
958
|
+
* 2. We can set up a new PNG instance and use the fill method, but that seems like unnecessary overkill.
|
|
959
|
+
* 3. I've chosen to use the any cast, since the downstream doesn't use the Buffer capabilities.
|
|
960
|
+
*/
|
|
961
|
+
actualPng = { ...actualPng, data: resizedActualData, width: maxWidth, height: maxHeight };
|
|
962
|
+
}
|
|
963
|
+
if (expectedPng.width !== maxWidth || expectedPng.height !== maxHeight) {
|
|
964
|
+
const resizedExpectedData = imageCropOrPad.resizeImage(expectedPng.data, expectedPng.width, expectedPng.height, maxWidth, maxHeight, { rgba, anchor });
|
|
965
|
+
expectedPng = { ...expectedPng, data: resizedExpectedData, width: maxWidth, height: maxHeight };
|
|
966
|
+
}
|
|
967
|
+
}
|
|
909
968
|
const { width, height } = expectedPng;
|
|
910
969
|
const diffPng = new PNG({ width, height });
|
|
911
970
|
try {
|
|
@@ -914,15 +973,14 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
914
973
|
return { diff: PNG.sync.write(diffPng), pixels, pct };
|
|
915
974
|
}
|
|
916
975
|
catch (e) {
|
|
917
|
-
e.message +=
|
|
976
|
+
e.message += `
|
|
977
|
+
expected: w:${width}px h:${height}px ${expectedPng.data.length}b
|
|
978
|
+
actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b
|
|
979
|
+
- NOTE: set screenshotOptions.resizeEnabled to compare images of different sizes.`;
|
|
918
980
|
throw e;
|
|
919
981
|
}
|
|
920
982
|
}
|
|
921
983
|
}
|
|
922
|
-
defineParameterType({
|
|
923
|
-
name: 'AriaRole',
|
|
924
|
-
regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles.ariaRoles)]).join('|')})`),
|
|
925
|
-
});
|
|
926
984
|
|
|
927
985
|
const featureRegex = /\.feature(?:\.md)?$/;
|
|
928
986
|
const Given = addStepDefinition;
|
|
@@ -1035,7 +1093,7 @@ const defaultConfig = {
|
|
|
1035
1093
|
/**
|
|
1036
1094
|
* Tags to mark as failing, using Vitest's `test.failing` implementation.
|
|
1037
1095
|
*/
|
|
1038
|
-
failTags: ['@fails', '@failing'],
|
|
1096
|
+
failTags: ['@fails', '@failing', '@should-fail'],
|
|
1039
1097
|
/**
|
|
1040
1098
|
* Tags to mark as soft failing, allowing further steps to run until the end of the scenario.
|
|
1041
1099
|
*/
|
|
@@ -1112,6 +1170,7 @@ exports.explodeTags = explodeTags;
|
|
|
1112
1170
|
exports.formatStack = formatStack;
|
|
1113
1171
|
exports.getWorldConstructor = getWorldConstructor;
|
|
1114
1172
|
exports.gherkinStep = gherkinStep;
|
|
1173
|
+
exports.isAriaRoleExtended = isAriaRoleExtended;
|
|
1115
1174
|
exports.normalizeTags = normalizeTags;
|
|
1116
1175
|
exports.quickpickle = quickpickle;
|
|
1117
1176
|
exports.setWorldConstructor = setWorldConstructor;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DataTable.ts","../src/models/DocString.ts","../src/shims/path.ts","../src/shims/path-sanitizer.ts","../src/shims/png.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin","ariaRoles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,KAAK,GAAqB,EAAE;AAQlC,MAAM,qBAAqB,GAAG,IAAIA,yCAAqB,EAAE;AACzD,MAAM,iBAAiB,GAAG,IAAIC,qCAAiB,CAAC,qBAAqB,CAAC;AAEtE,MAAM,2BAA2B,GAAG,IAAIC,+CAA2B,CAAC,MAAM,qBAAqB,CAAC,cAAc,CAAC;AAE/G,MAAM,kBAAkB,GAAG,CAAC,IAAkC,KAA4B;AACxF,IAAA,OAAO,IAAIC,iCAAa,CACtB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,IAAI,IAAI,EAC3B,IAAI,CAAC,oBAAoB,IAAI,KAAK,CACnC;AACH,CAAC;AAEY,MAAA,mBAAmB,GAAG,CAAC,aAA4C,KAAU;IACxF,qBAAqB,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC9E;AAEO,MAAM,iBAAiB,GAAG,CAAC,UAAyB,EAAE,CAAsC,KAAU;IAC3G,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,yBAAyB,GAAG,CAAC,IAAW,KAA2B;IACvE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,WAAkC,EAAE,cAA8B,KAAI;QACzF,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,WAAW,EAAE;oBACtB,cAAc;AACd,oBAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,EAAE;AACzD,iBAAA,CAAC;;aACG;AACL,YAAA,OAAO,WAAW;;KAErB,EAAE,EAAE,CAAC;AACR,CAAC;AAMM,MAAM,uBAAuB,GAAG,CAAC,IAAW,EAAE,WAAuB,KAAyB;AACnG,IAAA,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,IAAI,CAAC;;IAG7D,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;QAChE,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,CAAA;EAClB,OAAO;AACR,CAAA,CAAC;;AAGA,IAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAA,CAAA,CAAG,CAAC;;AAGhE,IAAA,OAAO,qBAAqB,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,IAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAc,EAAA;IAEjE,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAClF,IAAA,MAAM,kBAAkB,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;IAErD,IAAI,YAAY,GAAU,OAAO;IACjC,IAAI,QAAQ,KAAK,QAAQ;QAAE,YAAY,GAAG,MAAM;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,YAAY,GAAG,MAAM;IAEjD,IAAI,cAAc,GAAG,wCAAwC;IAE7D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAChD,CAAC,mBAAmB,EAAE,KAAK,KAAI;AAC7B,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AACvC,QAAA,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CACxC,mBAAmB,CAAC,cAAc,EAClC,kBAAkB,CACnB;AACD,QAAA,OAAO,GAAG,MAAM,GAAG,YAAY,CAAA,EAAA,EAAK,uBAAuB,CACzD,mBAAmB,CACpB,CAAA,mBAAA,EAAsB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAC5D,KAAC,CACF;IAED,QACE,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAA0E,wEAAA,CAAA;AACvG,QAAA,CAAA,EAAA,EAAK,cAAc,CAAI,EAAA,CAAA;AACvB,QAAA,KAAK;AAGT;AAEA,SAAS,uBAAuB,CAAC,mBAAwC,EAAA;AACvE,IAAA,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAM;;IAEvC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;IAEtC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACpC,IAAA,OAAO,MAAM;AACf;;AC/HM,SAAU,aAAa,CAAC,IAA+B,EAAA;AAC3D,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;IACpB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AAC/E;AAEA;;;;;;;AAOG;AACa,SAAA,SAAS,CAAC,QAAiB,EAAE,QAAiB,EAAA;AAC5D,IAAA,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;AACnC;AAMA,MAAM,mBAAmB,GAAG,CAAC,cAAsB,KAAmB;AACpE,IAAA,IAAI;AACF,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;AAC9C,QAAA,OAAO,gBAAgB;;IACvB,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAoC,KAAe,CAAC,OAAO,CAAE,CAAA,CAAC;;AAElF,CAAC;AAEK,SAAU,YAAY,CAAC,cAAsB,EAAA;IACjD,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,MAAM,IAAI;;AAGnB,IAAA,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,cAAc,CAAC;IAEhE,OAAO,CAAC,IAAc,KAAI;QACxB,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClD,QAAA,OAAO,MAAM;AACf,KAAC;AACH;;AC7BA,MAAM,QAAQ,GAAmB;AAC/B,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,SAAS,EAAE,EAAE;CACd;AAWY,MAAA,UAAU,GAAG,OAAO,SAAiB,EAAE,KAAU,KAAmB;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;AACnD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAQ,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;;;AAGvB,IAAA,OAAO,KAAK;AACd;AAEA,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,EAA+D,EAAE,EAAqC,KAAU;AAElJ,IAAA,IAAI,IAAI,GAAQ,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,EAAC,eAAY,EAAE,IAAI,EAAC,EAAE,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;IAEzF,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,EAAC;SACvC,IAAI,QAAQ,CAAC,EAAE,CAAC;AAAE,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;;QAChC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;IAE9B,IAAI,UAAU,CAAC,EAAE,CAAC;AAAE,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE;IAE/B,IAAI,CAAC,IAAI,CAAC,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhF,IAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAEzD,IAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;AACzD,CAAC;MAIY,SAAS,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAE3E,MAAM,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAErE,UAAU,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAE7E,QAAQ,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAEzE,KAAK,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAEnE,SAAS,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;;ACpExF,MAAM,MAAM,GAAGC,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AAC1C,MAAM,OAAO,GAAG,IAAIC,kBAAO,CAAC,UAAU,CAAC,MAAM,CAAC;AAC9C,MAAM,cAAc,GAAG,IAAIA,kBAAO,CAAC,0BAA0B,EAAE;AAC/D,MAAM,aAAa,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;AACjE,MAAM,SAAS,GAAG,IAAIA,kBAAO,CAAC,6BAA6B,EAAE;AAC7D,MAAM,QAAQ,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;SAEvC,aAAa,CAAC,GAAU,EAAE,MAAwB,EAAE,UAAmB,EAAA;;IAGrF,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;;AAGnF,IAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;QAC7B,OAAO,CAAA;kBACO;;IAGhB,OAAO,CAAA;;;;;;;;;;;AAWK,YAAA,EAAA,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;UAC1E,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;AAcpF,EAAA,aAAa,CAAC,eAAe,CAAC,OAAQ,EAAE,MAAM,CAAC;CAChD;AACD;AAEgB,SAAA,aAAa,CAAC,OAAe,EAAE,MAAwB,EAAA;;AAGrE,IAAA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;;AAGxC,IAAA,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,QAA0B,EAAE,MAAM,EAAE,IAAI,CAAC;AAEpG,IAAA,IAAI,WAAW,GAAG,CAAA,EAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;IAG7D,OAAM;;AAEsC,4CAAA,EAAA,WAAW,CAA4C,yCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;;;0BAGzI,WAAW,CAAA;;;;EAInC,eAAe;;;;YAIL,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;EAChD,QAAQ;IACN;AACJ;AAEA,SAAS,MAAM,CAAC,KAA4B,EAAA;AAC1C,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;AACrC;AAEA,SAAS,cAAc,CAAC,QAAmC,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAE7G,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,QAAQ,EAAE,EAAE;KACb;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAG,EAAA,EAAE,CAAkB,gBAAA,CAAA,EAAC;IAE5E,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;QAC5C,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,UAAW,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;;AAG3G,IAAA,KAAK,IAAI,KAAK,IAAI,QAAQ,EAAE;AAC1B,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,YAAA,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;;AAEnD,aAAA,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACzC,YAAA,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;;;AAI9D,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,UAAU,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;IACxF,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,IAAK,CAAC,QAAuB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC;IAEhH,OAAO;AACP,EAAA,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;;EAE7D,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA,uBAAA,EAA0B,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;EAC/C,eAAe;EACf,EAAE,CAAA;EACF,EAAE,CAAA;;EAEF,QAAQ;;EAER,EAAE,CAAA;CACH;AACD;AAEA,SAAS,cAAc,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAC5F,IAAA,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,cAAc;IAChE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1D,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1D,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1D,IAAA,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,EAAE;AAC5D,IAAA,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,aAAa,GAAG,EAAE;IAC7F,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU;;IAGzD,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,WAAyB,EAAE,IAAI,CAAC;AAClE,IAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;IACnD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,WAAW,KAAI;QAEzC,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAK,EAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;;QAGhE,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE;AAE1F,YAAA,IAAI,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC/F,YAAA,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAClE,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAE,GAAG,GAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC;AAC5D,aAAC,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,CAAC,CAAQ,EAAE,UAAmB,KAAI;gBAC1D,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,KAAI;AAC7B,oBAAA,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,CAAA,EAAA,CAAI,GAAI,CAAK,EAAA,EAAA,CAAC,CAAE,CAAA,EAAE;AACjG,iBAAC,CAAC;AACF,gBAAA,OAAO,CAAC;AACV,aAAC;AAED,YAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAC/D,YAAA,IAAI,4BAA4B,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAE1F,YAAA,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAC,GAAG,KAAI;AACtD,gBAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAC,IAAI,CAAC;AACnC,gBAAA,OAAO,IAAI;AACb,aAAC,CAAC;YAEF,IAAI,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,QAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,GAAG,CAAG,EAAA,WAAW,GAAC,CAAC,CAAE,CAAA,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC;YAErM,OAAO;AACT,EAAA,EAAE,OAAO,KAAK,CAAA;AACd,EAAA,EAAE,KAAK,WAAW,EAAE,GAAG,CAAC,IAAI,IAAG;AACvB,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;EAChC,EAAE,CAAA;AACF,EAAA,EAAE,CAAM,GAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAK,EAAA,EAAA,QAAQ,GAAG,gBAAgB,CAAA;EACxE,EAAE,CAAA,WAAA,EAAc,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,GAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9D,EAAA,EAAE,CAAyB,sBAAA,EAAA,MAAM,CAAa,UAAA,EAAA,4BAA4B,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,KAAA,EAAA,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EACnJ,aAAa;EACb,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA;CACH;;QAGC,OAAO;EACP,EAAE,CAAA,IAAA,EAAO,KAAK,CAAK,EAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAA,EAAG,gBAAgB,CAAA;EAC5F,EAAE,CAAA,oBAAA,EAAuB,MAAM,CAAc,WAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAQ,KAAA,EAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,KAAA,EAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAC/J,WAAW,CAAC,KAAK,CAAC,QAAS,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,GAAG,CAAA,EAAG,WAAW,GAAC,CAAC,CAAA,CAAE,GAAG,EAAE,CAAC;EACrG,EAAE,CAAA;EACF,EAAE,CAAA;CACH;AACC,KAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB;AAEA,SAAS,WAAW,CAAC,KAAY,EAAE,MAAwB,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,YAAuB,GAAA,KAAK,EAAE,iBAAA,GAA8D,CAAC,CAAC,KAAK,CAAC,EAAA;IAC7L,IAAI,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,EAAE;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,GAAG,KAAI;AAE5B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AACjI,YAAA,OAAO,CAAG,EAAA,EAAE,CAAsB,mBAAA,EAAA,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,KAAK,GAAG,GAAG,GAAC,CAAC,CAAA,EAAA,EAAK,YAAY,IAAI,WAAW,CAAK,EAAA,EAAA,IAAI,IAAI;;AAEtK,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACvB,YAAA,IAAI,IAAI,GAAG,CAAA,SAAA,EAAY,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI;AAC9J,YAAA,OAAO,CAAG,EAAA,EAAE,CAAsB,mBAAA,EAAA,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,KAAK,GAAG,GAAG,GAAC,CAAC,CAAA,EAAA,EAAK,YAAY,IAAI,WAAW,CAAK,EAAA,EAAA,IAAI,IAAI;;AAG3K,QAAA,OAAO,GAAG,EAAE,CAAA,mBAAA,EAAsB,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAM,GAAA,EAAA,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA,EAAG,GAAG,GAAC,CAAC,GAAG,YAAY,GAAG,CAAA,EAAA,EAAK,YAAY,CAAE,CAAA,GAAG,EAAE,IAAI;AAC5K,KAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACf;AAEA,SAAS,WAAW,CAAC,KAAY,EAAE,GAAU,EAAA;AAC3C,IAAA,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW;AAC5B,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW;AAC/B,QAAA;AACE,YAAA,IAAI,GAAG;gBAAE,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,GAAC,CAAC,CAAC;AACzC,YAAA,OAAO,SAAS;;AAEtB;AAEA;;;;AAIG;AACH,MAAM,CAAC,GAAG,CAAC,CAAQ,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEtE;;;;;;;;;AASG;AACH,MAAM,EAAE,GAAG,CAAC,IAAW,KAAI;;IAEzB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;IAElC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;IAEhC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAChD,IAAA,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG;AACzB,CAAC;AAED;;;;AAIG;AACG,SAAU,YAAY,CAAC,GAAe,EAAA;AAC1C,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC;AACjC,IAAA,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,IAAG;AACrB,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;AACtC,KAAC,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAC5B,IAAA,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;AAE1C,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,IACvB,eAAe,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACrE;AACH;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACa,SAAA,WAAW,CAAC,WAAsB,EAAE,QAAiB,EAAA;IACnE,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,CAAC,QAAQ,CAAC;AAC1C,IAAA,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC;;;IAI9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,IAAG;AAC3C,QAAA,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,QAAA,OAAO,KAAK;AACd,KAAC,CAAC;;AAGF,IAAA,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC;;AAGvC,IAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpF;;MC7Ta,SAAS,CAAA;AAGpB,IAAA,WAAA,CAAY,WAAqC,EAAA;AAC/C,QAAA,IAAI,WAAW,YAAY,KAAK,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;;aACtB;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CACpC;;;AAIL;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,QAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YAChC,MAAM,SAAS,GAA2B,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,YAAA,OAAO,SAAS;AAClB,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;AAuBG;IACH,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG/B;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,IAAI,GAAA;AACF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;QACvB,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,OAAO,IAAI;;AAGb;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;IACH,QAAQ,GAAA;AACN,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACvB,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,qBAAqB,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF;;QAEH,MAAM,MAAM,GAA2B,EAAE;QACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,OAAO,MAAM;;AAGf;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;IACH,SAAS,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/B;AACD,QAAA,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC;;AAEnC;;ACvLK,MAAO,SAAU,SAAQ,MAAM,CAAA;IAGnC,WAAY,CAAA,OAAe,EAAE,SAAA,GAAoB,EAAE,EAAA;QACjD,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAGvB,IAAA,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAE/B,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAExB;;AClBD;;;;AAIG;AACG,SAAU,SAAS,CAAC,IAAY,EAAA;;IAEpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACvC,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAClD,MAAM,eAAe,GAAa,EAAE;AAEpC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,KAAK,GAAG;YAAE;AAClB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,eAAe,CAAC,GAAG,EAAE;;aAChB;AACL,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAI9B,IAAA,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D;AAEA;;;;AAIG;AACa,SAAA,IAAI,CAAC,GAAG,KAAe,EAAA;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC;;ACEO,MAAM,eAAe,GAA4B;AACpD,IAAA,MAAM,EAAE;AACJ,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB;AACJ,KAAA;AACD,IAAA,oBAAoB,EAAE,mBAAmB;AACzC,IAAA,eAAe,EAAE;CACpB;AAED;;AAEG;AACqB,SAAA,QAAQ,CAAC,OAAe,EAAE,UAA2B,eAAe,EAAA;AACxF,IAAA,IAAI,CAAC,OAAO;QACR,OAAO,GAAG,eAAe;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ;AAC3B,QAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;IAC3C,IAAI,CAAC,OAAO,CAAC,oBAAoB;AAC7B,QAAA,OAAO,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB;IACvE,IAAI,CAAC,OAAO,CAAC,eAAe;AACxB,QAAA,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe;AAC7D,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;;AAE7B,QAAA,OAAO,GAAG,CAAA,EAAG,OAAO,CAAA,CAAE;;IAE1B,IAAI,aAAa,GAAG,OAAO;;;AAG3B,IAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAG;AAC5B,QAAA,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC;AAC3E,KAAC,CAAC;;IAEF,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;;IAElE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;;IAEnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;;IAExE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;IAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;;IAE1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;;AAEtD,IAAA,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;;AAExC,IAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAChE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;;AAG9C,IAAA,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACpE,QAAA,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;;;AAG1C,IAAA,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC;;IAEvC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;;IAElE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;;IAEnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;;IAGtD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;;AAGxE,IAAA,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC9M,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;;QAEjD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;QAChE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;QAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;QAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;;;AAIhE,IAAA,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,aAAa;AAEjE,IAAA,OAAO,aAAa,CAAC,IAAI,EAAE;AAC/B;;AC3HA;AACA;AAiBA;AACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;AAElF;AACA,IAAI,UAAmC;AAEvC,IAAI,SAAS,EAAE;;AAEb,IAAA,UAAU,GAAG,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC3D;KAAO;;AAEL,IAAA,UAAU,GAAG,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACnD;AAEA;AACA,IAAI,SAAS,GAA0B,IAAI;AAEpC,eAAe,MAAM,GAAA;IAC1B,IAAI,CAAC,SAAS,EAAE;QACd,SAAS,GAAG,MAAM,UAAU;;AAE9B,IAAA,OAAO,SAAS;AAClB;;MCUa,gBAAgB,CAAA;IAO3B,WAAY,CAAA,OAAmB,EAAE,IAAoB,EAAA;QAN7C,IAAY,CAAA,YAAA,GAAW,EAAE;QAIjC,IAAI,CAAA,IAAA,GAAsB,EAAE;QAC5B,IAAY,CAAA,YAAA,GAAG,QAAQ;AAErB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;;IAEtC,MAAM,IAAI,GAAA;IACV,IAAI,MAAM,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;AACtC,IAAA,IAAI,WAAW,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;AACvD,IAAA,IAAI,UAAU,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACtE,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAA;AAC5C;;;;;;AAMG;AACH,IAAA,SAAS,CAAC,IAAc,EAAA;QACtB,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAExC;;;;;;;;;;;AAWG;AACH,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,YAAY,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAE;;AAG1D;;;;;;;;;AASG;IACH,MAAM,IAAI,CAAC,EAAS,EAAA;AAClB,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;IAG3C,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG;YACV,IAAI,CAAC,WAAW,CAAC,IAAI;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA,GAAG,EAAE,CAAC;YACpF,CAAG,EAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA;SACrE;AACD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEzB;AAOD,IAAI,gBAAgB,GAAoB,gBAAgB;SAExC,mBAAmB,GAAA;AACjC,IAAA,OAAO,gBAAgB;AACzB;AAEM,SAAU,mBAAmB,CAAC,WAA6B,EAAA;IAC/D,gBAAgB,GAAG,WAAW;AAChC;AAaa,MAAA,kCAAkC,GAA+B;AAC5E,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,KAAK,EAAE;;AA8JH,MAAO,WAAY,SAAQ,gBAAgB,CAAA;IAE/C,WAAY,CAAA,OAAmB,EAAE,IAAoB,EAAA;AACnD,QAAA,KAAK,CAAC,OAAO,EAAC,IAAI,CAAC;;IAGrB,MAAM,IAAI,GAAA;AAEV,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;;AAG1D,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,IAAA,CAAM;;AAGzG,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA,CAAA,EAAI,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC;;AAG1E,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,EAAE,GAAG,kCAAkC,CAAC;;AAG9I,IAAA,iBAAiB,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,cAAc;;QAGrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI;;;AAIR,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;;QAG1F,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;;QAGxD,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;AAChF,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,YAAY,GAAG,EAAE;;AAGlD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAG,YAAY,CAAA,IAAA,CAAM,CAAC;;AAG9E,IAAA,MAAM,cAAc,CAAC,MAAa,EAAE,QAAe,EAAE,IAAQ,EAAA;;AAG3D,QAAA,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE;;QAG1B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW;QAErC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE1C,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,UAAU,CACvB,SAAS,CAAC,IAAI,EACd,WAAW,CAAC,IAAI,EAChB,OAAO,CAAC,IAAI,EACZ,KAAK,EACL,MAAM,EACN,IAAI,CACL;AACD,YAAA,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG;AAC7C,YAAA,OAAO,EAAE,IAAI,EAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;;QAEtD,OAAM,CAAK,EAAE;AACX,YAAA,CAAC,CAAC,OAAO,IAAI,CAAA,gBAAA,EAAmB,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,GAAA,EAAM,WAAW,CAAC,IAAI,CAAC,MAAM,CAAA,iBAAA,EAAoB,SAAS,CAAC,KAAK,CAAA,KAAA,EAAQ,SAAS,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA,CAAG;AACzK,YAAA,MAAM,CAAC;;;AAIZ;AAED,mBAAmB,CAAC;AAClB,IAAA,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,CAAC,CAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAACC,mBAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACxF,CAAA,CAAC;;ACjWF,MAAM,YAAY,GAAG,qBAAqB;AAInC,MAAM,KAAK,GAAG;AACd,MAAM,IAAI,GAAG;AACb,MAAM,IAAI,GAAG;AAqBpB,MAAM,UAAU,GAAG,4BAA4B;AAC/B,SAAA,WAAW,CAAC,IAAW,EAAE,IAAW,EAAA;AAClD,IAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAAE,QAAA,OAAO,IAAI;IACxC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC5B,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,KAAK,CAAC,KAAK,EAAE;AAChD,IAAA,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAA,EAAA,CAAI,CAAC;AACtD,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB;AAEA,SAAS,WAAW,CAAI,IAAgB,EAAE,EAAU,EAAE,YAAqB,EAAA;AACzE,IAAA,IAAI,OAAsC;IAC1C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,KAAI;AACtD,QAAA,OAAO,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC;AACjE,KAAC,CAAC;;AAGF,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAChD;MAEa,WAAW,GAAG,OAAO,QAAqC,EAAE,IAAY,EAAE,KAAU,EAAE,IAAY,EAAE,OAAc,EAAE,UAAkB,EAAE,IAAS,KAAiB;AAE7K,IAAA,IAAI;;AAEF,QAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC9B,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AACtB,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AACtB,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO;AAC5B,QAAA,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU;;QAGnC,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,GAAG,WAAW;;AAEnB,aAAA,IAAI,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE;AACxC,YAAA,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YAClD,QAAQ,GAAG,WAAW;;AAGxB,QAAA,MAAM,OAAO,GAAG,YAAW;AAEzB,YAAA,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC;AAErC,YAAA,IAAI;AACF,gBAAA,MAAM,mBAAmB,GAAwB,uBAAuB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtG,gBAAA,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC;;YAE5F,OAAM,CAAK,EAAE;;AAEX,gBAAA,CAAC,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAA,CAAE;;AAG9C,gBAAA,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG/C,gBAAA,CAAC,CAAC,WAAW,GAAG,IAAI;;gBAGpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGzB,gBAAA,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAAE,oBAAA,MAAM,CAAC;;oBAEtE;AACN,gBAAA,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;;AAGxC,SAAC;AACD,QAAA,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA,qBAAA,EAAwB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;;IAE9G,OAAM,CAAK,EAAE;;AAGX,QAAA,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;;AAGlB,YAAA,CAAC,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAA,CAAE;;YAG9C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;;QAI3B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE;;;QAIpG,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAI,EAAA,CAAA,CAAC;;AAGnI,QAAA,MAAM,CAAC;;YAED;AACN,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;AAChD,YAAA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;AACzD,YAAA,KAAK,CAAC,OAAO,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAK,KAAK,CAAC,EAAE,OAAO,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9K,YAAA,MAAM,KAAK;;;AAIjB;AA4Ba,MAAA,aAAa,GAAsB;AAE9C;;AAEG;AACH,IAAA,IAAI,EAAE,EAAE;AAER;;AAEG;AACH,IAAA,WAAW,EAAE,IAAI;AAEjB;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,OAAO,EAAC,MAAM,CAAC;AAE1B;;AAEG;IACH,QAAQ,EAAE,CAAC,OAAO,CAAC;AAEnB;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AAEhC;;AAEG;AACH,IAAA,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;AAEpC;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;AAEG;AACH,IAAA,WAAW,EAAE,EAAE;AAEf;;;;AAIG;AACH,IAAA,WAAW,EAAE,EAAE;;AAQjB,SAAS,IAAI,CAAC,GAA8B,EAAA;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrE;MAEa,WAAW,GAAG,CAAC,IAAyC,GAAA,EAAE,KAAW;AAChF,IAAA,IAAI,MAAwB;AAC5B,IAAA,IAAI,YAAY,GAA4B,EAAC,GAAG,IAAI,EAAC;IAErD,OAAO;AACL,QAAA,IAAI,EAAE,uBAAuB;AAC7B,QAAA,cAAc,CAAC,cAA8B,EAAA;YAC3C,MAAM,GAAG,YAAY,CACnB,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,EAAE,EAC7C,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,EACxC,YAAY,EACZ,aAAa,CACd;YACD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC;YACxD,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5D,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;;gBACnF,MAAM,CAAC,WAAW,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI;AAAE,gBAAA,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI;SACpD;AACD,QAAA,MAAM,SAAS,CAAC,GAAW,EAAE,EAAU,EAAA;AACrC,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACzB,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;;SAEtE;KACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DataTable.ts","../src/models/DocString.ts","../src/shims/path.ts","../src/shims/path-sanitizer.ts","../src/shims/png.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin","ariaRoles","resizeImage"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,14 +4,14 @@ import { explodeTags } from './render';
|
|
|
4
4
|
import { DataTable } from './models/DataTable';
|
|
5
5
|
import { DocString } from './models/DocString';
|
|
6
6
|
import { normalizeTags, tagsMatch } from './tags';
|
|
7
|
-
export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface, ScreenshotComparisonOptions, VisualConfigSetting, VisualWorld, VisualWorldInterface, VisualDiffResult, defaultScreenshotComparisonOptions, InfoConstructor, AriaRoleExtended, } from './world';
|
|
7
|
+
export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface, ScreenshotComparisonOptions, VisualConfigSetting, VisualWorld, VisualWorldInterface, VisualDiffResult, defaultScreenshotComparisonOptions, InfoConstructor, AriaRoleExtended, isAriaRoleExtended, } from './world';
|
|
8
8
|
export { DocString, DataTable };
|
|
9
9
|
export { explodeTags, tagsMatch, normalizeTags, applyHooks };
|
|
10
10
|
export { defineParameterType } from './steps';
|
|
11
11
|
export { BeforeAll, Before, AfterAll, After, BeforeStep, AfterStep };
|
|
12
|
-
export declare const Given: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
13
|
-
export declare const When: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
14
|
-
export declare const Then: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
12
|
+
export declare const Given: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
|
|
13
|
+
export declare const When: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
|
|
14
|
+
export declare const Then: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
|
|
15
15
|
export declare function formatStack(text: string, line: string): string;
|
|
16
16
|
export declare const gherkinStep: (stepType: "Context" | "Action" | "Outcome", step: string, state: any, line: number, stepIdx: number, explodeIdx?: number, data?: any) => Promise<any>;
|
|
17
17
|
export type QuickPickleConfigSetting<T = {
|
package/dist/index.esm.js
CHANGED
|
@@ -3,8 +3,10 @@ import { intersection, sortBy, isFunction, isString, concat, fromPairs, escapeRe
|
|
|
3
3
|
import parse from '@cucumber/tag-expressions';
|
|
4
4
|
import * as Gherkin from '@cucumber/gherkin';
|
|
5
5
|
import * as Messages from '@cucumber/messages';
|
|
6
|
+
import yaml from 'js-yaml';
|
|
6
7
|
import pixelmatch from 'pixelmatch';
|
|
7
8
|
import { ariaRoles } from '@a11y-tools/aria-roles';
|
|
9
|
+
import { resizeImage } from 'image-crop-or-pad';
|
|
8
10
|
|
|
9
11
|
const steps = [];
|
|
10
12
|
const parameterTypeRegistry = new ParameterTypeRegistry();
|
|
@@ -16,22 +18,31 @@ const buildParameterType = (type) => {
|
|
|
16
18
|
const defineParameterType = (parameterType) => {
|
|
17
19
|
parameterTypeRegistry.defineParameterType(buildParameterType(parameterType));
|
|
18
20
|
};
|
|
19
|
-
const addStepDefinition = (expression, f) => {
|
|
21
|
+
const addStepDefinition = (expression, f, priority = 0) => {
|
|
20
22
|
const cucumberExpression = expressionFactory.createExpression(expression);
|
|
21
|
-
steps.push({ expression, f, cucumberExpression });
|
|
23
|
+
steps.push({ expression, f, cucumberExpression, priority });
|
|
22
24
|
};
|
|
23
25
|
const findStepDefinitionMatches = (step) => {
|
|
24
26
|
return steps.reduce((accumulator, stepDefinition) => {
|
|
27
|
+
// Get the highest priority from the accumulator
|
|
28
|
+
const priority = accumulator?.[0]?.stepDefinition.priority ?? -9999;
|
|
29
|
+
// If the StepDefinition has a lower priority, don't even check it
|
|
30
|
+
if (stepDefinition.priority < priority)
|
|
31
|
+
return accumulator;
|
|
32
|
+
// Check the StepDefinition for matches
|
|
25
33
|
const matches = stepDefinition.cucumberExpression.match(step);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
stepDefinition,
|
|
29
|
-
parameters: matches.map((match) => match.getValue())
|
|
30
|
-
}];
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
34
|
+
// If there are no matches, skip it
|
|
35
|
+
if (!matches)
|
|
33
36
|
return accumulator;
|
|
34
|
-
|
|
37
|
+
// If the StepDefinition matches the step, create a StepDefinitionMatch
|
|
38
|
+
const stepDefinitionMatch = {
|
|
39
|
+
stepDefinition,
|
|
40
|
+
parameters: matches.map((match) => match.getValue())
|
|
41
|
+
};
|
|
42
|
+
// Add to or replace the accumulator, depending on the priority
|
|
43
|
+
return stepDefinition.priority === priority
|
|
44
|
+
? [...accumulator, stepDefinitionMatch]
|
|
45
|
+
: [stepDefinitionMatch];
|
|
35
46
|
}, []);
|
|
36
47
|
};
|
|
37
48
|
const findStepDefinitionMatch = (step, snippetData) => {
|
|
@@ -44,7 +55,12 @@ ${snippet}
|
|
|
44
55
|
`);
|
|
45
56
|
}
|
|
46
57
|
if (stepDefinitionMatches.length > 1) {
|
|
47
|
-
|
|
58
|
+
const priority = stepDefinitionMatches[0].stepDefinition?.priority ?? 0;
|
|
59
|
+
const patterns = stepDefinitionMatches.map(m => m.stepDefinition.expression).join('\n - ');
|
|
60
|
+
throw new Error(`Ambiguous step: '${step}'\n` +
|
|
61
|
+
`Multiple patterns match with equal priority (${priority}):\n - ${patterns}\n\n` +
|
|
62
|
+
`Resolve by adding a higher priority to one of them:\n` +
|
|
63
|
+
` Given('${step}', yourFunction, ${priority + 1});`);
|
|
48
64
|
}
|
|
49
65
|
return stepDefinitionMatches[0];
|
|
50
66
|
};
|
|
@@ -90,6 +106,8 @@ function normalizeTags(tags) {
|
|
|
90
106
|
* @returns string[]|null
|
|
91
107
|
*/
|
|
92
108
|
function tagsMatch(confTags, testTags) {
|
|
109
|
+
if (!confTags || !testTags)
|
|
110
|
+
return null;
|
|
93
111
|
let tags = intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
|
|
94
112
|
return tags?.length ? tags : null;
|
|
95
113
|
}
|
|
@@ -265,16 +283,16 @@ ${sp}});
|
|
|
265
283
|
function renderScenario(child, config, tags, sp = ' ') {
|
|
266
284
|
let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
|
|
267
285
|
tags = [...tags, ...child.scenario.tags.map(t => t.name)];
|
|
268
|
-
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
269
|
-
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
270
|
-
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
271
|
-
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
272
|
-
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
273
|
-
let attrs = todo + skip + fails + concurrent + sequential;
|
|
274
286
|
// Deal with exploding tags
|
|
275
287
|
let taglists = explodeTags(config.explodeTags, tags);
|
|
276
288
|
let isExploded = taglists.length > 1 ? true : false;
|
|
277
289
|
return taglists.map((tags, explodedIdx) => {
|
|
290
|
+
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
291
|
+
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
292
|
+
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
293
|
+
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
294
|
+
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
295
|
+
let attrs = todo + skip + fails + concurrent + sequential;
|
|
278
296
|
let tagTextForVitest = tags.length ? ` (${tags.join(' ')})` : '';
|
|
279
297
|
// For Scenario Outlines with examples
|
|
280
298
|
if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
|
|
@@ -601,7 +619,17 @@ class DataTable {
|
|
|
601
619
|
class DocString extends String {
|
|
602
620
|
constructor(content, mediaType = '') {
|
|
603
621
|
super(content);
|
|
604
|
-
this.mediaType = mediaType;
|
|
622
|
+
this.mediaType = mediaType ?? '';
|
|
623
|
+
if (this.mediaType)
|
|
624
|
+
try {
|
|
625
|
+
if (this.mediaType === 'json')
|
|
626
|
+
this.data = JSON.parse(content);
|
|
627
|
+
else if (this.mediaType?.match(/^ya?ml$/))
|
|
628
|
+
this.data = yaml.load(content);
|
|
629
|
+
}
|
|
630
|
+
catch (e) {
|
|
631
|
+
throw new Error(`parsing ${this.mediaType} content failed: ${e?.message || 'Unknown error'}${e?.stack ? '\n' + e.stack : ''}`);
|
|
632
|
+
}
|
|
605
633
|
}
|
|
606
634
|
toString() {
|
|
607
635
|
return this.valueOf();
|
|
@@ -756,6 +784,9 @@ async function getPNG() {
|
|
|
756
784
|
return cachedPNG;
|
|
757
785
|
}
|
|
758
786
|
|
|
787
|
+
function isAriaRoleExtended(role) {
|
|
788
|
+
return role === 'element' || role === 'input' || ariaRoles.hasOwnProperty(role);
|
|
789
|
+
}
|
|
759
790
|
class QuickPickleWorld {
|
|
760
791
|
constructor(context, info) {
|
|
761
792
|
this._projectRoot = '';
|
|
@@ -828,8 +859,10 @@ function setWorldConstructor(constructor) {
|
|
|
828
859
|
}
|
|
829
860
|
const defaultScreenshotComparisonOptions = {
|
|
830
861
|
maxDiffPercentage: 0,
|
|
862
|
+
resizeColor: [255, 0, 128],
|
|
863
|
+
anchor: 'top left',
|
|
831
864
|
threshold: 0.1,
|
|
832
|
-
alpha: 0.6
|
|
865
|
+
alpha: 0.6,
|
|
833
866
|
};
|
|
834
867
|
class VisualWorld extends QuickPickleWorld {
|
|
835
868
|
constructor(context, info) {
|
|
@@ -840,7 +873,7 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
840
873
|
return this.sanitizePath(this.worldConfig.screenshotDir);
|
|
841
874
|
}
|
|
842
875
|
get screenshotFilename() {
|
|
843
|
-
return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
|
|
876
|
+
return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '').replace(/\//g, ' ')}.png`;
|
|
844
877
|
}
|
|
845
878
|
get screenshotPath() {
|
|
846
879
|
return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
|
|
@@ -872,8 +905,34 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
872
905
|
// Get the PNG constructor using the shim
|
|
873
906
|
const PNG = await getPNG();
|
|
874
907
|
// Parse PNG images to get raw pixel data
|
|
875
|
-
|
|
876
|
-
|
|
908
|
+
let actualPng = PNG.sync.read(actual);
|
|
909
|
+
let expectedPng = PNG.sync.read(expected);
|
|
910
|
+
// Check if dimensions differ and resize if necessary
|
|
911
|
+
if ((opts?.resizeEnabled || this?.worldConfig?.screenshotOptions?.resizeEnabled)
|
|
912
|
+
&& (actualPng.width !== expectedPng.width || actualPng.height !== expectedPng.height)) {
|
|
913
|
+
// Calculate the maximum dimensions
|
|
914
|
+
const maxWidth = Math.max(actualPng.width, expectedPng.width);
|
|
915
|
+
const maxHeight = Math.max(actualPng.height, expectedPng.height);
|
|
916
|
+
// Get the anchor setting
|
|
917
|
+
const rgba = opts?.resizeColor || this.screenshotOptions.resizeColor || [255, 0, 128];
|
|
918
|
+
rgba[3] = (opts?.resizeIgnored || this.screenshotOptions.resizeIgnored) ? 0 : 255;
|
|
919
|
+
const anchor = opts?.anchor || this.screenshotOptions.anchor || 'top left';
|
|
920
|
+
// Resize both images to the maximum dimensions
|
|
921
|
+
if (actualPng.width !== maxWidth || actualPng.height !== maxHeight) {
|
|
922
|
+
const resizedActualData = resizeImage(actualPng.data, actualPng.width, actualPng.height, maxWidth, maxHeight, { rgba, anchor });
|
|
923
|
+
/**
|
|
924
|
+
* There are a couple of choices for initializing the data property:
|
|
925
|
+
* 1. We could use Buffer.from(), except that causes problems if QuickPickle is run in a browser.
|
|
926
|
+
* 2. We can set up a new PNG instance and use the fill method, but that seems like unnecessary overkill.
|
|
927
|
+
* 3. I've chosen to use the any cast, since the downstream doesn't use the Buffer capabilities.
|
|
928
|
+
*/
|
|
929
|
+
actualPng = { ...actualPng, data: resizedActualData, width: maxWidth, height: maxHeight };
|
|
930
|
+
}
|
|
931
|
+
if (expectedPng.width !== maxWidth || expectedPng.height !== maxHeight) {
|
|
932
|
+
const resizedExpectedData = resizeImage(expectedPng.data, expectedPng.width, expectedPng.height, maxWidth, maxHeight, { rgba, anchor });
|
|
933
|
+
expectedPng = { ...expectedPng, data: resizedExpectedData, width: maxWidth, height: maxHeight };
|
|
934
|
+
}
|
|
935
|
+
}
|
|
877
936
|
const { width, height } = expectedPng;
|
|
878
937
|
const diffPng = new PNG({ width, height });
|
|
879
938
|
try {
|
|
@@ -882,15 +941,14 @@ class VisualWorld extends QuickPickleWorld {
|
|
|
882
941
|
return { diff: PNG.sync.write(diffPng), pixels, pct };
|
|
883
942
|
}
|
|
884
943
|
catch (e) {
|
|
885
|
-
e.message +=
|
|
944
|
+
e.message += `
|
|
945
|
+
expected: w:${width}px h:${height}px ${expectedPng.data.length}b
|
|
946
|
+
actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b
|
|
947
|
+
- NOTE: set screenshotOptions.resizeEnabled to compare images of different sizes.`;
|
|
886
948
|
throw e;
|
|
887
949
|
}
|
|
888
950
|
}
|
|
889
951
|
}
|
|
890
|
-
defineParameterType({
|
|
891
|
-
name: 'AriaRole',
|
|
892
|
-
regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles)]).join('|')})`),
|
|
893
|
-
});
|
|
894
952
|
|
|
895
953
|
const featureRegex = /\.feature(?:\.md)?$/;
|
|
896
954
|
const Given = addStepDefinition;
|
|
@@ -1003,7 +1061,7 @@ const defaultConfig = {
|
|
|
1003
1061
|
/**
|
|
1004
1062
|
* Tags to mark as failing, using Vitest's `test.failing` implementation.
|
|
1005
1063
|
*/
|
|
1006
|
-
failTags: ['@fails', '@failing'],
|
|
1064
|
+
failTags: ['@fails', '@failing', '@should-fail'],
|
|
1007
1065
|
/**
|
|
1008
1066
|
* Tags to mark as soft failing, allowing further steps to run until the end of the scenario.
|
|
1009
1067
|
*/
|
|
@@ -1058,5 +1116,5 @@ const quickpickle = (conf = {}) => {
|
|
|
1058
1116
|
};
|
|
1059
1117
|
};
|
|
1060
1118
|
|
|
1061
|
-
export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, VisualWorld, When, applyHooks, quickpickle as default, defaultConfig, defaultScreenshotComparisonOptions, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
|
|
1119
|
+
export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, VisualWorld, When, applyHooks, quickpickle as default, defaultConfig, defaultScreenshotComparisonOptions, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, isAriaRoleExtended, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
|
|
1062
1120
|
//# sourceMappingURL=index.esm.js.map
|