@axe-core/watcher 3.15.2 → 3.16.0-next.6c76f6bd
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cypress.d.ts +1 -0
- package/dist/cypress.js +5 -1
- package/dist/cypress.js.map +1 -1
- package/dist/cypressCommands.js +43 -50
- package/dist/cypressCommands.js.map +1 -1
- package/extension/background.js +1 -1
- package/extension/content.js +1 -1
- package/package.json +5 -5
package/dist/cypress.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { type Configuration } from './utils/writeVariables';
|
2
2
|
export declare const cypressConfigRunFlag = "__AXE_WATCHER_CYPRESS_CONFIG_RUN";
|
3
|
+
export declare const cypressConfigAutoAnalyzeFlag = "__AXE_WATCHER_AUTO_ANALYZE";
|
3
4
|
/**
|
4
5
|
* Create a Cypress config that uses the axe Watcher extension.
|
5
6
|
*
|
package/dist/cypress.js
CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.cypressConfig = exports.cypressConfigRunFlag = void 0;
|
6
|
+
exports.cypressConfig = exports.cypressConfigAutoAnalyzeFlag = exports.cypressConfigRunFlag = void 0;
|
7
7
|
const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
|
8
8
|
const EventForwarder_1 = __importDefault(require("./EventForwarder"));
|
9
9
|
const writeVariables_1 = __importDefault(require("./utils/writeVariables"));
|
@@ -13,6 +13,7 @@ const mergeChromeArgs_1 = __importDefault(require("./utils/mergeChromeArgs"));
|
|
13
13
|
const createDebugger_1 = __importDefault(require("./createDebugger"));
|
14
14
|
const debugLogger = (0, createDebugger_1.default)('CypressController');
|
15
15
|
exports.cypressConfigRunFlag = '__AXE_WATCHER_CYPRESS_CONFIG_RUN';
|
16
|
+
exports.cypressConfigAutoAnalyzeFlag = '__AXE_WATCHER_AUTO_ANALYZE';
|
16
17
|
const cypressConfig = (config) => {
|
17
18
|
var _a;
|
18
19
|
const { axe, ...userConfig } = config;
|
@@ -44,6 +45,9 @@ const cypressConfig = (config) => {
|
|
44
45
|
__AXE_WATCHER_DEBUG: hasWatcherDebug
|
45
46
|
});
|
46
47
|
}
|
48
|
+
userConfig.env = Object.assign({}, userConfig.env, {
|
49
|
+
[exports.cypressConfigAutoAnalyzeFlag]: axe.autoAnalyze === undefined ? true : axe.autoAnalyze
|
50
|
+
});
|
47
51
|
return {
|
48
52
|
...userConfig,
|
49
53
|
e2e: {
|
package/dist/cypress.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":";;;;;;AACA,gFAAuD;AACvD,sEAA6C;AAC7C,4EAA2E;AAC3E,4FAA0D;AAC1D,iFAA6E;AAC7E,8EAAqD;AACrD,sEAA6C;AAE7C,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,mBAAmB,CAAC,CAAA;AAE1C,QAAA,oBAAoB,GAAG,kCAAkC,CAAA;
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":"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"}
|
package/dist/cypressCommands.js
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.WRAPPED_COMMANDS = void 0;
|
4
|
-
const
|
5
|
-
|
4
|
+
const cypressConfigRunFlag = '__AXE_WATCHER_CYPRESS_CONFIG_RUN';
|
5
|
+
const cypressConfigAutoAnalyzeFlag = '__AXE_WATCHER_AUTO_ANALYZE';
|
6
|
+
let isStopped = !Cypress.env(cypressConfigAutoAnalyzeFlag);
|
6
7
|
exports.WRAPPED_COMMANDS = [
|
7
8
|
'blur',
|
8
9
|
'check',
|
@@ -28,7 +29,7 @@ const logDebugAxeWatcher = ({ message }) => {
|
|
28
29
|
}
|
29
30
|
};
|
30
31
|
const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].includes(location.protocol);
|
31
|
-
if (!Cypress.env(
|
32
|
+
if (!Cypress.env(cypressConfigRunFlag)) {
|
32
33
|
throw new Error(`Cypress is not configured for axe watcher. Please ensure that axe watcher's cypressConfig() is invoked within Cypress' defineConfig() in your ${Cypress.config('configFile')}. All tests will fail with this error.`);
|
33
34
|
}
|
34
35
|
exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
|
@@ -75,7 +76,9 @@ Cypress.Commands.addQuery('__axeRestoreSubject', function (subjectChain, timeout
|
|
75
76
|
return () => cy.getSubjectFromChain(subjectChain);
|
76
77
|
});
|
77
78
|
function axeWatcherFlushCommand() {
|
78
|
-
logDebugAxeWatcher({
|
79
|
+
logDebugAxeWatcher({
|
80
|
+
message: `Flush: Invoked (${isStopped ? 'will not' : 'may'} analyze implicitly)`
|
81
|
+
});
|
79
82
|
cy.window().then(win => {
|
80
83
|
if (!shouldAnalyzeLocation(win.location)) {
|
81
84
|
return Promise.resolve();
|
@@ -92,7 +95,9 @@ function axeWatcherFlushCommand() {
|
|
92
95
|
};
|
93
96
|
win.addEventListener('axe:flush-end', onFlushEnd);
|
94
97
|
win.addEventListener('axe:result', onAxeResult);
|
95
|
-
const event = new CustomEvent('axe:flush-start'
|
98
|
+
const event = new CustomEvent('axe:flush-start', {
|
99
|
+
detail: { isStopped }
|
100
|
+
});
|
96
101
|
win.dispatchEvent(event);
|
97
102
|
}).then(results => {
|
98
103
|
cy.task('__uploadAxeWatcherResults', { results }, { log: false });
|
@@ -103,77 +108,65 @@ function axeWatcherFlushCommand() {
|
|
103
108
|
const doesCypressCommandExist = (commandName) => {
|
104
109
|
return !!Cypress.cy[commandName];
|
105
110
|
};
|
106
|
-
function axeWatcherAnalyzeCommand({ __Method, __UserRequestedAnalyze = true } = {}) {
|
111
|
+
function axeWatcherAnalyzeCommand(subject, { __Method, __UserRequestedAnalyze = true } = {}) {
|
112
|
+
const userRequestedAnalyze = __UserRequestedAnalyze;
|
113
|
+
const message = userRequestedAnalyze
|
114
|
+
? 'User requested analysis'
|
115
|
+
: `Invoked${__Method ? ` - ${__Method}` : ''}`;
|
107
116
|
logDebugAxeWatcher({
|
108
|
-
message: `Analyze:
|
117
|
+
message: `Analyze: ${message}`
|
109
118
|
});
|
110
|
-
const userRequestedAnalyze = __UserRequestedAnalyze;
|
111
119
|
cy.window().then(win => {
|
112
120
|
if (!shouldAnalyzeLocation(win.location)) {
|
113
|
-
|
121
|
+
logDebugAxeWatcher({
|
122
|
+
message: `Analyze: Skipped - invalid protocol`
|
123
|
+
});
|
124
|
+
return Promise.resolve({ message: `Skipped - Invalid protocol`, subject });
|
114
125
|
}
|
115
126
|
if (isStopped && !userRequestedAnalyze) {
|
116
|
-
|
127
|
+
logDebugAxeWatcher({
|
128
|
+
message: `Analyze: Skipped - manual mode`
|
129
|
+
});
|
130
|
+
return Promise.resolve({ message: `Skipped (Manual mode)`, subject });
|
117
131
|
}
|
118
132
|
return new Promise(resolve => {
|
119
133
|
const fn = (event) => {
|
120
134
|
win.removeEventListener('axe:manual-mode-analyze-done', fn);
|
121
|
-
resolve(event.detail);
|
135
|
+
resolve({ message: event.detail.message, subject });
|
122
136
|
};
|
123
137
|
win.addEventListener('axe:manual-mode-analyze-done', fn);
|
124
138
|
const event = new CustomEvent('axe:manual-mode-analyze', {
|
125
|
-
detail: { userRequestedAnalyze }
|
139
|
+
detail: { userRequestedAnalyze, isCypress: true }
|
126
140
|
});
|
127
141
|
win.dispatchEvent(event);
|
128
142
|
}).then(result => {
|
129
143
|
logDebugAxeWatcher({ message: `Analyze: ${result === null || result === void 0 ? void 0 : result.message}` });
|
144
|
+
if (result === null || result === void 0 ? void 0 : result.subject) {
|
145
|
+
return result.subject;
|
146
|
+
}
|
130
147
|
});
|
131
148
|
});
|
132
149
|
}
|
133
|
-
function axeWatcherStartCommand() {
|
134
|
-
cy.window().then(
|
135
|
-
|
136
|
-
|
137
|
-
}
|
138
|
-
return new Promise(resolve => {
|
139
|
-
const fn = () => {
|
140
|
-
win.removeEventListener('axe:start-auto-mode-done', fn);
|
141
|
-
resolve();
|
142
|
-
};
|
143
|
-
win.addEventListener('axe:start-auto-mode-done', fn);
|
144
|
-
const event = new CustomEvent('axe:start-auto-mode');
|
145
|
-
win.dispatchEvent(event);
|
146
|
-
}).then(() => {
|
147
|
-
isStopped = false;
|
148
|
-
});
|
150
|
+
function axeWatcherStartCommand(subject) {
|
151
|
+
cy.window().then(() => {
|
152
|
+
isStopped = false;
|
153
|
+
return Promise.resolve(subject);
|
149
154
|
});
|
150
155
|
}
|
151
|
-
function axeWatcherStopCommand() {
|
152
|
-
cy.window().then(
|
153
|
-
|
154
|
-
|
155
|
-
}
|
156
|
-
return new Promise(resolve => {
|
157
|
-
const fn = () => {
|
158
|
-
win.removeEventListener('axe:stop-auto-mode-done', fn);
|
159
|
-
resolve();
|
160
|
-
};
|
161
|
-
win.addEventListener('axe:stop-auto-mode-done', fn);
|
162
|
-
const event = new CustomEvent('axe:stop-auto-mode');
|
163
|
-
win.dispatchEvent(event);
|
164
|
-
}).then(() => {
|
165
|
-
isStopped = true;
|
166
|
-
});
|
156
|
+
function axeWatcherStopCommand(subject) {
|
157
|
+
cy.window().then(() => {
|
158
|
+
isStopped = true;
|
159
|
+
return Promise.resolve(subject);
|
167
160
|
});
|
168
161
|
}
|
169
162
|
if (!doesCypressCommandExist('axeAnalyze')) {
|
170
|
-
Cypress.Commands.add('
|
163
|
+
Cypress.Commands.add('axeWatcherAnalyze', { prevSubject: 'optional' }, axeWatcherAnalyzeCommand);
|
171
164
|
}
|
172
165
|
Cypress.Commands.add('axeFlush', axeWatcherFlushCommand);
|
173
|
-
Cypress.Commands.add('axeStop', axeWatcherStopCommand);
|
174
|
-
Cypress.Commands.add('axeStart', axeWatcherStartCommand);
|
175
|
-
Cypress.Commands.add('axeWatcherAnalyze', axeWatcherAnalyzeCommand);
|
176
|
-
Cypress.Commands.add('axeWatcherStart', axeWatcherStartCommand);
|
177
|
-
Cypress.Commands.add('axeWatcherStop', axeWatcherStopCommand);
|
166
|
+
Cypress.Commands.add('axeStop', { prevSubject: 'optional' }, axeWatcherStopCommand);
|
167
|
+
Cypress.Commands.add('axeStart', { prevSubject: 'optional' }, axeWatcherStartCommand);
|
168
|
+
Cypress.Commands.add('axeWatcherAnalyze', { prevSubject: 'optional' }, axeWatcherAnalyzeCommand);
|
169
|
+
Cypress.Commands.add('axeWatcherStart', { prevSubject: 'optional' }, axeWatcherStartCommand);
|
170
|
+
Cypress.Commands.add('axeWatcherStop', { prevSubject: 'optional' }, axeWatcherStopCommand);
|
178
171
|
Cypress.Commands.add('axeWatcherFlush', axeWatcherFlushCommand);
|
179
172
|
//# sourceMappingURL=cypressCommands.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";;;AAYA,MAAM,oBAAoB,GAAG,kCAAkC,CAAA;AAC/D,MAAM,4BAA4B,GAAG,4BAA4B,CAAA;AAyGjE,IAAI,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAK7C,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,OAAO;IACP,MAAM;CACP,CAAA;AAQD,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAA4B,EAAQ,EAAE;IAGzE,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,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;AAG1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;IACvC,MAAM,IAAI,KAAK,CACb,iJAAiJ,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,wCAAwC,CACtN,CAAA;AACH,CAAC;AAUD,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,GAAI,EAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC1D,MAAM,kBAAkB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACtD,MAAM,kBAAkB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAGtD,MAAM,iBAAiB,GACrB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC;QACpE,qBAAqB,IAAI,EAAE,CAAA;IAM7B,IAAI,kBAAkB,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5B,CAAC;IAcD,MAAM,eAAe,GAAG,MAAA,MAAC,EAAiB,EAAC,OAAO,kDAAI,CAAA;IACtD,MAAM,oBAAoB,GAAG,MAAA,MAAC,EAAiB,EAAC,YAAY,kDAAI,CAAA;IAGhE,IAAI,YAAY,GAA2B,EAAE,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC;QACvE,QAAQ,EAAE,MAAM;QAChB,sBAAsB,EAAE,KAAK;KAC9B,CAAC,CAAA;IASF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,0CAAE,OAAO,CAAA;QAGvD,YAAY,GAAI,YAAoB,CAAC,mBAAmB,CACtD,oBAAoB,EACpB,OAAO,CACR,CAAA;QAMD,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,gBAAgB,CAAC,EAAE,CACxD,UAAU,CAER,GAAI,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAS,CACtE,CACF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,YAAY;aAET,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,SAAS,aAAa,CACpB,IAAe,EACf,WAAoC,EACpC,gBAAyB;IAEzB,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAEvB,qBAA4B,EAG5B,UAAU,YAAY,EAAE,OAAO;IAE7B,IAAI,CAAC,GAAG,CAAC,SAAgB,EAAE,OAAO,CAAC,CAAA;IAEnC,IAAI,CAAC,GAAG,CAAC,QAAe,EAAE,CAAC,GAAQ,EAAE,EAAE;QACrC,MAAM,MAAM,GAAI,EAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACnD,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC1C,CAAC,CAAC,CAAA;IACF,OAAO,GAAY,EAAE,CAAE,EAAiB,CAAC,mBAAoB,CAAC,YAAY,CAAC,CAAA;AAC7E,CAAC,CACF,CAAA;AAED,SAAS,sBAAsB;IAC7B,kBAAkB,CAAC;QACjB,OAAO,EAAE,mBAAmB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,sBAAsB;KACjF,CAAC,CAAA;IACF,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;QACD,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,CAAA;gBAEhE,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,EAAE;gBAC/C,MAAM,EAAE,EAAE,SAAS,EAAE;aACtB,CAAC,CAAA;YACF,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChB,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;YACjE,kBAAkB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAE/D,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,SAAS,wBAAwB,CAC/B,OAA4B,EAC5B,EACE,QAAQ,EACR,sBAAsB,GAAG,IAAI,KAI3B,EAAE;IAEN,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;IACnD,MAAM,OAAO,GAAG,oBAAoB;QAClC,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAChD,kBAAkB,CAAC;QACjB,OAAO,EAAE,YAAY,OAAO,EAAE;KAC/B,CAAC,CAAA;IACF,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,kBAAkB,CAAC;gBACjB,OAAO,EAAE,qCAAqC;aAC/C,CAAC,CAAA;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5E,CAAC;QAGD,IAAI,SAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACvC,kBAAkB,CAAC;gBACjB,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAA;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,IAAI,OAAO,CAAyC,OAAO,CAAC,EAAE;YACnE,MAAM,EAAE,GAAG,CAAC,KAAkB,EAAQ,EAAE;gBACtC,GAAG,CAAC,mBAAmB,CACrB,8BAA8B,EAC9B,EAAgB,CACjB,CAAA;gBACD,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;YACrD,CAAC,CAAA;YACD,GAAG,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,EAAgB,CAAC,CAAA;YACtE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACvD,MAAM,EAAE,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE;aAClD,CAAC,CAAA;YACF,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACf,kBAAkB,CAAC,EAAE,OAAO,EAAE,YAAY,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YAG9D,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC,OAAO,CAAA;YACvB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA4B;IAC1D,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACpB,SAAS,GAAG,KAAK,CAAA;QAGjB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA4B;IACzD,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACpB,SAAS,GAAG,IAAI,CAAA;QAIhB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC;AAKD,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,mBAAmB,EACnB,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,wBAAwB,CACzB,CAAA;AACH,CAAC;AAGD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;AAExD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,SAAS,EACT,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,qBAAqB,CACtB,CAAA;AAED,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,UAAU,EACV,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,sBAAsB,CACvB,CAAA;AACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,mBAAmB,EACnB,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,wBAAwB,CACzB,CAAA;AACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,iBAAiB,EACjB,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,sBAAsB,CACvB,CAAA;AACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,gBAAgB,EAChB,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,qBAAqB,CACtB,CAAA;AACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAA"}
|