@electron/lint-roller 1.4.0 → 1.5.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.
|
@@ -37,7 +37,7 @@ const DEFAULT_IMPORTS = `${NODE_IMPORTS}; const { ${ELECTRON_MODULES.join(', ')}
|
|
|
37
37
|
// not tied to Electron - will require passing in the list of modules
|
|
38
38
|
// as a CLI option, probably a file since there's a lot of info
|
|
39
39
|
async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
40
|
-
var _a, _b, _c, _d, _e;
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
41
41
|
const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
|
|
42
42
|
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'electron-ts-check-'));
|
|
43
43
|
try {
|
|
@@ -55,10 +55,19 @@ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
|
55
55
|
const line = codeBlock.position.start.line;
|
|
56
56
|
const indent = codeBlock.position.start.column - 1;
|
|
57
57
|
const tsNoCheck = (_a = codeBlock.meta) === null || _a === void 0 ? void 0 : _a.split(' ').includes('@ts-nocheck');
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
const tsExpectErrorLines = (_c = (_b = codeBlock.meta) === null || _b === void 0 ? void 0 : _b.match(/\B@ts-expect-error=\[([\d,]*)\]\B/)) === null || _c === void 0 ? void 0 : _c[1].split(',').map((line) => parseInt(line));
|
|
59
|
+
const tsIgnoreLines = (_e = (_d = codeBlock.meta) === null || _d === void 0 ? void 0 : _d.match(/\B@ts-ignore=\[([\d,]*)\]\B/)) === null || _e === void 0 ? void 0 : _e[1].split(',').map((line) => parseInt(line));
|
|
60
|
+
const tsTypeLines = Array.from((_g = (_f = codeBlock.meta) === null || _f === void 0 ? void 0 : _f.matchAll(/\B@ts-type={([^:\r\n\t\f\v ]+):\s?([^}]+)}\B/g)) !== null && _g !== void 0 ? _g : []);
|
|
61
|
+
if (tsNoCheck && (tsExpectErrorLines || tsIgnoreLines || tsTypeLines.length)) {
|
|
62
|
+
console.log(`${filepath}:${line}:${indent + 1}: Code block has both @ts-nocheck and @ts-expect-error/@ts-ignore/@ts-type, they conflict`);
|
|
63
|
+
errors = true;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// There should be no overlap between @ts-expect-error and @ts-ignore
|
|
67
|
+
if (tsExpectErrorLines &&
|
|
68
|
+
tsIgnoreLines &&
|
|
69
|
+
tsExpectErrorLines.some((line) => tsIgnoreLines.includes(line))) {
|
|
70
|
+
console.log(`${filepath}:${line}:${indent + 1}: Code block has both @ts-expect-error and @ts-ignore with same line number(s)`);
|
|
62
71
|
errors = true;
|
|
63
72
|
continue;
|
|
64
73
|
}
|
|
@@ -71,13 +80,9 @@ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
|
71
80
|
continue;
|
|
72
81
|
}
|
|
73
82
|
const codeLines = codeBlock.value.split('\n');
|
|
74
|
-
let
|
|
83
|
+
let insertedInitialLine = false;
|
|
75
84
|
let types = '';
|
|
76
|
-
|
|
77
|
-
// (1-based lines) to insert an "// @ts-ignore" comment before
|
|
78
|
-
// specified lines, in order to ignore specific lines (like
|
|
79
|
-
// requires of extra modules) without skipping the whole block
|
|
80
|
-
for (const line of tsIgnoreLines !== null && tsIgnoreLines !== void 0 ? tsIgnoreLines : []) {
|
|
85
|
+
const insertComment = (comment, line) => {
|
|
81
86
|
// Inserting additional lines will make the tsc output
|
|
82
87
|
// incorrect which would be a pain to manually adjust,
|
|
83
88
|
// and there is no @ts-ignore-line, so tack the comment
|
|
@@ -86,21 +91,32 @@ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
|
86
91
|
// The first line of the file is an edge case where an
|
|
87
92
|
// insertion is necessary, so take that into account
|
|
88
93
|
if (line === 1) {
|
|
89
|
-
codeLines.unshift(
|
|
90
|
-
|
|
94
|
+
codeLines.unshift(comment);
|
|
95
|
+
insertedInitialLine = true;
|
|
91
96
|
}
|
|
92
97
|
else {
|
|
93
|
-
const offset =
|
|
98
|
+
const offset = insertedInitialLine ? 1 : 2;
|
|
94
99
|
const codeLine = codeLines[line - offset];
|
|
95
100
|
// If the line is already a comment, fully replace it,
|
|
96
|
-
// otherwise tsc won't pick up the
|
|
101
|
+
// otherwise tsc won't pick up the inserted comment
|
|
97
102
|
if (codeLine.match(/^\s*\/\/\s/)) {
|
|
98
|
-
codeLines[line - offset] =
|
|
103
|
+
codeLines[line - offset] = comment;
|
|
99
104
|
}
|
|
100
105
|
else {
|
|
101
|
-
codeLines[line - offset] = `${codeLine}
|
|
106
|
+
codeLines[line - offset] = `${codeLine} ${comment}`;
|
|
102
107
|
}
|
|
103
108
|
}
|
|
109
|
+
};
|
|
110
|
+
// Blocks can have @ts-ignore=[1,10,50] in their info string
|
|
111
|
+
// (1-based lines) to insert an "// @ts-ignore" comment before
|
|
112
|
+
// specified lines, in order to ignore specific lines (like
|
|
113
|
+
// requires of extra modules) without skipping the whole block
|
|
114
|
+
for (const line of tsIgnoreLines !== null && tsIgnoreLines !== void 0 ? tsIgnoreLines : []) {
|
|
115
|
+
insertComment('// @ts-ignore', line);
|
|
116
|
+
}
|
|
117
|
+
// Blocks can also have @ts-expect-error
|
|
118
|
+
for (const line of tsExpectErrorLines !== null && tsExpectErrorLines !== void 0 ? tsExpectErrorLines : []) {
|
|
119
|
+
insertComment('// @ts-expect-error', line);
|
|
104
120
|
}
|
|
105
121
|
// Indent the lines if necessary so that tsc output is accurate
|
|
106
122
|
const code = (0, helpers_1.wrapOrphanObjectInParens)(codeLines
|
|
@@ -112,7 +128,7 @@ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
|
112
128
|
const imports = codeBlock.value.includes(' require(') ? '' : DEFAULT_IMPORTS;
|
|
113
129
|
// Insert the necessary number of blank lines so that the line
|
|
114
130
|
// numbers in output from tsc is accurate to the original file
|
|
115
|
-
const blankLines = '\n'.repeat(
|
|
131
|
+
const blankLines = '\n'.repeat(insertedInitialLine ? line - 3 : line - 2);
|
|
116
132
|
// Filename is unique since it is the name of the original Markdown
|
|
117
133
|
// file, with the starting line number of the codeblock appended
|
|
118
134
|
const filename = path.join(tempDir, `${filepath
|
|
@@ -159,8 +175,8 @@ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
|
|
|
159
175
|
}
|
|
160
176
|
// Replace the temp file paths with the original source filename
|
|
161
177
|
let correctedOutput = stdout.replace(new RegExp(`${path.relative(process.cwd(), tempDir)}${path.sep}`.replace(/\\/g, path.posix.sep), 'g'), '');
|
|
162
|
-
// Strip any @ts-ignore comments we added
|
|
163
|
-
correctedOutput = correctedOutput.replace(/ \/\/ @ts-ignore/g, '');
|
|
178
|
+
// Strip any @ts-expect-error/@ts-ignore comments we added
|
|
179
|
+
correctedOutput = correctedOutput.replace(/ \/\/ @ts-(?:expect-error|ignore)/g, '');
|
|
164
180
|
if (correctedOutput.trim()) {
|
|
165
181
|
for (const [filename, originalFilename] of originalFilenames.entries()) {
|
|
166
182
|
correctedOutput = correctedOutput.replace(new RegExp(path.basename(filename), 'g'), originalFilename);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-markdown-ts-check.js","sourceRoot":"","sources":["../../bin/lint-markdown-ts-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lint-markdown-ts-check.js","sourceRoot":"","sources":["../../bin/lint-markdown-ts-check.ts"],"names":[],"mappings":";;;AAEA,sCAAsC;AACtC,8BAA8B;AAC9B,8BAA8B;AAC9B,kCAAkC;AAElC,qCAAqC;AACrC,mCAAgC;AAChC,2CAAiC;AAEjC,4CAAsF;AACtF,8CAA+D;AAM/D,MAAM,gBAAgB,GAAG;IACvB,KAAK;IACL,aAAa;IACb,eAAe;IACf,eAAe;IACf,QAAQ;IACR,eAAe;IACf,SAAS;IACT,aAAa;IACb,MAAM;IACN,oBAAoB;IACpB,aAAa;IACb,KAAK;IACL,UAAU;IACV,SAAS;IACT,mBAAmB;IACnB,MAAM;IACN,gBAAgB;IAChB,UAAU;IACV,cAAc;CACf,CAAC;AAEF,MAAM,YAAY,GAChB,sHAAsH,CAAC;AAEzH,MAAM,eAAe,GAAG,GAAG,YAAY,aAAa,gBAAgB,CAAC,IAAI,CACvE,IAAI,CACL,2BAA2B,CAAC;AAE7B,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,KAAK,UAAU,IAAI,CAAC,aAAqB,EAAE,KAAe,EAAE,EAAE,WAAW,GAAG,EAAE,EAAW;;IACvF,MAAM,SAAS,GAAG,IAAI,wBAAa,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE7E,IAAI;QACF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAwB,IAAI,GAAG,EAAE,CAAC;QAEzD,4DAA4D;QAC5D,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAEhG,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,KAAK,MAAM,QAAQ,IAAI,MAAM,SAAS,CAAC,uBAAuB,EAAE,EAAE;YAChE,MAAM,GAAG,GAAG,gBAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CACzD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC9E,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;gBACpC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEpD,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACrE,MAAM,kBAAkB,GAAG,MAAA,MAAA,SAAS,CAAC,IAAI,0CACrC,KAAK,CAAC,mCAAmC,CAAC,0CAAG,CAAC,EAC/C,KAAK,CAAC,GAAG,EACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,MAAM,aAAa,GAAG,MAAA,MAAA,SAAS,CAAC,IAAI,0CAChC,KAAK,CAAC,6BAA6B,CAAC,0CAAG,CAAC,EACzC,KAAK,CAAC,GAAG,EACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,MAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,QAAQ,CAAC,+CAA+C,CAAC,mCAAI,EAAE,CAChF,CAAC;gBAEF,IAAI,SAAS,IAAI,CAAC,kBAAkB,IAAI,aAAa,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;oBAC5E,OAAO,CAAC,GAAG,CACT,GAAG,QAAQ,IAAI,IAAI,IACjB,MAAM,GAAG,CACX,2FAA2F,CAC5F,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC;oBACd,SAAS;iBACV;gBAED,qEAAqE;gBACrE,IACE,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC/D;oBACA,OAAO,CAAC,GAAG,CACT,GAAG,QAAQ,IAAI,IAAI,IACjB,MAAM,GAAG,CACX,gFAAgF,CACjF,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC;oBACd,SAAS;iBACV;gBAED,oDAAoD;gBACpD,IAAI,SAAS,EAAE;oBACb,SAAS;iBACV;gBAED,yBAAyB;gBACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;oBAC3B,SAAS;iBACV;gBAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;gBAChC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAEf,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,IAAY,EAAE,EAAE;oBACtD,sDAAsD;oBACtD,sDAAsD;oBACtD,uDAAuD;oBACvD,sDAAsD;oBACtD,qDAAqD;oBACrD,sDAAsD;oBACtD,oDAAoD;oBACpD,IAAI,IAAI,KAAK,CAAC,EAAE;wBACd,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3B,mBAAmB,GAAG,IAAI,CAAC;qBAC5B;yBAAM;wBACL,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;wBAC1C,sDAAsD;wBACtD,mDAAmD;wBACnD,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;4BAChC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;yBACpC;6BAAM;4BACL,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;yBACrD;qBACF;gBACH,CAAC,CAAC;gBAEF,4DAA4D;gBAC5D,8DAA8D;gBAC9D,2DAA2D;gBAC3D,8DAA8D;gBAC9D,KAAK,MAAM,IAAI,IAAI,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,EAAE;oBACtC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;iBACtC;gBAED,wCAAwC;gBACxC,KAAK,MAAM,IAAI,IAAI,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,EAAE;oBAC3C,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;iBAC5C;gBAED,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,IAAA,kCAAwB,EACnC,SAAS;qBACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACzE,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;gBAEF,2DAA2D;gBAC3D,0DAA0D;gBAC1D,sDAAsD;gBACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;gBAE7E,8DAA8D;gBAC9D,8DAA8D;gBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBAE1E,mEAAmE;gBACnE,gEAAgE;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,EACP,GAAG,QAAQ;qBACR,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;qBAC9D,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CACpC,CAAC;gBAEF,4DAA4D;gBAC5D,2DAA2D;gBAC3D,IAAI,WAAW,CAAC,MAAM,EAAE;oBACtB,wDAAwD;oBACxD,yDAAyD;oBACzD,qDAAqD;oBACrD,sDAAsD;oBACtD,wDAAwD;oBACxD,4DAA4D;oBAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC1D,MAAM,UAAU,GAAG,WAAW;yBAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;yBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,cAAc,IAAI,mBAAmB,UAAU,QAAQ,UAAU,SAAS,CAAC;oBAC3E,KAAK,GAAG,UAAU,WAAW;yBAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACtB,IAAI,CAAC,GAAG,CAAC,gBAAgB,UAAU,IAAI,CAAC;iBAC5C;gBAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,OAAO,KAAK,UAAU,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;gBAEvF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC3C;SACF;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,IAAA,wBAAc,EAAC,SAAS,CAAC,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG;gBACX,OAAO;gBACP,UAAU;gBACV,WAAW;gBACX,UAAU;gBACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;gBAClC,GAAG,KAAK;aACT,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE5E,IAAI,MAAM,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;aACzB;YAED,gEAAgE;YAChE,IAAI,eAAe,GAAG,MAAM,CAAC,OAAO,CAClC,IAAI,MAAM,CACR,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EACpF,GAAG,CACJ,EACD,EAAE,CACH,CAAC;YAEF,0DAA0D;YAC1D,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;YAEpF,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE;gBAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE;oBACtE,eAAe,GAAG,eAAe,CAAC,OAAO,CACvC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EACxC,gBAAgB,CACjB,CAAC;iBACH;gBAED,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aAC9B;YAED,MAAM,GAAG,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC;SACjC;QAED,OAAO,MAAM,CAAC;KACf;YAAS;QACR,MAAM,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;KACvB;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,CAAC,GAAY,EAAW,EAAE;QAC1C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC/B,OAAO,CAAC,GAAG,CACT,yEAAyE;gBACvE,2CAA2C,CAC9C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3C,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;QACzC,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,SAAS,EAAE,CAAC;IAE3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAEhC,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACxE;SAAM;QACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KAClB;IAED,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1F,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;SACpC;KACF;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;QACnD,WAAW,EAAE,IAAI,CAAC,MAAM;KACzB,CAAC;SACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACN"}
|