@mnaoumov/typescript-dev-toolkit 5.4.1 → 6.0.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/lib/cjs/docs-site/docs-snippets.cjs +3 -3
- package/dist/lib/cjs/docs-site/link-check.cjs +4 -4
- package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +2 -5
- package/dist/lib/cjs/link-check-skip.cjs +2 -5
- package/dist/lib/cjs/linters/eslint-config.cjs +13 -1
- package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +1 -1
- package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +4 -7
- package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.cjs +3 -6
- package/dist/lib/cjs/linters/eslint-rules/prefer-dedent.cjs +2 -5
- package/dist/lib/cjs/linters/eslint-rules/prefer-logical-operator-over-ternary.cjs +20 -2
- package/dist/lib/cjs/linters/eslint-rules/prefer-logical-operator-over-ternary.d.cts +6 -3
- package/dist/lib/cjs/linters/over-exposure.cjs +2 -2
- package/dist/lib/cjs/root.cjs +1 -1
- package/dist/lib/cjs/test-runners/jest.cjs +3 -3
- package/dist/lib/cjs/upstream-sync.cjs +2 -2
- package/dist/lib/esm/docs-site/docs-snippets.mjs +3 -3
- package/dist/lib/esm/docs-site/link-check.mjs +4 -4
- package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +2 -5
- package/dist/lib/esm/link-check-skip.mjs +2 -5
- package/dist/lib/esm/linters/eslint-config.mjs +13 -1
- package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +1 -1
- package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +4 -7
- package/dist/lib/esm/linters/eslint-rules/params-options-name-match.mjs +3 -6
- package/dist/lib/esm/linters/eslint-rules/prefer-dedent.mjs +2 -5
- package/dist/lib/esm/linters/eslint-rules/prefer-logical-operator-over-ternary.d.mts +6 -3
- package/dist/lib/esm/linters/eslint-rules/prefer-logical-operator-over-ternary.mjs +20 -2
- package/dist/lib/esm/linters/over-exposure.mjs +2 -2
- package/dist/lib/esm/root.mjs +1 -1
- package/dist/lib/esm/test-runners/jest.mjs +3 -3
- package/dist/lib/esm/upstream-sync.mjs +2 -2
- package/package.json +32 -30
|
@@ -76,12 +76,9 @@ const noUsedUnderscoreVariables = {
|
|
|
76
76
|
const functionBody = node.body;
|
|
77
77
|
const bodyRange = functionBody?.range;
|
|
78
78
|
const isParameter = definitionNode.type === "Parameter";
|
|
79
|
-
const hasBodyReferences = variable.references.some(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
return !isParameter || !bodyRange || !reference.identifier.range || reference.identifier.range[0] >= bodyRange[0] && reference.identifier.range[1] <= bodyRange[1];
|
|
84
|
-
});
|
|
79
|
+
const hasBodyReferences = variable.references.some(
|
|
80
|
+
(reference) => reference.isRead() && (!isParameter || !bodyRange || !reference.identifier.range || reference.identifier.range[0] >= bodyRange[0] && reference.identifier.range[1] <= bodyRange[1])
|
|
81
|
+
);
|
|
85
82
|
if (hasBodyReferences) {
|
|
86
83
|
context.report({
|
|
87
84
|
data: { name: variable.name },
|
|
@@ -109,4 +106,4 @@ const noUsedUnderscoreVariables = {
|
|
|
109
106
|
MESSAGE_ID,
|
|
110
107
|
noUsedUnderscoreVariables
|
|
111
108
|
});
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlc1xuICpcbiAqIFJlcG9ydHMgYW4gZXJyb3Igd2hlbiBhIHBhcmFtZXRlciBvciBsb2NhbCB2YXJpYWJsZSB3aXRoIGEgYF9gIHByZWZpeCBpc1xuICogYWN0dWFsbHkgcmVmZXJlbmNlZCBpbiB0aGUgZnVuY3Rpb24gYm9keS4gVGhlIGBfYCBwcmVmaXggY29udmVudGlvbiBzaWduYWxzXG4gKiBcInRoaXMgaWRlbnRpZmllciBpcyBpbnRlbnRpb25hbGx5IHVudXNlZFwiIOKAlCBpZiBpdCBJUyB1c2VkLCB0aGUgcHJlZml4IGlzXG4gKiBtaXNsZWFkaW5nIGFuZCBzaG91bGQgYmUgcmVtb3ZlZC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbnRlcmZhY2UgTm9kZVdpdGhCb2R5IHtcbiAgcmVhZG9ubHkgYm9keT86IFJ1bGUuTm9kZTtcbn1cblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYSB2YXJpYWJsZSBjYXJyaWVzIGEgYF9gIHByZWZpeCAoc2lnbmFsbGluZyB1bnVzZWQpIGJ1dCBpcyBhY3R1YWxseSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzJztcblxuLyoqXG4gKiBFU0xpbnQgcnVsZSBkaXNhbGxvd2luZyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyBhbmQgbG9jYWwgdmFyaWFibGVzIHRoYXQgYXJlIGFjdHVhbGx5IHVzZWQsIHNpbmNlIHRoZSBwcmVmaXggYWR2ZXJ0aXNlcyB0aGVtIGFzIHVudXNlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlKG5vZGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NvcGUudmFyaWFibGVzKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZS5uYW1lLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVmaW5pdGlvbk5vZGUgPSB2YXJpYWJsZS5kZWZzWzBdO1xuICAgICAgICAgIGFzc2VydE5vbk51bGxhYmxlKGRlZmluaXRpb25Ob2RlLCAnVXNlci1kZWNsYXJlZCBfLXByZWZpeGVkIHZhcmlhYmxlcyBhbHdheXMgaGF2ZSBhdCBsZWFzdCBvbmUgZGVmaW5pdGlvbicpO1xuXG4gICAgICAgICAgLy8gRm9yIHBhcmFtZXRlcnMsIG9ubHkgY291bnQgcmVmZXJlbmNlcyBpbnNpZGUgdGhlIGZ1bmN0aW9uIGJvZHlcbiAgICAgICAgICAvLyAobm90IGluIHR5cGUgYW5ub3RhdGlvbnMgbGlrZSBgYXNzZXJ0cyBfb2JqIGlzIFRgKS5cbiAgICAgICAgICAvLyBGb3IgbG9jYWwgdmFyaWFibGVzLCBhbnkgcmVhZCByZWZlcmVuY2UgY291bnRzLlxuICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uQm9keSA9IChub2RlIGFzIE5vZGVXaXRoQm9keSkuYm9keTtcbiAgICAgICAgICBjb25zdCBib2R5UmFuZ2UgPSBmdW5jdGlvbkJvZHk/
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlc1xuICpcbiAqIFJlcG9ydHMgYW4gZXJyb3Igd2hlbiBhIHBhcmFtZXRlciBvciBsb2NhbCB2YXJpYWJsZSB3aXRoIGEgYF9gIHByZWZpeCBpc1xuICogYWN0dWFsbHkgcmVmZXJlbmNlZCBpbiB0aGUgZnVuY3Rpb24gYm9keS4gVGhlIGBfYCBwcmVmaXggY29udmVudGlvbiBzaWduYWxzXG4gKiBcInRoaXMgaWRlbnRpZmllciBpcyBpbnRlbnRpb25hbGx5IHVudXNlZFwiIOKAlCBpZiBpdCBJUyB1c2VkLCB0aGUgcHJlZml4IGlzXG4gKiBtaXNsZWFkaW5nIGFuZCBzaG91bGQgYmUgcmVtb3ZlZC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbnRlcmZhY2UgTm9kZVdpdGhCb2R5IHtcbiAgcmVhZG9ubHkgYm9keT86IFJ1bGUuTm9kZTtcbn1cblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYSB2YXJpYWJsZSBjYXJyaWVzIGEgYF9gIHByZWZpeCAoc2lnbmFsbGluZyB1bnVzZWQpIGJ1dCBpcyBhY3R1YWxseSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzJztcblxuLyoqXG4gKiBFU0xpbnQgcnVsZSBkaXNhbGxvd2luZyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyBhbmQgbG9jYWwgdmFyaWFibGVzIHRoYXQgYXJlIGFjdHVhbGx5IHVzZWQsIHNpbmNlIHRoZSBwcmVmaXggYWR2ZXJ0aXNlcyB0aGVtIGFzIHVudXNlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlKG5vZGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NvcGUudmFyaWFibGVzKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZS5uYW1lLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVmaW5pdGlvbk5vZGUgPSB2YXJpYWJsZS5kZWZzWzBdO1xuICAgICAgICAgIGFzc2VydE5vbk51bGxhYmxlKGRlZmluaXRpb25Ob2RlLCAnVXNlci1kZWNsYXJlZCBfLXByZWZpeGVkIHZhcmlhYmxlcyBhbHdheXMgaGF2ZSBhdCBsZWFzdCBvbmUgZGVmaW5pdGlvbicpO1xuXG4gICAgICAgICAgLy8gRm9yIHBhcmFtZXRlcnMsIG9ubHkgY291bnQgcmVmZXJlbmNlcyBpbnNpZGUgdGhlIGZ1bmN0aW9uIGJvZHlcbiAgICAgICAgICAvLyAobm90IGluIHR5cGUgYW5ub3RhdGlvbnMgbGlrZSBgYXNzZXJ0cyBfb2JqIGlzIFRgKS5cbiAgICAgICAgICAvLyBGb3IgbG9jYWwgdmFyaWFibGVzLCBhbnkgcmVhZCByZWZlcmVuY2UgY291bnRzLlxuICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uQm9keSA9IChub2RlIGFzIE5vZGVXaXRoQm9keSkuYm9keTtcbiAgICAgICAgICBjb25zdCBib2R5UmFuZ2UgPSBmdW5jdGlvbkJvZHk/LnJhbmdlO1xuICAgICAgICAgIGNvbnN0IGlzUGFyYW1ldGVyID0gZGVmaW5pdGlvbk5vZGUudHlwZSA9PT0gJ1BhcmFtZXRlcic7XG4gICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzIG9yIGZhbGxiYWNrOiBjb3VudCBhbGwgcmVhZHNcbiAgICAgICAgICBjb25zdCBoYXNCb2R5UmVmZXJlbmNlcyA9IHZhcmlhYmxlLnJlZmVyZW5jZXMuc29tZSgocmVmZXJlbmNlKSA9PlxuICAgICAgICAgICAgcmVmZXJlbmNlLmlzUmVhZCgpXG4gICAgICAgICAgICAmJiAoIWlzUGFyYW1ldGVyIHx8ICFib2R5UmFuZ2UgfHwgIXJlZmVyZW5jZS5pZGVudGlmaWVyLnJhbmdlXG4gICAgICAgICAgICAgIHx8IChyZWZlcmVuY2UuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF0gJiYgcmVmZXJlbmNlLmlkZW50aWZpZXIucmFuZ2VbMV0gPD0gYm9keVJhbmdlWzFdKSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChoYXNCb2R5UmVmZXJlbmNlcykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBkYXRhOiB7IG5hbWU6IHZhcmlhYmxlLm5hbWUgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lELFxuICAgICAgICAgICAgICBub2RlOiBkZWZpbml0aW9uTm9kZS5uYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNhbGxvdyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyBhbmQgbG9jYWwgdmFyaWFibGVzIHRoYXQgYXJlIGFjdHVhbGx5IHVzZWQnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnXCJ7eyBuYW1lIH19XCIgaGFzIGEgYF9gIHByZWZpeCBidXQgaXMgdXNlZC4gUmVtb3ZlIHRoZSBgX2AgcHJlZml4IHNpbmNlIGl0IGlzIG5vdCB1bnVzZWQuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSx5QkFBa0M7QUFTM0IsTUFBTSxhQUFhO0FBS25CLE1BQU0sNEJBQTZDO0FBQUEsRUFDeEQsT0FBTyxTQUFTO0FBQ2QsV0FBTztBQUFBLE1BQ0wsWUFBWSxNQUF1QjtBQUNqQyxjQUFNLFFBQVEsUUFBUSxXQUFXLFNBQVMsSUFBSTtBQUU5QyxtQkFBVyxZQUFZLE1BQU0sV0FBVztBQUN0QyxjQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsR0FBRyxHQUFHO0FBQ2xDO0FBQUEsVUFDRjtBQUVBLGdCQUFNLGlCQUFpQixTQUFTLEtBQUssQ0FBQztBQUN0QyxvREFBa0IsZ0JBQWdCLHdFQUF3RTtBQUsxRyxnQkFBTSxlQUFnQixLQUFzQjtBQUM1QyxnQkFBTSxZQUFZLGNBQWM7QUFDaEMsZ0JBQU0sY0FBYyxlQUFlLFNBQVM7QUFFNUMsZ0JBQU0sb0JBQW9CLFNBQVMsV0FBVztBQUFBLFlBQUssQ0FBQyxjQUNsRCxVQUFVLE9BQU8sTUFDYixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxXQUFXLFNBQ2xELFVBQVUsV0FBVyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUMsS0FBSyxVQUFVLFdBQVcsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQUEsVUFDckc7QUFDQSxjQUFJLG1CQUFtQjtBQUNyQixvQkFBUSxPQUFPO0FBQUEsY0FDYixNQUFNLEVBQUUsTUFBTSxTQUFTLEtBQUs7QUFBQSxjQUM1QixXQUFXO0FBQUEsY0FDWCxNQUFNLGVBQWU7QUFBQSxZQUN2QixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLFVBQVUsR0FBRztBQUFBLElBQ2hCO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwibmFtZXMiOltdfQ==
|
|
@@ -79,7 +79,7 @@ const paramsOptionsNameMatch = {
|
|
|
79
79
|
function getClassName(methodDefinition) {
|
|
80
80
|
const classBody = methodDefinition.parent;
|
|
81
81
|
const classNode = classBody?.parent;
|
|
82
|
-
return
|
|
82
|
+
return classNode && "id" in classNode && classNode.id && typeof classNode.id === "object" && "name" in classNode.id && typeof classNode.id.name === "string" ? classNode.id.name : void 0;
|
|
83
83
|
}
|
|
84
84
|
function getExpectedPrefix(node) {
|
|
85
85
|
const methodPrefix = getMethodExpectedPrefix(node);
|
|
@@ -93,10 +93,7 @@ function getFunctionExpectedPrefix(node) {
|
|
|
93
93
|
}
|
|
94
94
|
function getMethodExpectedPrefix(node) {
|
|
95
95
|
const methodDefinition = node.parent;
|
|
96
|
-
if (methodDefinition?.type !== "MethodDefinition") {
|
|
97
|
-
return void 0;
|
|
98
|
-
}
|
|
99
|
-
if (!("key" in methodDefinition) || !methodDefinition.key || typeof methodDefinition.key !== "object" || !("name" in methodDefinition.key) || typeof methodDefinition.key.name !== "string") {
|
|
96
|
+
if (methodDefinition?.type !== "MethodDefinition" || !("key" in methodDefinition) || !methodDefinition.key || typeof methodDefinition.key !== "object" || !("name" in methodDefinition.key) || typeof methodDefinition.key.name !== "string") {
|
|
100
97
|
return void 0;
|
|
101
98
|
}
|
|
102
99
|
const methodName = methodDefinition.key.name;
|
|
@@ -159,4 +156,4 @@ function toPascalCase(name) {
|
|
|
159
156
|
MESSAGE_ID,
|
|
160
157
|
paramsOptionsNameMatch
|
|
161
158
|
});
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaFxuICpcbiAqIEVuc3VyZXMgdGhhdCBwYXJhbWV0ZXItYmFnIHR5cGUgbmFtZXMgbWF0Y2ggdGhlIGZ1bmN0aW9uIG9yIGNvbnN0cnVjdG9yIHRoZXlcbiAqIGJlbG9uZyB0bywgb24gdHdvIGF4ZXMgXHUyMDE0IGEgcHJlZml4IGRlcml2ZWQgZnJvbSB0aGUgb3duZXIgYW5kIGEgc3VmZml4IGRlcml2ZWRcbiAqIGZyb20gaG93IHRoZSBiYWcgaXMgcGFzc2VkLlxuICpcbiAqIFByZWZpeCAob3duZXIpOlxuICogLSBgZm9vQmFyKHBhcmFtczogRm9vQmFyXHUyMDI2KWAgXHUyMDE0IFBhc2NhbENhc2Ugb2YgdGhlIGZ1bmN0aW9uIG5hbWVcbiAqIC0gYGNsYXNzIEJheiB7IGNvbnN0cnVjdG9yKHBhcmFtczogQmF6Q29uc3RydWN0b3JcdTIwMjYpIH1gIFx1MjAxNCBDbGFzc05hbWUgKyBgQ29uc3RydWN0b3JgXG4gKiAtIGBjbGFzcyBCYXogeyBtZXRob2QocGFyYW1zOiBCYXpNZXRob2RcdTIwMjYpIH1gIFx1MjAxNCBDbGFzc05hbWUgKyBQYXNjYWxDYXNlKG1ldGhvZE5hbWUpXG4gKlxuICogU3VmZml4ICh3aGV0aGVyIHRoZSBiYWcgaXMgYSByZXF1aXJlZCBzb2xlIGFyZ3VtZW50KTpcbiAqIC0gYFBhcmFtc2Agb25seSB3aGVuIHRoZSBiYWcgaXMgdGhlIFNPTEUgYW5kIFJFUVVJUkVEIHBhcmFtZXRlciBcdTIwMTRcbiAqICAgYGZvb0JhcihwYXJhbXM6IEZvb0JhclBhcmFtcylgXG4gKiAtIGBPcHRpb25zYCBvdGhlcndpc2UuIFRoYXQgaXM6IGFuIE9QVElPTkFMIGJhZyBcdTIwMTQgYGZvb0JhcihvcHRpb25zPzogRm9vQmFyT3B0aW9ucylgXG4gKiAgIG9yIGBmb29CYXIob3B0aW9uczogRm9vQmFyT3B0aW9ucyA9IHt9KWAgXHUyMDE0IG9yIGEgYmFnIFNVUFBMRU1FTlRBUlkgdG8gb3RoZXJcbiAqICAgcGFyYW1ldGVycyBcdTIwMTQgYGZvb0JhcihiYXo6IHN0cmluZywgb3B0aW9uczogRm9vQmFyT3B0aW9ucylgLlxuICpcbiAqIE9ubHkgY2hlY2tzIHBhcmFtZXRlcnMgd2hvc2UgdHlwZSBhbm5vdGF0aW9uIG5hbWUgZW5kcyB3aXRoIGBQYXJhbXNgIG9yXG4gKiBgT3B0aW9uc2AuIE9ubHkgY2hlY2tzIGV4cG9ydGVkIGZ1bmN0aW9ucyBhbmQgbWVtYmVycyBvZiBleHBvcnRlZCBjbGFzc2VzXG4gKiAocmVnYXJkbGVzcyBvZiBhY2Nlc3NpYmlsaXR5IFx1MjAxNCBgcHVibGljYCwgYHByb3RlY3RlZGAsIGFuZCBgcHJpdmF0ZWAgYXJlIGFsbFxuICogY2hlY2tlZCkgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIGZyb20gaW50ZXJuYWwgb3B0aW9ucy1wYXNzdGhyb3VnaCBoZWxwZXJzLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gUnVsZS5Ob2RlIHBhcmVudC9wcm9wZXJ0eSB0eXBlcyBhcmUgd2lkZXIgdGhhbiB3aGF0IHRoZSB0eXBlIGNoZWNrZXIgaW5mZXJzOyBkZWZlbnNpdmUgY2hlY2tzIGFyZSBhcHByb3ByaWF0ZSBmb3IgQVNUIHRyYXZlcnNhbC4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuY29uc3QgUEFSQU1TX09QVElPTlNfU1VGRklYX1BBVFRFUk4gPSAvKD86UGFyYW1zfE9wdGlvbnMpJC87XG5jb25zdCBQQVJBTVNfU1VGRklYID0gJ1BhcmFtcyc7XG5jb25zdCBPUFRJT05TX1NVRkZJWCA9ICdPcHRpb25zJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYSBwYXJhbWV0ZXItYmFnIHR5cGUncyBuYW1lIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBuYW1lIChwcmVmaXggYW5kIHJlcXVpcmVkL29wdGlvbmFsIHN1ZmZpeCkgZm9yIGl0cyBmdW5jdGlvbiBvciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncGFyYW1zT3B0aW9uc05hbWVNYXRjaCc7XG5cbmludGVyZmFjZSBGdW5jdGlvbk5vZGVXaXRoUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGFyYW1zOiBSdWxlLk5vZGVbXTtcbn1cblxuaW50ZXJmYWNlIE1heWJlT3B0aW9uYWxOb2RlIHtcbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25JbmZvIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBub2RlOiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIGAqUGFyYW1zYC9gKk9wdGlvbnNgIHR5cGUgbmFtZXMgdG8gbWF0Y2ggdGhlaXIgb3duaW5nIGZ1bmN0aW9uIG9yIGNvbnN0cnVjdG9yLCBhbmQgdG8gdXNlIHRoZSBzdWZmaXggdGhhdCBtYXRjaGVzIHRoZSBzb2xlLXZzLXN1cHBsZW1lbnRhcnkgYXJndW1lbnQgY29udmVudGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcmFtc09wdGlvbnNOYW1lTWF0Y2g6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbltwYXJhbXMubGVuZ3RoPjBdJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc0luRXhwb3J0ZWRTY29wZShub2RlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uTm9kZSA9IG5vZGUgYXMgRnVuY3Rpb25Ob2RlV2l0aFBhcmFtcyAmIFJ1bGUuTm9kZTtcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRQcmVmaXggPSBnZXRFeHBlY3RlZFByZWZpeChub2RlKTtcbiAgICAgICAgaWYgKCFleHBlY3RlZFByZWZpeCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzU29sZVBhcmFtZXRlciA9IGZ1bmN0aW9uTm9kZS5wYXJhbXMubGVuZ3RoID09PSAxO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGZ1bmN0aW9uTm9kZS5wYXJhbXMpIHtcbiAgICAgICAgICBjb25zdCB0eXBlSW5mbyA9IGdldFR5cGVBbm5vdGF0aW9uSW5mbyhwYXJhbWV0ZXIpO1xuICAgICAgICAgIGlmICghdHlwZUluZm8gfHwgIVBBUkFNU19PUFRJT05TX1NVRkZJWF9QQVRURVJOLnRlc3QodHlwZUluZm8ubmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEEgcmVxdWlyZWQgc29sZS1hcmd1bWVudCBiYWcgXHUyMTkyIGAqUGFyYW1zYC4gQW4gb3B0aW9uYWwgYmFnIChgP2Agb3IgYSBkZWZhdWx0XG4gICAgICAgICAgLy8gdmFsdWUpIG9yIGEgYmFnIHN1cHBsZW1lbnRhcnkgdG8gb3RoZXIgcGFyYW1ldGVycyBcdTIxOTIgYCpPcHRpb25zYC5cbiAgICAgICAgICBjb25zdCBleHBlY3RlZFN1ZmZpeCA9IGlzU29sZVBhcmFtZXRlciAmJiAhaXNPcHRpb25hbFBhcmFtZXRlcihwYXJhbWV0ZXIpID8gUEFSQU1TX1NVRkZJWCA6IE9QVElPTlNfU1VGRklYO1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkTmFtZSA9IGAke2V4cGVjdGVkUHJlZml4fSR7ZXhwZWN0ZWRTdWZmaXh9YDtcblxuICAgICAgICAgIGlmICh0eXBlSW5mby5uYW1lICE9PSBleHBlY3RlZE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdHVhbE5hbWU6IHR5cGVJbmZvLm5hbWUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWROYW1lXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICAgICAgbm9kZTogdHlwZUluZm8ubm9kZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVxdWlyZSBgKlBhcmFtc2AvYCpPcHRpb25zYCB0eXBlIG5hbWVzIHRvIG1hdGNoIHRoZSBvd25pbmcgZnVuY3Rpb24vY29uc3RydWN0b3IgKHByZWZpeCkgYW5kIHRoZSBzb2xlLXZzLXN1cHBsZW1lbnRhcnkgYXJndW1lbnQgY29udmVudGlvbiAoc3VmZml4KSdcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF06ICdUeXBlIFwie3sgYWN0dWFsTmFtZSB9fVwiIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBuYW1lIFwie3sgZXhwZWN0ZWROYW1lIH19XCIgZm9yIHRoaXMgZnVuY3Rpb24vY29uc3RydWN0b3IuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKG1ldGhvZERlZmluaXRpb246IFJ1bGUuTm9kZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNsYXNzQm9keSA9IG1ldGhvZERlZmluaXRpb24ucGFyZW50O1xuICBjb25zdCBjbGFzc05vZGUgPSBjbGFzc0JvZHk/LnBhcmVudDtcbiAgcmV0dXJuICFjbGFzc05vZGUgfHwgISgnaWQnIGluIGNsYXNzTm9kZSkgfHwgIWNsYXNzTm9kZS5pZCB8fCB0eXBlb2YgY2xhc3NOb2RlLmlkICE9PSAnb2JqZWN0JyB8fCAhKCduYW1lJyBpbiBjbGFzc05vZGUuaWQpXG4gICAgICB8fCB0eXBlb2YgY2xhc3NOb2RlLmlkLm5hbWUgIT09ICdzdHJpbmcnXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IGNsYXNzTm9kZS5pZC5uYW1lO1xufVxuXG5mdW5jdGlvbiBnZXRFeHBlY3RlZFByZWZpeChub2RlOiBSdWxlLk5vZGUpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZXRob2RQcmVmaXggPSBnZXRNZXRob2RFeHBlY3RlZFByZWZpeChub2RlKTtcbiAgcmV0dXJuIG1ldGhvZFByZWZpeCA/PyBnZXRGdW5jdGlvbkV4cGVjdGVkUHJlZml4KG5vZGUpO1xufVxuXG5mdW5jdGlvbiBnZXRGdW5jdGlvbkV4cGVjdGVkUHJlZml4KG5vZGU6IFJ1bGUuTm9kZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIE5hbWVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9uOiBmdW5jdGlvbiBmb29CYXIocGFyYW1zOiBGb29CYXJQYXJhbXMpXG4gIGlmICgnaWQnIGluIG5vZGUgJiYgbm9kZS5pZCAmJiB0eXBlb2Ygbm9kZS5pZCA9PT0gJ29iamVjdCcgJiYgJ25hbWUnIGluIG5vZGUuaWQgJiYgdHlwZW9mIG5vZGUuaWQubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdG9QYXNjYWxDYXNlKG5vZGUuaWQubmFtZSk7XG4gIH1cblxuICAvLyBBcnJvdyBmdW5jdGlvbiBhc3NpZ25lZCB0byBhIHZhcmlhYmxlOiBjb25zdCBmb29CYXIgPSAocGFyYW1zOiBGb29CYXJQYXJhbXMpID0+IC4uLlxuICByZXR1cm4gbm9kZS5wYXJlbnQ/LnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0b3InICYmICdpZCcgaW4gbm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQuaWQgJiYgdHlwZW9mIG5vZGUucGFyZW50LmlkID09PSAnb2JqZWN0JyAmJiAnbmFtZScgaW4gbm9kZS5wYXJlbnQuaWRcbiAgICAgICYmIHR5cGVvZiBub2RlLnBhcmVudC5pZC5uYW1lID09PSAnc3RyaW5nJ1xuICAgID8gdG9QYXNjYWxDYXNlKG5vZGUucGFyZW50LmlkLm5hbWUpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldE1ldGhvZEV4cGVjdGVkUHJlZml4KG5vZGU6IFJ1bGUuTm9kZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1ldGhvZERlZmluaXRpb24gPSBub2RlLnBhcmVudDtcbiAgaWYgKG1ldGhvZERlZmluaXRpb24/LnR5cGUgIT09ICdNZXRob2REZWZpbml0aW9uJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVmZW5zaXZlIGd1YXJkOiBFU0xpbnQgQVNUIE1ldGhvZERlZmluaXRpb24gYWx3YXlzIGhhcyBhIG5hbWVkIGtleS4gKi9cbiAgaWYgKFxuICAgICEoJ2tleScgaW4gbWV0aG9kRGVmaW5pdGlvbikgfHwgIW1ldGhvZERlZmluaXRpb24ua2V5IHx8IHR5cGVvZiBtZXRob2REZWZpbml0aW9uLmtleSAhPT0gJ29iamVjdCcgfHwgISgnbmFtZScgaW4gbWV0aG9kRGVmaW5pdGlvbi5rZXkpIHx8IHR5cGVvZiBtZXRob2REZWZpbml0aW9uLmtleS5uYW1lICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZERlZmluaXRpb24ua2V5Lm5hbWU7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGdldENsYXNzTmFtZShtZXRob2REZWZpbml0aW9uKTtcbiAgaWYgKCFjbGFzc05hbWUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZE5hbWUgPT09ICdjb25zdHJ1Y3RvcicgPyBgJHtjbGFzc05hbWV9Q29uc3RydWN0b3JgIDogY2xhc3NOYW1lICsgdG9QYXNjYWxDYXNlKG1ldGhvZE5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXRUeXBlQW5ub3RhdGlvbkluZm8ocGFyYW1ldGVyOiBSdWxlLk5vZGUpOiBUeXBlQW5ub3RhdGlvbkluZm8gfCB1bmRlZmluZWQge1xuICAvLyBVbndyYXAgYSBkZWZhdWx0ZWQgcGFyYW1ldGVyIHN1Y2ggYXMgYG9wdGlvbnM6IEZvb09wdGlvbnMgPSB7fWAuXG4gIC8vIEl0cyB0eXBlIGFubm90YXRpb24gbGl2ZXMgb24gdGhlIEFzc2lnbm1lbnRQYXR0ZXJuJ3MgbGVmdC1oYW5kIGJpbmRpbmcuXG4gIGNvbnN0IHRhcmdldCA9IHBhcmFtZXRlci50eXBlID09PSAnQXNzaWdubWVudFBhdHRlcm4nID8gcGFyYW1ldGVyLmxlZnQgOiBwYXJhbWV0ZXI7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogVHlwZVNjcmlwdC1wYXJzZWQgcGFyYW1zIGFsd2F5cyBoYXZlIHR5cGVBbm5vdGF0aW9uIHdoZW4gdHlwZWQuICovXG4gIGlmICghKCd0eXBlQW5ub3RhdGlvbicgaW4gdGFyZ2V0KSB8fCAhdGFyZ2V0LnR5cGVBbm5vdGF0aW9uKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGNvbnN0IGFubm90YXRpb24gPSB0YXJnZXQudHlwZUFubm90YXRpb24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHR5cGVOb2RlID0gYW5ub3RhdGlvblsndHlwZUFubm90YXRpb24nXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogdGhlIFR5cGVTY3JpcHQgcGFyc2VyIGFsd2F5cyBwcm9kdWNlcyBhbiBBU1Qgbm9kZSBmb3IgdHlwZUFubm90YXRpb24uICovXG4gIGlmICghdHlwZU5vZGUgfHwgdHlwZW9mIHR5cGVOb2RlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBjb25zdCB0eXBlTm9kZU9iamVjdCA9IHR5cGVOb2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8vIERpcmVjdCByZWZlcmVuY2U6IEZvb0JhclBhcmFtc1xuICBpZiAodHlwZU5vZGVPYmplY3RbJ3R5cGUnXSA9PT0gJ1RTVHlwZVJlZmVyZW5jZScgJiYgdHlwZU5vZGVPYmplY3RbJ3R5cGVOYW1lJ10gJiYgdHlwZW9mIHR5cGVOb2RlT2JqZWN0Wyd0eXBlTmFtZSddID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5vZGVPYmplY3RbJ3R5cGVOYW1lJ10gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogVFNUeXBlUmVmZXJlbmNlIHR5cGVOYW1lIGlzIGFsd2F5cyBhbiBJZGVudGlmaWVyIHdpdGggYSBzdHJpbmcgbmFtZS4gKi9cbiAgICBpZiAodHlwZU5hbWVbJ3R5cGUnXSA9PT0gJ0lkZW50aWZpZXInICYmIHR5cGVvZiB0eXBlTmFtZVsnbmFtZSddID09PSAnc3RyaW5nJykge1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIHJldHVybiB7IG5hbWU6IHR5cGVOYW1lWyduYW1lJ10sIG5vZGU6IHR5cGVOb2RlIGFzIFJ1bGUuTm9kZSB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGlzSW5FeHBvcnRlZFNjb3BlKG5vZGU6IFJ1bGUuTm9kZSk6IGJvb2xlYW4ge1xuICAvLyBDbGFzcyBtZXRob2Qgb3IgY29uc3RydWN0b3I6IGNoZWNrIHRoYXQgdGhlIGNsYXNzIGlzIGV4cG9ydGVkLCByZWdhcmRsZXNzIG9mIGFjY2Vzc2liaWxpdHlcbiAgLy8gKHB1YmxpYy9wcm90ZWN0ZWQvcHJpdmF0ZSBtZW1iZXJzIGFyZSBhbGwgY2hlY2tlZCkuXG4gIGNvbnN0IG1ldGhvZERlZmluaXRpb24gPSBub2RlLnBhcmVudDtcbiAgaWYgKG1ldGhvZERlZmluaXRpb24/LnR5cGUgPT09ICdNZXRob2REZWZpbml0aW9uJykge1xuICAgIC8vIENoZWNrIGlmIHRoZSBjbGFzcyBpdHNlbGYgaXMgZXhwb3J0ZWRcbiAgICBjb25zdCBjbGFzc0JvZHkgPSBtZXRob2REZWZpbml0aW9uLnBhcmVudDtcbiAgICBjb25zdCBjbGFzc05vZGUgPSBjbGFzc0JvZHk/LnBhcmVudDtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVmZW5zaXZlIGd1YXJkOiBFU0xpbnQgQVNUIGFsd2F5cyBoYXMgcGFyZW50IGNoYWluIGZvciBjbGFzcyBtZXRob2RzLiAqL1xuICAgIGlmICghY2xhc3NOb2RlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY29uc3QgY2xhc3NQYXJlbnQgPSBjbGFzc05vZGUucGFyZW50O1xuICAgIHJldHVybiBjbGFzc1BhcmVudD8udHlwZSA9PT0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nIHx8IGNsYXNzUGFyZW50Py50eXBlID09PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJztcbiAgfVxuXG4gIC8vIFRvcC1sZXZlbCBmdW5jdGlvbjogY2hlY2sgaWYgZXhwb3J0ZWRcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ0Z1bmN0aW9uRGVjbGFyYXRpb24nKSB7XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50O1xuICAgIHJldHVybiBwYXJlbnROb2RlPy50eXBlID09PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicgfHwgcGFyZW50Tm9kZT8udHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic7XG4gIH1cblxuICAvLyBBcnJvdyBmdW5jdGlvbiBpbiB2YXJpYWJsZTogY2hlY2sgaWYgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGlzIGV4cG9ydGVkXG4gIGlmIChub2RlLnBhcmVudD8udHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicpIHtcbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uID0gbm9kZS5wYXJlbnQucGFyZW50O1xuICAgIGlmICh2YXJpYWJsZURlY2xhcmF0aW9uPy5wYXJlbnQ/LnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc09wdGlvbmFsUGFyYW1ldGVyKHBhcmFtZXRlcjogUnVsZS5Ob2RlKTogYm9vbGVhbiB7XG4gIC8vIGBvcHRpb25zOiBGb29PcHRpb25zID0ge31gIGlzIGFuIEFzc2lnbm1lbnRQYXR0ZXJuOyBgb3B0aW9ucz86IEZvb09wdGlvbnNgIGNhcnJpZXMgYW5cbiAgLy8gYG9wdGlvbmFsYCBmbGFnLiBCb3RoIG1ha2UgdGhlIGJhZyBvcHRpb25hbCBcdTIxOTIgYCpPcHRpb25zYC5cbiAgcmV0dXJuIHBhcmFtZXRlci50eXBlID09PSAnQXNzaWdubWVudFBhdHRlcm4nIHx8IChwYXJhbWV0ZXIgYXMgTWF5YmVPcHRpb25hbE5vZGUpLm9wdGlvbmFsID09PSB0cnVlO1xufVxuXG5mdW5jdGlvbiB0b1Bhc2NhbENhc2UobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gUmUtZW5hYmxlIGFmdGVyIEFTVCB0cmF2ZXJzYWwgY29kZSwgd2hpY2ggaXMgbm93IHRoZSB3aG9sZSBmaWxlOiB0aGUgcHJlZml4IGhlbHBlcnMgbW92ZWQgdG8gbW9kdWxlIHNjb3BlIGFuZCB3YWxrIHRo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
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaFxuICpcbiAqIEVuc3VyZXMgdGhhdCBwYXJhbWV0ZXItYmFnIHR5cGUgbmFtZXMgbWF0Y2ggdGhlIGZ1bmN0aW9uIG9yIGNvbnN0cnVjdG9yIHRoZXlcbiAqIGJlbG9uZyB0bywgb24gdHdvIGF4ZXMgXHUyMDE0IGEgcHJlZml4IGRlcml2ZWQgZnJvbSB0aGUgb3duZXIgYW5kIGEgc3VmZml4IGRlcml2ZWRcbiAqIGZyb20gaG93IHRoZSBiYWcgaXMgcGFzc2VkLlxuICpcbiAqIFByZWZpeCAob3duZXIpOlxuICogLSBgZm9vQmFyKHBhcmFtczogRm9vQmFyXHUyMDI2KWAgXHUyMDE0IFBhc2NhbENhc2Ugb2YgdGhlIGZ1bmN0aW9uIG5hbWVcbiAqIC0gYGNsYXNzIEJheiB7IGNvbnN0cnVjdG9yKHBhcmFtczogQmF6Q29uc3RydWN0b3JcdTIwMjYpIH1gIFx1MjAxNCBDbGFzc05hbWUgKyBgQ29uc3RydWN0b3JgXG4gKiAtIGBjbGFzcyBCYXogeyBtZXRob2QocGFyYW1zOiBCYXpNZXRob2RcdTIwMjYpIH1gIFx1MjAxNCBDbGFzc05hbWUgKyBQYXNjYWxDYXNlKG1ldGhvZE5hbWUpXG4gKlxuICogU3VmZml4ICh3aGV0aGVyIHRoZSBiYWcgaXMgYSByZXF1aXJlZCBzb2xlIGFyZ3VtZW50KTpcbiAqIC0gYFBhcmFtc2Agb25seSB3aGVuIHRoZSBiYWcgaXMgdGhlIFNPTEUgYW5kIFJFUVVJUkVEIHBhcmFtZXRlciBcdTIwMTRcbiAqICAgYGZvb0JhcihwYXJhbXM6IEZvb0JhclBhcmFtcylgXG4gKiAtIGBPcHRpb25zYCBvdGhlcndpc2UuIFRoYXQgaXM6IGFuIE9QVElPTkFMIGJhZyBcdTIwMTQgYGZvb0JhcihvcHRpb25zPzogRm9vQmFyT3B0aW9ucylgXG4gKiAgIG9yIGBmb29CYXIob3B0aW9uczogRm9vQmFyT3B0aW9ucyA9IHt9KWAgXHUyMDE0IG9yIGEgYmFnIFNVUFBMRU1FTlRBUlkgdG8gb3RoZXJcbiAqICAgcGFyYW1ldGVycyBcdTIwMTQgYGZvb0JhcihiYXo6IHN0cmluZywgb3B0aW9uczogRm9vQmFyT3B0aW9ucylgLlxuICpcbiAqIE9ubHkgY2hlY2tzIHBhcmFtZXRlcnMgd2hvc2UgdHlwZSBhbm5vdGF0aW9uIG5hbWUgZW5kcyB3aXRoIGBQYXJhbXNgIG9yXG4gKiBgT3B0aW9uc2AuIE9ubHkgY2hlY2tzIGV4cG9ydGVkIGZ1bmN0aW9ucyBhbmQgbWVtYmVycyBvZiBleHBvcnRlZCBjbGFzc2VzXG4gKiAocmVnYXJkbGVzcyBvZiBhY2Nlc3NpYmlsaXR5IFx1MjAxNCBgcHVibGljYCwgYHByb3RlY3RlZGAsIGFuZCBgcHJpdmF0ZWAgYXJlIGFsbFxuICogY2hlY2tlZCkgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIGZyb20gaW50ZXJuYWwgb3B0aW9ucy1wYXNzdGhyb3VnaCBoZWxwZXJzLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gUnVsZS5Ob2RlIHBhcmVudC9wcm9wZXJ0eSB0eXBlcyBhcmUgd2lkZXIgdGhhbiB3aGF0IHRoZSB0eXBlIGNoZWNrZXIgaW5mZXJzOyBkZWZlbnNpdmUgY2hlY2tzIGFyZSBhcHByb3ByaWF0ZSBmb3IgQVNUIHRyYXZlcnNhbC4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuY29uc3QgUEFSQU1TX09QVElPTlNfU1VGRklYX1BBVFRFUk4gPSAvKD86UGFyYW1zfE9wdGlvbnMpJC87XG5jb25zdCBQQVJBTVNfU1VGRklYID0gJ1BhcmFtcyc7XG5jb25zdCBPUFRJT05TX1NVRkZJWCA9ICdPcHRpb25zJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYSBwYXJhbWV0ZXItYmFnIHR5cGUncyBuYW1lIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBuYW1lIChwcmVmaXggYW5kIHJlcXVpcmVkL29wdGlvbmFsIHN1ZmZpeCkgZm9yIGl0cyBmdW5jdGlvbiBvciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncGFyYW1zT3B0aW9uc05hbWVNYXRjaCc7XG5cbmludGVyZmFjZSBGdW5jdGlvbk5vZGVXaXRoUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGFyYW1zOiBSdWxlLk5vZGVbXTtcbn1cblxuaW50ZXJmYWNlIE1heWJlT3B0aW9uYWxOb2RlIHtcbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25JbmZvIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBub2RlOiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIGAqUGFyYW1zYC9gKk9wdGlvbnNgIHR5cGUgbmFtZXMgdG8gbWF0Y2ggdGhlaXIgb3duaW5nIGZ1bmN0aW9uIG9yIGNvbnN0cnVjdG9yLCBhbmQgdG8gdXNlIHRoZSBzdWZmaXggdGhhdCBtYXRjaGVzIHRoZSBzb2xlLXZzLXN1cHBsZW1lbnRhcnkgYXJndW1lbnQgY29udmVudGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcmFtc09wdGlvbnNOYW1lTWF0Y2g6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbltwYXJhbXMubGVuZ3RoPjBdJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc0luRXhwb3J0ZWRTY29wZShub2RlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uTm9kZSA9IG5vZGUgYXMgRnVuY3Rpb25Ob2RlV2l0aFBhcmFtcyAmIFJ1bGUuTm9kZTtcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRQcmVmaXggPSBnZXRFeHBlY3RlZFByZWZpeChub2RlKTtcbiAgICAgICAgaWYgKCFleHBlY3RlZFByZWZpeCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzU29sZVBhcmFtZXRlciA9IGZ1bmN0aW9uTm9kZS5wYXJhbXMubGVuZ3RoID09PSAxO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGZ1bmN0aW9uTm9kZS5wYXJhbXMpIHtcbiAgICAgICAgICBjb25zdCB0eXBlSW5mbyA9IGdldFR5cGVBbm5vdGF0aW9uSW5mbyhwYXJhbWV0ZXIpO1xuICAgICAgICAgIGlmICghdHlwZUluZm8gfHwgIVBBUkFNU19PUFRJT05TX1NVRkZJWF9QQVRURVJOLnRlc3QodHlwZUluZm8ubmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEEgcmVxdWlyZWQgc29sZS1hcmd1bWVudCBiYWcgXHUyMTkyIGAqUGFyYW1zYC4gQW4gb3B0aW9uYWwgYmFnIChgP2Agb3IgYSBkZWZhdWx0XG4gICAgICAgICAgLy8gdmFsdWUpIG9yIGEgYmFnIHN1cHBsZW1lbnRhcnkgdG8gb3RoZXIgcGFyYW1ldGVycyBcdTIxOTIgYCpPcHRpb25zYC5cbiAgICAgICAgICBjb25zdCBleHBlY3RlZFN1ZmZpeCA9IGlzU29sZVBhcmFtZXRlciAmJiAhaXNPcHRpb25hbFBhcmFtZXRlcihwYXJhbWV0ZXIpID8gUEFSQU1TX1NVRkZJWCA6IE9QVElPTlNfU1VGRklYO1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkTmFtZSA9IGAke2V4cGVjdGVkUHJlZml4fSR7ZXhwZWN0ZWRTdWZmaXh9YDtcblxuICAgICAgICAgIGlmICh0eXBlSW5mby5uYW1lICE9PSBleHBlY3RlZE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdHVhbE5hbWU6IHR5cGVJbmZvLm5hbWUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWROYW1lXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICAgICAgbm9kZTogdHlwZUluZm8ubm9kZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVxdWlyZSBgKlBhcmFtc2AvYCpPcHRpb25zYCB0eXBlIG5hbWVzIHRvIG1hdGNoIHRoZSBvd25pbmcgZnVuY3Rpb24vY29uc3RydWN0b3IgKHByZWZpeCkgYW5kIHRoZSBzb2xlLXZzLXN1cHBsZW1lbnRhcnkgYXJndW1lbnQgY29udmVudGlvbiAoc3VmZml4KSdcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF06ICdUeXBlIFwie3sgYWN0dWFsTmFtZSB9fVwiIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBuYW1lIFwie3sgZXhwZWN0ZWROYW1lIH19XCIgZm9yIHRoaXMgZnVuY3Rpb24vY29uc3RydWN0b3IuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKG1ldGhvZERlZmluaXRpb246IFJ1bGUuTm9kZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNsYXNzQm9keSA9IG1ldGhvZERlZmluaXRpb24ucGFyZW50O1xuICBjb25zdCBjbGFzc05vZGUgPSBjbGFzc0JvZHk/LnBhcmVudDtcbiAgcmV0dXJuIGNsYXNzTm9kZSAmJiAoJ2lkJyBpbiBjbGFzc05vZGUpICYmIGNsYXNzTm9kZS5pZCAmJiB0eXBlb2YgY2xhc3NOb2RlLmlkID09PSAnb2JqZWN0JyAmJiAoJ25hbWUnIGluIGNsYXNzTm9kZS5pZClcbiAgICAgICYmIHR5cGVvZiBjbGFzc05vZGUuaWQubmFtZSA9PT0gJ3N0cmluZydcbiAgICA/IGNsYXNzTm9kZS5pZC5uYW1lXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldEV4cGVjdGVkUHJlZml4KG5vZGU6IFJ1bGUuTm9kZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1ldGhvZFByZWZpeCA9IGdldE1ldGhvZEV4cGVjdGVkUHJlZml4KG5vZGUpO1xuICByZXR1cm4gbWV0aG9kUHJlZml4ID8/IGdldEZ1bmN0aW9uRXhwZWN0ZWRQcmVmaXgobm9kZSk7XG59XG5cbmZ1bmN0aW9uIGdldEZ1bmN0aW9uRXhwZWN0ZWRQcmVmaXgobm9kZTogUnVsZS5Ob2RlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gTmFtZWQgZnVuY3Rpb24gZGVjbGFyYXRpb246IGZ1bmN0aW9uIGZvb0JhcihwYXJhbXM6IEZvb0JhclBhcmFtcylcbiAgaWYgKCdpZCcgaW4gbm9kZSAmJiBub2RlLmlkICYmIHR5cGVvZiBub2RlLmlkID09PSAnb2JqZWN0JyAmJiAnbmFtZScgaW4gbm9kZS5pZCAmJiB0eXBlb2Ygbm9kZS5pZC5uYW1lID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0b1Bhc2NhbENhc2Uobm9kZS5pZC5uYW1lKTtcbiAgfVxuXG4gIC8vIEFycm93IGZ1bmN0aW9uIGFzc2lnbmVkIHRvIGEgdmFyaWFibGU6IGNvbnN0IGZvb0JhciA9IChwYXJhbXM6IEZvb0JhclBhcmFtcykgPT4gLi4uXG4gIHJldHVybiBub2RlLnBhcmVudD8udHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicgJiYgJ2lkJyBpbiBub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC5pZCAmJiB0eXBlb2Ygbm9kZS5wYXJlbnQuaWQgPT09ICdvYmplY3QnICYmICduYW1lJyBpbiBub2RlLnBhcmVudC5pZFxuICAgICAgJiYgdHlwZW9mIG5vZGUucGFyZW50LmlkLm5hbWUgPT09ICdzdHJpbmcnXG4gICAgPyB0b1Bhc2NhbENhc2Uobm9kZS5wYXJlbnQuaWQubmFtZSlcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0TWV0aG9kRXhwZWN0ZWRQcmVmaXgobm9kZTogUnVsZS5Ob2RlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWV0aG9kRGVmaW5pdGlvbiA9IG5vZGUucGFyZW50O1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIGtleSBjaGVja3MgYXJlIGEgZGVmZW5zaXZlIGd1YXJkOiBFU0xpbnQgQVNUIE1ldGhvZERlZmluaXRpb24gYWx3YXlzIGhhcyBhIG5hbWVkIGtleS4gKi9cbiAgaWYgKFxuICAgIG1ldGhvZERlZmluaXRpb24/LnR5cGUgIT09ICdNZXRob2REZWZpbml0aW9uJ1xuICAgIHx8ICEoJ2tleScgaW4gbWV0aG9kRGVmaW5pdGlvbikgfHwgIW1ldGhvZERlZmluaXRpb24ua2V5IHx8IHR5cGVvZiBtZXRob2REZWZpbml0aW9uLmtleSAhPT0gJ29iamVjdCcgfHwgISgnbmFtZScgaW4gbWV0aG9kRGVmaW5pdGlvbi5rZXkpIHx8IHR5cGVvZiBtZXRob2REZWZpbml0aW9uLmtleS5uYW1lICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZERlZmluaXRpb24ua2V5Lm5hbWU7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGdldENsYXNzTmFtZShtZXRob2REZWZpbml0aW9uKTtcbiAgaWYgKCFjbGFzc05hbWUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZE5hbWUgPT09ICdjb25zdHJ1Y3RvcicgPyBgJHtjbGFzc05hbWV9Q29uc3RydWN0b3JgIDogY2xhc3NOYW1lICsgdG9QYXNjYWxDYXNlKG1ldGhvZE5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXRUeXBlQW5ub3RhdGlvbkluZm8ocGFyYW1ldGVyOiBSdWxlLk5vZGUpOiBUeXBlQW5ub3RhdGlvbkluZm8gfCB1bmRlZmluZWQge1xuICAvLyBVbndyYXAgYSBkZWZhdWx0ZWQgcGFyYW1ldGVyIHN1Y2ggYXMgYG9wdGlvbnM6IEZvb09wdGlvbnMgPSB7fWAuXG4gIC8vIEl0cyB0eXBlIGFubm90YXRpb24gbGl2ZXMgb24gdGhlIEFzc2lnbm1lbnRQYXR0ZXJuJ3MgbGVmdC1oYW5kIGJpbmRpbmcuXG4gIGNvbnN0IHRhcmdldCA9IHBhcmFtZXRlci50eXBlID09PSAnQXNzaWdubWVudFBhdHRlcm4nID8gcGFyYW1ldGVyLmxlZnQgOiBwYXJhbWV0ZXI7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogVHlwZVNjcmlwdC1wYXJzZWQgcGFyYW1zIGFsd2F5cyBoYXZlIHR5cGVBbm5vdGF0aW9uIHdoZW4gdHlwZWQuICovXG4gIGlmICghKCd0eXBlQW5ub3RhdGlvbicgaW4gdGFyZ2V0KSB8fCAhdGFyZ2V0LnR5cGVBbm5vdGF0aW9uKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGNvbnN0IGFubm90YXRpb24gPSB0YXJnZXQudHlwZUFubm90YXRpb24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHR5cGVOb2RlID0gYW5ub3RhdGlvblsndHlwZUFubm90YXRpb24nXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogdGhlIFR5cGVTY3JpcHQgcGFyc2VyIGFsd2F5cyBwcm9kdWNlcyBhbiBBU1Qgbm9kZSBmb3IgdHlwZUFubm90YXRpb24uICovXG4gIGlmICghdHlwZU5vZGUgfHwgdHlwZW9mIHR5cGVOb2RlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBjb25zdCB0eXBlTm9kZU9iamVjdCA9IHR5cGVOb2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8vIERpcmVjdCByZWZlcmVuY2U6IEZvb0JhclBhcmFtc1xuICBpZiAodHlwZU5vZGVPYmplY3RbJ3R5cGUnXSA9PT0gJ1RTVHlwZVJlZmVyZW5jZScgJiYgdHlwZU5vZGVPYmplY3RbJ3R5cGVOYW1lJ10gJiYgdHlwZW9mIHR5cGVOb2RlT2JqZWN0Wyd0eXBlTmFtZSddID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5vZGVPYmplY3RbJ3R5cGVOYW1lJ10gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBndWFyZDogVFNUeXBlUmVmZXJlbmNlIHR5cGVOYW1lIGlzIGFsd2F5cyBhbiBJZGVudGlmaWVyIHdpdGggYSBzdHJpbmcgbmFtZS4gKi9cbiAgICBpZiAodHlwZU5hbWVbJ3R5cGUnXSA9PT0gJ0lkZW50aWZpZXInICYmIHR5cGVvZiB0eXBlTmFtZVsnbmFtZSddID09PSAnc3RyaW5nJykge1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIHJldHVybiB7IG5hbWU6IHR5cGVOYW1lWyduYW1lJ10sIG5vZGU6IHR5cGVOb2RlIGFzIFJ1bGUuTm9kZSB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGlzSW5FeHBvcnRlZFNjb3BlKG5vZGU6IFJ1bGUuTm9kZSk6IGJvb2xlYW4ge1xuICAvLyBDbGFzcyBtZXRob2Qgb3IgY29uc3RydWN0b3I6IGNoZWNrIHRoYXQgdGhlIGNsYXNzIGlzIGV4cG9ydGVkLCByZWdhcmRsZXNzIG9mIGFjY2Vzc2liaWxpdHlcbiAgLy8gKHB1YmxpYy9wcm90ZWN0ZWQvcHJpdmF0ZSBtZW1iZXJzIGFyZSBhbGwgY2hlY2tlZCkuXG4gIGNvbnN0IG1ldGhvZERlZmluaXRpb24gPSBub2RlLnBhcmVudDtcbiAgaWYgKG1ldGhvZERlZmluaXRpb24/LnR5cGUgPT09ICdNZXRob2REZWZpbml0aW9uJykge1xuICAgIC8vIENoZWNrIGlmIHRoZSBjbGFzcyBpdHNlbGYgaXMgZXhwb3J0ZWRcbiAgICBjb25zdCBjbGFzc0JvZHkgPSBtZXRob2REZWZpbml0aW9uLnBhcmVudDtcbiAgICBjb25zdCBjbGFzc05vZGUgPSBjbGFzc0JvZHk/LnBhcmVudDtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVmZW5zaXZlIGd1YXJkOiBFU0xpbnQgQVNUIGFsd2F5cyBoYXMgcGFyZW50IGNoYWluIGZvciBjbGFzcyBtZXRob2RzLiAqL1xuICAgIGlmICghY2xhc3NOb2RlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY29uc3QgY2xhc3NQYXJlbnQgPSBjbGFzc05vZGUucGFyZW50O1xuICAgIHJldHVybiBjbGFzc1BhcmVudD8udHlwZSA9PT0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nIHx8IGNsYXNzUGFyZW50Py50eXBlID09PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJztcbiAgfVxuXG4gIC8vIFRvcC1sZXZlbCBmdW5jdGlvbjogY2hlY2sgaWYgZXhwb3J0ZWRcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ0Z1bmN0aW9uRGVjbGFyYXRpb24nKSB7XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50O1xuICAgIHJldHVybiBwYXJlbnROb2RlPy50eXBlID09PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicgfHwgcGFyZW50Tm9kZT8udHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic7XG4gIH1cblxuICAvLyBBcnJvdyBmdW5jdGlvbiBpbiB2YXJpYWJsZTogY2hlY2sgaWYgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGlzIGV4cG9ydGVkXG4gIGlmIChub2RlLnBhcmVudD8udHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicpIHtcbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uID0gbm9kZS5wYXJlbnQucGFyZW50O1xuICAgIGlmICh2YXJpYWJsZURlY2xhcmF0aW9uPy5wYXJlbnQ/LnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc09wdGlvbmFsUGFyYW1ldGVyKHBhcmFtZXRlcjogUnVsZS5Ob2RlKTogYm9vbGVhbiB7XG4gIC8vIGBvcHRpb25zOiBGb29PcHRpb25zID0ge31gIGlzIGFuIEFzc2lnbm1lbnRQYXR0ZXJuOyBgb3B0aW9ucz86IEZvb09wdGlvbnNgIGNhcnJpZXMgYW5cbiAgLy8gYG9wdGlvbmFsYCBmbGFnLiBCb3RoIG1ha2UgdGhlIGJhZyBvcHRpb25hbCBcdTIxOTIgYCpPcHRpb25zYC5cbiAgcmV0dXJuIHBhcmFtZXRlci50eXBlID09PSAnQXNzaWdubWVudFBhdHRlcm4nIHx8IChwYXJhbWV0ZXIgYXMgTWF5YmVPcHRpb25hbE5vZGUpLm9wdGlvbmFsID09PSB0cnVlO1xufVxuXG5mdW5jdGlvbiB0b1Bhc2NhbENhc2UobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gUmUtZW5hYmxlIGFmdGVyIEFTVCB0cmF2ZXJzYWwgY29kZSwgd2hpY2ggaXMgbm93IHRoZSB3aG9sZSBmaWxlOiB0aGUgcHJlZml4IGhlbHBlcnMgbW92ZWQgdG8gbW9kdWxlIHNjb3BlIGFuZCB3YWxrIHRoZSBzYW1lIG9wdGlvbmFs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
|
|
@@ -219,14 +219,11 @@ function toDedentLines(text) {
|
|
|
219
219
|
const leading = text.slice(0, text.length - rest.length);
|
|
220
220
|
const core = rest.replace(/[\r\n]+$/, "");
|
|
221
221
|
const trailing = rest.slice(core.length);
|
|
222
|
-
|
|
223
|
-
return null;
|
|
224
|
-
}
|
|
225
|
-
return `${escapeLineBreaks(leading)}${escapeTemplateText(core)}${escapeLineBreaks(trailing)}`.split("\n");
|
|
222
|
+
return core === "" || leading === "" && /^\s/.test(core) || trailing === "" && /\s$/.test(core) ? null : `${escapeLineBreaks(leading)}${escapeTemplateText(core)}${escapeLineBreaks(trailing)}`.split("\n");
|
|
226
223
|
}
|
|
227
224
|
// Annotate the CommonJS export names for ESM import in node:
|
|
228
225
|
0 && (module.exports = {
|
|
229
226
|
MESSAGE_ID,
|
|
230
227
|
preferDedent
|
|
231
228
|
});
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9wcmVmZXItZGVkZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcHJlZmVyLWRlZGVudFxuICpcbiAqIFJlcG9ydHMgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZSAoYFsnYScsICdiJ10uam9pbignXFxuJylgKSBhbmQgZml4ZXMgaXQgdG8gYSBgZGVkZW50YFxuICogdGVtcGxhdGUuIEFuIGFycmF5IGhvbGRpbmcgYW55dGhpbmcgYnV0IHN0cmluZyBhbmQgdGVtcGxhdGUgbGl0ZXJhbHMgaXMgbGVmdCBhbG9uZTogaXQgYnVpbGRzIGEgc3RyaW5nIGF0IHJ1bnRpbWUuXG4gKlxuICogVGhlIGZpeCByZXdyaXRlcyB0aGUgam9pbmVkIHRleHQgc28gdGhhdCBgZGVkZW50YCAoMS54LCB1c2VkIGFzIGEgdGFnKSByZXR1cm5zIGV4YWN0bHkgdGhlIHNhbWUgc3RyaW5nLiBJdCBydW5zIHRoZVxuICogc2FtZSBzdGVwcyBgZGVkZW50YCBkb2VzIGluIHJldmVyc2U6IGEgbGVhZGluZyBvciB0cmFpbGluZyBydW4gb2YgbGluZSBicmVha3MgYW5kIGV2ZXJ5IGNhcnJpYWdlIHJldHVybiBiZWNvbWVcbiAqIGBcXG5gIC8gYFxccmAgZXNjYXBlcywgd2hpY2ggYGRlZGVudGAgZGVjb2RlcyBvbmx5IGFmdGVyIGl0IHRyaW1zLCBhbmQgYmFja3RpY2tzIGFuZCBgJHtgIGFyZSBlc2NhcGVkLiBUZXh0IGl0IGNhbm5vdFxuICogcmVwcmVzZW50IHRoYXQgd2F5IGtlZXBzIHRoZSBkaWFnbm9zdGljIHdpdGhvdXQgYSBmaXg6IGEgYmFja3NsYXNoLCB3aGljaCBgZGVkZW50YCBwYXNzZXMgb24gcmF3OyBsZWFkaW5nIG9yIHRyYWlsaW5nXG4gKiB3aGl0ZXNwYWNlIHRoYXQgYGRlZGVudGAgd291bGQgdHJpbTsgYSB0ZW1wbGF0ZSBsaXRlcmFsIHdpdGggZXhwcmVzc2lvbnMsIHdob3NlIHZhbHVlcyBhcmUgdW5rbm93bjsgYW5kIGNvbW1lbnRzXG4gKiBpbnNpZGUgdGhlIGNhbGwuIFRoZSBmaXggcmV1c2VzIGEgdmlzaWJsZSBkZWZhdWx0IGltcG9ydCBvZiBgZGVkZW50YCwgb3IgYWRkcyBvbmUgdW5kZXIgYSBmcmVlIG5hbWUuXG4gKlxuICogVGhlIGBpZ25vcmVJbnNpZGVDYWxsc1RvYCBvcHRpb24gbmFtZXMgZnVuY3Rpb25zIHdob3NlIGNhbGxiYWNrIGFyZ3VtZW50cyBhcmUgc2VyaWFsaXplZCBhbmQgcnVuIGVsc2V3aGVyZSAoYW5cbiAqIE9ic2lkaWFuIHRlc3QncyBgZXZhbEluT2JzaWRpYW5gKSwgd2hlcmUgdGhlIG1vZHVsZSdzIGltcG9ydHMgYXJlIG5vdCBpbiBzY29wZS4gQSBqb2luIGluc2lkZSBhIGZ1bmN0aW9uIG5lc3RlZCBpblxuICogdGhlIGFyZ3VtZW50cyBvZiBzdWNoIGEgY2FsbCBpcyBub3QgcmVwb3J0ZWQsIGJlY2F1c2UgYGRlZGVudGAgY2Fubm90IGJlIHVzZWQgdGhlcmUuXG4gKi9cbmltcG9ydCB0eXBlIHsgVFNFU1RyZWUgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuaW1wb3J0IHsgQVNUX05PREVfVFlQRVMgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuXG5pbXBvcnQge1xuICBmaW5kVmlzaWJsZUltcG9ydE5hbWUsXG4gIGdldFVudXNlZE5hbWUsXG4gIGluc2VydEltcG9ydFxufSBmcm9tICcuL2ltcG9ydC1maXgudHMnO1xuaW1wb3J0IHsgdG9UU0VTVHJlZU5vZGUgfSBmcm9tICcuL3RzLWVzdHJlZS1ub2RlLnRzJztcblxuY29uc3QgREVERU5UX01PRFVMRSA9ICdkZWRlbnQnO1xuY29uc3QgRlVOQ1RJT05fTk9ERV9UWVBFUzogUmVhZG9ubHlTZXQ8QVNUX05PREVfVFlQRVM+ID0gbmV3IFNldChbXG4gIEFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uLFxuICBBU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkRlY2xhcmF0aW9uLFxuICBBU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkV4cHJlc3Npb25cbl0pO1xuY29uc3QgSU5ERU5UID0gJyAgJztcbmNvbnN0IExJTkVfQlJFQUtfU0VQQVJBVE9SUyA9IG5ldyBTZXQoWydcXG4nLCAnXFxyXFxuJ10pO1xuY29uc3QgTUlOSU1VTV9FTEVNRU5UU19XSVRIX0FfTElORV9CUkVBSyA9IDI7XG5cbi8qKlxuICogTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGFuIGFycmF5IG9mIHN0cmluZyBsaXRlcmFscyBpcyBqb2luZWQgd2l0aCBhIG5ld2xpbmUgaW5zdGVhZCBvZiB3cml0dGVuIGFzIGEgYGRlZGVudGAgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEID0gJ3ByZWZlckRlZGVudCc7XG5cbnR5cGUgU3RyaW5nRWxlbWVudCA9IFRTRVNUcmVlLlN0cmluZ0xpdGVyYWwgfCBUU0VTVHJlZS5UZW1wbGF0ZUxpdGVyYWw7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcHJlZmVycmluZyBhIGBkZWRlbnRgIHRlbXBsYXRlIG92ZXIgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHByZWZlckRlZGVudDogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSAoY29udGV4dC5vcHRpb25zWzBdID8/IHt9KSBhcyBQcmVmZXJEZWRlbnRPcHRpb25zO1xuICAgIGNvbnN0IGlnbm9yZWRDYWxsZWVOYW1lcyA9IG5ldyBTZXQob3B0aW9ucy5pZ25vcmVJbnNpZGVDYWxsc1RvKTtcbiAgICByZXR1cm4ge1xuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcbiAgICAgICAgY29uc3Qgam9pbmVkID0gZ2V0Sm9pbmVkU3RyaW5nRWxlbWVudHMoY2FsbE5vZGUpO1xuICAgICAgICBpZiAoIWpvaW5lZCB8fCBpc0luc2lkZUlnbm9yZWRDYWxsYmFjayhjYWxsTm9kZSwgaWdub3JlZENhbGxlZU5hbWVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBmaXgoZml4ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LnNvdXJjZUNvZGU7XG4gICAgICAgICAgICBpZiAoc291cmNlQ29kZS5nZXRDb21tZW50c0luc2lkZShub2RlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldEpvaW5lZFRleHQoam9pbmVkLmVsZW1lbnRzLCBqb2luZWQuc2VwYXJhdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGV4dCA9PT0gbnVsbCA/IG51bGwgOiB0b0RlZGVudExpbmVzKHRleHQpO1xuICAgICAgICAgICAgaWYgKGxpbmVzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtdO1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBmaW5kVmlzaWJsZUltcG9ydE5hbWUoeyBpbXBvcnRlZE5hbWU6ICdkZWZhdWx0JywgbW9kdWxlTmFtZTogREVERU5UX01PRFVMRSwgbm9kZSwgc291cmNlQ29kZSB9KTtcbiAgICAgICAgICAgIGlmIChuYW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIEEgc2NyaXB0IGNhbm5vdCBhY2NlcHQgYW4gRVNNIGltcG9ydC4gTGVhdmUgaXRzIGRpYWdub3N0aWMgZm9yIGEgbWFudWFsIGVkaXQuXG4gICAgICAgICAgICAgIGlmIChzb3VyY2VDb2RlLmFzdC5zb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWUgPSBnZXRVbnVzZWROYW1lKHNvdXJjZUNvZGUsICdkZWRlbnQnKTtcbiAgICAgICAgICAgICAgZml4ZXMucHVzaChpbnNlcnRJbXBvcnQoZml4ZXIsIHNvdXJjZUNvZGUsIGBpbXBvcnQgJHtuYW1lfSBmcm9tICcke0RFREVOVF9NT0RVTEV9JztgKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmVQcmVmaXggPSBzb3VyY2VDb2RlLnRleHQuc2xpY2Uoc291cmNlQ29kZS5nZXRJbmRleEZyb21Mb2MoeyBjb2x1bW46IDAsIGxpbmU6IGNhbGxOb2RlLmxvYy5zdGFydC5saW5lIH0pLCBjYWxsTm9kZS5yYW5nZVswXSk7XG4gICAgICAgICAgICBjb25zdCBsaW5lSW5kZW50ID0gbGluZVByZWZpeC5zbGljZSgwLCBsaW5lUHJlZml4Lmxlbmd0aCAtIGxpbmVQcmVmaXgudHJpbVN0YXJ0KCkubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBsaW5lcy5tYXAoKGxpbmUpID0+IGxpbmUgPT09ICcnID8gJycgOiBgJHtsaW5lSW5kZW50fSR7SU5ERU5UfSR7bGluZX1gKS5qb2luKCdcXG4nKTtcbiAgICAgICAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVwbGFjZVRleHQobm9kZSwgYCR7bmFtZX1cXGBcXG4ke2JvZHl9XFxuJHtsaW5lSW5kZW50fVxcYGApKTtcbiAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZWZlciBhIGBkZWRlbnRgIHRlbXBsYXRlIG92ZXIgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZSdcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnV3JpdGUgdGhpcyBtdWx0aWxpbmUgc3RyaW5nIGFzIGEgYGRlZGVudGAgdGVtcGxhdGUgaW5zdGVhZCBvZiBqb2luaW5nIGFuIGFycmF5IG9mIHN0cmluZyBsaXRlcmFscyB3aXRoIGEgbmV3bGluZS4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaWdub3JlSW5zaWRlQ2FsbHNUbzoge1xuICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgIH1cbiAgICBdLFxuICAgIHR5cGU6ICdzdWdnZXN0aW9uJ1xuICB9XG59O1xuXG4vKipcbiAqIE9wdGlvbnMgb2YgdGhlIGBwcmVmZXItZGVkZW50YCBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWZlckRlZGVudE9wdGlvbnMge1xuICAvKipcbiAgICogTmFtZXMgb2YgZnVuY3Rpb25zIHdob3NlIGNhbGxiYWNrIGFyZ3VtZW50cyBydW4gd2hlcmUgdGhlIG1vZHVsZSdzIGltcG9ydHMgYXJlIG5vdCBpbiBzY29wZS4gQSBqb2luIGluc2lkZSBhXG4gICAqIGZ1bmN0aW9uIG5lc3RlZCBpbiB0aGUgYXJndW1lbnRzIG9mIGEgY2FsbCB0byBvbmUgb2YgdGhlbSBpcyBub3QgcmVwb3J0ZWQuIEEgbmFtZSBtYXRjaGVzIGEgYmFyZSBjYWxsZWVcbiAgICogKGBldmFsSW5PYnNpZGlhbiguLi4pYCkgYW5kIHRoZSBwcm9wZXJ0eSBvZiBhIG1lbWJlciBjYWxsZWUgKGBoZWxwZXJzLmV2YWxJbk9ic2lkaWFuKC4uLilgKS5cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUluc2lkZUNhbGxzVG8/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIEpvaW5lZFN0cmluZ0VsZW1lbnRzIHtcbiAgcmVhZG9ubHkgZWxlbWVudHM6IHJlYWRvbmx5IFN0cmluZ0VsZW1lbnRbXTtcbiAgcmVhZG9ubHkgc2VwYXJhdG9yOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUxpbmVCcmVha3ModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnXFxyJywgU3RyaW5nLnJhd2BcXHJgKS5yZXBsYWNlQWxsKCdcXG4nLCBTdHJpbmcucmF3YFxcbmApO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVUZW1wbGF0ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnYCcsICdcXFxcYCcpLnJlcGxhY2VBbGwoJyR7JywgJ1xcXFwkeycpLnJlcGxhY2VBbGwoJ1xccicsIFN0cmluZy5yYXdgXFxyYCk7XG59XG5cbmZ1bmN0aW9uIGdldENhbGxlZU5hbWUoY2FsbGVlOiBUU0VTVHJlZS5FeHByZXNzaW9uKTogbnVsbCB8IHN0cmluZyB7XG4gIGlmIChjYWxsZWUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgIHJldHVybiBjYWxsZWUubmFtZTtcbiAgfVxuICByZXR1cm4gY2FsbGVlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24gJiYgIWNhbGxlZS5jb21wdXRlZCAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllclxuICAgID8gY2FsbGVlLnByb3BlcnR5Lm5hbWVcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEpvaW5lZFN0cmluZ0VsZW1lbnRzKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogSm9pbmVkU3RyaW5nRWxlbWVudHMgfCBudWxsIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG4gIGlmIChcbiAgICBub2RlLm9wdGlvbmFsIHx8IG5vZGUuYXJndW1lbnRzLmxlbmd0aCAhPT0gMVxuICAgIHx8IGNhbGxlZS50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uIHx8IGNhbGxlZS5vcHRpb25hbCB8fCBjYWxsZWUuY29tcHV0ZWRcbiAgICB8fCBjYWxsZWUucHJvcGVydHkudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciB8fCBjYWxsZWUucHJvcGVydHkubmFtZSAhPT0gJ2pvaW4nXG4gICAgfHwgY2FsbGVlLm9iamVjdC50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5BcnJheUV4cHJlc3Npb25cbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzZXBhcmF0b3IgPSBnZXRTdGF0aWNTdHJpbmcoZW5zdXJlTm9uTnVsbGFibGUobm9kZS5hcmd1bWVudHNbMF0pKTtcbiAgaWYgKHNlcGFyYXRvciA9PT0gbnVsbCB8fCAhTElORV9CUkVBS19TRVBBUkFUT1JTLmhhcyhzZXBhcmF0b3IpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBlbGVtZW50czogU3RyaW5nRWxlbWVudFtdID0gW107XG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBjYWxsZWUub2JqZWN0LmVsZW1lbnRzKSB7XG4gICAgaWYgKCFpc1N0cmluZ0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICB9XG4gIC8vIEEgc2luZ2xlIGVsZW1lbnQgam9pbnMgdG8gaXRzZWxmOyB0aGVyZSBpcyBubyBsaW5lIGJyZWFrIHRvIHJld3JpdGUuXG4gIHJldHVybiBlbGVtZW50cy5sZW5ndGggPCBNSU5JTVVNX0VMRU1FTlRTX1dJVEhfQV9MSU5FX0JSRUFLID8gbnVsbCA6IHsgZWxlbWVudHMsIHNlcGFyYXRvciB9O1xufVxuXG5mdW5jdGlvbiBnZXRKb2luZWRUZXh0KGVsZW1lbnRzOiByZWFkb25seSBTdHJpbmdFbGVtZW50W10sIHNlcGFyYXRvcjogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXRTdGF0aWNTdHJpbmcoZWxlbWVudCk7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZXMuam9pbihzZXBhcmF0b3IpO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0aWNTdHJpbmcobm9kZTogVFNFU1RyZWUuTm9kZSk6IG51bGwgfCBzdHJpbmcge1xuICBpZiAobm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5MaXRlcmFsKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBub2RlLnZhbHVlID09PSAnc3RyaW5nJyA/IG5vZGUudmFsdWUgOiBudWxsO1xuICB9XG4gIC8vIEFuIHVudGFnZ2VkIHRlbXBsYXRlIHdpdGggYW4gaW52YWxpZCBlc2NhcGUgaXMgYSBzeW50YXggZXJyb3IsIHNvIGl0cyBjb29rZWQgdGV4dCBhbHdheXMgZXhpc3RzLlxuICByZXR1cm4gbm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5UZW1wbGF0ZUxpdGVyYWwgJiYgbm9kZS5leHByZXNzaW9ucy5sZW5ndGggPT09IDAgPyBlbnN1cmVOb25OdWxsYWJsZShub2RlLnF1YXNpc1swXSkudmFsdWUuY29va2VkIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNJbnNpZGVJZ25vcmVkQ2FsbGJhY2sobm9kZTogVFNFU1RyZWUuTm9kZSwgaWdub3JlZENhbGxlZU5hbWVzOiBSZWFkb25seVNldDxzdHJpbmc+KTogYm9vbGVhbiB7XG4gIGlmIChpZ25vcmVkQ2FsbGVlTmFtZXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBsZXQgaXNJbnNpZGVGdW5jdGlvbiA9IGZhbHNlO1xuICBsZXQgY2hpbGQgPSBub2RlO1xuICBmb3IgKGxldCBwYXJlbnQgPSBub2RlLnBhcmVudDsgcGFyZW50OyBjaGlsZCA9IHBhcmVudCwgcGFyZW50ID0gcGFyZW50LnBhcmVudCkge1xuICAgIGlmIChGVU5DVElPTl9OT0RFX1RZUEVTLmhhcyhwYXJlbnQudHlwZSkpIHtcbiAgICAgIGlzSW5zaWRlRnVuY3Rpb24gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaXNJbnNpZGVGdW5jdGlvbiAmJiBwYXJlbnQudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuQ2FsbEV4cHJlc3Npb24gJiYgcGFyZW50LmNhbGxlZSAhPT0gY2hpbGQpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBnZXRDYWxsZWVOYW1lKHBhcmVudC5jYWxsZWUpO1xuICAgICAgaWYgKG5hbWUgIT09IG51bGwgJiYgaWdub3JlZENhbGxlZU5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZ0VsZW1lbnQoZWxlbWVudDogbnVsbCB8IFRTRVNUcmVlLk5vZGUpOiBlbGVtZW50IGlzIFN0cmluZ0VsZW1lbnQge1xuICByZXR1cm4gZWxlbWVudD8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVGVtcGxhdGVMaXRlcmFsXG4gICAgfHwgKGVsZW1lbnQ/LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkxpdGVyYWwgJiYgdHlwZW9mIGVsZW1lbnQudmFsdWUgPT09ICdzdHJpbmcnKTtcbn1cblxuLyoqXG4gKiBFbmNvZGVzIHRleHQgYXMgdGhlIGxpbmVzIG9mIGEgYGRlZGVudGAgdGVtcGxhdGUgYm9keSwgYmVmb3JlIGluZGVudGF0aW9uLlxuICpcbiAqIGBkZWRlbnRgIHRyaW1zIHRoZSB3aG9sZSByZXN1bHQgYW5kIG9ubHkgdGhlbiBkZWNvZGVzIGBcXG5gIGFuZCBgXFxyYCBlc2NhcGVzLCBzbyBhbiBlZGdlIHJ1biBvZiBsaW5lIGJyZWFrcyBzdXJ2aXZlc1xuICogd2hlbiB3cml0dGVuIGFzIGVzY2FwZXMsIGFuZCBhbnkgb3RoZXIgZWRnZSB3aGl0ZXNwYWNlIGRvZXMgbm90IHN1cnZpdmUgYXQgYWxsLiBJdCBzdHJpcHMgdGhlIHNtYWxsZXN0IGluZGVudGF0aW9uXG4gKiBvZiB0aGUgbGluZXMsIGFuZCB0aGUgZmlyc3QgbGluZSBoZXJlIGFsd2F5cyBzdGFydHMgd2l0aCBhIG5vbi1ibGFuayBjaGFyYWN0ZXIsIHNvIGV2ZXJ5IGxpbmUga2VlcHMgaXRzIG93bi5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSB0ZXh0IHRoZSB0ZW1wbGF0ZSBtdXN0IHByb2R1Y2UuXG4gKiBAcmV0dXJucyBUaGUgYm9keSBsaW5lcywgb3IgYG51bGxgIHdoZW4gYGRlZGVudGAgY2Fubm90IHByb2R1Y2UgdGhlIHRleHQgZnJvbSBhIHBsYWluIHRlbXBsYXRlLlxuICovXG5mdW5jdGlvbiB0b0RlZGVudExpbmVzKHRleHQ6IHN0cmluZyk6IG51bGwgfCBzdHJpbmdbXSB7XG4gIGlmICh0ZXh0LmluY2x1ZGVzKCdcXFxcJykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCByZXN0ID0gdGV4dC5yZXBsYWNlKC9eW1xcclxcbl0rLywgJycpO1xuICBjb25zdCBsZWFkaW5nID0gdGV4dC5zbGljZSgwLCB0ZXh0Lmxlbmd0aCAtIHJlc3QubGVuZ3RoKTtcbiAgY29uc3QgY29yZSA9IHJlc3QucmVwbGFjZSgvW1xcclxcbl0rJC8sICcnKTtcbiAgY29uc3QgdHJhaWxpbmcgPSByZXN0LnNsaWNlKGNvcmUubGVuZ3RoKTtcbiAgaWYgKGNvcmUgPT09ICcnIHx8IChsZWFkaW5nID09PSAnJyAmJiAvXlxccy8udGVzdChjb3JlKSkgfHwgKHRyYWlsaW5nID09PSAnJyAmJiAvXFxzJC8udGVzdChjb3JlKSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFRoZSBlc2NhcGVzIGhvbGQgbm8gbGluZSBicmVhaywgc28gc3BsaXR0aW5nIGFmdGVyIGVzY2FwaW5nIHNwbGl0cyBvbmx5IHRoZSBsaW5lIGJyZWFrcyBvZiB0aGUgY29yZS5cbiAgcmV0dXJuIGAke2VzY2FwZUxpbmVCcmVha3MobGVhZGluZyl9JHtlc2NhcGVUZW1wbGF0ZVRleHQoY29yZSl9JHtlc2NhcGVMaW5lQnJlYWtzKHRyYWlsaW5nKX1gLnNwbGl0KCdcXG4nKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEseUJBQWtDO0FBQ2xDLG1CQUErQjtBQUUvQix3QkFJTztBQUNQLDRCQUErQjtBQUUvQixNQUFNLGdCQUFnQjtBQUN0QixNQUFNLHNCQUFtRCxvQkFBSSxJQUFJO0FBQUEsRUFDL0QsNEJBQWU7QUFBQSxFQUNmLDRCQUFlO0FBQUEsRUFDZiw0QkFBZTtBQUNqQixDQUFDO0FBQ0QsTUFBTSxTQUFTO0FBQ2YsTUFBTSx3QkFBd0Isb0JBQUksSUFBSSxD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
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9wcmVmZXItZGVkZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcHJlZmVyLWRlZGVudFxuICpcbiAqIFJlcG9ydHMgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZSAoYFsnYScsICdiJ10uam9pbignXFxuJylgKSBhbmQgZml4ZXMgaXQgdG8gYSBgZGVkZW50YFxuICogdGVtcGxhdGUuIEFuIGFycmF5IGhvbGRpbmcgYW55dGhpbmcgYnV0IHN0cmluZyBhbmQgdGVtcGxhdGUgbGl0ZXJhbHMgaXMgbGVmdCBhbG9uZTogaXQgYnVpbGRzIGEgc3RyaW5nIGF0IHJ1bnRpbWUuXG4gKlxuICogVGhlIGZpeCByZXdyaXRlcyB0aGUgam9pbmVkIHRleHQgc28gdGhhdCBgZGVkZW50YCAoMS54LCB1c2VkIGFzIGEgdGFnKSByZXR1cm5zIGV4YWN0bHkgdGhlIHNhbWUgc3RyaW5nLiBJdCBydW5zIHRoZVxuICogc2FtZSBzdGVwcyBgZGVkZW50YCBkb2VzIGluIHJldmVyc2U6IGEgbGVhZGluZyBvciB0cmFpbGluZyBydW4gb2YgbGluZSBicmVha3MgYW5kIGV2ZXJ5IGNhcnJpYWdlIHJldHVybiBiZWNvbWVcbiAqIGBcXG5gIC8gYFxccmAgZXNjYXBlcywgd2hpY2ggYGRlZGVudGAgZGVjb2RlcyBvbmx5IGFmdGVyIGl0IHRyaW1zLCBhbmQgYmFja3RpY2tzIGFuZCBgJHtgIGFyZSBlc2NhcGVkLiBUZXh0IGl0IGNhbm5vdFxuICogcmVwcmVzZW50IHRoYXQgd2F5IGtlZXBzIHRoZSBkaWFnbm9zdGljIHdpdGhvdXQgYSBmaXg6IGEgYmFja3NsYXNoLCB3aGljaCBgZGVkZW50YCBwYXNzZXMgb24gcmF3OyBsZWFkaW5nIG9yIHRyYWlsaW5nXG4gKiB3aGl0ZXNwYWNlIHRoYXQgYGRlZGVudGAgd291bGQgdHJpbTsgYSB0ZW1wbGF0ZSBsaXRlcmFsIHdpdGggZXhwcmVzc2lvbnMsIHdob3NlIHZhbHVlcyBhcmUgdW5rbm93bjsgYW5kIGNvbW1lbnRzXG4gKiBpbnNpZGUgdGhlIGNhbGwuIFRoZSBmaXggcmV1c2VzIGEgdmlzaWJsZSBkZWZhdWx0IGltcG9ydCBvZiBgZGVkZW50YCwgb3IgYWRkcyBvbmUgdW5kZXIgYSBmcmVlIG5hbWUuXG4gKlxuICogVGhlIGBpZ25vcmVJbnNpZGVDYWxsc1RvYCBvcHRpb24gbmFtZXMgZnVuY3Rpb25zIHdob3NlIGNhbGxiYWNrIGFyZ3VtZW50cyBhcmUgc2VyaWFsaXplZCBhbmQgcnVuIGVsc2V3aGVyZSAoYW5cbiAqIE9ic2lkaWFuIHRlc3QncyBgZXZhbEluT2JzaWRpYW5gKSwgd2hlcmUgdGhlIG1vZHVsZSdzIGltcG9ydHMgYXJlIG5vdCBpbiBzY29wZS4gQSBqb2luIGluc2lkZSBhIGZ1bmN0aW9uIG5lc3RlZCBpblxuICogdGhlIGFyZ3VtZW50cyBvZiBzdWNoIGEgY2FsbCBpcyBub3QgcmVwb3J0ZWQsIGJlY2F1c2UgYGRlZGVudGAgY2Fubm90IGJlIHVzZWQgdGhlcmUuXG4gKi9cbmltcG9ydCB0eXBlIHsgVFNFU1RyZWUgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuaW1wb3J0IHsgQVNUX05PREVfVFlQRVMgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuXG5pbXBvcnQge1xuICBmaW5kVmlzaWJsZUltcG9ydE5hbWUsXG4gIGdldFVudXNlZE5hbWUsXG4gIGluc2VydEltcG9ydFxufSBmcm9tICcuL2ltcG9ydC1maXgudHMnO1xuaW1wb3J0IHsgdG9UU0VTVHJlZU5vZGUgfSBmcm9tICcuL3RzLWVzdHJlZS1ub2RlLnRzJztcblxuY29uc3QgREVERU5UX01PRFVMRSA9ICdkZWRlbnQnO1xuY29uc3QgRlVOQ1RJT05fTk9ERV9UWVBFUzogUmVhZG9ubHlTZXQ8QVNUX05PREVfVFlQRVM+ID0gbmV3IFNldChbXG4gIEFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uLFxuICBBU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkRlY2xhcmF0aW9uLFxuICBBU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkV4cHJlc3Npb25cbl0pO1xuY29uc3QgSU5ERU5UID0gJyAgJztcbmNvbnN0IExJTkVfQlJFQUtfU0VQQVJBVE9SUyA9IG5ldyBTZXQoWydcXG4nLCAnXFxyXFxuJ10pO1xuY29uc3QgTUlOSU1VTV9FTEVNRU5UU19XSVRIX0FfTElORV9CUkVBSyA9IDI7XG5cbi8qKlxuICogTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGFuIGFycmF5IG9mIHN0cmluZyBsaXRlcmFscyBpcyBqb2luZWQgd2l0aCBhIG5ld2xpbmUgaW5zdGVhZCBvZiB3cml0dGVuIGFzIGEgYGRlZGVudGAgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEID0gJ3ByZWZlckRlZGVudCc7XG5cbnR5cGUgU3RyaW5nRWxlbWVudCA9IFRTRVNUcmVlLlN0cmluZ0xpdGVyYWwgfCBUU0VTVHJlZS5UZW1wbGF0ZUxpdGVyYWw7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcHJlZmVycmluZyBhIGBkZWRlbnRgIHRlbXBsYXRlIG92ZXIgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHByZWZlckRlZGVudDogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSAoY29udGV4dC5vcHRpb25zWzBdID8/IHt9KSBhcyBQcmVmZXJEZWRlbnRPcHRpb25zO1xuICAgIGNvbnN0IGlnbm9yZWRDYWxsZWVOYW1lcyA9IG5ldyBTZXQob3B0aW9ucy5pZ25vcmVJbnNpZGVDYWxsc1RvKTtcbiAgICByZXR1cm4ge1xuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcbiAgICAgICAgY29uc3Qgam9pbmVkID0gZ2V0Sm9pbmVkU3RyaW5nRWxlbWVudHMoY2FsbE5vZGUpO1xuICAgICAgICBpZiAoIWpvaW5lZCB8fCBpc0luc2lkZUlnbm9yZWRDYWxsYmFjayhjYWxsTm9kZSwgaWdub3JlZENhbGxlZU5hbWVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBmaXgoZml4ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LnNvdXJjZUNvZGU7XG4gICAgICAgICAgICBpZiAoc291cmNlQ29kZS5nZXRDb21tZW50c0luc2lkZShub2RlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldEpvaW5lZFRleHQoam9pbmVkLmVsZW1lbnRzLCBqb2luZWQuc2VwYXJhdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGV4dCA9PT0gbnVsbCA/IG51bGwgOiB0b0RlZGVudExpbmVzKHRleHQpO1xuICAgICAgICAgICAgaWYgKGxpbmVzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtdO1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBmaW5kVmlzaWJsZUltcG9ydE5hbWUoeyBpbXBvcnRlZE5hbWU6ICdkZWZhdWx0JywgbW9kdWxlTmFtZTogREVERU5UX01PRFVMRSwgbm9kZSwgc291cmNlQ29kZSB9KTtcbiAgICAgICAgICAgIGlmIChuYW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIEEgc2NyaXB0IGNhbm5vdCBhY2NlcHQgYW4gRVNNIGltcG9ydC4gTGVhdmUgaXRzIGRpYWdub3N0aWMgZm9yIGEgbWFudWFsIGVkaXQuXG4gICAgICAgICAgICAgIGlmIChzb3VyY2VDb2RlLmFzdC5zb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWUgPSBnZXRVbnVzZWROYW1lKHNvdXJjZUNvZGUsICdkZWRlbnQnKTtcbiAgICAgICAgICAgICAgZml4ZXMucHVzaChpbnNlcnRJbXBvcnQoZml4ZXIsIHNvdXJjZUNvZGUsIGBpbXBvcnQgJHtuYW1lfSBmcm9tICcke0RFREVOVF9NT0RVTEV9JztgKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmVQcmVmaXggPSBzb3VyY2VDb2RlLnRleHQuc2xpY2Uoc291cmNlQ29kZS5nZXRJbmRleEZyb21Mb2MoeyBjb2x1bW46IDAsIGxpbmU6IGNhbGxOb2RlLmxvYy5zdGFydC5saW5lIH0pLCBjYWxsTm9kZS5yYW5nZVswXSk7XG4gICAgICAgICAgICBjb25zdCBsaW5lSW5kZW50ID0gbGluZVByZWZpeC5zbGljZSgwLCBsaW5lUHJlZml4Lmxlbmd0aCAtIGxpbmVQcmVmaXgudHJpbVN0YXJ0KCkubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBsaW5lcy5tYXAoKGxpbmUpID0+IGxpbmUgPT09ICcnID8gJycgOiBgJHtsaW5lSW5kZW50fSR7SU5ERU5UfSR7bGluZX1gKS5qb2luKCdcXG4nKTtcbiAgICAgICAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVwbGFjZVRleHQobm9kZSwgYCR7bmFtZX1cXGBcXG4ke2JvZHl9XFxuJHtsaW5lSW5kZW50fVxcYGApKTtcbiAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZWZlciBhIGBkZWRlbnRgIHRlbXBsYXRlIG92ZXIgYW4gYXJyYXkgb2Ygc3RyaW5nIGxpdGVyYWxzIGpvaW5lZCB3aXRoIGEgbmV3bGluZSdcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnV3JpdGUgdGhpcyBtdWx0aWxpbmUgc3RyaW5nIGFzIGEgYGRlZGVudGAgdGVtcGxhdGUgaW5zdGVhZCBvZiBqb2luaW5nIGFuIGFycmF5IG9mIHN0cmluZyBsaXRlcmFscyB3aXRoIGEgbmV3bGluZS4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaWdub3JlSW5zaWRlQ2FsbHNUbzoge1xuICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgIH1cbiAgICBdLFxuICAgIHR5cGU6ICdzdWdnZXN0aW9uJ1xuICB9XG59O1xuXG4vKipcbiAqIE9wdGlvbnMgb2YgdGhlIGBwcmVmZXItZGVkZW50YCBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWZlckRlZGVudE9wdGlvbnMge1xuICAvKipcbiAgICogTmFtZXMgb2YgZnVuY3Rpb25zIHdob3NlIGNhbGxiYWNrIGFyZ3VtZW50cyBydW4gd2hlcmUgdGhlIG1vZHVsZSdzIGltcG9ydHMgYXJlIG5vdCBpbiBzY29wZS4gQSBqb2luIGluc2lkZSBhXG4gICAqIGZ1bmN0aW9uIG5lc3RlZCBpbiB0aGUgYXJndW1lbnRzIG9mIGEgY2FsbCB0byBvbmUgb2YgdGhlbSBpcyBub3QgcmVwb3J0ZWQuIEEgbmFtZSBtYXRjaGVzIGEgYmFyZSBjYWxsZWVcbiAgICogKGBldmFsSW5PYnNpZGlhbiguLi4pYCkgYW5kIHRoZSBwcm9wZXJ0eSBvZiBhIG1lbWJlciBjYWxsZWUgKGBoZWxwZXJzLmV2YWxJbk9ic2lkaWFuKC4uLilgKS5cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUluc2lkZUNhbGxzVG8/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIEpvaW5lZFN0cmluZ0VsZW1lbnRzIHtcbiAgcmVhZG9ubHkgZWxlbWVudHM6IHJlYWRvbmx5IFN0cmluZ0VsZW1lbnRbXTtcbiAgcmVhZG9ubHkgc2VwYXJhdG9yOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUxpbmVCcmVha3ModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnXFxyJywgU3RyaW5nLnJhd2BcXHJgKS5yZXBsYWNlQWxsKCdcXG4nLCBTdHJpbmcucmF3YFxcbmApO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVUZW1wbGF0ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnYCcsICdcXFxcYCcpLnJlcGxhY2VBbGwoJyR7JywgJ1xcXFwkeycpLnJlcGxhY2VBbGwoJ1xccicsIFN0cmluZy5yYXdgXFxyYCk7XG59XG5cbmZ1bmN0aW9uIGdldENhbGxlZU5hbWUoY2FsbGVlOiBUU0VTVHJlZS5FeHByZXNzaW9uKTogbnVsbCB8IHN0cmluZyB7XG4gIGlmIChjYWxsZWUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgIHJldHVybiBjYWxsZWUubmFtZTtcbiAgfVxuICByZXR1cm4gY2FsbGVlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24gJiYgIWNhbGxlZS5jb21wdXRlZCAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllclxuICAgID8gY2FsbGVlLnByb3BlcnR5Lm5hbWVcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEpvaW5lZFN0cmluZ0VsZW1lbnRzKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogSm9pbmVkU3RyaW5nRWxlbWVudHMgfCBudWxsIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG4gIGlmIChcbiAgICBub2RlLm9wdGlvbmFsIHx8IG5vZGUuYXJndW1lbnRzLmxlbmd0aCAhPT0gMVxuICAgIHx8IGNhbGxlZS50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uIHx8IGNhbGxlZS5vcHRpb25hbCB8fCBjYWxsZWUuY29tcHV0ZWRcbiAgICB8fCBjYWxsZWUucHJvcGVydHkudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciB8fCBjYWxsZWUucHJvcGVydHkubmFtZSAhPT0gJ2pvaW4nXG4gICAgfHwgY2FsbGVlLm9iamVjdC50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5BcnJheUV4cHJlc3Npb25cbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzZXBhcmF0b3IgPSBnZXRTdGF0aWNTdHJpbmcoZW5zdXJlTm9uTnVsbGFibGUobm9kZS5hcmd1bWVudHNbMF0pKTtcbiAgaWYgKHNlcGFyYXRvciA9PT0gbnVsbCB8fCAhTElORV9CUkVBS19TRVBBUkFUT1JTLmhhcyhzZXBhcmF0b3IpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBlbGVtZW50czogU3RyaW5nRWxlbWVudFtdID0gW107XG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBjYWxsZWUub2JqZWN0LmVsZW1lbnRzKSB7XG4gICAgaWYgKCFpc1N0cmluZ0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICB9XG4gIC8vIEEgc2luZ2xlIGVsZW1lbnQgam9pbnMgdG8gaXRzZWxmOyB0aGVyZSBpcyBubyBsaW5lIGJyZWFrIHRvIHJld3JpdGUuXG4gIHJldHVybiBlbGVtZW50cy5sZW5ndGggPCBNSU5JTVVNX0VMRU1FTlRTX1dJVEhfQV9MSU5FX0JSRUFLID8gbnVsbCA6IHsgZWxlbWVudHMsIHNlcGFyYXRvciB9O1xufVxuXG5mdW5jdGlvbiBnZXRKb2luZWRUZXh0KGVsZW1lbnRzOiByZWFkb25seSBTdHJpbmdFbGVtZW50W10sIHNlcGFyYXRvcjogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXRTdGF0aWNTdHJpbmcoZWxlbWVudCk7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZXMuam9pbihzZXBhcmF0b3IpO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0aWNTdHJpbmcobm9kZTogVFNFU1RyZWUuTm9kZSk6IG51bGwgfCBzdHJpbmcge1xuICBpZiAobm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5MaXRlcmFsKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBub2RlLnZhbHVlID09PSAnc3RyaW5nJyA/IG5vZGUudmFsdWUgOiBudWxsO1xuICB9XG4gIC8vIEFuIHVudGFnZ2VkIHRlbXBsYXRlIHdpdGggYW4gaW52YWxpZCBlc2NhcGUgaXMgYSBzeW50YXggZXJyb3IsIHNvIGl0cyBjb29rZWQgdGV4dCBhbHdheXMgZXhpc3RzLlxuICByZXR1cm4gbm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5UZW1wbGF0ZUxpdGVyYWwgJiYgbm9kZS5leHByZXNzaW9ucy5sZW5ndGggPT09IDAgPyBlbnN1cmVOb25OdWxsYWJsZShub2RlLnF1YXNpc1swXSkudmFsdWUuY29va2VkIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNJbnNpZGVJZ25vcmVkQ2FsbGJhY2sobm9kZTogVFNFU1RyZWUuTm9kZSwgaWdub3JlZENhbGxlZU5hbWVzOiBSZWFkb25seVNldDxzdHJpbmc+KTogYm9vbGVhbiB7XG4gIGlmIChpZ25vcmVkQ2FsbGVlTmFtZXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBsZXQgaXNJbnNpZGVGdW5jdGlvbiA9IGZhbHNlO1xuICBsZXQgY2hpbGQgPSBub2RlO1xuICBmb3IgKGxldCBwYXJlbnQgPSBub2RlLnBhcmVudDsgcGFyZW50OyBjaGlsZCA9IHBhcmVudCwgcGFyZW50ID0gcGFyZW50LnBhcmVudCkge1xuICAgIGlmIChGVU5DVElPTl9OT0RFX1RZUEVTLmhhcyhwYXJlbnQudHlwZSkpIHtcbiAgICAgIGlzSW5zaWRlRnVuY3Rpb24gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaXNJbnNpZGVGdW5jdGlvbiAmJiBwYXJlbnQudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuQ2FsbEV4cHJlc3Npb24gJiYgcGFyZW50LmNhbGxlZSAhPT0gY2hpbGQpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBnZXRDYWxsZWVOYW1lKHBhcmVudC5jYWxsZWUpO1xuICAgICAgaWYgKG5hbWUgIT09IG51bGwgJiYgaWdub3JlZENhbGxlZU5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZ0VsZW1lbnQoZWxlbWVudDogbnVsbCB8IFRTRVNUcmVlLk5vZGUpOiBlbGVtZW50IGlzIFN0cmluZ0VsZW1lbnQge1xuICByZXR1cm4gZWxlbWVudD8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVGVtcGxhdGVMaXRlcmFsXG4gICAgfHwgKGVsZW1lbnQ/LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkxpdGVyYWwgJiYgdHlwZW9mIGVsZW1lbnQudmFsdWUgPT09ICdzdHJpbmcnKTtcbn1cblxuLyoqXG4gKiBFbmNvZGVzIHRleHQgYXMgdGhlIGxpbmVzIG9mIGEgYGRlZGVudGAgdGVtcGxhdGUgYm9keSwgYmVmb3JlIGluZGVudGF0aW9uLlxuICpcbiAqIGBkZWRlbnRgIHRyaW1zIHRoZSB3aG9sZSByZXN1bHQgYW5kIG9ubHkgdGhlbiBkZWNvZGVzIGBcXG5gIGFuZCBgXFxyYCBlc2NhcGVzLCBzbyBhbiBlZGdlIHJ1biBvZiBsaW5lIGJyZWFrcyBzdXJ2aXZlc1xuICogd2hlbiB3cml0dGVuIGFzIGVzY2FwZXMsIGFuZCBhbnkgb3RoZXIgZWRnZSB3aGl0ZXNwYWNlIGRvZXMgbm90IHN1cnZpdmUgYXQgYWxsLiBJdCBzdHJpcHMgdGhlIHNtYWxsZXN0IGluZGVudGF0aW9uXG4gKiBvZiB0aGUgbGluZXMsIGFuZCB0aGUgZmlyc3QgbGluZSBoZXJlIGFsd2F5cyBzdGFydHMgd2l0aCBhIG5vbi1ibGFuayBjaGFyYWN0ZXIsIHNvIGV2ZXJ5IGxpbmUga2VlcHMgaXRzIG93bi5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSB0ZXh0IHRoZSB0ZW1wbGF0ZSBtdXN0IHByb2R1Y2UuXG4gKiBAcmV0dXJucyBUaGUgYm9keSBsaW5lcywgb3IgYG51bGxgIHdoZW4gYGRlZGVudGAgY2Fubm90IHByb2R1Y2UgdGhlIHRleHQgZnJvbSBhIHBsYWluIHRlbXBsYXRlLlxuICovXG5mdW5jdGlvbiB0b0RlZGVudExpbmVzKHRleHQ6IHN0cmluZyk6IG51bGwgfCBzdHJpbmdbXSB7XG4gIGlmICh0ZXh0LmluY2x1ZGVzKCdcXFxcJykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCByZXN0ID0gdGV4dC5yZXBsYWNlKC9eW1xcclxcbl0rLywgJycpO1xuICBjb25zdCBsZWFkaW5nID0gdGV4dC5zbGljZSgwLCB0ZXh0Lmxlbmd0aCAtIHJlc3QubGVuZ3RoKTtcbiAgY29uc3QgY29yZSA9IHJlc3QucmVwbGFjZSgvW1xcclxcbl0rJC8sICcnKTtcbiAgY29uc3QgdHJhaWxpbmcgPSByZXN0LnNsaWNlKGNvcmUubGVuZ3RoKTtcbiAgLy8gVGhlIGVzY2FwZXMgaG9sZCBubyBsaW5lIGJyZWFrLCBzbyBzcGxpdHRpbmcgYWZ0ZXIgZXNjYXBpbmcgc3BsaXRzIG9ubHkgdGhlIGxpbmUgYnJlYWtzIG9mIHRoZSBjb3JlLlxuICByZXR1cm4gY29yZSA9PT0gJycgfHwgKGxlYWRpbmcgPT09ICcnICYmIC9eXFxzLy50ZXN0KGNvcmUpKSB8fCAodHJhaWxpbmcgPT09ICcnICYmIC9cXHMkLy50ZXN0KGNvcmUpKVxuICAgID8gbnVsbFxuICAgIDogYCR7ZXNjYXBlTGluZUJyZWFrcyhsZWFkaW5nKX0ke2VzY2FwZVRlbXBsYXRlVGV4dChjb3JlKX0ke2VzY2FwZUxpbmVCcmVha3ModHJhaWxpbmcpfWAuc3BsaXQoJ1xcbicpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQSx5QkFBa0M7QUFDbEMsbUJBQStCO0FBRS9CLHdCQUlPO0FBQ1AsNEJBQStCO0FBRS9CLE1BQU0sZ0JBQWdCO0FBQ3RCLE1BQU0sc0JBQW1ELG9CQUFJLElBQUk7QUFBQSxFQUMvRCw0QkFBZTtBQUFBLEVBQ2YsNEJBQWU7QUFBQSxFQUNmLDRCQUFlO0FBQ2pCLENBQUM7QUFDRCxNQUFNLFNBQVM7QUFDZixNQUFNLHdCQUF3QixvQkFBSSxJQUFJLENBQUMsTUFBTSxNQUFNLENB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
|
|
@@ -72,6 +72,8 @@ __export(prefer_logical_operator_over_ternary_exports, {
|
|
|
72
72
|
});
|
|
73
73
|
module.exports = __toCommonJS(prefer_logical_operator_over_ternary_exports);
|
|
74
74
|
var import_eslint_plugin_unicorn = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('eslint-plugin-unicorn')), 1);
|
|
75
|
+
var import_typescript = require('typescript');
|
|
76
|
+
var import_ts_estree_node = require('./ts-estree-node.cjs');
|
|
75
77
|
const UNICORN_RULE_NAME = "prefer-logical-operator-over-ternary";
|
|
76
78
|
const MESSAGE_ID = "prefer-logical-operator-over-ternary/error";
|
|
77
79
|
const unicornRule = getUnicornRule();
|
|
@@ -103,6 +105,15 @@ function getUnicornRule() {
|
|
|
103
105
|
}
|
|
104
106
|
return rule;
|
|
105
107
|
}
|
|
108
|
+
function isProvenBoolean(node, sourceCode) {
|
|
109
|
+
const services = sourceCode.parserServices;
|
|
110
|
+
if (!services.program || !services.esTreeNodeToTSNodeMap) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const type = services.program.getTypeChecker().getTypeAtLocation(services.esTreeNodeToTSNodeMap.get((0, import_ts_estree_node.toTSESTreeNode)(node)));
|
|
114
|
+
const constituents = type.isUnion() ? type.types : [type];
|
|
115
|
+
return constituents.every((constituent) => (constituent.flags & import_typescript.TypeFlags.BooleanLike) !== 0);
|
|
116
|
+
}
|
|
106
117
|
function needsParentheses(node, operator) {
|
|
107
118
|
switch (node.type) {
|
|
108
119
|
case "ArrayExpression":
|
|
@@ -152,7 +163,14 @@ function withLiteralBranchFix(descriptor, sourceCode) {
|
|
|
152
163
|
const other = isConsequentLiteral ? alternate : consequent;
|
|
153
164
|
const shouldNegateTest = isConsequentLiteral !== literalValue;
|
|
154
165
|
const operator = literalValue ? "||" : "&&";
|
|
155
|
-
|
|
166
|
+
let testText;
|
|
167
|
+
if (shouldNegateTest) {
|
|
168
|
+
testText = `!${toOperandText(test, "!", sourceCode)}`;
|
|
169
|
+
} else if (isProvenBoolean(test, sourceCode)) {
|
|
170
|
+
testText = toOperandText(test, operator, sourceCode);
|
|
171
|
+
} else {
|
|
172
|
+
testText = `!!${toOperandText(test, "!", sourceCode)}`;
|
|
173
|
+
}
|
|
156
174
|
const otherText = toOperandText(other, operator, sourceCode);
|
|
157
175
|
return {
|
|
158
176
|
...descriptor,
|
|
@@ -167,4 +185,4 @@ function withLiteralBranchFix(descriptor, sourceCode) {
|
|
|
167
185
|
UNICORN_RULE_NAME,
|
|
168
186
|
preferLogicalOperatorOverTernary
|
|
169
187
|
});
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiBwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnlcbiAqXG4gKiBgdW5pY29ybi9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnlgLCB3aXRoIHRoZSBmaXggaXQgd2l0aGhvbGRzIGluIGEgVHlwZVNjcmlwdCBmaWxlLlxuICpcbiAqIFVuaWNvcm4gcmVwb3J0cyBhIHRlcm5hcnkgd2l0aCBvbmUgYm9vbGVhbiBicmFuY2ggKGBhID8gZmFsc2UgOiBiYCkgYW5kIGZpeGVzIGl0IHRvIGEgbG9naWNhbCBleHByZXNzaW9uXG4gKiAoYCFhICYmIGJgKSwgYnV0IG9ubHkgb3V0c2lkZSBUeXBlU2NyaXB0LiBgdW5pY29ybi9wcmVmZXItdGVybmFyeWAgZml4ZXMgYGlmIChhKSB7IHJldHVybiBmYWxzZTsgfSByZXR1cm4gYjtgIGludG9cbiAqIGV4YWN0bHkgdGhhdCB0ZXJuYXJ5LCBzbyBpbiBhIFR5cGVTY3JpcHQgZmlsZSBgbGludDpmaXhgIHByb2R1Y2VkIGFuIGVycm9yIGl0IHRoZW4gY291bGQgbm90IGZpeCwgYW5kIGV2ZXJ5IHNpdGVcbiAqIGhhZCB0byBiZSByZXdyaXR0ZW4gYnkgaGFuZC4gVGhpcyBydWxlIHJlcG9ydHMgd2hhdCB1bmljb3JuIHJlcG9ydHMgYW5kIGFkZHMgdGhlIGZpeCB3aGVyZSBvbmUgYnJhbmNoIGlzIGEgYm9vbGVhblxuICogbGl0ZXJhbC4gVGhlIHJld3JpdGUgaXMgZXhhY3QgYXQgcnVudGltZTogd2l0aCBhIG5lZ2F0ZWQgdGVzdCAoYGEgPyBmYWxzZSA6IGJgIOKGkiBgIWEgJiYgYmAsIGBhID8gYiA6IHRydWVgIOKGklxuICogYCFhIHx8IGJgKSBmb3IgYW55IHRlc3QsIGFuZCBvdGhlcndpc2UgKGBhID8gdHJ1ZSA6IGJgIOKGkiBgYSB8fCBiYCwgYGEgPyBiIDogZmFsc2VgIOKGkiBgYSAmJiBiYCkgYmVjYXVzZSB1bmljb3JuXG4gKiByZXBvcnRzIHRoYXQgc2hhcGUgb25seSBmb3IgYSB0ZXN0IGl0IGhhcyBwcm92ZW4gYm9vbGVhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUge1xuICBDb25kaXRpb25hbEV4cHJlc3Npb24sXG4gIEV4cHJlc3Npb24sXG4gIE5vZGVcbn0gZnJvbSAnZXN0cmVlJztcblxuaW1wb3J0IGVzbGludFBsdWdpblVuaWNvcm4gZnJvbSAnZXNsaW50LXBsdWdpbi11bmljb3JuJztcblxuLyoqXG4gKiBUaGUgaWQgb2YgdGhlIHVuaWNvcm4gcnVsZSB0aGlzIHJ1bGUgZGVsZWdhdGVzIHRvLCBpbnNpZGUgdGhlIGB1bmljb3JuYCBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBVTklDT1JOX1JVTEVfTkFNRSA9ICdwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnknO1xuXG4vKipcbiAqIFRoZSBtZXNzYWdlIGlkIHVuaWNvcm4gcmVwb3J0cyBhIHRlcm5hcnkgdW5kZXIgd2hlbiBhIGxvZ2ljYWwgb3BlcmF0b3IgY291bGQgcmVwbGFjZSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5L2Vycm9yJztcblxudHlwZSBMb2dpY2FsT3BlcmF0b3IgPSAnJiYnIHwgJ3x8JztcblxudHlwZSBVbmljb3JuUmVwb3J0RGVzY3JpcHRvciA9IFJ1bGUuUmVwb3J0RGVzY3JpcHRvck9wdGlvbnMgJiBVbmljb3JuUmVwb3J0RGVzY3JpcHRvckZpZWxkcztcblxuaW50ZXJmYWNlIFVuaWNvcm5SZXBvcnREZXNjcmlwdG9yRmllbGRzIHtcbiAgcmVhZG9ubHkgbWVzc2FnZUlkPzogc3RyaW5nO1xuICByZWFkb25seSBub2RlOiBOb2RlO1xufVxuXG5jb25zdCB1bmljb3JuUnVsZSA9IGdldFVuaWNvcm5SdWxlKCk7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVwb3J0aW5nIHdoYXQgYHVuaWNvcm4vcHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5YCByZXBvcnRzLCBmaXhpbmcgYSB0ZXJuYXJ5IHdpdGggYSBib29sZWFuXG4gKiBsaXRlcmFsIGJyYW5jaCBpbiBhIFR5cGVTY3JpcHQgZmlsZSB0b28uXG4gKi9cbmV4cG9ydCBjb25zdCBwcmVmZXJMb2dpY2FsT3BlcmF0b3JPdmVyVGVybmFyeTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHJlcG9ydGluZ0NvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQgPSBPYmplY3QuY3JlYXRlKGNvbnRleHQsIHtcbiAgICAgIHJlcG9ydDoge1xuICAgICAgICB2YWx1ZShkZXNjcmlwdG9yOiBSdWxlLlJlcG9ydERlc2NyaXB0b3IpOiB2b2lkIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh3aXRoTGl0ZXJhbEJyYW5jaEZpeChkZXNjcmlwdG9yLCBjb250ZXh0LnNvdXJjZUNvZGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVuaWNvcm5SdWxlLmNyZWF0ZShyZXBvcnRpbmdDb250ZXh0KTtcbiAgfSxcbiAgbWV0YToge1xuICAgIC4uLnVuaWNvcm5SdWxlLm1ldGEsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdQcmVmZXIgYSBsb2dpY2FsIG9wZXJhdG9yIG92ZXIgYSB0ZXJuYXJ5LCBmaXhpbmcgYSBib29sZWFuIGxpdGVyYWwgYnJhbmNoIGluIFR5cGVTY3JpcHQgdG9vJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0Qm9vbGVhbkxpdGVyYWxWYWx1ZShub2RlOiBOb2RlKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdMaXRlcmFsJyAmJiB0eXBlb2Ygbm9kZS52YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gbm9kZS52YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0VW5pY29yblJ1bGUoKTogUnVsZS5SdWxlTW9kdWxlIHtcbiAgY29uc3QgcnVsZSA9IGVzbGludFBsdWdpblVuaWNvcm4ucnVsZXM/LltVTklDT1JOX1JVTEVfTkFNRV07XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEd1YXJkcyBhbiB1cGdyYWRlIG9mIGVzbGludC1wbHVnaW4tdW5pY29ybiB0aGF0IGRyb3BzIG9yIHJlbmFtZXMgdGhlIHJ1bGUuICovXG4gIGlmICghcnVsZSB8fCB0eXBlb2YgcnVsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXNsaW50LXBsdWdpbi11bmljb3JuIG5vIGxvbmdlciBkZWZpbmVzIHRoZSAke1VOSUNPUk5fUlVMRV9OQU1FfSBydWxlLmApO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgcmV0dXJuIHJ1bGU7XG59XG5cbmZ1bmN0aW9uIG5lZWRzUGFyZW50aGVzZXMobm9kZTogRXhwcmVzc2lvbiwgb3BlcmF0b3I6ICchJyB8IExvZ2ljYWxPcGVyYXRvcik6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgIGNhc2UgJ0FycmF5RXhwcmVzc2lvbic6XG4gICAgY2FzZSAnQXdhaXRFeHByZXNzaW9uJzpcbiAgICBjYXNlICdDYWxsRXhwcmVzc2lvbic6XG4gICAgY2FzZSAnQ2hhaW5FeHByZXNzaW9uJzpcbiAgICBjYXNlICdJZGVudGlmaWVyJzpcbiAgICBjYXNlICdMaXRlcmFsJzpcbiAgICBjYXNlICdNZW1iZXJFeHByZXNzaW9uJzpcbiAgICBjYXNlICdOZXdFeHByZXNzaW9uJzpcbiAgICBjYXNlICdPYmplY3RFeHByZXNzaW9uJzpcbiAgICBjYXNlICdUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24nOlxuICAgIGNhc2UgJ1RlbXBsYXRlTGl0ZXJhbCc6XG4gICAgY2FzZSAnVGhpc0V4cHJlc3Npb24nOlxuICAgIGNhc2UgJ1VuYXJ5RXhwcmVzc2lvbic6IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2FzZSAnQmluYXJ5RXhwcmVzc2lvbic6IHtcbiAgICAgIHJldHVybiBvcGVyYXRvciA9PT0gJyEnO1xuICAgIH1cbiAgICBjYXNlICdMb2dpY2FsRXhwcmVzc2lvbic6IHtcbiAgICAgIHJldHVybiBvcGVyYXRvciA9PT0gJyEnIHx8IG5vZGUub3BlcmF0b3IgPT09ICc/PycgfHwgKG9wZXJhdG9yID09PSAnJiYnICYmIG5vZGUub3BlcmF0b3IgPT09ICd8fCcpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9PcGVyYW5kVGV4dChub2RlOiBFeHByZXNzaW9uLCBvcGVyYXRvcjogJyEnIHwgTG9naWNhbE9wZXJhdG9yLCBzb3VyY2VDb2RlOiBSdWxlLlJ1bGVDb250ZXh0Wydzb3VyY2VDb2RlJ10pOiBzdHJpbmcge1xuICBjb25zdCB0ZXh0ID0gc291cmNlQ29kZS5nZXRUZXh0KG5vZGUpO1xuICByZXR1cm4gbmVlZHNQYXJlbnRoZXNlcyhub2RlLCBvcGVyYXRvcikgPyBgKCR7dGV4dH0pYCA6IHRleHQ7XG59XG5cbmZ1bmN0aW9uIHdpdGhMaXRlcmFsQnJhbmNoRml4KGRlc2NyaXB0b3I6IFJ1bGUuUmVwb3J0RGVzY3JpcHRvciwgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFsnc291cmNlQ29kZSddKTogUnVsZS5SZXBvcnREZXNjcmlwdG9yIHtcbiAgY29uc3QgeyBmaXgsIG1lc3NhZ2VJZCwgbm9kZSwgc3VnZ2VzdCB9ID0gZGVzY3JpcHRvciBhcyBVbmljb3JuUmVwb3J0RGVzY3JpcHRvcjtcblxuICAvLyBVbmljb3JuIGZpeGVzIHRoZSBzaGFwZSBpdHNlbGYgb3V0c2lkZSBUeXBlU2NyaXB0LCBhbmQgb2ZmZXJzIHN1Z2dlc3Rpb25zIGZvciB0aGUgc2hhcGVzIGl0IGNhbm5vdCBmaXguXG4gIGlmIChtZXNzYWdlSWQgIT09IE1FU1NBR0VfSUQgfHwgZml4IHx8IHN1Z2dlc3QpIHtcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfVxuXG4gIC8vIFVuaWNvcm4gcmVwb3J0cyB0aGlzIG1lc3NhZ2Ugb24gdGhlIHRlcm5hcnkgaXRzZWxmLlxuICBjb25zdCBjb25kaXRpb25hbEV4cHJlc3Npb24gPSBub2RlIGFzIENvbmRpdGlvbmFsRXhwcmVzc2lvbjtcbiAgY29uc3QgeyBhbHRlcm5hdGUsIGNvbnNlcXVlbnQsIHRlc3QgfSA9IGNvbmRpdGlvbmFsRXhwcmVzc2lvbjtcbiAgY29uc3QgY29uc2VxdWVudFZhbHVlID0gZ2V0Qm9vbGVhbkxpdGVyYWxWYWx1ZShjb25zZXF1ZW50KTtcbiAgY29uc3QgYWx0ZXJuYXRlVmFsdWUgPSBnZXRCb29sZWFuTGl0ZXJhbFZhbHVlKGFsdGVybmF0ZSk7XG4gIGNvbnN0IGxpdGVyYWxWYWx1ZSA9IGNvbnNlcXVlbnRWYWx1ZSA/PyBhbHRlcm5hdGVWYWx1ZTtcblxuICBpZiAoXG4gICAgbGl0ZXJhbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICB8fCAoY29uc2VxdWVudFZhbHVlICE9PSB1bmRlZmluZWQgJiYgYWx0ZXJuYXRlVmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICB8fCBzb3VyY2VDb2RlLmdldENvbW1lbnRzSW5zaWRlKGNvbmRpdGlvbmFsRXhwcmVzc2lvbikubGVuZ3RoID4gMFxuICApIHtcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfVxuXG4gIGNvbnN0IGlzQ29uc2VxdWVudExpdGVyYWwgPSBjb25zZXF1ZW50VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgY29uc3Qgb3RoZXIgPSBpc0NvbnNlcXVlbnRMaXRlcmFsID8gYWx0ZXJuYXRlIDogY29uc2VxdWVudDtcbiAgY29uc3Qgc2hvdWxkTmVnYXRlVGVzdCA9IGlzQ29uc2VxdWVudExpdGVyYWwgIT09IGxpdGVyYWxWYWx1ZTtcbiAgY29uc3Qgb3BlcmF0b3I6IExvZ2ljYWxPcGVyYXRvciA9IGxpdGVyYWxWYWx1ZSA/ICd8fCcgOiAnJiYnO1xuICBjb25zdCB0ZXN0VGV4dCA9IHNob3VsZE5lZ2F0ZVRlc3QgPyBgISR7dG9PcGVyYW5kVGV4dCh0ZXN0LCAnIScsIHNvdXJjZUNvZGUpfWAgOiB0b09wZXJhbmRUZXh0KHRlc3QsIG9wZXJhdG9yLCBzb3VyY2VDb2RlKTtcbiAgY29uc3Qgb3RoZXJUZXh0ID0gdG9PcGVyYW5kVGV4dChvdGhlciwgb3BlcmF0b3IsIHNvdXJjZUNvZGUpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGVzY3JpcHRvcixcbiAgICBmaXgoZml4ZXIpOiBSdWxlLkZpeCB7XG4gICAgICByZXR1cm4gZml4ZXIucmVwbGFjZVRleHQoY29uZGl0aW9uYWxFeHByZXNzaW9uLCBgJHt0ZXN0VGV4dH0gJHtvcGVyYXRvcn0gJHtvdGhlclRleHR9YCk7XG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVCQSxtQ0FBZ0M7QUFLekIsTUFBTSxvQkFBb0I7QUFLMUIsTUFBTSxhQUFhO0FBVzFCLE1BQU0sY0FBYyxlQUFlO0FBTTVCLE1BQU0sbUNBQW9EO0FBQUEsRUFDL0QsT0FBTyxTQUFTO0FBQ2QsVUFBTSxtQkFBcUMsT0FBTyxPQUFPLFNBQVM7QUFBQSxNQUNoRSxRQUFRO0FBQUEsUUFDTixNQUFNLFlBQXlDO0FBQzdDLGtCQUFRLE9BQU8scUJBQXFCLFlBQVksUUFBUSxVQUFVLENBQUM7QUFBQSxRQUNyRTtBQUFBLE1BQ0Y7QUFBQSxJQUNGLENBQUM7QUFFRCxXQUFPLFlBQVksT0FBTyxnQkFBZ0I7QUFBQSxFQUM1QztBQUFBLEVB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
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiBwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnlcbiAqXG4gKiBgdW5pY29ybi9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnlgLCB3aXRoIHRoZSBmaXggaXQgd2l0aGhvbGRzIGluIGEgVHlwZVNjcmlwdCBmaWxlLlxuICpcbiAqIFVuaWNvcm4gcmVwb3J0cyBhIHRlcm5hcnkgd2l0aCBvbmUgYm9vbGVhbiBicmFuY2ggKGBhID8gZmFsc2UgOiBiYCkgYW5kIGZpeGVzIGl0IHRvIGEgbG9naWNhbCBleHByZXNzaW9uXG4gKiAoYCFhICYmIGJgKSwgYnV0IG9ubHkgb3V0c2lkZSBUeXBlU2NyaXB0LiBgdW5pY29ybi9wcmVmZXItdGVybmFyeWAgZml4ZXMgYGlmIChhKSB7IHJldHVybiBmYWxzZTsgfSByZXR1cm4gYjtgIGludG9cbiAqIGV4YWN0bHkgdGhhdCB0ZXJuYXJ5LCBzbyBpbiBhIFR5cGVTY3JpcHQgZmlsZSBgbGludDpmaXhgIHByb2R1Y2VkIGFuIGVycm9yIGl0IHRoZW4gY291bGQgbm90IGZpeCwgYW5kIGV2ZXJ5IHNpdGVcbiAqIGhhZCB0byBiZSByZXdyaXR0ZW4gYnkgaGFuZC4gVGhpcyBydWxlIHJlcG9ydHMgd2hhdCB1bmljb3JuIHJlcG9ydHMgYW5kIGFkZHMgdGhlIGZpeCB3aGVyZSBvbmUgYnJhbmNoIGlzIGEgYm9vbGVhblxuICogbGl0ZXJhbC4gVW5pY29ybiByZXBvcnRzIHRoZSBzaGFwZSBvbmx5IHdoZW4gdGhlIG90aGVyIGJyYW5jaCBpcyBib29sZWFuLCBhbmQgc2luY2UgdW5pY29ybiA3OSBmb3IgYSB0ZXN0IG9mIGFueVxuICogdHlwZS4gVGhlIHJld3JpdGUgaXMgZXhhY3QgYXQgcnVudGltZTogYSBuZWdhdGVkIHRlc3QgKGBhID8gZmFsc2UgOiBiYCDihpIgYCFhICYmIGJgLCBgYSA/IGIgOiB0cnVlYCDihpIgYCFhIHx8IGJgKSBpc1xuICogYSBib29sZWFuIGFscmVhZHksIGFuZCBvdGhlcndpc2UgKGBhID8gdHJ1ZSA6IGJgIOKGkiBgYSB8fCBiYCwgYGEgPyBiIDogZmFsc2VgIOKGkiBgYSAmJiBiYCkgYSB0ZXN0IHRoZSB0eXBlIGNoZWNrZXJcbiAqIGNhbm5vdCBwcm92ZSBib29sZWFuIGlzIGNvZXJjZWQgd2l0aCBgISFgLCBiZWNhdXNlIGBhICYmIGJgIHdvdWxkIHJldHVybiBhIGZhbHN5IGBhYCBpdHNlbGYgKGBudWxsYCwgYDBgLCBgJydgKVxuICogd2hlcmUgdGhlIHRlcm5hcnkgcmV0dXJuZWQgYGZhbHNlYC4gVW5pY29ybiBjb2VyY2VzIHdpdGggYEJvb2xlYW4oYSlgOyBgISFhYCBpcyB1c2VkIGhlcmUgYmVjYXVzZSBUeXBlU2NyaXB0XG4gKiBuYXJyb3dzIG9uIGl0LCBzbyBgISFhICYmIGEuYmAgc3RpbGwgdHlwZS1jaGVja3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24gfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ29uZGl0aW9uYWxFeHByZXNzaW9uLFxuICBFeHByZXNzaW9uLFxuICBOb2RlXG59IGZyb20gJ2VzdHJlZSc7XG5cbmltcG9ydCBlc2xpbnRQbHVnaW5Vbmljb3JuIGZyb20gJ2VzbGludC1wbHVnaW4tdW5pY29ybic7XG5pbXBvcnQgeyBUeXBlRmxhZ3MgfSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgdG9UU0VTVHJlZU5vZGUgfSBmcm9tICcuL3RzLWVzdHJlZS1ub2RlLnRzJztcblxuLyoqXG4gKiBUaGUgaWQgb2YgdGhlIHVuaWNvcm4gcnVsZSB0aGlzIHJ1bGUgZGVsZWdhdGVzIHRvLCBpbnNpZGUgdGhlIGB1bmljb3JuYCBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBVTklDT1JOX1JVTEVfTkFNRSA9ICdwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnknO1xuXG4vKipcbiAqIFRoZSBtZXNzYWdlIGlkIHVuaWNvcm4gcmVwb3J0cyBhIHRlcm5hcnkgdW5kZXIgd2hlbiBhIGxvZ2ljYWwgb3BlcmF0b3IgY291bGQgcmVwbGFjZSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5L2Vycm9yJztcblxudHlwZSBMb2dpY2FsT3BlcmF0b3IgPSAnJiYnIHwgJ3x8JztcblxuaW50ZXJmYWNlIFVuaWNvcm5SZXBvcnREZXNjcmlwdG9yRmllbGRzIHtcbiAgcmVhZG9ubHkgbWVzc2FnZUlkPzogc3RyaW5nO1xuICByZWFkb25seSBub2RlOiBOb2RlO1xufVxuXG5jb25zdCB1bmljb3JuUnVsZSA9IGdldFVuaWNvcm5SdWxlKCk7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVwb3J0aW5nIHdoYXQgYHVuaWNvcm4vcHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5YCByZXBvcnRzLCBmaXhpbmcgYSB0ZXJuYXJ5IHdpdGggYSBib29sZWFuXG4gKiBsaXRlcmFsIGJyYW5jaCBpbiBhIFR5cGVTY3JpcHQgZmlsZSB0b28uXG4gKi9cbmV4cG9ydCBjb25zdCBwcmVmZXJMb2dpY2FsT3BlcmF0b3JPdmVyVGVybmFyeTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHJlcG9ydGluZ0NvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQgPSBPYmplY3QuY3JlYXRlKGNvbnRleHQsIHtcbiAgICAgIHJlcG9ydDoge1xuICAgICAgICB2YWx1ZShkZXNjcmlwdG9yOiBSdWxlLlJlcG9ydERlc2NyaXB0b3IpOiB2b2lkIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh3aXRoTGl0ZXJhbEJyYW5jaEZpeChkZXNjcmlwdG9yLCBjb250ZXh0LnNvdXJjZUNvZGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVuaWNvcm5SdWxlLmNyZWF0ZShyZXBvcnRpbmdDb250ZXh0KTtcbiAgfSxcbiAgbWV0YToge1xuICAgIC4uLnVuaWNvcm5SdWxlLm1ldGEsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdQcmVmZXIgYSBsb2dpY2FsIG9wZXJhdG9yIG92ZXIgYSB0ZXJuYXJ5LCBmaXhpbmcgYSBib29sZWFuIGxpdGVyYWwgYnJhbmNoIGluIFR5cGVTY3JpcHQgdG9vJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0Qm9vbGVhbkxpdGVyYWxWYWx1ZShub2RlOiBOb2RlKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdMaXRlcmFsJyAmJiB0eXBlb2Ygbm9kZS52YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gbm9kZS52YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0VW5pY29yblJ1bGUoKTogUnVsZS5SdWxlTW9kdWxlIHtcbiAgY29uc3QgcnVsZSA9IGVzbGludFBsdWdpblVuaWNvcm4ucnVsZXM/LltVTklDT1JOX1JVTEVfTkFNRV07XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEd1YXJkcyBhbiB1cGdyYWRlIG9mIGVzbGludC1wbHVnaW4tdW5pY29ybiB0aGF0IGRyb3BzIG9yIHJlbmFtZXMgdGhlIHJ1bGUuICovXG4gIGlmICghcnVsZSB8fCB0eXBlb2YgcnVsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXNsaW50LXBsdWdpbi11bmljb3JuIG5vIGxvbmdlciBkZWZpbmVzIHRoZSAke1VOSUNPUk5fUlVMRV9OQU1FfSBydWxlLmApO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgcmV0dXJuIHJ1bGU7XG59XG5cbmZ1bmN0aW9uIGlzUHJvdmVuQm9vbGVhbihub2RlOiBFeHByZXNzaW9uLCBzb3VyY2VDb2RlOiBSdWxlLlJ1bGVDb250ZXh0Wydzb3VyY2VDb2RlJ10pOiBib29sZWFuIHtcbiAgY29uc3Qgc2VydmljZXMgPSBzb3VyY2VDb2RlLnBhcnNlclNlcnZpY2VzIGFzIFBhcnRpYWw8UGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uPjtcbiAgaWYgKCFzZXJ2aWNlcy5wcm9ncmFtIHx8ICFzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB0eXBlID0gc2VydmljZXMucHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpLmdldFR5cGVBdExvY2F0aW9uKHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQodG9UU0VTVHJlZU5vZGUobm9kZSkpKTtcbiAgY29uc3QgY29uc3RpdHVlbnRzID0gdHlwZS5pc1VuaW9uKCkgPyB0eXBlLnR5cGVzIDogW3R5cGVdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBgVHlwZUZsYWdzYCBpcyBhIGJpdCBzZXQuXG4gIHJldHVybiBjb25zdGl0dWVudHMuZXZlcnkoKGNvbnN0aXR1ZW50KSA9PiAoY29uc3RpdHVlbnQuZmxhZ3MgJiBUeXBlRmxhZ3MuQm9vbGVhbkxpa2UpICE9PSAwKTtcbn1cblxuZnVuY3Rpb24gbmVlZHNQYXJlbnRoZXNlcyhub2RlOiBFeHByZXNzaW9uLCBvcGVyYXRvcjogJyEnIHwgTG9naWNhbE9wZXJhdG9yKTogYm9vbGVhbiB7XG4gIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgY2FzZSAnQXJyYXlFeHByZXNzaW9uJzpcbiAgICBjYXNlICdBd2FpdEV4cHJlc3Npb24nOlxuICAgIGNhc2UgJ0NhbGxFeHByZXNzaW9uJzpcbiAgICBjYXNlICdDaGFpbkV4cHJlc3Npb24nOlxuICAgIGNhc2UgJ0lkZW50aWZpZXInOlxuICAgIGNhc2UgJ0xpdGVyYWwnOlxuICAgIGNhc2UgJ01lbWJlckV4cHJlc3Npb24nOlxuICAgIGNhc2UgJ05ld0V4cHJlc3Npb24nOlxuICAgIGNhc2UgJ09iamVjdEV4cHJlc3Npb24nOlxuICAgIGNhc2UgJ1RhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbic6XG4gICAgY2FzZSAnVGVtcGxhdGVMaXRlcmFsJzpcbiAgICBjYXNlICdUaGlzRXhwcmVzc2lvbic6XG4gICAgY2FzZSAnVW5hcnlFeHByZXNzaW9uJzoge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjYXNlICdCaW5hcnlFeHByZXNzaW9uJzoge1xuICAgICAgcmV0dXJuIG9wZXJhdG9yID09PSAnISc7XG4gICAgfVxuICAgIGNhc2UgJ0xvZ2ljYWxFeHByZXNzaW9uJzoge1xuICAgICAgcmV0dXJuIG9wZXJhdG9yID09PSAnIScgfHwgbm9kZS5vcGVyYXRvciA9PT0gJz8/JyB8fCAob3BlcmF0b3IgPT09ICcmJicgJiYgbm9kZS5vcGVyYXRvciA9PT0gJ3x8Jyk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0b09wZXJhbmRUZXh0KG5vZGU6IEV4cHJlc3Npb24sIG9wZXJhdG9yOiAnIScgfCBMb2dpY2FsT3BlcmF0b3IsIHNvdXJjZUNvZGU6IFJ1bGUuUnVsZUNvbnRleHRbJ3NvdXJjZUNvZGUnXSk6IHN0cmluZyB7XG4gIGNvbnN0IHRleHQgPSBzb3VyY2VDb2RlLmdldFRleHQobm9kZSk7XG4gIHJldHVybiBuZWVkc1BhcmVudGhlc2VzKG5vZGUsIG9wZXJhdG9yKSA/IGAoJHt0ZXh0fSlgIDogdGV4dDtcbn1cblxuZnVuY3Rpb24gd2l0aExpdGVyYWxCcmFuY2hGaXgoZGVzY3JpcHRvcjogUnVsZS5SZXBvcnREZXNjcmlwdG9yLCBzb3VyY2VDb2RlOiBSdWxlLlJ1bGVDb250ZXh0Wydzb3VyY2VDb2RlJ10pOiBSdWxlLlJlcG9ydERlc2NyaXB0b3Ige1xuICB0eXBlIFVuaWNvcm5SZXBvcnREZXNjcmlwdG9yID0gUnVsZS5SZXBvcnREZXNjcmlwdG9yT3B0aW9ucyAmIFVuaWNvcm5SZXBvcnREZXNjcmlwdG9yRmllbGRzO1xuICBjb25zdCB7IGZpeCwgbWVzc2FnZUlkLCBub2RlLCBzdWdnZXN0IH0gPSBkZXNjcmlwdG9yIGFzIFVuaWNvcm5SZXBvcnREZXNjcmlwdG9yO1xuXG4gIC8vIFVuaWNvcm4gZml4ZXMgdGhlIHNoYXBlIGl0c2VsZiBvdXRzaWRlIFR5cGVTY3JpcHQsIGFuZCBvZmZlcnMgc3VnZ2VzdGlvbnMgZm9yIHRoZSBzaGFwZXMgaXQgY2Fubm90IGZpeC5cbiAgaWYgKG1lc3NhZ2VJZCAhPT0gTUVTU0FHRV9JRCB8fCBmaXggfHwgc3VnZ2VzdCkge1xuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9XG5cbiAgLy8gVW5pY29ybiByZXBvcnRzIHRoaXMgbWVzc2FnZSBvbiB0aGUgdGVybmFyeSBpdHNlbGYuXG4gIGNvbnN0IGNvbmRpdGlvbmFsRXhwcmVzc2lvbiA9IG5vZGUgYXMgQ29uZGl0aW9uYWxFeHByZXNzaW9uO1xuICBjb25zdCB7IGFsdGVybmF0ZSwgY29uc2VxdWVudCwgdGVzdCB9ID0gY29uZGl0aW9uYWxFeHByZXNzaW9uO1xuICBjb25zdCBjb25zZXF1ZW50VmFsdWUgPSBnZXRCb29sZWFuTGl0ZXJhbFZhbHVlKGNvbnNlcXVlbnQpO1xuICBjb25zdCBhbHRlcm5hdGVWYWx1ZSA9IGdldEJvb2xlYW5MaXRlcmFsVmFsdWUoYWx0ZXJuYXRlKTtcbiAgY29uc3QgbGl0ZXJhbFZhbHVlID0gY29uc2VxdWVudFZhbHVlID8/IGFsdGVybmF0ZVZhbHVlO1xuXG4gIGlmIChcbiAgICBsaXRlcmFsVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgIHx8IChjb25zZXF1ZW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBhbHRlcm5hdGVWYWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgIHx8IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNJbnNpZGUoY29uZGl0aW9uYWxFeHByZXNzaW9uKS5sZW5ndGggPiAwXG4gICkge1xuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9XG5cbiAgY29uc3QgaXNDb25zZXF1ZW50TGl0ZXJhbCA9IGNvbnNlcXVlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCBvdGhlciA9IGlzQ29uc2VxdWVudExpdGVyYWwgPyBhbHRlcm5hdGUgOiBjb25zZXF1ZW50O1xuICBjb25zdCBzaG91bGROZWdhdGVUZXN0ID0gaXNDb25zZXF1ZW50TGl0ZXJhbCAhPT0gbGl0ZXJhbFZhbHVlO1xuICBjb25zdCBvcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yID0gbGl0ZXJhbFZhbHVlID8gJ3x8JyA6ICcmJic7XG4gIGxldCB0ZXN0VGV4dDogc3RyaW5nO1xuICBpZiAoc2hvdWxkTmVnYXRlVGVzdCkge1xuICAgIHRlc3RUZXh0ID0gYCEke3RvT3BlcmFuZFRleHQodGVzdCwgJyEnLCBzb3VyY2VDb2RlKX1gO1xuICB9IGVsc2UgaWYgKGlzUHJvdmVuQm9vbGVhbih0ZXN0LCBzb3VyY2VDb2RlKSkge1xuICAgIHRlc3RUZXh0ID0gdG9PcGVyYW5kVGV4dCh0ZXN0LCBvcGVyYXRvciwgc291cmNlQ29kZSk7XG4gIH0gZWxzZSB7XG4gICAgdGVzdFRleHQgPSBgISEke3RvT3BlcmFuZFRleHQodGVzdCwgJyEnLCBzb3VyY2VDb2RlKX1gO1xuICB9XG4gIGNvbnN0IG90aGVyVGV4dCA9IHRvT3BlcmFuZFRleHQob3RoZXIsIG9wZXJhdG9yLCBzb3VyY2VDb2RlKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlc2NyaXB0b3IsXG4gICAgZml4KGZpeGVyKTogUnVsZS5GaXgge1xuICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0KGNvbmRpdGlvbmFsRXhwcmVzc2lvbiwgYCR7dGVzdFRleHR9ICR7b3BlcmF0b3J9ICR7b3Ro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
|
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
* (`!a && b`), but only outside TypeScript. `unicorn/prefer-ternary` fixes `if (a) { return false; } return b;` into
|
|
11
11
|
* exactly that ternary, so in a TypeScript file `lint:fix` produced an error it then could not fix, and every site
|
|
12
12
|
* had to be rewritten by hand. This rule reports what unicorn reports and adds the fix where one branch is a boolean
|
|
13
|
-
* literal.
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* literal. Unicorn reports the shape only when the other branch is boolean, and since unicorn 79 for a test of any
|
|
14
|
+
* type. The rewrite is exact at runtime: a negated test (`a ? false : b` → `!a && b`, `a ? b : true` → `!a || b`) is
|
|
15
|
+
* a boolean already, and otherwise (`a ? true : b` → `a || b`, `a ? b : false` → `a && b`) a test the type checker
|
|
16
|
+
* cannot prove boolean is coerced with `!!`, because `a && b` would return a falsy `a` itself (`null`, `0`, `''`)
|
|
17
|
+
* where the ternary returned `false`. Unicorn coerces with `Boolean(a)`; `!!a` is used here because TypeScript
|
|
18
|
+
* narrows on it, so `!!a && a.b` still type-checks.
|
|
16
19
|
*/
|
|
17
20
|
import type { Rule } from 'eslint' with { 'resolution-mode': 'import' };
|
|
18
21
|
/**
|