@axe-core/watcher 3.10.0-next.dea338e6 → 3.10.0-next.e35dea7f
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/cypress.js +11 -24
- package/dist/cypress.js.map +1 -1
- package/dist/cypressCommands.js +40 -31
- package/dist/cypressCommands.js.map +1 -1
- package/extension/background.js +1 -1
- package/extension/content.js +1 -1
- package/package.json +3 -3
package/dist/cypress.js
CHANGED
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.cypressConfig = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
7
|
const util_1 = require("./util");
|
|
9
8
|
const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
|
|
10
9
|
const EventForwarder_1 = __importDefault(require("./EventForwarder"));
|
|
@@ -61,6 +60,17 @@ const cypressConfig = (config) => {
|
|
|
61
60
|
* ensure we wait for the user's `setupNodeEvents` to resolve.
|
|
62
61
|
*/
|
|
63
62
|
const userNodeEventConfig = await ((_b = (_a = userConfig.e2e) === null || _a === void 0 ? void 0 : _a.setupNodeEvents) === null || _b === void 0 ? void 0 : _b.call(_a, on, ...args));
|
|
63
|
+
on('task', {
|
|
64
|
+
__uploadAxeWatcherResults: async (results) => {
|
|
65
|
+
if (!results.length) {
|
|
66
|
+
// Indicates to Cypress that the event has been handled.
|
|
67
|
+
// @see https://docs.cypress.io/api/commands/task#Usage
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
await (0, sendResultsToServer_1.default)(results);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
64
74
|
on('before:browser:launch', (browser, launchOptions) => {
|
|
65
75
|
if (browser.name !== 'chrome') {
|
|
66
76
|
throw new Error('The @axe-core/watcher package only supports running in Chrome. Please refer to our System Requirements for more information: https://docs.deque.com/developer-hub/2/en/dh-system-requirements');
|
|
@@ -85,29 +95,6 @@ const cypressConfig = (config) => {
|
|
|
85
95
|
launchOptions.args = Object.entries(launchOptionsArgs).map(([key, value]) => value.length > 0 ? [key, value.join(',')].join('=') : key);
|
|
86
96
|
return launchOptions;
|
|
87
97
|
});
|
|
88
|
-
// Read the results sent from the extension, then forward to the server.
|
|
89
|
-
on('after:run', async () => {
|
|
90
|
-
let results;
|
|
91
|
-
try {
|
|
92
|
-
results = fs_1.default
|
|
93
|
-
.readdirSync('cypress/axe-watcher')
|
|
94
|
-
.filter(f => f.endsWith('.json'));
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
// this is a non-error; the test suite likely just failed early
|
|
98
|
-
// without running any scans
|
|
99
|
-
if (error.code === 'ENOENT') {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
for (const result of results) {
|
|
105
|
-
const data = fs_1.default.readFileSync(`cypress/axe-watcher/${result}`, 'utf8');
|
|
106
|
-
const parsed = JSON.parse(data);
|
|
107
|
-
await (0, sendResultsToServer_1.default)(parsed);
|
|
108
|
-
fs_1.default.unlinkSync(`cypress/axe-watcher/${result}`);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
98
|
/**
|
|
112
99
|
* Forward the accumulated events to cypress.
|
|
113
100
|
* For more information, see comment on #44
|
package/dist/cypress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":"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"}
|
package/dist/cypressCommands.js
CHANGED
|
@@ -41,6 +41,9 @@ const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].include
|
|
|
41
41
|
exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
|
|
42
42
|
var _a, _b, _c, _d, _e, _f;
|
|
43
43
|
const currentCommand = (_b = (_a = cy.state('current')) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b.name;
|
|
44
|
+
// TODO: Remove the feature flag once #1109 is fully resolved.
|
|
45
|
+
const tryRequerySubject = !!Cypress.env('__AXE_WATCHER_CYPRESS_REQUERY_SUBJECT_AFTER_ANALYZE') &&
|
|
46
|
+
'getSubjectFromChain' in cy;
|
|
44
47
|
// Some commands, like "type" call other commands internally, like "click".
|
|
45
48
|
// We don't want to enqueue a run in these scenarios because it can cause
|
|
46
49
|
// promises to be returned from commands, which Cypress does not allow.
|
|
@@ -54,7 +57,8 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
|
|
|
54
57
|
// to finding the "Subject". cy.getSubjectFromChain() requeries those operations to retrieve
|
|
55
58
|
// a fresh "Subject" handle.
|
|
56
59
|
const originalSubjectChain = (_f = (_e = cy).subjectChain) === null || _f === void 0 ? void 0 : _f.call(_e);
|
|
57
|
-
cy
|
|
60
|
+
const commandChain = cy
|
|
61
|
+
.window()
|
|
58
62
|
.then(win => {
|
|
59
63
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
64
|
if (win && !win.__AXE_WATCHER_HAS_VISITED) {
|
|
@@ -67,31 +71,40 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
|
|
|
67
71
|
win.__AXE_WATCHER_HAS_VISITED = true;
|
|
68
72
|
}
|
|
69
73
|
})
|
|
70
|
-
.axeWatcherAnalyze({ __UserRequestedAnalyze: false })
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
74
|
+
.axeWatcherAnalyze({ __UserRequestedAnalyze: false });
|
|
75
|
+
if (tryRequerySubject) {
|
|
76
|
+
commandChain
|
|
77
|
+
// axeWatcherAnalyze is slow; it's possible for the Cypress subject to become invalidated
|
|
78
|
+
// while it's running (eg, if the subject is in some sort of remount-loop). To account for
|
|
79
|
+
// this, we ask Cypress to requery the subject object from the subjectChain before returning
|
|
80
|
+
// control to the original function.
|
|
81
|
+
//
|
|
82
|
+
// Note that we don't always have access to an original subjectChain to restore; the API is
|
|
83
|
+
// only available in Cypress 12+, and even then we might be wrapping a command that doesn't
|
|
84
|
+
// necessarily operate on a subject.
|
|
85
|
+
.then(() => {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
// Some Cypress commands pick up the subject from cy.subject(), and some pick it up from a
|
|
88
|
+
// subject parameter that's passed to the command. Returning the updated subject from this
|
|
89
|
+
// .then() sets cy.subject() to handle the former...
|
|
90
|
+
return originalSubjectChain &&
|
|
91
|
+
((_b = (_a = cy).getSubjectFromChain) === null || _b === void 0 ? void 0 : _b.call(_a, originalSubjectChain));
|
|
92
|
+
})
|
|
93
|
+
.then(updatedSubject => {
|
|
94
|
+
// ...and this map handles the latter.
|
|
95
|
+
const argsWithRefreshedSubject = args.map(arg => originalSubject && arg === originalSubject ? updatedSubject : arg);
|
|
96
|
+
// originalFn might return a Promise that Cypress needs to be able to track, so it's important
|
|
97
|
+
// to propagate its return value even though we're not chaining any further cypress commands
|
|
98
|
+
// ourselves.
|
|
99
|
+
return originalFn(...argsWithRefreshedSubject);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
commandChain
|
|
104
|
+
// Set the subject back to the previous subject
|
|
105
|
+
.then(() => originalSubject)
|
|
106
|
+
.then(() => originalFn(...args));
|
|
107
|
+
}
|
|
95
108
|
}));
|
|
96
109
|
/**
|
|
97
110
|
* The `visit` command is wrapped differently than the other commands. This is because
|
|
@@ -148,11 +161,7 @@ function axeWatcherFlushCommand() {
|
|
|
148
161
|
const event = new CustomEvent('axe:flush-start');
|
|
149
162
|
win.dispatchEvent(event);
|
|
150
163
|
}).then(results => {
|
|
151
|
-
|
|
152
|
-
const time = new Date().getTime();
|
|
153
|
-
const rnd = Math.random().toString(36).slice(2);
|
|
154
|
-
const filename = `cypress/axe-watcher/${time}-${rnd}.json`;
|
|
155
|
-
cy.writeFile(filename, JSON.stringify(results, null, 2));
|
|
164
|
+
cy.task('__uploadAxeWatcherResults', results, { log: false });
|
|
156
165
|
});
|
|
157
166
|
});
|
|
158
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";;;AAqFA;;;;;;;GAOG;AAEH,IAAI,SAAS,GAAG,KAAK,CAAA;AAIrB,4DAA4D;AAC/C,QAAA,gBAAgB,GAAiC;IAC5D,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,SAAS;IACT,MAAM;CACP,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,QAAkB,EAAW,EAAE,CAC5D,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAE1D;;;;;;;GAOG;AACH,wBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE;;IACzD,MAAM,cAAc,GAAG,MAAA,MAAC,EAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAE,UAAU,0CAAE,IAAI,CAAA;IAE5E,2EAA2E;IAC3E,yEAAyE;IACzE,uEAAuE;IACvE,0DAA0D;IAC1D,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,yFAAyF;IACzF,MAAM,eAAe,GAAG,MAAA,MAAC,EAAiB,EAAC,OAAO,kDAAI,CAAA;IACtD,wFAAwF;IACxF,4FAA4F;IAC5F,4BAA4B;IAC5B,MAAM,oBAAoB,GAAG,MAAA,MAAC,EAAiB,EAAC,YAAY,kDAAI,CAAA;IAEhE,EAAE,
|
|
1
|
+
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";;;AAqFA;;;;;;;GAOG;AAEH,IAAI,SAAS,GAAG,KAAK,CAAA;AAIrB,4DAA4D;AAC/C,QAAA,gBAAgB,GAAiC;IAC5D,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,SAAS;IACT,MAAM;CACP,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,QAAkB,EAAW,EAAE,CAC5D,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAE1D;;;;;;;GAOG;AACH,wBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE;;IACzD,MAAM,cAAc,GAAG,MAAA,MAAC,EAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAE,UAAU,0CAAE,IAAI,CAAA;IAE5E,8DAA8D;IAC9D,MAAM,iBAAiB,GACrB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC;QACpE,qBAAqB,IAAI,EAAE,CAAA;IAE7B,2EAA2E;IAC3E,yEAAyE;IACzE,uEAAuE;IACvE,0DAA0D;IAC1D,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,yFAAyF;IACzF,MAAM,eAAe,GAAG,MAAA,MAAC,EAAiB,EAAC,OAAO,kDAAI,CAAA;IACtD,wFAAwF;IACxF,4FAA4F;IAC5F,4BAA4B;IAC5B,MAAM,oBAAoB,GAAG,MAAA,MAAC,EAAiB,EAAC,YAAY,kDAAI,CAAA;IAEhE,MAAM,YAAY,GAAG,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,GAAG,CAAC,EAAE;QACV,8DAA8D;QAC9D,IAAI,GAAG,IAAI,CAAE,GAAW,CAAC,yBAAyB,EAAE,CAAC;YACnD;;;eAGG;YACH,8DAA8D;YAC9D,CAAC;YAAC,GAAW,CAAC,yBAAyB,GAAG,IAAI,CAAA;QAChD,CAAC;IACH,CAAC,CAAC;SACD,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvD,IAAI,iBAAiB,EAAE,CAAC;QACtB,YAAY;YACV,yFAAyF;YACzF,0FAA0F;YAC1F,4FAA4F;YAC5F,oCAAoC;YACpC,EAAE;YACF,2FAA2F;YAC3F,2FAA2F;YAC3F,oCAAoC;aACnC,IAAI,CACH,GAAG,EAAE;;YACH,0FAA0F;YAC1F,0FAA0F;YAC1F,oDAAoD;YACpD,OAAA,oBAAoB;iBACpB,MAAA,MAAC,EAAiB,EAAC,mBAAmB,mDAAG,oBAAoB,CAAC,CAAA,CAAA;SAAA,CACjE;aACA,IAAI,CAAC,cAAc,CAAC,EAAE;YACrB,sCAAsC;YACtC,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC9C,eAAe,IAAI,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CACjC,CAAA;YAElC,8FAA8F;YAC9F,4FAA4F;YAC5F,aAAa;YACb,OAAO,UAAU,CAAC,GAAG,wBAAwB,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACN,YAAY;YACV,+CAA+C;aAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC;aAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;AACH,CAAC,CAAC,CACH,CAAA;AAED;;;;;;GAMG;AACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE;IAC1D,0EAA0E;IAC1E,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACV,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;SACpD,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;SAC/B,IAAI,CAAC,WAAW,CAAC,EAAE;QAClB,EAAE,CAAC,MAAM,EAAE;aACR,IAAI,CAAC,GAAG,CAAC,EAAE;YACV,8DAA8D;YAC9D,IAAI,GAAG,IAAI,CAAE,GAAW,CAAC,yBAAyB,EAAE,CAAC;gBACnD;;;mBAGG;gBACH,8DAA8D;gBAC9D,CAAC;gBAAC,GAAW,CAAC,yBAAyB,GAAG,IAAI,CAAA;YAChD,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,SAAS,sBAAsB;IAC7B,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,8DAA8D;QAC9D,MAAM,UAAU,GAAI,GAAW,CAAC,yBAAyB,CAAA;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;YACrC,MAAM,OAAO,GAAa,EAAE,CAAA;YAE5B,MAAM,WAAW,GAAG,CAAC,KAA4B,EAAQ,EAAE;gBACzD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC,CAAA;YAED,MAAM,UAAU,GAAG,GAAS,EAAE;gBAC5B,GAAG,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;gBACpD,GAAG,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAyB,CAAC,CAE/D;gBAAC,GAAW,CAAC,yBAAyB,GAAG,KAAK,CAAA;gBAC/C,OAAO,CAAC,OAAO,CAAC,CAAA;YAClB,CAAC,CAAA;YAED,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACjD,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAyB,CAAC,CAAA;YAE7D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChB,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAC/D,6FAA6F;IAC7F,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,SAAS,wBAAwB,CAAC,EAChC,sBAAsB,GAAG,IAAI,KAG3B,EAAE;IACJ,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;IACnD,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,sFAAsF;QACtF,IAAI,SAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACjC,MAAM,EAAE,GAAG,GAAS,EAAE;gBACpB,GAAG,CAAC,mBAAmB,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAA;gBAC3D,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,GAAG,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAA;YACxD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACvD,MAAM,EAAE,EAAE,oBAAoB,EAAE;aACjC,CAAC,CAAA;YACF,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACjC,MAAM,EAAE,GAAG,GAAS,EAAE;gBACpB,GAAG,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;gBACvD,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,GAAG,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;YACpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAA;YACpD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACjC,MAAM,EAAE,GAAG,GAAS,EAAE;gBACpB,GAAG,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;gBACtD,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,GAAG,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;YACnD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAA;YACnD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,wEAAwE;AACxE,gFAAgF;AAChF,gEAAgE;AAChE,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAA;AAC9D,CAAC;AAED,kDAAkD;AAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;AACxD,iDAAiD;AACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;AACtD,kDAAkD;AAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;AAExD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAA;AACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAA;AAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAA;AAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAA"}
|