@codeperfect/eslint-plugin 2.5.0 → 2.7.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/README.md +3 -0
- package/dist/application/custom-rules.d.ts +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -1
- package/dist/application/custom-rules.js +6 -2
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +2 -2
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +1 -11
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +3 -13
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +0 -1
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.js +1 -2
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +2 -12
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +4 -3
- package/dist/domain/architecture/index.d.ts +2 -1
- package/dist/domain/architecture/index.d.ts.map +1 -1
- package/dist/domain/architecture/index.js +3 -2
- package/dist/domain/architecture/no-import-export-extensions/index.d.ts +2 -0
- package/dist/domain/architecture/no-import-export-extensions/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/index.js +2 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +178 -0
- package/dist/domain/architecture/no-unused-exports/rule.js +4 -2
- package/dist/domain/core/index.d.ts +1 -0
- package/dist/domain/core/index.d.ts.map +1 -1
- package/dist/domain/core/index.js +2 -1
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +6 -1
- package/dist/domain/core/no-useless-delegation/index.d.ts +2 -0
- package/dist/domain/core/no-useless-delegation/index.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/index.js +2 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts +5 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/rule.js +204 -0
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +6 -2
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +38 -3
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +6 -1
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +5 -3
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +4 -2
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -2
- package/dist/domain/testing/aaa/index.d.ts +1 -1
- package/dist/domain/testing/aaa/index.d.ts.map +1 -1
- package/dist/domain/testing/aaa/index.js +1 -1
- package/dist/domain/testing/aaa/types.d.ts +7 -9
- package/dist/domain/testing/aaa/types.d.ts.map +1 -1
- package/dist/domain/testing/aaa/types.js +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -18
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +49 -58
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +4 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +10 -4
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +10 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
- package/dist/infrastructure/codeperfect-plugin.js +3 -2
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +3 -1
- package/package.json +43 -49
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +0 -134
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +0 -49
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +0 -49
- /package/dist/domain/architecture/{consistent-barrel-files → no-import-export-extensions}/no-import-export-extensions-rule.d.ts +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { collectExportedElements } from "./no-unused-exports-declaration-utilities.js";
|
|
3
|
+
import { getTypeScriptProgram } from "./no-unused-exports-identifier-utilities.js";
|
|
2
4
|
import { DEFAULT_PUBLIC_API_FILES, DEFAULT_TEST_FILE_PATTERNS, getOptions, isLintableFilename, isPublicApiFile, } from "./no-unused-exports-options.js";
|
|
3
|
-
import { classifyExportUsage, collectCrossFileUsages,
|
|
5
|
+
import { classifyExportUsage, collectCrossFileUsages, } from "./no-unused-exports-usage-utilities.js";
|
|
4
6
|
/** ESLint rule flagging exports unused in production code. */
|
|
5
7
|
const noUnusedExportsRule = {
|
|
6
8
|
create(context) {
|
|
@@ -79,4 +81,4 @@ const noUnusedExportsRule = {
|
|
|
79
81
|
},
|
|
80
82
|
};
|
|
81
83
|
export { noUnusedExportsRule };
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1leHBvcnRzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsOERBQThEO0FBQzlELE1BQU0sbUJBQW1CLEdBQW9CO0lBQzNDLE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFFbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxPQUFPLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFaEUsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLENBQUMsSUFBSTtnQkFDVixNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFNUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQzdDLHNCQUFzQixDQUNwQixPQUFPLEVBQ1AsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsT0FBTyxDQUNSLENBQ0YsQ0FBQztvQkFFRixJQUFJLG1CQUFtQixLQUFLLFlBQVksRUFBRSxDQUFDO3dCQUN6QyxTQUFTO29CQUNYLENBQUM7b0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRTt3QkFDNUMsU0FBUyxFQUNQLG1CQUFtQixLQUFLLFdBQVc7NEJBQ2pDLENBQUMsQ0FBQyxpQkFBaUI7NEJBQ25CLENBQUMsQ0FBQyxjQUFjO3dCQUNwQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osY0FBYyxFQUFFO1lBQ2Q7Z0JBQ0UsY0FBYyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQztnQkFDN0MsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLDBCQUEwQixDQUFDO2FBQ2xEO1NBQ0Y7UUFDRCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0VBQWtFO1lBQ3BFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSxvRkFBb0Y7U0FDMUY7UUFDRCxRQUFRLEVBQUU7WUFDUixZQUFZLEVBQ1YsaUhBQWlIO1lBQ25ILGVBQWUsRUFDYixnSEFBZ0g7U0FDbkg7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFO3dCQUNkLFdBQVcsRUFBRSxvREFBb0Q7d0JBQ2pFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNELGdCQUFnQixFQUFFO3dCQUNoQixXQUFXLEVBQ1QsZ0VBQWdFO3dCQUNsRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUN6QixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxJQUFJLEVBQUUsT0FBTztxQkFDZDtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbXBvcnQgeyBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyB9IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLWRlY2xhcmF0aW9uLXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ2V0VHlwZVNjcmlwdFByb2dyYW0gfSBmcm9tIFwiLi9uby11bnVzZWQtZXhwb3J0cy1pZGVudGlmaWVyLXV0aWxpdGllc1wiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9QVUJMSUNfQVBJX0ZJTEVTLFxuICBERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOUyxcbiAgZ2V0T3B0aW9ucyxcbiAgaXNMaW50YWJsZUZpbGVuYW1lLFxuICBpc1B1YmxpY0FwaUZpbGUsXG59IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLW9wdGlvbnNcIjtcbmltcG9ydCB7XG4gIGNsYXNzaWZ5RXhwb3J0VXNhZ2UsXG4gIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMsXG59IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLXVzYWdlLXV0aWxpdGllc1wiO1xuXG4vKiogRVNMaW50IHJ1bGUgZmxhZ2dpbmcgZXhwb3J0cyB1bnVzZWQgaW4gcHJvZHVjdGlvbiBjb2RlLiAqL1xuY29uc3Qgbm9VbnVzZWRFeHBvcnRzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCBzdGF0ZSA9IGdldE9wdGlvbnMoY29udGV4dC5vcHRpb25zKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWU7XG5cbiAgICBpZiAoIWlzTGludGFibGVGaWxlbmFtZShmaWxlbmFtZSkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmFtID0gZ2V0VHlwZVNjcmlwdFByb2dyYW0oY29udGV4dCk7XG5cbiAgICBpZiAocHJvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUocHJvZ3JhbS5nZXRDdXJyZW50RGlyZWN0b3J5KCkpO1xuXG4gICAgaWYgKGlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIHByb2plY3RSb290KSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhwb3J0ZWRFbGVtZW50cyA9IGNvbGxlY3RFeHBvcnRlZEVsZW1lbnRzKG5vZGUuYm9keSk7XG5cbiAgICAgICAgaWYgKGV4cG9ydGVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGV4cG9ydGVkRWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCB1c2FnZUNsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnlFeHBvcnRVc2FnZShcbiAgICAgICAgICAgIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMoXG4gICAgICAgICAgICAgIHByb2dyYW0sXG4gICAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgcHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodXNhZ2VDbGFzc2lmaWNhdGlvbiA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIGRhdGE6IHsgZXhwb3J0ZWROYW1lOiBlbGVtZW50LmV4cG9ydGVkTmFtZSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOlxuICAgICAgICAgICAgICB1c2FnZUNsYXNzaWZpY2F0aW9uID09PSBcInRlc3Qtb25seVwiXG4gICAgICAgICAgICAgICAgPyBcInVzZWRPbmx5SW5UZXN0c1wiXG4gICAgICAgICAgICAgICAgOiBcInVudXNlZEV4cG9ydFwiLFxuICAgICAgICAgICAgbm9kZTogZWxlbWVudC5ub2RlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBwdWJsaWNBcGlGaWxlczogWy4uLkRFRkFVTFRfUFVCTElDX0FQSV9GSUxFU10sXG4gICAgICAgIHRlc3RGaWxlUGF0dGVybnM6IFsuLi5ERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOU10sXG4gICAgICB9LFxuICAgIF0sXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZXhwb3J0cyB0aGF0IGFyZSB1bnVzZWQgb3IgY29uc3VtZWQgb25seSBieSB0ZXN0IGZpbGVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdW51c2VkLWV4cG9ydHMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICB1bnVzZWRFeHBvcnQ6XG4gICAgICAgIFwiRXhwb3J0ICd7e2V4cG9ydGVkTmFtZX19JyBpcyBuZXZlciBjb25zdW1lZCBieSBhbnkgZmlsZSBpbiB0aGUgcHJvamVjdDsgbWFrZSBpdCBwcml2YXRlIGJ5IHJlbW92aW5nIHRoZSBleHBvcnQuXCIsXG4gICAgICB1c2VkT25seUluVGVzdHM6XG4gICAgICAgIFwiRXhwb3J0ICd7e2V4cG9ydGVkTmFtZX19JyBpcyBjb25zdW1lZCBvbmx5IGJ5IHRlc3QgZmlsZXM7IG1vdmUgaXQgdG8gdGhlIHRlc3QgZmlsZSBvciBhIHRlc3QgdXRpbGl0aWVzIGZvbGRlci5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwdWJsaWNBcGlGaWxlczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmlsZSBnbG9icyB0aGF0IGRlZmluZSBwdWJsaWMgQVBJIGV4cG9ydCBzdXJmYWNlcy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVzdEZpbGVQYXR0ZXJuczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiRmlsZSBnbG9icyB0cmVhdGVkIGFzIHRlc3RzIHdoZW4gY2xhc3NpZnlpbmcgZXhwb3J0IGNvbnN1bWVycy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub1VudXNlZEV4cG9ydHNSdWxlIH07XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { noUselessDelegationRule } from "./no-useless-delegation/index.js";
|
|
2
3
|
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { noUselessDelegationRule } from "./no-useless-delegation/index.js";
|
|
2
3
|
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH0gZnJvbSBcIi4vbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIjtcbmV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH0gZnJvbSBcIi4vbm8tdXNlbGVzcy1kZWxlZ2F0aW9uXCI7XG5leHBvcnQgeyBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUgfSBmcm9tIFwiLi9wcmVmZXItaW50ZXJmYWNlLXR5cGVzXCI7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAmFnC,4EAA4E;AAC5E,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAwBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -42,6 +42,9 @@ const reportVariableDeclaration = (context, node) => {
|
|
|
42
42
|
...(fix !== void 0 && { fix }),
|
|
43
43
|
messageId: "singleDeclarator",
|
|
44
44
|
node: node,
|
|
45
|
+
...(fix !== void 0 && {
|
|
46
|
+
suggest: [{ fix, messageId: "splitDeclaration" }],
|
|
47
|
+
}),
|
|
45
48
|
});
|
|
46
49
|
};
|
|
47
50
|
/** ESLint rule implementation for single-declarator variable statements. */
|
|
@@ -58,12 +61,14 @@ const noMultipleDeclaratorsRule = {
|
|
|
58
61
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-multiple-declarators.md",
|
|
59
62
|
},
|
|
60
63
|
fixable: "code",
|
|
64
|
+
hasSuggestions: true,
|
|
61
65
|
messages: {
|
|
62
66
|
singleDeclarator: "Declare exactly one variable per declaration statement.",
|
|
67
|
+
splitDeclaration: "Split this declaration into separate single-variable statements.",
|
|
63
68
|
},
|
|
64
69
|
schema: [],
|
|
65
70
|
type: "suggestion",
|
|
66
71
|
},
|
|
67
72
|
};
|
|
68
73
|
export { noMultipleDeclaratorsRule };
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixJQUE2QixFQUM3QixZQUErQyxFQUMvQyxVQUE0QixFQUN1QixFQUFFO0lBQ3JELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9ELElBQUksa0JBQWtCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBcUIsRUFBWSxFQUFFLENBQ3pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsSUFBSSxDQUFDLEtBQUssRUFDVixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQ3ZELENBQUM7QUFDTixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FDaEMsT0FBeUIsRUFDekIsSUFBNkIsRUFDdkIsRUFBRTtJQUNSLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBRTdDLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDOUIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixJQUFJLEVBQUUsSUFBNEI7UUFDbEMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsSUFBSTtZQUNwQixPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztTQUNsRCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsNEVBQTRFO0FBQzVFLE1BQU0seUJBQXlCLEdBQW9CO0lBQ2pELE1BQU0sRUFBRSxDQUFDLE9BQXlCLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELG1CQUFtQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7WUFDN0MseUJBQXlCLENBQUMsT0FBTyxFQUFFLElBQStCLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQ0YsQ0FBQztJQUNGLElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxnRkFBZ0Y7WUFDbEYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLDBGQUEwRjtTQUNoRztRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7UUFDcEIsUUFBUSxFQUFFO1lBQ1IsZ0JBQWdCLEVBQ2QseURBQXlEO1lBQzNELGdCQUFnQixFQUNkLGtFQUFrRTtTQUNyRTtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgU291cmNlQ29kZUFjY2VzcyxcbiAgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGJ1aWxkUmVwbGFjZW1lbnQsXG4gIGNhbkZpeCxcbiAgZ2V0UmFuZ2VkRGVjbGFyYXRpb25zLFxuICBnZXRTb3VyY2VDb2RlLFxuICBnZXRTb3VyY2VUZXh0LFxufSBmcm9tIFwiLi9ydWxlLXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgaGFzRml4RGF0YSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRvZml4IGNhbGxiYWNrIHdoZW4gdGhlIGRlY2xhcmF0aW9uIGNhbiBiZSByZXdyaXR0ZW4gc2FmZWx5LlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdG9ycyBmcm9tIHRoZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gc291cmNlQ29kZSBTb3VyY2UgYWNjZXNzIHdyYXBwZXIuXG4gKiBAcmV0dXJucyBGaXggY2FsbGJhY2sgd2hlbiB0aGUgZGVjbGFyYXRpb24gaXMgc2FmZSB0byBzcGxpdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXggPSBjcmVhdGVEZWNsYXJhdGlvbkZpeChub2RlLCBkZWNsYXJhdGlvbnMsIHNvdXJjZUNvZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZURlY2xhcmF0aW9uRml4ID0gKFxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgZGVjbGFyYXRpb25zOiByZWFkb25seSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlW10sXG4gIHNvdXJjZUNvZGU6IFNvdXJjZUNvZGVBY2Nlc3MsXG4pOiAoKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcikgPT4gUnVsZS5GaXgpIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG5cbiAgaWYgKCFjYW5GaXgobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VUZXh0KSB8fCAhaGFzRml4RGF0YShub2RlKSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCByYW5nZWREZWNsYXJhdGlvbnMgPSBnZXRSYW5nZWREZWNsYXJhdGlvbnMoZGVjbGFyYXRpb25zKTtcbiAgaWYgKHJhbmdlZERlY2xhcmF0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT5cbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgbm9kZS5yYW5nZSxcbiAgICAgIGJ1aWxkUmVwbGFjZW1lbnQobm9kZSwgcmFuZ2VkRGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKSxcbiAgICApO1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIGRlY2xhcmF0aW9ucyB0aGF0IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBkZWNsYXJhdG9yLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gcmVwb3J0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydFZhcmlhYmxlRGVjbGFyYXRpb24oY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0VmFyaWFibGVEZWNsYXJhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gbm9kZS5kZWNsYXJhdGlvbnMgPz8gW107XG5cbiAgaWYgKGRlY2xhcmF0aW9ucy5sZW5ndGggPD0gMSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZUNvZGUgPSBnZXRTb3VyY2VDb2RlKGNvbnRleHQpO1xuICBjb25zdCBmaXggPSBjcmVhdGVEZWNsYXJhdGlvbkZpeChub2RlLCBkZWNsYXJhdGlvbnMsIHNvdXJjZUNvZGUpO1xuXG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICAuLi4oZml4ICE9PSB2b2lkIDAgJiYgeyBmaXggfSksXG4gICAgbWVzc2FnZUlkOiBcInNpbmdsZURlY2xhcmF0b3JcIixcbiAgICBub2RlOiBub2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7XG4gICAgICBzdWdnZXN0OiBbeyBmaXgsIG1lc3NhZ2VJZDogXCJzcGxpdERlY2xhcmF0aW9uXCIgfV0sXG4gICAgfSksXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBzaW5nbGUtZGVjbGFyYXRvciB2YXJpYWJsZSBzdGF0ZW1lbnRzLiAqL1xuY29uc3Qgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGU6IChjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT4gKHtcbiAgICBWYXJpYWJsZURlY2xhcmF0aW9uOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUgYXMgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuICAgIH0sXG4gIH0pLFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gY29udGFpbiBleGFjdGx5IG9uZSBkZWNsYXJhdG9yIHBlciBzdGF0ZW1lbnQuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHNpbmdsZURlY2xhcmF0b3I6XG4gICAgICAgIFwiRGVjbGFyZSBleGFjdGx5IG9uZSB2YXJpYWJsZSBwZXIgZGVjbGFyYXRpb24gc3RhdGVtZW50LlwiLFxuICAgICAgc3BsaXREZWNsYXJhdGlvbjpcbiAgICAgICAgXCJTcGxpdCB0aGlzIGRlY2xhcmF0aW9uIGludG8gc2VwYXJhdGUgc2luZ2xlLXZhcmlhYmxlIHN0YXRlbWVudHMuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSB9O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-useless-delegation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { noUselessDelegationRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tdXNlbGVzcy1kZWxlZ2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-useless-delegation/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA6OnC,kFAAkF;AAClF,QAAA,MAAM,uBAAuB,EAAE,IAAI,CAAC,UAqCnC,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a node value when it is an ESTree node.
|
|
3
|
+
* @param value Candidate AST value.
|
|
4
|
+
* @returns The value as an ESTree node when it has a type discriminator.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const node = asNode({ type: "Identifier" });
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const asNode = (value) => typeof value === "object" && value !== null && "type" in value
|
|
11
|
+
? value
|
|
12
|
+
: void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a node array while rejecting malformed AST data.
|
|
15
|
+
* @param value Candidate AST value.
|
|
16
|
+
* @returns AST nodes when every array item is a node.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const nodes = asNodeArray([{ type: "Identifier" }]);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
const asNodeArray = (value) => Array.isArray(value) && value.every((item) => asNode(item) !== void 0)
|
|
23
|
+
? value
|
|
24
|
+
: void 0;
|
|
25
|
+
/**
|
|
26
|
+
* Reads an identifier name from a node.
|
|
27
|
+
* @param node Candidate identifier node.
|
|
28
|
+
* @returns Identifier name when the node is an identifier.
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const name = getIdentifierName({ name: "run", type: "Identifier" });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const getIdentifierName = (node) => node?.type === "Identifier" && typeof node["name"] === "string"
|
|
35
|
+
? node["name"]
|
|
36
|
+
: void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Gets the called expression from a function with one return statement.
|
|
39
|
+
* @param functionNode Function node to inspect.
|
|
40
|
+
* @returns The directly returned call expression when present.
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const call = getDelegatedCall(functionNode);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const getDelegatedCall = (functionNode) => {
|
|
47
|
+
if (functionNode.async === true || functionNode.generator === true) {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
const body = asNode(functionNode["body"]);
|
|
51
|
+
if (body === void 0) {
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
if (body.type === "CallExpression") {
|
|
55
|
+
return body;
|
|
56
|
+
}
|
|
57
|
+
const statements = asNodeArray(body["body"]);
|
|
58
|
+
if (body.type !== "BlockStatement" || statements?.length !== 1) {
|
|
59
|
+
return void 0;
|
|
60
|
+
}
|
|
61
|
+
const returnStatement = statements[0];
|
|
62
|
+
return returnStatement?.type === "ReturnStatement"
|
|
63
|
+
? asNode(returnStatement["argument"])
|
|
64
|
+
: void 0;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Gets parameter names and whether each parameter is a rest parameter.
|
|
68
|
+
* @param functionNode Function node to inspect.
|
|
69
|
+
* @returns Named parameter metadata when every parameter is supported.
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const parameters = getParameters(functionNode);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
const getParameters = (functionNode) => {
|
|
76
|
+
const parameters = asNodeArray(functionNode["params"]);
|
|
77
|
+
if (parameters === void 0) {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
const result = [];
|
|
81
|
+
for (const parameter of parameters) {
|
|
82
|
+
const isRest = parameter.type === "RestElement";
|
|
83
|
+
const name = getIdentifierName(isRest ? asNode(parameter["argument"]) : parameter);
|
|
84
|
+
if (name === void 0) {
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
result.push({ isRest, name });
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Determines whether one call argument forwards its corresponding parameter.
|
|
93
|
+
* @param argument Call argument to inspect.
|
|
94
|
+
* @param parameter Corresponding function parameter.
|
|
95
|
+
* @returns Whether the argument forwards the parameter without change.
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const forwards = forwardsParameter(argument, parameter);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
const forwardsParameter = (argument, parameter) => {
|
|
102
|
+
if (parameter.isRest) {
|
|
103
|
+
return (argument.type === "SpreadElement" &&
|
|
104
|
+
getIdentifierName(asNode(argument["argument"])) === parameter.name);
|
|
105
|
+
}
|
|
106
|
+
return getIdentifierName(argument) === parameter.name;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Determines whether a node is a plain named reference.
|
|
110
|
+
* @param node Candidate receiver node to inspect.
|
|
111
|
+
* @returns Whether the node is a plain identifier reference.
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const isNamed = isNamedReceiver({ type: "Identifier" });
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
const isNamedReceiver = (node) => node?.type === "Identifier";
|
|
118
|
+
/**
|
|
119
|
+
* Determines whether a function does nothing except directly call another function.
|
|
120
|
+
* @param functionNode Function node to inspect.
|
|
121
|
+
* @param functionName Declared wrapper function name.
|
|
122
|
+
* @returns Whether the function is an exact synchronous delegation.
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const isDelegation = isUselessDelegation(functionNode, "run");
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
const isUselessDelegation = (functionNode, functionName) => {
|
|
129
|
+
const call = getDelegatedCall(functionNode);
|
|
130
|
+
const parameters = getParameters(functionNode);
|
|
131
|
+
const arguments_ = asNodeArray(call?.["arguments"]);
|
|
132
|
+
const callee = asNode(call?.["callee"]);
|
|
133
|
+
if (call?.type !== "CallExpression" ||
|
|
134
|
+
parameters === void 0 ||
|
|
135
|
+
arguments_ === void 0 ||
|
|
136
|
+
callee === void 0 ||
|
|
137
|
+
// A method call is only a replaceable delegation when its receiver is a
|
|
138
|
+
// plain named reference (e.g. `service.run`). Expression receivers such
|
|
139
|
+
// as type assertions, calls, or literals cannot be inlined at the call
|
|
140
|
+
// site, so the wrapper is not useless.
|
|
141
|
+
(callee.type === "MemberExpression" &&
|
|
142
|
+
!isNamedReceiver(asNode(callee["object"]))) ||
|
|
143
|
+
getIdentifierName(callee) === functionName ||
|
|
144
|
+
arguments_.length !== parameters.length) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
return arguments_.every((argument, index) => {
|
|
148
|
+
const parameter = parameters[index];
|
|
149
|
+
return parameter !== void 0 && forwardsParameter(argument, parameter);
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Reports a function when it is a no-op delegation.
|
|
154
|
+
* @param context Rule execution context.
|
|
155
|
+
* @param functionNode Function node to inspect.
|
|
156
|
+
* @param nameNode Declared wrapper name node.
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* reportIfUselessDelegation(context, functionNode, nameNode);
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
const reportIfUselessDelegation = (context, functionNode, nameNode) => {
|
|
163
|
+
const functionName = getIdentifierName(nameNode);
|
|
164
|
+
if (functionName === void 0 ||
|
|
165
|
+
!isUselessDelegation(functionNode, functionName)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
context.report({
|
|
169
|
+
messageId: "uselessDelegation",
|
|
170
|
+
node: nameNode,
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
/** ESLint rule implementation for functions that only forward their arguments. */
|
|
174
|
+
const noUselessDelegationRule = {
|
|
175
|
+
create: (context) => ({
|
|
176
|
+
FunctionDeclaration: (node) => {
|
|
177
|
+
const functionNode = node;
|
|
178
|
+
reportIfUselessDelegation(context, functionNode, asNode(functionNode["id"]));
|
|
179
|
+
},
|
|
180
|
+
VariableDeclarator: (node) => {
|
|
181
|
+
const declarator = node;
|
|
182
|
+
const initializer = asNode(declarator["init"]);
|
|
183
|
+
if (initializer?.type !== "ArrowFunctionExpression" &&
|
|
184
|
+
initializer?.type !== "FunctionExpression") {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
reportIfUselessDelegation(context, initializer, asNode(declarator["id"]));
|
|
188
|
+
},
|
|
189
|
+
}),
|
|
190
|
+
meta: {
|
|
191
|
+
docs: {
|
|
192
|
+
description: "Disallow named functions that only delegate directly to another call.",
|
|
193
|
+
recommended: false,
|
|
194
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-useless-delegation.md",
|
|
195
|
+
},
|
|
196
|
+
messages: {
|
|
197
|
+
uselessDelegation: "This function only delegates to another call; remove the wrapper or call the target directly.",
|
|
198
|
+
},
|
|
199
|
+
schema: [],
|
|
200
|
+
type: "suggestion",
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
export { noUselessDelegationRule };
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby11c2VsZXNzLWRlbGVnYXRpb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBb0IsRUFBRSxDQUNsRCxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSztJQUM1RCxDQUFDLENBQUUsS0FBYztJQUNqQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFzQixFQUFFLENBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBRSxLQUFnQjtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFzQixFQUFFLENBQ3ZFLElBQUksRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVE7SUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFrQixFQUFvQixFQUFFO0lBQ2hFLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxPQUFP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Q2YsK0ZBQStGO1NBQ2xHO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtLQUNuQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuLyoqIE9uZSBuYW1lZCBwYXJhbWV0ZXIgYW5kIHdoZXRoZXIgaXQgbXVzdCBiZSBzcHJlYWQgYXQgdGhlIGNhbGwgc2l0ZS4gKi9cbmludGVyZmFjZSBEZWxlZ2F0ZWRQYXJhbWV0ZXIge1xuICAvKiogV2hldGhlciB0aGlzIHBhcmFtZXRlciB1c2VzIHJlc3Qgc3ludGF4LiAqL1xuICBpc1Jlc3Q6IGJvb2xlYW47XG4gIC8qKiBQYXJhbWV0ZXIgaWRlbnRpZmllciBuYW1lLiAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBNaW5pbWFsIEVTVHJlZSBub2RlIHNoYXBlIHVzZWQgdG8gaW5zcGVjdCBwYXNzLXRocm91Z2ggZnVuY3Rpb25zLiAqL1xuaW50ZXJmYWNlIE5vZGUge1xuICAvKiogRHluYW1pY2FsbHkgcmVhZCBjaGlsZCBub2RlcyBhbmQgcGFyc2VyLXNwZWNpZmljIHByb3BlcnRpZXMuICovXG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIC8qKiBXaGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBhc3luY2hyb25vdXMuICovXG4gIGFzeW5jPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGEgZ2VuZXJhdG9yLiAqL1xuICBnZW5lcmF0b3I/OiBib29sZWFuO1xuICAvKiogRVNUcmVlIGRpc2NyaW1pbmF0b3IuICovXG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIG5vZGUgdmFsdWUgd2hlbiBpdCBpcyBhbiBFU1RyZWUgbm9kZS5cbiAqIEBwYXJhbSB2YWx1ZSBDYW5kaWRhdGUgQVNUIHZhbHVlLlxuICogQHJldHVybnMgVGhlIHZhbHVlIGFzIGFuIEVTVHJlZSBub2RlIHdoZW4gaXQgaGFzIGEgdHlwZSBkaXNjcmltaW5hdG9yLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBhc05vZGUoeyB0eXBlOiBcIklkZW50aWZpZXJcIiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCBhc05vZGUgPSAodmFsdWU6IHVua25vd24pOiBOb2RlIHwgdW5kZWZpbmVkID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBcInR5cGVcIiBpbiB2YWx1ZVxuICAgID8gKHZhbHVlIGFzIE5vZGUpXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBub2RlIGFycmF5IHdoaWxlIHJlamVjdGluZyBtYWxmb3JtZWQgQVNUIGRhdGEuXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIEFTVCB2YWx1ZS5cbiAqIEByZXR1cm5zIEFTVCBub2RlcyB3aGVuIGV2ZXJ5IGFycmF5IGl0ZW0gaXMgYSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGVzID0gYXNOb2RlQXJyYXkoW3sgdHlwZTogXCJJZGVudGlmaWVyXCIgfV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGFzTm9kZUFycmF5ID0gKHZhbHVlOiB1bmtub3duKTogTm9kZVtdIHwgdW5kZWZpbmVkID0+XG4gIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBhc05vZGUoaXRlbSkgIT09IHZvaWQgMClcbiAgICA/ICh2YWx1ZSBhcyBOb2RlW10pXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogUmVhZHMgYW4gaWRlbnRpZmllciBuYW1lIGZyb20gYSBub2RlLlxuICogQHBhcmFtIG5vZGUgQ2FuZGlkYXRlIGlkZW50aWZpZXIgbm9kZS5cbiAqIEByZXR1cm5zIElkZW50aWZpZXIgbmFtZSB3aGVuIHRoZSBub2RlIGlzIGFuIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZSA9IGdldElkZW50aWZpZXJOYW1lKHsgbmFtZTogXCJydW5cIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0SWRlbnRpZmllck5hbWUgPSAobm9kZTogTm9kZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICBub2RlPy50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJiB0eXBlb2Ygbm9kZVtcIm5hbWVcIl0gPT09IFwic3RyaW5nXCJcbiAgICA/IG5vZGVbXCJuYW1lXCJdXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogR2V0cyB0aGUgY2FsbGVkIGV4cHJlc3Npb24gZnJvbSBhIGZ1bmN0aW9uIHdpdGggb25lIHJldHVybiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRoZSBkaXJlY3RseSByZXR1cm5lZCBjYWxsIGV4cHJlc3Npb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNhbGwgPSBnZXREZWxlZ2F0ZWRDYWxsKGZ1bmN0aW9uTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0RGVsZWdhdGVkQ2FsbCA9IChmdW5jdGlvbk5vZGU6IE5vZGUpOiBOb2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKGZ1bmN0aW9uTm9kZS5hc3luYyA9PT0gdHJ1ZSB8fCBmdW5jdGlvbk5vZGUuZ2VuZXJhdG9yID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGJvZHkgPSBhc05vZGUoZnVuY3Rpb25Ob2RlW1wiYm9keVwiXSk7XG4gIGlmIChib2R5ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgaWYgKGJvZHkudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRzID0gYXNOb2RlQXJyYXkoYm9keVtcImJvZHlcIl0pO1xuICBpZiAoYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCIgfHwgc3RhdGVtZW50cz8ubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJldHVyblN0YXRlbWVudCA9IHN0YXRlbWVudHNbMF07XG4gIHJldHVybiByZXR1cm5TdGF0ZW1lbnQ/LnR5cGUgPT09IFwiUmV0dXJuU3RhdGVtZW50XCJcbiAgICA/IGFzTm9kZShyZXR1cm5TdGF0ZW1lbnRbXCJhcmd1bWVudFwiXSlcbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgbmFtZXMgYW5kIHdoZXRoZXIgZWFjaCBwYXJhbWV0ZXIgaXMgYSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSBmdW5jdGlvbk5vZGUgRnVuY3Rpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgTmFtZWQgcGFyYW1ldGVyIG1ldGFkYXRhIHdoZW4gZXZlcnkgcGFyYW1ldGVyIGlzIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXJhbWV0ZXJzID0gZ2V0UGFyYW1ldGVycyhmdW5jdGlvbk5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFBhcmFtZXRlcnMgPSAoXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbik6IERlbGVnYXRlZFBhcmFtZXRlcltdIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgcGFyYW1ldGVycyA9IGFzTm9kZUFycmF5KGZ1bmN0aW9uTm9kZVtcInBhcmFtc1wiXSk7XG4gIGlmIChwYXJhbWV0ZXJzID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBEZWxlZ2F0ZWRQYXJhbWV0ZXJbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBwYXJhbWV0ZXJzKSB7XG4gICAgY29uc3QgaXNSZXN0ID0gcGFyYW1ldGVyLnR5cGUgPT09IFwiUmVzdEVsZW1lbnRcIjtcbiAgICBjb25zdCBuYW1lID0gZ2V0SWRlbnRpZmllck5hbWUoXG4gICAgICBpc1Jlc3QgPyBhc05vZGUocGFyYW1ldGVyW1wiYXJndW1lbnRcIl0pIDogcGFyYW1ldGVyLFxuICAgICk7XG4gICAgaWYgKG5hbWUgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByZXN1bHQucHVzaCh7IGlzUmVzdCwgbmFtZSB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBvbmUgY2FsbCBhcmd1bWVudCBmb3J3YXJkcyBpdHMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gYXJndW1lbnQgQ2FsbCBhcmd1bWVudCB0byBpbnNwZWN0LlxuICogQHBhcmFtIHBhcmFtZXRlciBDb3JyZXNwb25kaW5nIGZ1bmN0aW9uIHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGZvcndhcmRzIHRoZSBwYXJhbWV0ZXIgd2l0aG91dCBjaGFuZ2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZm9yd2FyZHMgPSBmb3J3YXJkc1BhcmFtZXRlcihhcmd1bWVudCwgcGFyYW1ldGVyKTtcbiAqIGBgYFxuICovXG5jb25zdCBmb3J3YXJkc1BhcmFtZXRlciA9IChcbiAgYXJndW1lbnQ6IE5vZGUsXG4gIHBhcmFtZXRlcjogRGVsZWdhdGVkUGFyYW1ldGVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChwYXJhbWV0ZXIuaXNSZXN0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGFyZ3VtZW50LnR5cGUgPT09IFwiU3ByZWFkRWxlbWVudFwiICYmXG4gICAgICBnZXRJZGVudGlmaWVyTmFtZShhc05vZGUoYXJndW1lbnRbXCJhcmd1bWVudFwiXSkpID09PSBwYXJhbWV0ZXIubmFtZVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZ2V0SWRlbnRpZmllck5hbWUoYXJndW1lbnQpID09PSBwYXJhbWV0ZXIubmFtZTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbm9kZSBpcyBhIHBsYWluIG5hbWVkIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSByZWNlaXZlciBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBub2RlIGlzIGEgcGxhaW4gaWRlbnRpZmllciByZWZlcmVuY2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXNOYW1lZCA9IGlzTmFtZWRSZWNlaXZlcih7IHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTmFtZWRSZWNlaXZlciA9IChub2RlPzogTm9kZSk6IGJvb2xlYW4gPT4gbm9kZT8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCI7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZnVuY3Rpb24gZG9lcyBub3RoaW5nIGV4Y2VwdCBkaXJlY3RseSBjYWxsIGFub3RoZXIgZnVuY3Rpb24uXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBmdW5jdGlvbk5hbWUgRGVjbGFyZWQgd3JhcHBlciBmdW5jdGlvbiBuYW1lLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZnVuY3Rpb24gaXMgYW4gZXhhY3Qgc3luY2hyb25vdXMgZGVsZWdhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpc0RlbGVnYXRpb24gPSBpc1VzZWxlc3NEZWxlZ2F0aW9uKGZ1bmN0aW9uTm9kZSwgXCJydW5cIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNVc2VsZXNzRGVsZWdhdGlvbiA9IChcbiAgZnVuY3Rpb25Ob2RlOiBOb2RlLFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBjYWxsID0gZ2V0RGVsZWdhdGVkQ2FsbChmdW5jdGlvbk5vZGUpO1xuICBjb25zdCBwYXJhbWV0ZXJzID0gZ2V0UGFyYW1ldGVycyhmdW5jdGlvbk5vZGUpO1xuICBjb25zdCBhcmd1bWVudHNfID0gYXNOb2RlQXJyYXkoY2FsbD8uW1wiYXJndW1lbnRzXCJdKTtcbiAgY29uc3QgY2FsbGVlID0gYXNOb2RlKGNhbGw/LltcImNhbGxlZVwiXSk7XG5cbiAgaWYgKFxuICAgIGNhbGw/LnR5cGUgIT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxuICAgIHBhcmFtZXRlcnMgPT09IHZvaWQgMCB8fFxuICAgIGFyZ3VtZW50c18gPT09IHZvaWQgMCB8fFxuICAgIGNhbGxlZSA9PT0gdm9pZCAwIHx8XG4gICAgLy8gQSBtZXRob2QgY2FsbCBpcyBvbmx5IGEgcmVwbGFjZWFibGUgZGVsZWdhdGlvbiB3aGVuIGl0cyByZWNlaXZlciBpcyBhXG4gICAgLy8gcGxhaW4gbmFtZWQgcmVmZXJlbmNlIChlLmcuIGBzZXJ2aWNlLnJ1bmApLiBFeHByZXNzaW9uIHJlY2VpdmVycyBzdWNoXG4gICAgLy8gYXMgdHlwZSBhc3NlcnRpb25zLCBjYWxscywgb3IgbGl0ZXJhbHMgY2Fubm90IGJlIGlubGluZWQgYXQgdGhlIGNhbGxcbiAgICAvLyBzaXRlLCBzbyB0aGUgd3JhcHBlciBpcyBub3QgdXNlbGVzcy5cbiAgICAoY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXG4gICAgICAhaXNOYW1lZFJlY2VpdmVyKGFzTm9kZShjYWxsZWVbXCJvYmplY3RcIl0pKSkgfHxcbiAgICBnZXRJZGVudGlmaWVyTmFtZShjYWxsZWUpID09PSBmdW5jdGlvbk5hbWUgfHxcbiAgICBhcmd1bWVudHNfLmxlbmd0aCAhPT0gcGFyYW1ldGVycy5sZW5ndGhcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3VtZW50c18uZXZlcnkoKGFyZ3VtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlciA9IHBhcmFtZXRlcnNbaW5kZXhdO1xuICAgIHJldHVybiBwYXJhbWV0ZXIgIT09IHZvaWQgMCAmJiBmb3J3YXJkc1BhcmFtZXRlcihhcmd1bWVudCwgcGFyYW1ldGVyKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgYSBmdW5jdGlvbiB3aGVuIGl0IGlzIGEgbm8tb3AgZGVsZWdhdGlvbi5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBuYW1lTm9kZSBEZWNsYXJlZCB3cmFwcGVyIG5hbWUgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKGNvbnRleHQsIGZ1bmN0aW9uTm9kZSwgbmFtZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbiAgbmFtZU5vZGU6IE5vZGUgfCB1bmRlZmluZWQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gZ2V0SWRlbnRpZmllck5hbWUobmFtZU5vZGUpO1xuICBpZiAoXG4gICAgZnVuY3Rpb25OYW1lID09PSB2b2lkIDAgfHxcbiAgICAhaXNVc2VsZXNzRGVsZWdhdGlvbihmdW5jdGlvbk5vZGUsIGZ1bmN0aW9uTmFtZSlcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIG1lc3NhZ2VJZDogXCJ1c2VsZXNzRGVsZWdhdGlvblwiLFxuICAgIG5vZGU6IG5hbWVOb2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICB9KTtcbn07XG5cbi8qKiBFU0xpbnQgcnVsZSBpbXBsZW1lbnRhdGlvbiBmb3IgZnVuY3Rpb25zIHRoYXQgb25seSBmb3J3YXJkIHRoZWlyIGFyZ3VtZW50cy4gKi9cbmNvbnN0IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PiAoe1xuICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IChub2RlOiBSdWxlLk5vZGUpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uTm9kZSA9IG5vZGUgYXMgdW5rbm93biBhcyBOb2RlO1xuICAgICAgcmVwb3J0SWZVc2VsZXNzRGVsZWdhdGlvbihcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZnVuY3Rpb25Ob2RlLFxuICAgICAgICBhc05vZGUoZnVuY3Rpb25Ob2RlW1wiaWRcIl0pLFxuICAgICAgKTtcbiAgICB9LFxuICAgIFZhcmlhYmxlRGVjbGFyYXRvcjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZGVjbGFyYXRvciA9IG5vZGUgYXMgdW5rbm93biBhcyBOb2RlO1xuICAgICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBhc05vZGUoZGVjbGFyYXRvcltcImluaXRcIl0pO1xuICAgICAgaWYgKFxuICAgICAgICBpbml0aWFsaXplcj8udHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXG4gICAgICAgIGluaXRpYWxpemVyPy50eXBlICE9PSBcIkZ1bmN0aW9uRXhwcmVzc2lvblwiXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKGNvbnRleHQsIGluaXRpYWxpemVyLCBhc05vZGUoZGVjbGFyYXRvcltcImlkXCJdKSk7XG4gICAgfSxcbiAgfSksXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJEaXNhbGxvdyBuYW1lZCBmdW5jdGlvbnMgdGhhdCBvbmx5IGRlbGVnYXRlIGRpcmVjdGx5IHRvIGFub3RoZXIgY2FsbC5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLXVzZWxlc3MtZGVsZWdhdGlvbi5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHVzZWxlc3NEZWxlZ2F0aW9uOlxuICAgICAgICBcIlRoaXMgZnVuY3Rpb24gb25seSBkZWxlZ2F0ZXMgdG8gYW5vdGhlciBjYWxsOyByZW1vdmUgdGhlIHdyYXBwZXIgb3IgY2FsbCB0aGUgdGFyZ2V0IGRpcmVjdGx5LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH07XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA+PnC,+EAA+E;AAC/E,QAAA,MAAM,kCAAkC,EAAE,IAAI,CAAC,UAqC9C,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,CAAC"}
|
|
@@ -45,11 +45,13 @@ const reportMemberDocumentation = (context, details) => {
|
|
|
45
45
|
const { commentStart, commentText, memberTags, node } = details;
|
|
46
46
|
for (const tag of memberTags) {
|
|
47
47
|
const removalRange = buildRemovalRange(commentStart, commentText, tag.line);
|
|
48
|
+
const fix = (fixer) => fixer.removeRange(removalRange);
|
|
48
49
|
context.report({
|
|
49
50
|
data: { parameterName: tag.fullName },
|
|
50
|
-
fix
|
|
51
|
+
fix,
|
|
51
52
|
messageId: "interfaceMemberDoc",
|
|
52
53
|
node,
|
|
54
|
+
suggest: [{ fix, messageId: "removeMemberDoc" }],
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
57
|
};
|
|
@@ -166,12 +168,14 @@ const noInterfaceMemberDocumentationRule = {
|
|
|
166
168
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-interface-member-docs.md",
|
|
167
169
|
},
|
|
168
170
|
fixable: "code",
|
|
171
|
+
hasSuggestions: true,
|
|
169
172
|
messages: {
|
|
170
173
|
interfaceMemberDoc: "Document interface members on the interface instead of using @param for {{parameterName}}.",
|
|
174
|
+
removeMemberDoc: "Remove the @param tag documenting this interface member.",
|
|
171
175
|
},
|
|
172
176
|
schema: [],
|
|
173
177
|
type: "problem",
|
|
174
178
|
},
|
|
175
179
|
};
|
|
176
180
|
export { noInterfaceMemberDocumentationRule };
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBa0QvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEdBQW1DLEVBQ25DLGNBQStDLEVBQ3BCLEVBQUU7SUFDN0IsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RCxPQUFPLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsV0FBbUIsRUFDbkIsY0FBK0MsRUFDekIsRUFBRSxDQUN4QixlQUFlLENBQUMsV0FBVyxDQUFDO0tBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUvRDs7Ozs7Ozs7R0FRRztBQUNILE1B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QUNULGdHQUFnRztZQUNsRyxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsMkZBQTJGO1NBQ2pHO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFDaEIsNEZBQTRGO1NBQy9GO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBDb21tZW50LCBQYXJhbWV0ZXJNZW1iZXJUYWcsIFR5cGVBbm5vdGF0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGJ1aWxkUmVtb3ZhbFJhbmdlLCBnZXRDb21tZW50TGluZXMgfSBmcm9tIFwiLi9jb21tZW50LXJlbW92YWwtcmFuZ2VzXCI7XG5pbXBvcnQgeyBnZXRDb21tZW50VGV4dCwgZ2V0SnNkb2NDb21tZW50IH0gZnJvbSBcIi4vY29tbWVudC11dGlsaXRpZXNcIjtcbmltcG9ydCB7IHBhcnNlUGFyYW1ldGVyVGFnTGluZSB9IGZyb20gXCIuL3BhcmFtZXRlci10YWdzXCI7XG5pbXBvcnQge1xuICBnZXRQYXJhbWV0ZXJUeXBlTG9va3VwLFxuICBpc05hbWVkVHlwZVJlZmVyZW5jZSxcbn0gZnJvbSBcIi4vcGFyYW1ldGVyLXV0aWxpdGllc1wiO1xuXG4vKiogSlNEb2MgZGF0YSBleHRyYWN0ZWQgZnJvbSBhIGZ1bmN0aW9uLWxpa2Ugbm9kZS4gKi9cbmludGVyZmFjZSBKc2RvY0RhdGEge1xuICAvKiogQ29tbWVudCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudDogQ29tbWVudDtcblxuICAvKiogQ29tbWVudFN0YXJ0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50U3RhcnQ6IG51bWJlcjtcblxuICAvKiogVGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgdGV4dDogc3RyaW5nO1xufVxuXG4vKiogTWVtYmVyLXRhZyBjb250ZXh0IHJlc29sdmVkIGZvciByZXBvcnRpbmcuICovXG5pbnRlcmZhY2UgTWVtYmVyVGFnQ29udGV4dCB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBDb21tZW50VGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFRleHQ6IHN0cmluZztcblxuICAvKiogTWVtYmVyVGFncyBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVtYmVyVGFnczogUGFyYW1ldGVyTWVtYmVyVGFnW107XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBSZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uQ29udGV4dCB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBDb21tZW50VGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFRleHQ6IHN0cmluZztcblxuICAvKiogTWVtYmVyVGFncyBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVtYmVyVGFnczogUGFyYW1ldGVyTWVtYmVyVGFnW107XG5cbiAgLyoqIE5vZGUgZmllbGQgdmFsdWUuICovXG4gIG5vZGU6IFJ1bGUuTm9kZTtcblxuICAvKiogU291cmNlQ29kZSBmaWVsZCB2YWx1ZS4gKi9cbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl07XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwYXJhbWV0ZXIgbWVtYmVyIHRhZyBtYXRjaGVzIGEgbmFtZWQgdHlwZSByZWZlcmVuY2UuXG4gKiBAcGFyYW0gdGFnIFBhcnNlZCBwYXJhbWV0ZXIgbWVtYmVyIHRhZy5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJUeXBlcyBQYXJhbWV0ZXIgdHlwZSBsb29rdXAuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHRhZyBtYXRjaGVzIGEgbmFtZWQgdHlwZSByZWZlcmVuY2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBpc01hdGNoaW5nTWVtYmVyVGFnKHRhZywgcGFyYW1ldGVyVHlwZXMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTWF0Y2hpbmdNZW1iZXJUYWcgPSAoXG4gIHRhZzogUGFyYW1ldGVyTWVtYmVyVGFnIHwgdW5kZWZpbmVkLFxuICBwYXJhbWV0ZXJUeXBlczogTWFwPHN0cmluZywgVHlwZUFubm90YXRpb25Ob2RlPixcbik6IHRhZyBpcyBQYXJhbWV0ZXJNZW1iZXJUYWcgPT4ge1xuICBpZiAodGFnID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwYXJhbWV0ZXJUeXBlID0gcGFyYW1ldGVyVHlwZXMuZ2V0KHRhZy5iYXNlbmFtZSk7XG5cbiAgcmV0dXJuIGlzTmFtZWRUeXBlUmVmZXJlbmNlKHBhcmFtZXRlclR5cGUpO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0cyBtZW1iZXIgdGFncyBmcm9tIGEgSlNEb2MgY29tbWVudC5cbiAqIEBwYXJhbSBjb21tZW50VGV4dCBGdWxsIGNvbW1lbnQgdGV4dC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJUeXBlcyBQYXJhbWV0ZXIgdHlwZSBsb29rdXAuXG4gKiBAcmV0dXJucyBNZW1iZXIgdGFncyB0aGF0IG1hdGNoIG5hbWVkIHR5cGUgcmVmZXJlbmNlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0YWdzID0gY29sbGVjdE1lbWJlclRhZ3MoY29tbWVudFRleHQsIHBhcmFtZXRlclR5cGVzKTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0TWVtYmVyVGFncyA9IChcbiAgY29tbWVudFRleHQ6IHN0cmluZyxcbiAgcGFyYW1ldGVyVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4sXG4pOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXSA9PlxuICBnZXRDb21tZW50TGluZXMoY29tbWVudFRleHQpXG4gICAgLm1hcCgobGluZSkgPT4gcGFyc2VQYXJhbWV0ZXJUYWdMaW5lKGxpbmUpKVxuICAgIC5maWx0ZXIoKHRhZykgPT4gaXNNYXRjaGluZ01lbWJlclRhZyh0YWcsIHBhcmFtZXRlclR5cGVzKSk7XG5cbi8qKlxuICogUmVwb3J0cyBpbnRlcmZhY2UgbWVtYmVyIGRvY3VtZW50YXRpb24gZW50cmllcyBmb3IgcmVtb3ZhbC5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gZGV0YWlscyBDb2xsZWN0ZWQgcnVsZSBkZXRhaWxzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydE1lbWJlckRvY3VtZW50YXRpb24oY29udGV4dCwgZGV0YWlscyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZGV0YWlsczogUmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbkNvbnRleHQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb21tZW50U3RhcnQsIGNvbW1lbnRUZXh0LCBtZW1iZXJUYWdzLCBub2RlIH0gPSBkZXRhaWxzO1xuXG4gIGZvciAoY29uc3QgdGFnIG9mIG1lbWJlclRhZ3MpIHtcbiAgICBjb25zdCByZW1vdmFsUmFuZ2UgPSBidWlsZFJlbW92YWxSYW5nZShjb21tZW50U3RhcnQsIGNvbW1lbnRUZXh0LCB0YWcubGluZSk7XG5cbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBkYXRhOiB7IHBhcmFtZXRlck5hbWU6IHRhZy5mdWxsTmFtZSB9LFxuICAgICAgZml4OiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT4gZml4ZXIucmVtb3ZlUmFuZ2UocmVtb3ZhbFJhbmdlKSxcbiAgICAgIG1lc3NhZ2VJZDogXCJpbnRlcmZhY2VNZW1iZXJEb2NcIixcbiAgICAgIG5vZGUsXG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgdHlwZSByZWZlcmVuY2VzIGZvciBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFBhcmFtZXRlciB0eXBlIGxvb2t1cCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZXMobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVyVHlwZXMgPSAoXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVMb29rdXAobm9kZSk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlclR5cGVzLnNpemUgPiAwID8gcGFyYW1ldGVyVHlwZXMgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBKU0RvYyBjb21tZW50IGRhdGEgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZUNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIEpTRG9jIGRhdGEgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGF0YSA9IGdldEpzZG9jRGF0YShzb3VyY2VDb2RlLCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRKc2RvY0RhdGEgPSAoXG4gIHNvdXJjZUNvZGU6IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBKc2RvY0RhdGEgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudFN0YXJ0ID0gY29tbWVudC5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2YgY29tbWVudFN0YXJ0ICE9PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcblxuICByZXR1cm4geyBjb21tZW50LCBjb21tZW50U3RhcnQsIHRleHQgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG1lbWJlciB0YWcgY29udGV4dCBmb3IgYSBub2RlLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWcgY29udGV4dCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb250ZXh0ID0gcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1lbWJlclRhZ0NvbnRleHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVzKG5vZGUpO1xuICBjb25zdCBqc2RvY0RhdGEgPSBnZXRKc2RvY0RhdGEoY29udGV4dC5zb3VyY2VDb2RlLCBub2RlKTtcblxuICBpZiAocGFyYW1ldGVyVHlwZXMgPT09IHZvaWQgMCB8fCBqc2RvY0RhdGEgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBtZW1iZXJUYWdzID0gY29sbGVjdE1lbWJlclRhZ3MoanNkb2NEYXRhLnRleHQsIHBhcmFtZXRlclR5cGVzKTtcblxuICByZXR1cm4gbWVtYmVyVGFncy5sZW5ndGggPiAwXG4gICAgPyB7XG4gICAgICAgIGNvbW1lbnQ6IGpzZG9jRGF0YS5jb21tZW50LFxuICAgICAgICBjb21tZW50U3RhcnQ6IGpzZG9jRGF0YS5jb21tZW50U3RhcnQsXG4gICAgICAgIGNvbW1lbnRUZXh0OiBqc2RvY0RhdGEudGV4dCxcbiAgICAgICAgbWVtYmVyVGFncyxcbiAgICAgIH1cbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKiBIYW5kbGVzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIHRoZSBuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MgcnVsZS4gKi9cbmludGVyZmFjZSBOb2RlVmFsdWUge1xuICAvKipcbiAgICogVmFsdWUgZmllbGQgZm9yIG1ldGhvZCBkZWZpbml0aW9uczsgZnVuY3Rpb24tbGlrZSBub2RlcyBoYXZlIG5vIHZhbHVlIGZpZWxkLCBzbyB0aGlzIGlzIG9wdGlvbmFsLlxuICAgKi9cbiAgdmFsdWU/OiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogSGFuZGxlcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciB0aGlzIHJ1bGUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhbmRsZUZ1bmN0aW9uTGlrZShjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYW5kbGVGdW5jdGlvbkxpa2UgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbkxpa2VOb2RlID1cbiAgICBub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiXG4gICAgICA/ICgobm9kZSBhcyB1bmtub3duIGFzIE5vZGVWYWx1ZSkudmFsdWUgPz8gbm9kZSlcbiAgICAgIDogbm9kZTtcblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNZW1iZXJUYWdDb250ZXh0KGNvbnRleHQsIGZ1bmN0aW9uTGlrZU5vZGUpO1xuXG4gIGlmIChyZXNvbHZlZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCB7XG4gICAgY29tbWVudDogcmVzb2x2ZWQuY29tbWVudCxcbiAgICBjb21tZW50U3RhcnQ6IHJlc29sdmVkLmNvbW1lbnRTdGFydCxcbiAgICBjb21tZW50VGV4dDogcmVzb2x2ZWQuY29tbWVudFRleHQsXG4gICAgbWVtYmVyVGFnczogcmVzb2x2ZWQubWVtYmVyVGFncyxcbiAgICBub2RlLFxuICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuc291cmNlQ29kZSxcbiAgfSk7XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgZGlzYWxsb3dpbmcgaW50ZXJmYWNlIG1lbWJlciBkb2N1bWVudGF0aW9uIGluIGBAcGFyYW1gIHRhZ3MuICovXG5jb25zdCBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgaGFuZGxlRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgTWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBsaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBsaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZG9jdW1lbnRpbmcgaW50ZXJmYWNlIG1lbWJlcnMgaW4gQHBhcmFtIHRhZ3M7IGRvY3VtZW50IHRoZW0gb24gdGhlIGludGVyZmFjZSBpbnN0ZWFkLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzLm1kXCIsXG4gICAgfSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgaW50ZXJmYWNlTWVtYmVyRG9jOlxuICAgICAgICBcIkRvY3VtZW50IGludGVyZmFjZSBtZW1iZXJzIG9uIHRoZSBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyBAcGFyYW0gZm9yIHt7cGFyYW1ldGVyTmFtZX19LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUgfTtcbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBa0QvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEdBQW1DLEVBQ25DLGNBQStDLEVBQ3BCLEVBQUU7SUFDN0IsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RCxPQUFPLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsV0FBbUIsRUFDbkIsY0FBK0MsRUFDekIsRUFBRSxDQUN4QixlQUFlLENBQUMsV0FBVyxDQUFDO0tBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUvRDs7Ozs7Ozs7R0FRRztBQUNILE1B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QUN4QixpQkFBaUIsRUFBRSxRQUFRO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGdHQUFnRztZQUNsRyxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsMkZBQTJGO1NBQ2pHO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixjQUFjLEVBQUUsSUFBSTtRQUNwQixRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFDaEIsNEZBQTRGO1lBQzlGLGVBQWUsRUFDYiwwREFBMEQ7U0FDN0Q7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1lbnQsIFBhcmFtZXRlck1lbWJlclRhZywgVHlwZUFubm90YXRpb25Ob2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgYnVpbGRSZW1vdmFsUmFuZ2UsIGdldENvbW1lbnRMaW5lcyB9IGZyb20gXCIuL2NvbW1lbnQtcmVtb3ZhbC1yYW5nZXNcIjtcbmltcG9ydCB7IGdldENvbW1lbnRUZXh0LCBnZXRKc2RvY0NvbW1lbnQgfSBmcm9tIFwiLi9jb21tZW50LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgcGFyc2VQYXJhbWV0ZXJUYWdMaW5lIH0gZnJvbSBcIi4vcGFyYW1ldGVyLXRhZ3NcIjtcbmltcG9ydCB7XG4gIGdldFBhcmFtZXRlclR5cGVMb29rdXAsXG4gIGlzTmFtZWRUeXBlUmVmZXJlbmNlLFxufSBmcm9tIFwiLi9wYXJhbWV0ZXItdXRpbGl0aWVzXCI7XG5cbi8qKiBKU0RvYyBkYXRhIGV4dHJhY3RlZCBmcm9tIGEgZnVuY3Rpb24tbGlrZSBub2RlLiAqL1xuaW50ZXJmYWNlIEpzZG9jRGF0YSB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKiBNZW1iZXItdGFnIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHJlcG9ydGluZy4gKi9cbmludGVyZmFjZSBNZW1iZXJUYWdDb250ZXh0IHtcbiAgLyoqIENvbW1lbnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnQ6IENvbW1lbnQ7XG5cbiAgLyoqIENvbW1lbnRTdGFydCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFN0YXJ0OiBudW1iZXI7XG5cbiAgLyoqIENvbW1lbnRUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50VGV4dDogc3RyaW5nO1xuXG4gIC8qKiBNZW1iZXJUYWdzIGZpZWxkIHZhbHVlLiAqL1xuICBtZW1iZXJUYWdzOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFJlcG9ydE1lbWJlckRvY3VtZW50YXRpb25Db250ZXh0IHtcbiAgLyoqIENvbW1lbnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnQ6IENvbW1lbnQ7XG5cbiAgLyoqIENvbW1lbnRTdGFydCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFN0YXJ0OiBudW1iZXI7XG5cbiAgLyoqIENvbW1lbnRUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50VGV4dDogc3RyaW5nO1xuXG4gIC8qKiBNZW1iZXJUYWdzIGZpZWxkIHZhbHVlLiAqL1xuICBtZW1iZXJUYWdzOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXTtcblxuICAvKiogTm9kZSBmaWVsZCB2YWx1ZS4gKi9cbiAgbm9kZTogUnVsZS5Ob2RlO1xuXG4gIC8qKiBTb3VyY2VDb2RlIGZpZWxkIHZhbHVlLiAqL1xuICBzb3VyY2VDb2RlOiBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHBhcmFtZXRlciBtZW1iZXIgdGFnIG1hdGNoZXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSB0YWcgUGFyc2VkIHBhcmFtZXRlciBtZW1iZXIgdGFnLlxuICogQHBhcmFtIHBhcmFtZXRlclR5cGVzIFBhcmFtZXRlciB0eXBlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgdGFnIG1hdGNoZXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzTWF0Y2hpbmdNZW1iZXJUYWcodGFnLCBwYXJhbWV0ZXJUeXBlcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNNYXRjaGluZ01lbWJlclRhZyA9IChcbiAgdGFnOiBQYXJhbWV0ZXJNZW1iZXJUYWcgfCB1bmRlZmluZWQsXG4gIHBhcmFtZXRlclR5cGVzOiBNYXA8c3RyaW5nLCBUeXBlQW5ub3RhdGlvbk5vZGU+LFxuKTogdGFnIGlzIFBhcmFtZXRlck1lbWJlclRhZyA9PiB7XG4gIGlmICh0YWcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHBhcmFtZXRlclR5cGUgPSBwYXJhbWV0ZXJUeXBlcy5nZXQodGFnLmJhc2VuYW1lKTtcblxuICByZXR1cm4gaXNOYW1lZFR5cGVSZWZlcmVuY2UocGFyYW1ldGVyVHlwZSk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIG1lbWJlciB0YWdzIGZyb20gYSBKU0RvYyBjb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnRUZXh0IEZ1bGwgY29tbWVudCB0ZXh0LlxuICogQHBhcmFtIHBhcmFtZXRlclR5cGVzIFBhcmFtZXRlciB0eXBlIGxvb2t1cC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWdzIHRoYXQgbWF0Y2ggbmFtZWQgdHlwZSByZWZlcmVuY2VzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRhZ3MgPSBjb2xsZWN0TWVtYmVyVGFncyhjb21tZW50VGV4dCwgcGFyYW1ldGVyVHlwZXMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbGxlY3RNZW1iZXJUYWdzID0gKFxuICBjb21tZW50VGV4dDogc3RyaW5nLFxuICBwYXJhbWV0ZXJUeXBlczogTWFwPHN0cmluZywgVHlwZUFubm90YXRpb25Ob2RlPixcbik6IFBhcmFtZXRlck1lbWJlclRhZ1tdID0+XG4gIGdldENvbW1lbnRMaW5lcyhjb21tZW50VGV4dClcbiAgICAubWFwKChsaW5lKSA9PiBwYXJzZVBhcmFtZXRlclRhZ0xpbmUobGluZSkpXG4gICAgLmZpbHRlcigodGFnKSA9PiBpc01hdGNoaW5nTWVtYmVyVGFnKHRhZywgcGFyYW1ldGVyVHlwZXMpKTtcblxuLyoqXG4gKiBSZXBvcnRzIGludGVyZmFjZSBtZW1iZXIgZG9jdW1lbnRhdGlvbiBlbnRyaWVzIGZvciByZW1vdmFsLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBkZXRhaWxzIENvbGxlY3RlZCBydWxlIGRldGFpbHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCBkZXRhaWxzKTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBkZXRhaWxzOiBSZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uQ29udGV4dCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCB7IGNvbW1lbnRTdGFydCwgY29tbWVudFRleHQsIG1lbWJlclRhZ3MsIG5vZGUgfSA9IGRldGFpbHM7XG5cbiAgZm9yIChjb25zdCB0YWcgb2YgbWVtYmVyVGFncykge1xuICAgIGNvbnN0IHJlbW92YWxSYW5nZSA9IGJ1aWxkUmVtb3ZhbFJhbmdlKGNvbW1lbnRTdGFydCwgY29tbWVudFRleHQsIHRhZy5saW5lKTtcblxuICAgIGNvbnN0IGZpeCA9IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeCA9PlxuICAgICAgZml4ZXIucmVtb3ZlUmFuZ2UocmVtb3ZhbFJhbmdlKTtcblxuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgcGFyYW1ldGVyTmFtZTogdGFnLmZ1bGxOYW1lIH0sXG4gICAgICBmaXgsXG4gICAgICBtZXNzYWdlSWQ6IFwiaW50ZXJmYWNlTWVtYmVyRG9jXCIsXG4gICAgICBub2RlLFxuICAgICAgc3VnZ2VzdDogW3sgZml4LCBtZXNzYWdlSWQ6IFwicmVtb3ZlTWVtYmVyRG9jXCIgfV0sXG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgdHlwZSByZWZlcmVuY2VzIGZvciBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFBhcmFtZXRlciB0eXBlIGxvb2t1cCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZXMobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVyVHlwZXMgPSAoXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVMb29rdXAobm9kZSk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlclR5cGVzLnNpemUgPiAwID8gcGFyYW1ldGVyVHlwZXMgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBKU0RvYyBjb21tZW50IGRhdGEgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZUNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIEpTRG9jIGRhdGEgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGF0YSA9IGdldEpzZG9jRGF0YShzb3VyY2VDb2RlLCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRKc2RvY0RhdGEgPSAoXG4gIHNvdXJjZUNvZGU6IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBKc2RvY0RhdGEgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudFN0YXJ0ID0gY29tbWVudC5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2YgY29tbWVudFN0YXJ0ICE9PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcblxuICByZXR1cm4geyBjb21tZW50LCBjb21tZW50U3RhcnQsIHRleHQgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG1lbWJlciB0YWcgY29udGV4dCBmb3IgYSBub2RlLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWcgY29udGV4dCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb250ZXh0ID0gcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1lbWJlclRhZ0NvbnRleHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVzKG5vZGUpO1xuICBjb25zdCBqc2RvY0RhdGEgPSBnZXRKc2RvY0RhdGEoY29udGV4dC5zb3VyY2VDb2RlLCBub2RlKTtcblxuICBpZiAocGFyYW1ldGVyVHlwZXMgPT09IHZvaWQgMCB8fCBqc2RvY0RhdGEgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBtZW1iZXJUYWdzID0gY29sbGVjdE1lbWJlclRhZ3MoanNkb2NEYXRhLnRleHQsIHBhcmFtZXRlclR5cGVzKTtcblxuICByZXR1cm4gbWVtYmVyVGFncy5sZW5ndGggPiAwXG4gICAgPyB7XG4gICAgICAgIGNvbW1lbnQ6IGpzZG9jRGF0YS5jb21tZW50LFxuICAgICAgICBjb21tZW50U3RhcnQ6IGpzZG9jRGF0YS5jb21tZW50U3RhcnQsXG4gICAgICAgIGNvbW1lbnRUZXh0OiBqc2RvY0RhdGEudGV4dCxcbiAgICAgICAgbWVtYmVyVGFncyxcbiAgICAgIH1cbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKiBIYW5kbGVzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIHRoZSBuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MgcnVsZS4gKi9cbmludGVyZmFjZSBOb2RlVmFsdWUge1xuICAvKipcbiAgICogVmFsdWUgZmllbGQgZm9yIG1ldGhvZCBkZWZpbml0aW9uczsgZnVuY3Rpb24tbGlrZSBub2RlcyBoYXZlIG5vIHZhbHVlIGZpZWxkLCBzbyB0aGlzIGlzIG9wdGlvbmFsLlxuICAgKi9cbiAgdmFsdWU/OiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogSGFuZGxlcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciB0aGlzIHJ1bGUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhbmRsZUZ1bmN0aW9uTGlrZShjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYW5kbGVGdW5jdGlvbkxpa2UgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbkxpa2VOb2RlID1cbiAgICBub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiXG4gICAgICA/ICgobm9kZSBhcyB1bmtub3duIGFzIE5vZGVWYWx1ZSkudmFsdWUgPz8gbm9kZSlcbiAgICAgIDogbm9kZTtcblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNZW1iZXJUYWdDb250ZXh0KGNvbnRleHQsIGZ1bmN0aW9uTGlrZU5vZGUpO1xuXG4gIGlmIChyZXNvbHZlZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCB7XG4gICAgY29tbWVudDogcmVzb2x2ZWQuY29tbWVudCxcbiAgICBjb21tZW50U3RhcnQ6IHJlc29sdmVkLmNvbW1lbnRTdGFydCxcbiAgICBjb21tZW50VGV4dDogcmVzb2x2ZWQuY29tbWVudFRleHQsXG4gICAgbWVtYmVyVGFnczogcmVzb2x2ZWQubWVtYmVyVGFncyxcbiAgICBub2RlLFxuICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuc291cmNlQ29kZSxcbiAgfSk7XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgZGlzYWxsb3dpbmcgaW50ZXJmYWNlIG1lbWJlciBkb2N1bWVudGF0aW9uIGluIGBAcGFyYW1gIHRhZ3MuICovXG5jb25zdCBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgaGFuZGxlRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgTWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBsaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBsaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZG9jdW1lbnRpbmcgaW50ZXJmYWNlIG1lbWJlcnMgaW4gQHBhcmFtIHRhZ3M7IGRvY3VtZW50IHRoZW0gb24gdGhlIGludGVyZmFjZSBpbnN0ZWFkLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzLm1kXCIsXG4gICAgfSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgaW50ZXJmYWNlTWVtYmVyRG9jOlxuICAgICAgICBcIkRvY3VtZW50IGludGVyZmFjZSBtZW1iZXJzIG9uIHRoZSBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyBAcGFyYW0gZm9yIHt7cGFyYW1ldGVyTmFtZX19LlwiLFxuICAgICAgcmVtb3ZlTWVtYmVyRG9jOlxuICAgICAgICBcIlJlbW92ZSB0aGUgQHBhcmFtIHRhZyBkb2N1bWVudGluZyB0aGlzIGludGVyZmFjZSBtZW1iZXIuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAyCzD,qCAAqC;AACrC,UAAU,oBAAoB;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,2BAA2B;IAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAE1B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAyCzD,qCAAqC;AACrC,UAAU,oBAAoB;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,2BAA2B;IAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAE1B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AA2MD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAiB1D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|