@codeperfect/eslint-plugin 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +2 -4
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
- package/dist/domain/architecture/no-unused-exports/rule.js +3 -3
- package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
- package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
- package/dist/domain/core/no-multiple-declarators/types.js +2 -2
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +2 -104
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +3 -65
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
- package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
- package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
- package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +2 -111
- package/dist/domain/docs/require-example-language/fixes.js +4 -4
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +9 -8
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/types.js +1 -1
- 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/analyzer.analysis.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.js +10 -8
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
- 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 +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +2 -160
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
- package/dist/domain/testing/index.d.ts +1 -0
- package/dist/domain/testing/index.d.ts.map +1 -1
- package/dist/domain/testing/index.js +2 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts +2 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.js +2 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts +5 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +35 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +7 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +2 -4
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
- package/dist/domain/testing/single-act-statement/rule.js +20 -22
- 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 +58 -58
- package/dist/.tsbuildinfo +0 -1
package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js
CHANGED
|
@@ -107,18 +107,16 @@ const asSourceDeclaration = (statement) => {
|
|
|
107
107
|
};
|
|
108
108
|
/** ESLint rule that forbids import/export module specifiers with explicit file extensions. */
|
|
109
109
|
const noImportExportExtensionsRule = {
|
|
110
|
-
create(context) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
reportWhenSourceHasExtension(context, declaration);
|
|
117
|
-
}
|
|
110
|
+
create: (context) => ({
|
|
111
|
+
Program(node) {
|
|
112
|
+
for (const statement of node.body) {
|
|
113
|
+
const declaration = asSourceDeclaration(statement);
|
|
114
|
+
if (declaration !== void 0) {
|
|
115
|
+
reportWhenSourceHasExtension(context, declaration);
|
|
118
116
|
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
}),
|
|
122
120
|
meta: {
|
|
123
121
|
docs: {
|
|
124
122
|
description: "Forbid explicit file extensions in import/export module specifiers.",
|
|
@@ -133,4 +131,4 @@ const noImportExportExtensionsRule = {
|
|
|
133
131
|
},
|
|
134
132
|
};
|
|
135
133
|
export { noImportExportExtensionsRule };
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSwwREFBMEQ7QUFDMUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQ3RELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQ3RCLENBQUM7SUFFRixPQUFPLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQXNCLEVBQUU7SUFDbEUsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsTUFBTSxh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QUFXLEVBQ1QscUVBQXFFO1lBQ3ZFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSw4RkFBOEY7U0FDcEc7UUFDRCxRQUFRLEVBQUU7WUFDUixtQkFBbUIsRUFDakIsMkRBQTJEO1NBQzlEO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuLyoqIFNldCBvZiBkaXNhbGxvd2VkIG1vZHVsZS1zcGVjaWZpZXIgZmlsZSBleHRlbnNpb25zLiAqL1xyXG5jb25zdCBkaXNhbGxvd2VkRXh0ZW5zaW9ucyA9IG5ldyBTZXQoW1xyXG4gIFwiLmNqc1wiLFxyXG4gIFwiLmN0c1wiLFxyXG4gIFwiLmpzXCIsXHJcbiAgXCIuanN4XCIsXHJcbiAgXCIubWpzXCIsXHJcbiAgXCIubXRzXCIsXHJcbiAgXCIudHNcIixcclxuICBcIi50c3hcIixcclxuXSk7XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgdHJhaWxpbmcgZXh0ZW5zaW9uIGZyb20gYSBtb2R1bGUgc3BlY2lmaWVyIHN0cmluZy5cclxuICogQHBhcmFtIHNvdXJjZSBNb2R1bGUgc3BlY2lmaWVyIHRleHQuXHJcbiAqIEByZXR1cm5zIEZpbGUgZXh0ZW5zaW9uIGluY2x1ZGluZyB0aGUgbGVhZGluZyBkb3Qgd2hlbiBwcmVzZW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGV4dGVuc2lvbiA9IGdldFRyYWlsaW5nRXh0ZW5zaW9uKFwiLi9mZWF0dXJlLnRzXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGdldFNwZWNpZmllckVuZEluZGV4ID0gKHNvdXJjZTogc3RyaW5nKTogbnVtYmVyID0+IHtcclxuICBjb25zdCBxdWVyeUluZGV4ID0gc291cmNlLmluZGV4T2YoXCI/XCIpO1xyXG4gIGNvbnN0IGhhc2hJbmRleCA9IHNvdXJjZS5pbmRleE9mKFwiI1wiKTtcclxuICBjb25zdCBlbmRJbmRleENhbmRpZGF0ZXMgPSBbcXVlcnlJbmRleCwgaGFzaEluZGV4XS5maWx0ZXIoXHJcbiAgICAoaW5kZXgpID0+IGluZGV4ID49IDAsXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGVuZEluZGV4Q2FuZGlkYXRlcy5sZW5ndGggPT09IDBcclxuICAgID8gc291cmNlLmxlbmd0aFxyXG4gICAgOiBNYXRoLm1pbiguLi5lbmRJbmRleENhbmRpZGF0ZXMpO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHRyYWlsaW5nIGV4dGVuc2lvbiBmcm9tIGEgbW9kdWxlIHNwZWNpZmllciBzdHJpbmcuXHJcbiAqIEBwYXJhbSBzb3VyY2UgTW9kdWxlIHNwZWNpZmllciB0ZXh0LlxyXG4gKiBAcmV0dXJucyBGaWxlIGV4dGVuc2lvbiBpbmNsdWRpbmcgdGhlIGxlYWRpbmcgZG90IHdoZW4gcHJlc2VudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihcIi4vZmVhdHVyZS50c1wiKTtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBnZXRUcmFpbGluZ0V4dGVuc2lvbiA9IChzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XHJcbiAgY29uc3QgZW5kSW5kZXggPSBnZXRTcGVjaWZpZXJFbmRJbmRleChzb3VyY2UpO1xyXG4gIGNvbnN0IGNsZWFuZWRTb3VyY2UgPSBzb3VyY2Uuc2xpY2UoMCwgZW5kSW5kZXgpO1xyXG4gIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gTWF0aC5tYXgoXHJcbiAgICBjbGVhbmVkU291cmNlLmxhc3RJbmRleE9mKFwiL1wiKSxcclxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCJcXFxcXCIpLFxyXG4gICk7XHJcbiAgY29uc3QgYmFzZW5hbWUgPSBjbGVhbmVkU291cmNlLnNsaWNlKGxhc3RTbGFzaEluZGV4ICsgMSk7XHJcbiAgY29uc3QgZG90SW5kZXggPSBiYXNlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XHJcblxyXG4gIGlmIChkb3RJbmRleCA8PSAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGJhc2VuYW1lLnNsaWNlKGRvdEluZGV4KS50b0xvd2VyQ2FzZSgpO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgc291cmNlIGxpdGVyYWwgc2hvdWxkIGJlIHJlcG9ydGVkLlxyXG4gKiBAcGFyYW0gc291cmNlTGl0ZXJhbCBTb3VyY2UgbGl0ZXJhbCBub2RlLlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHNvdXJjZSBpbmNsdWRlcyBhIGRpc2FsbG93ZWQgZmlsZSBleHRlbnNpb24uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZm9yYmlkZGVuID0gaGFzRGlzYWxsb3dlZEV4dGVuc2lvbihzb3VyY2VMaXRlcmFsKTtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBoYXNEaXNhbGxvd2VkRXh0ZW5zaW9uID0gKHNvdXJjZUxpdGVyYWw6IEVTVHJlZS5MaXRlcmFsKTogYm9vbGVhbiA9PiB7XHJcbiAgaWYgKHR5cGVvZiBzb3VyY2VMaXRlcmFsLnZhbHVlICE9PSBcInN0cmluZ1wiKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihzb3VyY2VMaXRlcmFsLnZhbHVlKTtcclxuXHJcbiAgcmV0dXJuIGV4dGVuc2lvbiAhPT0gdm9pZCAwICYmIGRpc2FsbG93ZWRFeHRlbnNpb25zLmhhcyhleHRlbnNpb24pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJlcG9ydHMgYSBzdGF0ZW1lbnQgd2hlbiBpdCByZWZlcmVuY2VzIGEgc291cmNlIHdpdGggZGlzYWxsb3dlZCBleHRlbnNpb24uXHJcbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRoYXQgbWF5IGluY2x1ZGUgYSBzb3VyY2UgbGl0ZXJhbC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRXaGVuU291cmNlSGFzRXh0ZW5zaW9uKGNvbnRleHQsIHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbiA9IChcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDpcclxuICAgIHwgRVNUcmVlLkV4cG9ydEFsbERlY2xhcmF0aW9uXHJcbiAgICB8IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uXHJcbiAgICB8IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbixcclxuKTogdm9pZCA9PiB7XHJcbiAgY29uc3Qgc291cmNlTGl0ZXJhbCA9IHN0YXRlbWVudC5zb3VyY2U7XHJcblxyXG4gIGlmIChzb3VyY2VMaXRlcmFsID09PSBudWxsIHx8IHNvdXJjZUxpdGVyYWwgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFoYXNEaXNhbGxvd2VkRXh0ZW5zaW9uKHNvdXJjZUxpdGVyYWwpKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb250ZXh0LnJlcG9ydCh7XHJcbiAgICBtZXNzYWdlSWQ6IFwidW5leHBlY3RlZEV4dGVuc2lvblwiLFxyXG4gICAgbm9kZTogc291cmNlTGl0ZXJhbCxcclxuICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBOYXJyb3dzIG9uZSBwcm9ncmFtIHN0YXRlbWVudCB0byB0aGUgc291cmNlLWJlYXJpbmcgZGVjbGFyYXRpb25zIHRoaXMgcnVsZSBpbnNwZWN0cy5cclxuICogQHBhcmFtIHN0YXRlbWVudCBQcm9ncmFtIHN0YXRlbWVudCBub2RlLlxyXG4gKiBAcmV0dXJucyBTb3VyY2UtYmVhcmluZyBkZWNsYXJhdGlvbiB3aGVuIHN1cHBvcnRlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBhc1NvdXJjZURlY2xhcmF0aW9uID0gKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdW251bWJlcl0sXHJcbik6XHJcbiAgfCBFU1RyZWUuRXhwb3J0QWxsRGVjbGFyYXRpb25cclxuICB8IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uXHJcbiAgfCBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb25cclxuICB8IHVuZGVmaW5lZCA9PiB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCIpIHtcclxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGVtZW50LnR5cGUgPT09IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gc3RhdGVtZW50O1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcclxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59O1xyXG5cclxuLyoqIEVTTGludCBydWxlIHRoYXQgZm9yYmlkcyBpbXBvcnQvZXhwb3J0IG1vZHVsZSBzcGVjaWZpZXJzIHdpdGggZXhwbGljaXQgZmlsZSBleHRlbnNpb25zLiAqL1xyXG5jb25zdCBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XHJcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBQcm9ncmFtKG5vZGU6IEVTVHJlZS5Qcm9ncmFtKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygbm9kZS5ib2R5KSB7XHJcbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcclxuXHJcbiAgICAgICAgICBpZiAoZGVjbGFyYXRpb24gIT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICByZXBvcnRXaGVuU291cmNlSGFzRXh0ZW5zaW9uKGNvbnRleHQsIGRlY2xhcmF0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgbWV0YToge1xyXG4gICAgZG9jczoge1xyXG4gICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICBcIkZvcmJpZCBleHBsaWNpdCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcclxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxyXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMubWRcIixcclxuICAgIH0sXHJcbiAgICBtZXNzYWdlczoge1xyXG4gICAgICB1bmV4cGVjdGVkRXh0ZW5zaW9uOlxyXG4gICAgICAgIFwiQXZvaWQgZmlsZSBleHRlbnNpb25zIGluIGltcG9ydC9leHBvcnQgbW9kdWxlIHNwZWNpZmllcnMuXCIsXHJcbiAgICB9LFxyXG4gICAgc2NoZW1hOiBbXSxcclxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH07XHJcbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSwwREFBMEQ7QUFDMUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQ3RELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQ3RCLENBQUM7SUFFRixPQUFPLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQXNCLEVBQUU7SUFDbEUsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsTUFBTSxh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Q0osV0FBVyxFQUNULHFFQUFxRTtZQUN2RSxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsOEZBQThGO1NBQ3BHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsbUJBQW1CLEVBQ2pCLDJEQUEyRDtTQUM5RDtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbi8qKiBTZXQgb2YgZGlzYWxsb3dlZCBtb2R1bGUtc3BlY2lmaWVyIGZpbGUgZXh0ZW5zaW9ucy4gKi9cclxuY29uc3QgZGlzYWxsb3dlZEV4dGVuc2lvbnMgPSBuZXcgU2V0KFtcclxuICBcIi5janNcIixcclxuICBcIi5jdHNcIixcclxuICBcIi5qc1wiLFxyXG4gIFwiLmpzeFwiLFxyXG4gIFwiLm1qc1wiLFxyXG4gIFwiLm10c1wiLFxyXG4gIFwiLnRzXCIsXHJcbiAgXCIudHN4XCIsXHJcbl0pO1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHRyYWlsaW5nIGV4dGVuc2lvbiBmcm9tIGEgbW9kdWxlIHNwZWNpZmllciBzdHJpbmcuXHJcbiAqIEBwYXJhbSBzb3VyY2UgTW9kdWxlIHNwZWNpZmllciB0ZXh0LlxyXG4gKiBAcmV0dXJucyBGaWxlIGV4dGVuc2lvbiBpbmNsdWRpbmcgdGhlIGxlYWRpbmcgZG90IHdoZW4gcHJlc2VudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihcIi4vZmVhdHVyZS50c1wiKTtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBnZXRTcGVjaWZpZXJFbmRJbmRleCA9IChzb3VyY2U6IHN0cmluZyk6IG51bWJlciA9PiB7XHJcbiAgY29uc3QgcXVlcnlJbmRleCA9IHNvdXJjZS5pbmRleE9mKFwiP1wiKTtcclxuICBjb25zdCBoYXNoSW5kZXggPSBzb3VyY2UuaW5kZXhPZihcIiNcIik7XHJcbiAgY29uc3QgZW5kSW5kZXhDYW5kaWRhdGVzID0gW3F1ZXJ5SW5kZXgsIGhhc2hJbmRleF0uZmlsdGVyKFxyXG4gICAgKGluZGV4KSA9PiBpbmRleCA+PSAwLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiBlbmRJbmRleENhbmRpZGF0ZXMubGVuZ3RoID09PSAwXHJcbiAgICA/IHNvdXJjZS5sZW5ndGhcclxuICAgIDogTWF0aC5taW4oLi4uZW5kSW5kZXhDYW5kaWRhdGVzKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB0cmFpbGluZyBleHRlbnNpb24gZnJvbSBhIG1vZHVsZSBzcGVjaWZpZXIgc3RyaW5nLlxyXG4gKiBAcGFyYW0gc291cmNlIE1vZHVsZSBzcGVjaWZpZXIgdGV4dC5cclxuICogQHJldHVybnMgRmlsZSBleHRlbnNpb24gaW5jbHVkaW5nIHRoZSBsZWFkaW5nIGRvdCB3aGVuIHByZXNlbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oXCIuL2ZlYXR1cmUudHNcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgZ2V0VHJhaWxpbmdFeHRlbnNpb24gPSAoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGNvbnN0IGVuZEluZGV4ID0gZ2V0U3BlY2lmaWVyRW5kSW5kZXgoc291cmNlKTtcclxuICBjb25zdCBjbGVhbmVkU291cmNlID0gc291cmNlLnNsaWNlKDAsIGVuZEluZGV4KTtcclxuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxyXG4gICAgY2xlYW5lZFNvdXJjZS5sYXN0SW5kZXhPZihcIi9cIiksXHJcbiAgICBjbGVhbmVkU291cmNlLmxhc3RJbmRleE9mKFwiXFxcXFwiKSxcclxuICApO1xyXG4gIGNvbnN0IGJhc2VuYW1lID0gY2xlYW5lZFNvdXJjZS5zbGljZShsYXN0U2xhc2hJbmRleCArIDEpO1xyXG4gIGNvbnN0IGRvdEluZGV4ID0gYmFzZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xyXG5cclxuICBpZiAoZG90SW5kZXggPD0gMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIHJldHVybiBiYXNlbmFtZS5zbGljZShkb3RJbmRleCkudG9Mb3dlckNhc2UoKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHNvdXJjZSBsaXRlcmFsIHNob3VsZCBiZSByZXBvcnRlZC5cclxuICogQHBhcmFtIHNvdXJjZUxpdGVyYWwgU291cmNlIGxpdGVyYWwgbm9kZS5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBzb3VyY2UgaW5jbHVkZXMgYSBkaXNhbGxvd2VkIGZpbGUgZXh0ZW5zaW9uLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZvcmJpZGRlbiA9IGhhc0Rpc2FsbG93ZWRFeHRlbnNpb24oc291cmNlTGl0ZXJhbCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgaGFzRGlzYWxsb3dlZEV4dGVuc2lvbiA9IChzb3VyY2VMaXRlcmFsOiBFU1RyZWUuTGl0ZXJhbCk6IGJvb2xlYW4gPT4ge1xyXG4gIGlmICh0eXBlb2Ygc291cmNlTGl0ZXJhbC52YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oc291cmNlTGl0ZXJhbC52YWx1ZSk7XHJcblxyXG4gIHJldHVybiBleHRlbnNpb24gIT09IHZvaWQgMCAmJiBkaXNhbGxvd2VkRXh0ZW5zaW9ucy5oYXMoZXh0ZW5zaW9uKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIGEgc3RhdGVtZW50IHdoZW4gaXQgcmVmZXJlbmNlcyBhIHNvdXJjZSB3aXRoIGRpc2FsbG93ZWQgZXh0ZW5zaW9uLlxyXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0aGF0IG1heSBpbmNsdWRlIGEgc291cmNlIGxpdGVyYWwuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24gPSAoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6XHJcbiAgICB8IEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvblxyXG4gICAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxyXG4gICAgfCBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb24sXHJcbik6IHZvaWQgPT4ge1xyXG4gIGNvbnN0IHNvdXJjZUxpdGVyYWwgPSBzdGF0ZW1lbnQuc291cmNlO1xyXG5cclxuICBpZiAoc291cmNlTGl0ZXJhbCA9PT0gbnVsbCB8fCBzb3VyY2VMaXRlcmFsID09PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmICghaGFzRGlzYWxsb3dlZEV4dGVuc2lvbihzb3VyY2VMaXRlcmFsKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgbWVzc2FnZUlkOiBcInVuZXhwZWN0ZWRFeHRlbnNpb25cIixcclxuICAgIG5vZGU6IHNvdXJjZUxpdGVyYWwsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vKipcclxuICogTmFycm93cyBvbmUgcHJvZ3JhbSBzdGF0ZW1lbnQgdG8gdGhlIHNvdXJjZS1iZWFyaW5nIGRlY2xhcmF0aW9ucyB0aGlzIHJ1bGUgaW5zcGVjdHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgUHJvZ3JhbSBzdGF0ZW1lbnQgbm9kZS5cclxuICogQHJldHVybnMgU291cmNlLWJlYXJpbmcgZGVjbGFyYXRpb24gd2hlbiBzdXBwb3J0ZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZGVjbGFyYXRpb24gPSBhc1NvdXJjZURlY2xhcmF0aW9uKHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgYXNTb3VyY2VEZWNsYXJhdGlvbiA9IChcclxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxyXG4pOlxyXG4gIHwgRVNUcmVlLkV4cG9ydEFsbERlY2xhcmF0aW9uXHJcbiAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxyXG4gIHwgRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uXHJcbiAgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gc3RhdGVtZW50O1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudDtcclxuICB9XHJcblxyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gc3RhdGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufTtcclxuXHJcbi8qKiBFU0xpbnQgcnVsZSB0aGF0IGZvcmJpZHMgaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycyB3aXRoIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucy4gKi9cclxuY29uc3Qgbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xyXG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PiAoe1xyXG4gICAgUHJvZ3JhbShub2RlOiBFU1RyZWUuUHJvZ3JhbSk6IHZvaWQge1xyXG4gICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBub2RlLmJvZHkpIHtcclxuICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcclxuXHJcbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uICE9PSB2b2lkIDApIHtcclxuICAgICAgICAgIHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24oY29udGV4dCwgZGVjbGFyYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9KSxcclxuICBtZXRhOiB7XHJcbiAgICBkb2NzOiB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgIFwiRm9yYmlkIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucyBpbiBpbXBvcnQvZXhwb3J0IG1vZHVsZSBzcGVjaWZpZXJzLlwiLFxyXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXHJcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9ucy5tZFwiLFxyXG4gICAgfSxcclxuICAgIG1lc3NhZ2VzOiB7XHJcbiAgICAgIHVuZXhwZWN0ZWRFeHRlbnNpb246XHJcbiAgICAgICAgXCJBdm9pZCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcclxuICAgIH0sXHJcbiAgICBzY2hlbWE6IFtdLFxyXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCB7IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUgfTtcclxuIl19
|
package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-reexports-outside-barrels-rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"no-reexports-outside-barrels-rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiExC;;;;;;GAMG;AACH,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UAsCzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js
CHANGED
|
@@ -31,13 +31,8 @@ const buildListenerForFile = (context, filename, options) => {
|
|
|
31
31
|
node: statement,
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
else if (
|
|
35
|
-
|
|
36
|
-
messageId: "reexportedImport",
|
|
37
|
-
node: statement,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
else if (isImportedDefaultExport) {
|
|
34
|
+
else if (isImportedDefaultExport ||
|
|
35
|
+
hasImportedExport(statement, importedNames)) {
|
|
41
36
|
context.report({
|
|
42
37
|
messageId: "reexportedImport",
|
|
43
38
|
node: statement,
|
|
@@ -55,9 +50,7 @@ const buildListenerForFile = (context, filename, options) => {
|
|
|
55
50
|
* ```
|
|
56
51
|
*/
|
|
57
52
|
const noReexportsOutsideBarrelsRule = {
|
|
58
|
-
create(context)
|
|
59
|
-
return buildListenerForFile(context, context.filename, getOptions(context.options));
|
|
60
|
-
},
|
|
53
|
+
create: (context) => buildListenerForFile(context, context.filename, getOptions(context.options)),
|
|
61
54
|
meta: {
|
|
62
55
|
defaultOptions: [{ allowedBarrelNames: ["index"] }],
|
|
63
56
|
docs: {
|
|
@@ -87,4 +80,4 @@ const noReexportsOutsideBarrelsRule = {
|
|
|
87
80
|
},
|
|
88
81
|
};
|
|
89
82
|
export { noReexportsOutsideBarrelsRule };
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMvbm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxHQUNmLE1BQU0sMENBQTBDLENBQUM7QUFFbEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsT0FBeUIsRUFDekIsUUFBZ0IsRUFDaEIsT0FBc0MsRUFDbkIsRUFBRTtJQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDMUUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxJQUFpQjtZQUN2QixNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sWUFBWSxHQUNoQixTQUFTLENBQUMsSUFBSSxLQUFLLHNCQUFzQjtvQkFDekMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLHdCQUF3Qjt3QkFDMUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJO3dCQUN6QixTQUFTLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBRWpDLE1BQU0sdUJBQXVCLEdBQzNCLFNBQVMsQ0FBQyxJQUFJLEtBQUssMEJBQTBCO29CQUM3QyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxZQUFZO29CQUMzQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRWhELElBQUksWUFBWSxFQUFFLENBQUM7b0JBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsU0FBUyxFQUFFLG9CQUFvQjt3QkFDL0IsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLElBQ0wsdUJBQXVCO29CQUN2QixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLEVBQzNDLENBQUM7b0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixTQUFTLEVBQUUsa0JBQWtCO3dCQUM3QixJQUFJLEVBQUUsU0FBUztxQkFDaEIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLDZCQUE2QixHQUFvQjtJQUNyRCxNQUFNLEVBQUUsQ0FBQyxPQUF5QixFQUFxQixFQUFFLENBQ3ZELG9CQUFvQixDQUNsQixPQUFPLEVBQ1AsT0FBTyxDQUFDLFFBQVEsRUFDaEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDNUI7SUFDSCxJQUFJLEVBQUU7UUFDSixjQUFjLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QsaUVBQWlFO1lBQ25FLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwrRkFBK0Y7U0FDckc7UUFDRCxRQUFRLEVBQUU7WUFDUixnQkFBZ0IsRUFDZCwyRUFBMkU7WUFDN0Usa0JBQWtCLEVBQ2hCLHlEQUF5RDtTQUM1RDtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixrQkFBa0IsRUFBRTt3QkFDbEIsV0FBVyxFQUNULGdGQUFnRjt3QkFDbEYsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsUUFBUSxFQUFFLENBQUM7d0JBQ1gsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCwgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHtcbiAgY29sbGVjdEltcG9ydGVkTmFtZXMsXG4gIGdldE9wdGlvbnMsXG4gIGhhc0ltcG9ydGVkRXhwb3J0LFxuICBpc0JhcnJlbEZpbGUsXG4gIHNob3VsZExpbnRGaWxlLFxufSBmcm9tIFwiLi9uby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBhIHJ1bGUgbGlzdGVuZXIgZm9yIHRoZSBzdXBwbGllZCBmaWxlLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZSB0byBsaW50LlxuICogQHBhcmFtIG9wdGlvbnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgcnVsZSBsaXN0ZW5lciBmb3IgdGhlIGZpbGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdGVuZXIgPSBidWlsZExpc3RlbmVyRm9yRmlsZShjb250ZXh0LCBmaWxlbmFtZSwgc3RhdGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkTGlzdGVuZXJGb3JGaWxlID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRPcHRpb25zPixcbik6IFJ1bGUuUnVsZUxpc3RlbmVyID0+IHtcbiAgaWYgKCFzaG91bGRMaW50RmlsZShmaWxlbmFtZSwgb3B0aW9ucykgfHwgaXNCYXJyZWxGaWxlKGZpbGVuYW1lLCBvcHRpb25zKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgUHJvZ3JhbShub2RlOiBBU1QuUHJvZ3JhbSk6IHZvaWQge1xuICAgICAgY29uc3QgaW1wb3J0ZWROYW1lcyA9IGNvbGxlY3RJbXBvcnRlZE5hbWVzKG5vZGUuYm9keSk7XG5cbiAgICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIG5vZGUuYm9keSkge1xuICAgICAgICBjb25zdCBpc0V4cG9ydEZyb20gPVxuICAgICAgICAgIHN0YXRlbWVudC50eXBlID09PSBcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCIgfHxcbiAgICAgICAgICAoc3RhdGVtZW50LnR5cGUgPT09IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiICYmXG4gICAgICAgICAgICBzdGF0ZW1lbnQuc291cmNlICE9PSBudWxsICYmXG4gICAgICAgICAgICBzdGF0ZW1lbnQuc291cmNlICE9PSB2b2lkIDApO1xuXG4gICAgICAgIGNvbnN0IGlzSW1wb3J0ZWREZWZhdWx0RXhwb3J0ID1cbiAgICAgICAgICBzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIiAmJlxuICAgICAgICAgIHN0YXRlbWVudC5kZWNsYXJhdGlvbi50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgICAgIGltcG9ydGVkTmFtZXMuaGFzKHN0YXRlbWVudC5kZWNsYXJhdGlvbi5uYW1lKTtcblxuICAgICAgICBpZiAoaXNFeHBvcnRGcm9tKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbWVzc2FnZUlkOiBcInJlZXhwb3J0Tm90QWxsb3dlZFwiLFxuICAgICAgICAgICAgbm9kZTogc3RhdGVtZW50LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGlzSW1wb3J0ZWREZWZhdWx0RXhwb3J0IHx8XG4gICAgICAgICAgaGFzSW1wb3J0ZWRFeHBvcnQoc3RhdGVtZW50LCBpbXBvcnRlZE5hbWVzKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBtZXNzYWdlSWQ6IFwicmVleHBvcnRlZEltcG9ydFwiLFxuICAgICAgICAgICAgbm9kZTogc3RhdGVtZW50LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn07XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcHJldmVudGluZyByZS1leHBvcnRzIG91dHNpZGUgYmFycmVsIGZpbGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJ1bGUgPSBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZTtcbiAqIGBgYFxuICovXG5jb25zdCBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGU6IChjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT5cbiAgICBidWlsZExpc3RlbmVyRm9yRmlsZShcbiAgICAgIGNvbnRleHQsXG4gICAgICBjb250ZXh0LmZpbGVuYW1lLFxuICAgICAgZ2V0T3B0aW9ucyhjb250ZXh0Lm9wdGlvbnMpLFxuICAgICksXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW3sgYWxsb3dlZEJhcnJlbE5hbWVzOiBbXCJpbmRleFwiXSB9XSxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIG5vbi1iYXJyZWwgZmlsZXMgdG8gZXhwb3J0IG9ubHkgbG9jYWxseSBkZWZpbmVkIHZhbHVlcy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICByZWV4cG9ydGVkSW1wb3J0OlxuICAgICAgICBcIk5vbi1iYXJyZWwgZmlsZXMgbXVzdCBub3QgZXhwb3J0IGlkZW50aWZpZXJzIGltcG9ydGVkIGZyb20gb3RoZXIgbW9kdWxlcy5cIixcbiAgICAgIHJlZXhwb3J0Tm90QWxsb3dlZDpcbiAgICAgICAgXCJOb24tYmFycmVsIGZpbGVzIG11c3Qgbm90IHJlLWV4cG9ydCBmcm9tIG90aGVyIG1vZHVsZXMuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWxsb3dlZEJhcnJlbE5hbWVzOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJBbGxvd2VkIGJhcnJlbCBiYXNlbmFtZXMgdGhhdCBzaG91bGQgYmUgZXhlbXB0IGZyb20gdGhlIHJlLWV4cG9ydCByZXN0cmljdGlvbi5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSB9O1xuIl19
|
package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AST } from "eslint";
|
|
2
|
+
import type { ExportedElement } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Collects exported elements from one program body.
|
|
5
|
+
* @param body Program body statements.
|
|
6
|
+
* @returns Exported elements in declaration order.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const exported = collectExportedElements(program.body);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare const collectExportedElements: (body: AST.Program["body"]) => ExportedElement[];
|
|
13
|
+
export { collectExportedElements };
|
|
14
|
+
//# sourceMappingURL=no-unused-exports-declaration-utilities.d.ts.map
|
package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-unused-exports-declaration-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,SAAS,CAAC;AAqO3D;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAC3B,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KACxB,eAAe,EAoCjB,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { collectPatternIdentifierNames, getExportSpecifierLocalName, getExportSpecifierName, } from "./no-unused-exports-pattern-utilities.js";
|
|
2
|
+
import { asRecord, readArrayProperty, readStringProperty, } from "./no-unused-exports-record-utilities.js";
|
|
3
|
+
/** Declaration statement types that own one named `id` property. */
|
|
4
|
+
const NAMED_DECLARATION_TYPES = new Set([
|
|
5
|
+
"ClassDeclaration",
|
|
6
|
+
"FunctionDeclaration",
|
|
7
|
+
"TSEnumDeclaration",
|
|
8
|
+
"TSInterfaceDeclaration",
|
|
9
|
+
"TSTypeAliasDeclaration",
|
|
10
|
+
]);
|
|
11
|
+
/**
|
|
12
|
+
* Records variable declarator names as value declarations.
|
|
13
|
+
* @param declarationNames Map from declared name to declaration metadata.
|
|
14
|
+
* @param declarations Variable declarator candidates.
|
|
15
|
+
* @param statement Owning statement used for diagnostics.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* addVariableDeclaratorNames(declarationNames, declarations, statement);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
const addVariableDeclaratorNames = (declarationNames, declarations, statement) => {
|
|
22
|
+
for (const declaration of declarations) {
|
|
23
|
+
const declarationRecord = asRecord(declaration);
|
|
24
|
+
if (declarationRecord === void 0) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const patternNames = collectPatternIdentifierNames(declarationRecord["id"]);
|
|
28
|
+
for (const name of patternNames) {
|
|
29
|
+
declarationNames.set(name, { kind: "value", node: statement });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Collects top-level declaration names owned by the current module.
|
|
35
|
+
* @param body Program body statements.
|
|
36
|
+
* @returns Map from locally declared name to its declaration metadata.
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const declarations = collectLocalDeclarationNames(program.body);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
const collectLocalDeclarationNames = (body) => {
|
|
43
|
+
const declarationNames = new Map();
|
|
44
|
+
for (const statement of body) {
|
|
45
|
+
const declarationCandidate = statement.type === "ExportNamedDeclaration" &&
|
|
46
|
+
statement.declaration !== null &&
|
|
47
|
+
statement.declaration !== void 0
|
|
48
|
+
? statement.declaration
|
|
49
|
+
: statement;
|
|
50
|
+
const declarationCandidateRecord = asRecord(declarationCandidate);
|
|
51
|
+
const declarationCandidateType = readStringProperty(declarationCandidate, "type");
|
|
52
|
+
if (declarationCandidateRecord === void 0 ||
|
|
53
|
+
declarationCandidateType === void 0) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (NAMED_DECLARATION_TYPES.has(declarationCandidateType)) {
|
|
57
|
+
const declarationName = readStringProperty(declarationCandidateRecord["id"], "name");
|
|
58
|
+
if (declarationName !== void 0) {
|
|
59
|
+
declarationNames.set(declarationName, {
|
|
60
|
+
kind: declarationCandidateType === "TSInterfaceDeclaration" ||
|
|
61
|
+
declarationCandidateType === "TSTypeAliasDeclaration"
|
|
62
|
+
? "type"
|
|
63
|
+
: "value",
|
|
64
|
+
node: statement,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (declarationCandidateType !== "VariableDeclaration") {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const declarations = readArrayProperty(declarationCandidateRecord, "declarations");
|
|
73
|
+
if (declarations === void 0) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
addVariableDeclaratorNames(declarationNames, declarations, statement);
|
|
77
|
+
}
|
|
78
|
+
return declarationNames;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Adds exported elements described by one export declaration site.
|
|
82
|
+
* @param exportedElements Mutable exported-element accumulator.
|
|
83
|
+
* @param statement Named export statement being inspected.
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* addDeclarationExportElements(exportedElements, statement);
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
const addDeclarationExportElements = (exportedElements, statement) => {
|
|
90
|
+
const declaration = asRecord(statement.declaration);
|
|
91
|
+
if (readStringProperty(declaration, "type") === "VariableDeclaration") {
|
|
92
|
+
const variableDeclarations = readArrayProperty(declaration, "declarations");
|
|
93
|
+
if (variableDeclarations !== void 0) {
|
|
94
|
+
for (const variable of variableDeclarations) {
|
|
95
|
+
const patternNames = collectPatternIdentifierNames(asRecord(variable)?.["id"]);
|
|
96
|
+
for (const name of patternNames) {
|
|
97
|
+
exportedElements.push({
|
|
98
|
+
exportedName: name,
|
|
99
|
+
exportKind: "value",
|
|
100
|
+
node: statement,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const declarationName = readStringProperty(declaration?.["id"], "name");
|
|
108
|
+
const declarationType = readStringProperty(declaration, "type");
|
|
109
|
+
const exportKind = declarationType === "TSInterfaceDeclaration" ||
|
|
110
|
+
declarationType === "TSTypeAliasDeclaration"
|
|
111
|
+
? "type"
|
|
112
|
+
: "value";
|
|
113
|
+
if (typeof declarationName === "string") {
|
|
114
|
+
exportedElements.push({
|
|
115
|
+
exportedName: declarationName,
|
|
116
|
+
exportKind,
|
|
117
|
+
node: statement,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Adds exported elements for the specifiers of one named export statement.
|
|
123
|
+
* @param exportedElements Mutable exported-element accumulator.
|
|
124
|
+
* @param localDeclarationNames Locally declared names for specifier lookup.
|
|
125
|
+
* @param statement Named export statement being inspected.
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* addSpecifierExportElements(exportedElements, localDeclarationNames, statement);
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
const addSpecifierExportElements = (exportedElements, localDeclarationNames, statement) => {
|
|
132
|
+
for (const specifier of statement.specifiers) {
|
|
133
|
+
const localName = getExportSpecifierLocalName(specifier);
|
|
134
|
+
const localDeclaration = localName === void 0 ? void 0 : localDeclarationNames.get(localName);
|
|
135
|
+
if (localDeclaration === void 0) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const exportedName = getExportSpecifierName(specifier);
|
|
139
|
+
if (exportedName !== void 0) {
|
|
140
|
+
const statementExportKind = readStringProperty(statement, "exportKind");
|
|
141
|
+
const specifierExportKind = readStringProperty(specifier, "exportKind");
|
|
142
|
+
const isTypeOnlyExport = statementExportKind === "type" || specifierExportKind === "type";
|
|
143
|
+
exportedElements.push({
|
|
144
|
+
exportedName,
|
|
145
|
+
exportKind: isTypeOnlyExport ? "type" : localDeclaration.kind,
|
|
146
|
+
node: localDeclaration.node,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Collects exported elements from one program body.
|
|
153
|
+
* @param body Program body statements.
|
|
154
|
+
* @returns Exported elements in declaration order.
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const exported = collectExportedElements(program.body);
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
const collectExportedElements = (body) => {
|
|
161
|
+
const exportedElements = [];
|
|
162
|
+
const localDeclarationNames = collectLocalDeclarationNames(body);
|
|
163
|
+
for (const statement of body) {
|
|
164
|
+
if (statement.type === "ExportDefaultDeclaration") {
|
|
165
|
+
exportedElements.push({
|
|
166
|
+
exportedName: "default",
|
|
167
|
+
exportKind: "value",
|
|
168
|
+
node: statement,
|
|
169
|
+
});
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (statement.type !== "ExportNamedDeclaration") {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (statement.source !== null && statement.source !== void 0) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (statement.declaration !== null && statement.declaration !== void 0) {
|
|
179
|
+
addDeclarationExportElements(exportedElements, statement);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
addSpecifierExportElements(exportedElements, localDeclarationNames, statement);
|
|
183
|
+
}
|
|
184
|
+
return exportedElements;
|
|
185
|
+
};
|
|
186
|
+
export { collectExportedElements };
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdW51c2VkLWV4cG9ydHMtZGVjbGFyYXRpb24tdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLWV4cG9ydHMvbm8tdW51c2VkLWV4cG9ydHMtZGVjbGFyYXRpb24tdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHNCQUFzQixHQUN2QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLGtCQUFrQixHQUNuQixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLG9FQUFvRTtBQUNwRSxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3RDLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLHdCQUF3QjtJQUN4Qix3QkFBd0I7Q0FDekIsQ0FBQyxDQUFDO0FBV0g7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxnQkFBK0MsRUFDL0MsWUFBZ0MsRUFDaEMsU0FBc0MsRUFDaEMsRUFBRTtJQUNSLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU1RSxLQUFLLE1BQU0sSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2hDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUks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QUFJLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdELFNBQVM7UUFDWCxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsNEJBQTRCLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFMUQsU0FBUztRQUNYLENBQUM7UUFFRCwwQkFBMEIsQ0FDeEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBU1QgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB0eXBlIHsgRXhwb3J0ZWRFbGVtZW50LCBFeHBvcnRLaW5kIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHtcbiAgY29sbGVjdFBhdHRlcm5JZGVudGlmaWVyTmFtZXMsXG4gIGdldEV4cG9ydFNwZWNpZmllckxvY2FsTmFtZSxcbiAgZ2V0RXhwb3J0U3BlY2lmaWVyTmFtZSxcbn0gZnJvbSBcIi4vbm8tdW51c2VkLWV4cG9ydHMtcGF0dGVybi11dGlsaXRpZXNcIjtcbmltcG9ydCB7XG4gIGFzUmVjb3JkLFxuICByZWFkQXJyYXlQcm9wZXJ0eSxcbiAgcmVhZFN0cmluZ1Byb3BlcnR5LFxufSBmcm9tIFwiLi9uby11bnVzZWQtZXhwb3J0cy1yZWNvcmQtdXRpbGl0aWVzXCI7XG5cbi8qKiBEZWNsYXJhdGlvbiBzdGF0ZW1lbnQgdHlwZXMgdGhhdCBvd24gb25lIG5hbWVkIGBpZGAgcHJvcGVydHkuICovXG5jb25zdCBOQU1FRF9ERUNMQVJBVElPTl9UWVBFUyA9IG5ldyBTZXQoW1xuICBcIkNsYXNzRGVjbGFyYXRpb25cIixcbiAgXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIsXG4gIFwiVFNFbnVtRGVjbGFyYXRpb25cIixcbiAgXCJUU0ludGVyZmFjZURlY2xhcmF0aW9uXCIsXG4gIFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLFxuXSk7XG5cbi8qKiBMb2NhbCB0b3AtbGV2ZWwgZGVjbGFyYXRpb24gZGlzY292ZXJlZCB3aGVuIGNvbGxlY3RpbmcgZXhwb3J0IHNvdXJjZXMuICovXG5pbnRlcmZhY2UgTG9jYWxEZWNsYXJhdGlvbiB7XG4gIC8qKiBFeHBvcnQga2luZCBpbXBsaWVkIGJ5IHRoZSBkZWNsYXJhdGlvbi4gKi9cbiAga2luZDogRXhwb3J0S2luZDtcblxuICAvKiogRGVjbGFyYXRpb24gc3RhdGVtZW50IHVzZWQgZm9yIGRpYWdub3N0aWNzLiAqL1xuICBub2RlOiBBU1QuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIHZhcmlhYmxlIGRlY2xhcmF0b3IgbmFtZXMgYXMgdmFsdWUgZGVjbGFyYXRpb25zLlxuICogQHBhcmFtIGRlY2xhcmF0aW9uTmFtZXMgTWFwIGZyb20gZGVjbGFyZWQgbmFtZSB0byBkZWNsYXJhdGlvbiBtZXRhZGF0YS5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgVmFyaWFibGUgZGVjbGFyYXRvciBjYW5kaWRhdGVzLlxuICogQHBhcmFtIHN0YXRlbWVudCBPd25pbmcgc3RhdGVtZW50IHVzZWQgZm9yIGRpYWdub3N0aWNzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFkZFZhcmlhYmxlRGVjbGFyYXRvck5hbWVzKGRlY2xhcmF0aW9uTmFtZXMsIGRlY2xhcmF0aW9ucywgc3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBhZGRWYXJpYWJsZURlY2xhcmF0b3JOYW1lcyA9IChcbiAgZGVjbGFyYXRpb25OYW1lczogTWFwPHN0cmluZywgTG9jYWxEZWNsYXJhdGlvbj4sXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgdW5rbm93bltdLFxuICBzdGF0ZW1lbnQ6IEFTVC5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxuKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgZGVjbGFyYXRpb25zKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25SZWNvcmQgPSBhc1JlY29yZChkZWNsYXJhdGlvbik7XG5cbiAgICBpZiAoZGVjbGFyYXRpb25SZWNvcmQgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0dGVybk5hbWVzID0gY29sbGVjdFBhdHRlcm5JZGVudGlmaWVyTmFtZXMoZGVjbGFyYXRpb25SZWNvcmRbXCJpZFwiXSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgcGF0dGVybk5hbWVzKSB7XG4gICAgICBkZWNsYXJhdGlvbk5hbWVzLnNldChuYW1lLCB7IGtpbmQ6IFwidmFsdWVcIiwgbm9kZTogc3RhdGVtZW50IH0pO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBDb2xsZWN0cyB0b3AtbGV2ZWwgZGVjbGFyYXRpb24gbmFtZXMgb3duZWQgYnkgdGhlIGN1cnJlbnQgbW9kdWxlLlxuICogQHBhcmFtIGJvZHkgUHJvZ3JhbSBib2R5IHN0YXRlbWVudHMuXG4gKiBAcmV0dXJucyBNYXAgZnJvbSBsb2NhbGx5IGRlY2xhcmVkIG5hbWUgdG8gaXRzIGRlY2xhcmF0aW9uIG1ldGFkYXRhLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9ucyA9IGNvbGxlY3RMb2NhbERlY2xhcmF0aW9uTmFtZXMocHJvZ3JhbS5ib2R5KTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0TG9jYWxEZWNsYXJhdGlvbk5hbWVzID0gKFxuICBib2R5OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl0sXG4pOiBNYXA8c3RyaW5nLCBMb2NhbERlY2xhcmF0aW9uPiA9PiB7XG4gIGNvbnN0IGRlY2xhcmF0aW9uTmFtZXMgPSBuZXcgTWFwPHN0cmluZywgTG9jYWxEZWNsYXJhdGlvbj4oKTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBib2R5KSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25DYW5kaWRhdGUgPVxuICAgICAgc3RhdGVtZW50LnR5cGUgPT09IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiICYmXG4gICAgICBzdGF0ZW1lbnQuZGVjbGFyYXRpb24gIT09IG51bGwgJiZcbiAgICAgIHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gdm9pZCAwXG4gICAgICAgID8gc3RhdGVtZW50LmRlY2xhcmF0aW9uXG4gICAgICAgIDogc3RhdGVtZW50O1xuICAgIGNvbnN0IGRlY2xhcmF0aW9uQ2FuZGlkYXRlUmVjb3JkID0gYXNSZWNvcmQoZGVjbGFyYXRpb25DYW5kaWRhdGUpO1xuICAgIGNvbnN0IGRlY2xhcmF0aW9uQ2FuZGlkYXRlVHlwZSA9IHJlYWRTdHJpbmdQcm9wZXJ0eShcbiAgICAgIGRlY2xhcmF0aW9uQ2FuZGlkYXRlLFxuICAgICAgXCJ0eXBlXCIsXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgIGRlY2xhcmF0aW9uQ2FuZGlkYXRlUmVjb3JkID09PSB2b2lkIDAgfHxcbiAgICAgIGRlY2xhcmF0aW9uQ2FuZGlkYXRlVHlwZSA9PT0gdm9pZCAwXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoTkFNRURfREVDTEFSQVRJT05fVFlQRVMuaGFzKGRlY2xhcmF0aW9uQ2FuZGlkYXRlVHlwZSkpIHtcbiAgICAgIGNvbnN0IGRlY2xhcmF0aW9uTmFtZSA9IHJlYWRTdHJpbmdQcm9wZXJ0eShcbiAgICAgICAgZGVjbGFyYXRpb25DYW5kaWRhdGVSZWNvcmRbXCJpZFwiXSxcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICApO1xuXG4gICAgICBpZiAoZGVjbGFyYXRpb25OYW1lICE9PSB2b2lkIDApIHtcbiAgICAgICAgZGVjbGFyYXRpb25OYW1lcy5zZXQoZGVjbGFyYXRpb25OYW1lLCB7XG4gICAgICAgICAga2luZDpcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uQ2FuZGlkYXRlVHlwZSA9PT0gXCJUU0ludGVyZmFjZURlY2xhcmF0aW9uXCIgfHxcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uQ2FuZGlkYXRlVHlwZSA9PT0gXCJUU1R5cGVBbGlhc0RlY2xhcmF0aW9uXCJcbiAgICAgICAgICAgICAgPyBcInR5cGVcIlxuICAgICAgICAgICAgICA6IFwidmFsdWVcIixcbiAgICAgICAgICBub2RlOiBzdGF0ZW1lbnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZGVjbGFyYXRpb25DYW5kaWRhdGVUeXBlICE9PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjbGFyYXRpb25zID0gcmVhZEFycmF5UHJvcGVydHkoXG4gICAgICBkZWNsYXJhdGlvbkNhbmRpZGF0ZVJlY29yZCxcbiAgICAgIFwiZGVjbGFyYXRpb25zXCIsXG4gICAgKTtcblxuICAgIGlmIChkZWNsYXJhdGlvbnMgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgYWRkVmFyaWFibGVEZWNsYXJhdG9yTmFtZXMoZGVjbGFyYXRpb25OYW1lcywgZGVjbGFyYXRpb25zLCBzdGF0ZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uTmFtZXM7XG59O1xuXG4vKipcbiAqIEFkZHMgZXhwb3J0ZWQgZWxlbWVudHMgZGVzY3JpYmVkIGJ5IG9uZSBleHBvcnQgZGVjbGFyYXRpb24gc2l0ZS5cbiAqIEBwYXJhbSBleHBvcnRlZEVsZW1lbnRzIE11dGFibGUgZXhwb3J0ZWQtZWxlbWVudCBhY2N1bXVsYXRvci5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgTmFtZWQgZXhwb3J0IHN0YXRlbWVudCBiZWluZyBpbnNwZWN0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYWRkRGVjbGFyYXRpb25FeHBvcnRFbGVtZW50cyhleHBvcnRlZEVsZW1lbnRzLCBzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGFkZERlY2xhcmF0aW9uRXhwb3J0RWxlbWVudHMgPSAoXG4gIGV4cG9ydGVkRWxlbWVudHM6IEV4cG9ydGVkRWxlbWVudFtdLFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uLFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IGRlY2xhcmF0aW9uID0gYXNSZWNvcmQoc3RhdGVtZW50LmRlY2xhcmF0aW9uKTtcblxuICBpZiAocmVhZFN0cmluZ1Byb3BlcnR5KGRlY2xhcmF0aW9uLCBcInR5cGVcIikgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvbnMgPSByZWFkQXJyYXlQcm9wZXJ0eShkZWNsYXJhdGlvbiwgXCJkZWNsYXJhdGlvbnNcIik7XG5cbiAgICBpZiAodmFyaWFibGVEZWNsYXJhdGlvbnMgIT09IHZvaWQgMCkge1xuICAgICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiB2YXJpYWJsZURlY2xhcmF0aW9ucykge1xuICAgICAgICBjb25zdCBwYXR0ZXJuTmFtZXMgPSBjb2xsZWN0UGF0dGVybklkZW50aWZpZXJOYW1lcyhcbiAgICAgICAgICBhc1JlY29yZCh2YXJpYWJsZSk/LltcImlkXCJdLFxuICAgICAgICApO1xuXG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBwYXR0ZXJuTmFtZXMpIHtcbiAgICAgICAgICBleHBvcnRlZEVsZW1lbnRzLnB1c2goe1xuICAgICAgICAgICAgZXhwb3J0ZWROYW1lOiBuYW1lLFxuICAgICAgICAgICAgZXhwb3J0S2luZDogXCJ2YWx1ZVwiLFxuICAgICAgICAgICAgbm9kZTogc3RhdGVtZW50LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVjbGFyYXRpb25OYW1lID0gcmVhZFN0cmluZ1Byb3BlcnR5KGRlY2xhcmF0aW9uPy5bXCJpZFwiXSwgXCJuYW1lXCIpO1xuICBjb25zdCBkZWNsYXJhdGlvblR5cGUgPSByZWFkU3RyaW5nUHJvcGVydHkoZGVjbGFyYXRpb24sIFwidHlwZVwiKTtcbiAgY29uc3QgZXhwb3J0S2luZDogRXhwb3J0S2luZCA9XG4gICAgZGVjbGFyYXRpb25UeXBlID09PSBcIlRTSW50ZXJmYWNlRGVjbGFyYXRpb25cIiB8fFxuICAgIGRlY2xhcmF0aW9uVHlwZSA9PT0gXCJUU1R5cGVBbGlhc0RlY2xhcmF0aW9uXCJcbiAgICAgID8gXCJ0eXBlXCJcbiAgICAgIDogXCJ2YWx1ZVwiO1xuXG4gIGlmICh0eXBlb2YgZGVjbGFyYXRpb25OYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgZXhwb3J0ZWRFbGVtZW50cy5wdXNoKHtcbiAgICAgIGV4cG9ydGVkTmFtZTogZGVjbGFyYXRpb25OYW1lLFxuICAgICAgZXhwb3J0S2luZCxcbiAgICAgIG5vZGU6IHN0YXRlbWVudCxcbiAgICB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGRzIGV4cG9ydGVkIGVsZW1lbnRzIGZvciB0aGUgc3BlY2lmaWVycyBvZiBvbmUgbmFtZWQgZXhwb3J0IHN0YXRlbWVudC5cbiAqIEBwYXJhbSBleHBvcnRlZEVsZW1lbnRzIE11dGFibGUgZXhwb3J0ZWQtZWxlbWVudCBhY2N1bXVsYXRvci5cbiAqIEBwYXJhbSBsb2NhbERlY2xhcmF0aW9uTmFtZXMgTG9jYWxseSBkZWNsYXJlZCBuYW1lcyBmb3Igc3BlY2lmaWVyIGxvb2t1cC5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgTmFtZWQgZXhwb3J0IHN0YXRlbWVudCBiZWluZyBpbnNwZWN0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYWRkU3BlY2lmaWVyRXhwb3J0RWxlbWVudHMoZXhwb3J0ZWRFbGVtZW50cywgbG9jYWxEZWNsYXJhdGlvbk5hbWVzLCBzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGFkZFNwZWNpZmllckV4cG9ydEVsZW1lbnRzID0gKFxuICBleHBvcnRlZEVsZW1lbnRzOiBFeHBvcnRlZEVsZW1lbnRbXSxcbiAgbG9jYWxEZWNsYXJhdGlvbk5hbWVzOiBSZWFkb25seU1hcDxzdHJpbmcsIExvY2FsRGVjbGFyYXRpb24+LFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uLFxuKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIHN0YXRlbWVudC5zcGVjaWZpZXJzKSB7XG4gICAgY29uc3QgbG9jYWxOYW1lID0gZ2V0RXhwb3J0U3BlY2lmaWVyTG9jYWxOYW1lKHNwZWNpZmllcik7XG4gICAgY29uc3QgbG9jYWxEZWNsYXJhdGlvbiA9XG4gICAgICBsb2NhbE5hbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxvY2FsRGVjbGFyYXRpb25OYW1lcy5nZXQobG9jYWxOYW1lKTtcblxuICAgIGlmIChsb2NhbERlY2xhcmF0aW9uID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cG9ydGVkTmFtZSA9IGdldEV4cG9ydFNwZWNpZmllck5hbWUoc3BlY2lmaWVyKTtcblxuICAgIGlmIChleHBvcnRlZE5hbWUgIT09IHZvaWQgMCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50RXhwb3J0S2luZCA9IHJlYWRTdHJpbmdQcm9wZXJ0eShzdGF0ZW1lbnQsIFwiZXhwb3J0S2luZFwiKTtcbiAgICAgIGNvbnN0IHNwZWNpZmllckV4cG9ydEtpbmQgPSByZWFkU3RyaW5nUHJvcGVydHkoc3BlY2lmaWVyLCBcImV4cG9ydEtpbmRcIik7XG4gICAgICBjb25zdCBpc1R5cGVPbmx5RXhwb3J0ID1cbiAgICAgICAgc3RhdGVtZW50RXhwb3J0S2luZCA9PT0gXCJ0eXBlXCIgfHwgc3BlY2lmaWVyRXhwb3J0S2luZCA9PT0gXCJ0eXBlXCI7XG5cbiAgICAgIGV4cG9ydGVkRWxlbWVudHMucHVzaCh7XG4gICAgICAgIGV4cG9ydGVkTmFtZSxcbiAgICAgICAgZXhwb3J0S2luZDogaXNUeXBlT25seUV4cG9ydCA/IFwidHlwZVwiIDogbG9jYWxEZWNsYXJhdGlvbi5raW5kLFxuICAgICAgICBub2RlOiBsb2NhbERlY2xhcmF0aW9uLm5vZGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQ29sbGVjdHMgZXhwb3J0ZWQgZWxlbWVudHMgZnJvbSBvbmUgcHJvZ3JhbSBib2R5LlxuICogQHBhcmFtIGJvZHkgUHJvZ3JhbSBib2R5IHN0YXRlbWVudHMuXG4gKiBAcmV0dXJucyBFeHBvcnRlZCBlbGVtZW50cyBpbiBkZWNsYXJhdGlvbiBvcmRlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHBvcnRlZCA9IGNvbGxlY3RFeHBvcnRlZEVsZW1lbnRzKHByb2dyYW0uYm9keSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29sbGVjdEV4cG9ydGVkRWxlbWVudHMgPSAoXG4gIGJvZHk6IEFTVC5Qcm9ncmFtW1wiYm9keVwiXSxcbik6IEV4cG9ydGVkRWxlbWVudFtdID0+IHtcbiAgY29uc3QgZXhwb3J0ZWRFbGVtZW50czogRXhwb3J0ZWRFbGVtZW50W10gPSBbXTtcbiAgY29uc3QgbG9jYWxEZWNsYXJhdGlvbk5hbWVzID0gY29sbGVjdExvY2FsRGVjbGFyYXRpb25OYW1lcyhib2R5KTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBib2R5KSB7XG4gICAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiKSB7XG4gICAgICBleHBvcnRlZEVsZW1lbnRzLnB1c2goe1xuICAgICAgICBleHBvcnRlZE5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICBleHBvcnRLaW5kOiBcInZhbHVlXCIsXG4gICAgICAgIG5vZGU6IHN0YXRlbWVudCxcbiAgICAgIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudC5zb3VyY2UgIT09IG51bGwgJiYgc3RhdGVtZW50LnNvdXJjZSAhPT0gdm9pZCAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50LmRlY2xhcmF0aW9uICE9PSBudWxsICYmIHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICBhZGREZWNsYXJhdGlvbkV4cG9ydEVsZW1lbnRzKGV4cG9ydGVkRWxlbWVudHMsIHN0YXRlbWVudCk7XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGFkZFNwZWNpZmllckV4cG9ydEVsZW1lbnRzKFxuICAgICAgZXhwb3J0ZWRFbGVtZW50cyxcbiAgICAgIGxvY2FsRGVjbGFyYXRpb25OYW1lcyxcbiAgICAgIHN0YXRlbWVudCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGV4cG9ydGVkRWxlbWVudHM7XG59O1xuXG5leHBvcnQgeyBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyB9O1xuIl19
|
package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import * as ts from "typescript";
|
|
3
|
+
import type { ExportKind } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Resolves TypeScript parser services program when available.
|
|
6
|
+
* @param context Rule context.
|
|
7
|
+
* @returns TypeScript program when available.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const program = getTypeScriptProgram(context);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
declare const getTypeScriptProgram: (context: Rule.RuleContext) => ts.Program | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Checks whether one identifier is one concrete usage candidate for the export kind.
|
|
16
|
+
* @param identifier Identifier node.
|
|
17
|
+
* @param exportKind Whether type-only or value usage is required.
|
|
18
|
+
* @returns True when the identifier can satisfy usage.
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const concrete = isConcreteUsageIdentifier(identifier, "value");
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare const isConcreteUsageIdentifier: (identifier: ts.Identifier, exportKind: ExportKind) => boolean;
|
|
25
|
+
export { getTypeScriptProgram, isConcreteUsageIdentifier };
|
|
26
|
+
//# sourceMappingURL=no-unused-exports-identifier-utilities.d.ts.map
|
package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-unused-exports-identifier-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GACxB,SAAS,IAAI,CAAC,WAAW,KACxB,EAAE,CAAC,OAAO,GAAG,SAOf,CAAC;AAsEF;;;;;;;;;GASG;AACH,QAAA,MAAM,yBAAyB,GAC7B,YAAY,EAAE,CAAC,UAAU,EACzB,YAAY,UAAU,KACrB,OAQF,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import * as ts from "typescript";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves TypeScript parser services program when available.
|
|
5
|
+
* @param context Rule context.
|
|
6
|
+
* @returns TypeScript program when available.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const program = getTypeScriptProgram(context);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
const getTypeScriptProgram = (context) => {
|
|
13
|
+
try {
|
|
14
|
+
const services = ESLintUtils.getParserServices(context);
|
|
15
|
+
return services.program;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return void 0;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Checks whether an identifier participates in one declaration/import/export site.
|
|
23
|
+
* @param identifier Identifier node to evaluate.
|
|
24
|
+
* @returns True when the identifier is declaration-only syntax.
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const declaration = isDeclarationOnlyIdentifier(identifier);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const isDeclarationOnlyIdentifier = (identifier) => {
|
|
31
|
+
const parent = identifier.parent;
|
|
32
|
+
return (ts.isImportSpecifier(parent) ||
|
|
33
|
+
ts.isImportClause(parent) ||
|
|
34
|
+
ts.isNamespaceImport(parent) ||
|
|
35
|
+
ts.isImportEqualsDeclaration(parent) ||
|
|
36
|
+
ts.isExportSpecifier(parent) ||
|
|
37
|
+
ts.isTypeAliasDeclaration(parent) ||
|
|
38
|
+
ts.isInterfaceDeclaration(parent) ||
|
|
39
|
+
ts.isTypeParameterDeclaration(parent) ||
|
|
40
|
+
(ts.isVariableDeclaration(parent) && parent.name === identifier) ||
|
|
41
|
+
(ts.isFunctionDeclaration(parent) && parent.name === identifier) ||
|
|
42
|
+
(ts.isClassDeclaration(parent) && parent.name === identifier) ||
|
|
43
|
+
(ts.isParameter(parent) && parent.name === identifier));
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Checks whether one identifier node appears under a type node.
|
|
47
|
+
* @param identifier Candidate identifier.
|
|
48
|
+
* @returns True when the identifier is inside type-only syntax.
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const typePosition = isTypePositionIdentifier(identifier);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
const isTypePositionIdentifier = (identifier) => {
|
|
55
|
+
const visitNode = (current) => {
|
|
56
|
+
if (ts.isTypeQueryNode(current)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (ts.isTypeNode(current)) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
if (ts.isExpressionStatement(current) ||
|
|
63
|
+
ts.isCallExpression(current) ||
|
|
64
|
+
ts.isPropertyAccessExpression(current) ||
|
|
65
|
+
ts.isElementAccessExpression(current) ||
|
|
66
|
+
ts.isVariableDeclaration(current) ||
|
|
67
|
+
ts.isReturnStatement(current)) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (ts.isSourceFile(current)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return visitNode(current.parent);
|
|
74
|
+
};
|
|
75
|
+
return visitNode(identifier);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Checks whether one identifier is one concrete usage candidate for the export kind.
|
|
79
|
+
* @param identifier Identifier node.
|
|
80
|
+
* @param exportKind Whether type-only or value usage is required.
|
|
81
|
+
* @returns True when the identifier can satisfy usage.
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const concrete = isConcreteUsageIdentifier(identifier, "value");
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
const isConcreteUsageIdentifier = (identifier, exportKind) => {
|
|
88
|
+
if (isDeclarationOnlyIdentifier(identifier)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const isInTypePosition = isTypePositionIdentifier(identifier);
|
|
92
|
+
return exportKind === "type" ? isInTypePosition : !isInTypePosition;
|
|
93
|
+
};
|
|
94
|
+
export { getTypeScriptProgram, isConcreteUsageIdentifier };
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdW51c2VkLWV4cG9ydHMtaWRlbnRpZmllci11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby11bnVzZWQtZXhwb3J0cy9uby11bnVzZWQtZXhwb3J0cy1pZGVudGlmaWVyLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQzNCLE9BQXlCLEVBQ0QsRUFBRTtJQUMxQixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBZ0IsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBeUIsRUFBVyxFQUFFO0lBQ3pFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFakMsT0FBTyxDQUNMLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDNUIsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUM1QixFQUFFLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDO1FBQ3BDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDNUIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztRQUNqQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDO1FBQ2pDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUM7UUFDckMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7UUFDaEUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7UUFDaEUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7UUFDN0QsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQ3ZELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxVQUF5QixFQUFXLEVBQUU7SUFDdEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFnQixFQUFXLEVBQUU7UUFDOUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFDRSxFQUFFLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7WUFDNUIsRUFBRSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQztZQUN0QyxFQUFFLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7WUFDakMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUM3QixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FDaEMsVUFBeUIsRUFDekIsVUFBc0IsRUFDYixFQUFFO0lBQ1gsSUFBSSwyQkFBMkIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFOUQsT0FBTyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgRVNMaW50VXRpbHMgfSBmcm9tIFwiQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzXCI7XG5pbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuXG5pbXBvcnQgdHlwZSB7IEV4cG9ydEtpbmQgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIFJlc29sdmVzIFR5cGVTY3JpcHQgcGFyc2VyIHNlcnZpY2VzIHByb2dyYW0gd2hlbiBhdmFpbGFibGUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGNvbnRleHQuXG4gKiBAcmV0dXJucyBUeXBlU2NyaXB0IHByb2dyYW0gd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJvZ3JhbSA9IGdldFR5cGVTY3JpcHRQcm9ncmFtKGNvbnRleHQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVTY3JpcHRQcm9ncmFtID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuKTogdHMuUHJvZ3JhbSB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcyhjb250ZXh0IGFzIG5ldmVyKTtcbiAgICByZXR1cm4gc2VydmljZXMucHJvZ3JhbTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBpZGVudGlmaWVyIHBhcnRpY2lwYXRlcyBpbiBvbmUgZGVjbGFyYXRpb24vaW1wb3J0L2V4cG9ydCBzaXRlLlxuICogQHBhcmFtIGlkZW50aWZpZXIgSWRlbnRpZmllciBub2RlIHRvIGV2YWx1YXRlLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBpZGVudGlmaWVyIGlzIGRlY2xhcmF0aW9uLW9ubHkgc3ludGF4LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gaXNEZWNsYXJhdGlvbk9ubHlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRGVjbGFyYXRpb25Pbmx5SWRlbnRpZmllciA9IChpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHBhcmVudCA9IGlkZW50aWZpZXIucGFyZW50O1xuXG4gIHJldHVybiAoXG4gICAgdHMuaXNJbXBvcnRTcGVjaWZpZXIocGFyZW50KSB8fFxuICAgIHRzLmlzSW1wb3J0Q2xhdXNlKHBhcmVudCkgfHxcbiAgICB0cy5pc05hbWVzcGFjZUltcG9ydChwYXJlbnQpIHx8XG4gICAgdHMuaXNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihwYXJlbnQpIHx8XG4gICAgdHMuaXNFeHBvcnRTcGVjaWZpZXIocGFyZW50KSB8fFxuICAgIHRzLmlzVHlwZUFsaWFzRGVjbGFyYXRpb24ocGFyZW50KSB8fFxuICAgIHRzLmlzSW50ZXJmYWNlRGVjbGFyYXRpb24ocGFyZW50KSB8fFxuICAgIHRzLmlzVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKHBhcmVudCkgfHxcbiAgICAodHMuaXNWYXJpYWJsZURlY2xhcmF0aW9uKHBhcmVudCkgJiYgcGFyZW50Lm5hbWUgPT09IGlkZW50aWZpZXIpIHx8XG4gICAgKHRzLmlzRnVuY3Rpb25EZWNsYXJhdGlvbihwYXJlbnQpICYmIHBhcmVudC5uYW1lID09PSBpZGVudGlmaWVyKSB8fFxuICAgICh0cy5pc0NsYXNzRGVjbGFyYXRpb24ocGFyZW50KSAmJiBwYXJlbnQubmFtZSA9PT0gaWRlbnRpZmllcikgfHxcbiAgICAodHMuaXNQYXJhbWV0ZXIocGFyZW50KSAmJiBwYXJlbnQubmFtZSA9PT0gaWRlbnRpZmllcilcbiAgKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb25lIGlkZW50aWZpZXIgbm9kZSBhcHBlYXJzIHVuZGVyIGEgdHlwZSBub2RlLlxuICogQHBhcmFtIGlkZW50aWZpZXIgQ2FuZGlkYXRlIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGlkZW50aWZpZXIgaXMgaW5zaWRlIHR5cGUtb25seSBzeW50YXguXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdHlwZVBvc2l0aW9uID0gaXNUeXBlUG9zaXRpb25JZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzVHlwZVBvc2l0aW9uSWRlbnRpZmllciA9IChpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHZpc2l0Tm9kZSA9IChjdXJyZW50OiB0cy5Ob2RlKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHRzLmlzVHlwZVF1ZXJ5Tm9kZShjdXJyZW50KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0cy5pc1R5cGVOb2RlKGN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0cy5pc0V4cHJlc3Npb25TdGF0ZW1lbnQoY3VycmVudCkgfHxcbiAgICAgIHRzLmlzQ2FsbEV4cHJlc3Npb24oY3VycmVudCkgfHxcbiAgICAgIHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGN1cnJlbnQpIHx8XG4gICAgICB0cy5pc0VsZW1lbnRBY2Nlc3NFeHByZXNzaW9uKGN1cnJlbnQpIHx8XG4gICAgICB0cy5pc1ZhcmlhYmxlRGVjbGFyYXRpb24oY3VycmVudCkgfHxcbiAgICAgIHRzLmlzUmV0dXJuU3RhdGVtZW50KGN1cnJlbnQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRzLmlzU291cmNlRmlsZShjdXJyZW50KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdE5vZGUoY3VycmVudC5wYXJlbnQpO1xuICB9O1xuXG4gIHJldHVybiB2aXNpdE5vZGUoaWRlbnRpZmllcik7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9uZSBpZGVudGlmaWVyIGlzIG9uZSBjb25jcmV0ZSB1c2FnZSBjYW5kaWRhdGUgZm9yIHRoZSBleHBvcnQga2luZC5cbiAqIEBwYXJhbSBpZGVudGlmaWVyIElkZW50aWZpZXIgbm9kZS5cbiAqIEBwYXJhbSBleHBvcnRLaW5kIFdoZXRoZXIgdHlwZS1vbmx5IG9yIHZhbHVlIHVzYWdlIGlzIHJlcXVpcmVkLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBpZGVudGlmaWVyIGNhbiBzYXRpc2Z5IHVzYWdlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbmNyZXRlID0gaXNDb25jcmV0ZVVzYWdlSWRlbnRpZmllcihpZGVudGlmaWVyLCBcInZhbHVlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzQ29uY3JldGVVc2FnZUlkZW50aWZpZXIgPSAoXG4gIGlkZW50aWZpZXI6IHRzLklkZW50aWZpZXIsXG4gIGV4cG9ydEtpbmQ6IEV4cG9ydEtpbmQsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKGlzRGVjbGFyYXRpb25Pbmx5SWRlbnRpZmllcihpZGVudGlmaWVyKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGlzSW5UeXBlUG9zaXRpb24gPSBpc1R5cGVQb3NpdGlvbklkZW50aWZpZXIoaWRlbnRpZmllcik7XG5cbiAgcmV0dXJuIGV4cG9ydEtpbmQgPT09IFwidHlwZVwiID8gaXNJblR5cGVQb3NpdGlvbiA6ICFpc0luVHlwZVBvc2l0aW9uO1xufTtcblxuZXhwb3J0IHsgZ2V0VHlwZVNjcmlwdFByb2dyYW0sIGlzQ29uY3JldGVVc2FnZUlkZW50aWZpZXIgfTtcbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collects identifier names from one variable pattern.
|
|
3
|
+
* @param node Variable pattern candidate.
|
|
4
|
+
* @returns Identifier names declared by the pattern.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const names = collectPatternIdentifierNames(pattern);
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
declare const collectPatternIdentifierNames: (node: unknown) => string[];
|
|
11
|
+
/**
|
|
12
|
+
* Reads one export specifier name.
|
|
13
|
+
* @param specifier Export specifier candidate.
|
|
14
|
+
* @returns Exported name when available.
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const name = getExportSpecifierName(specifier);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare const getExportSpecifierName: (specifier: unknown) => string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Reads one local export specifier name.
|
|
23
|
+
* @param specifier Export specifier candidate.
|
|
24
|
+
* @returns Local specifier name when available.
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const name = getExportSpecifierLocalName(specifier);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare const getExportSpecifierLocalName: (specifier: unknown) => string | undefined;
|
|
31
|
+
export { collectPatternIdentifierNames, getExportSpecifierLocalName, getExportSpecifierName, };
|
|
32
|
+
//# sourceMappingURL=no-unused-exports-pattern-utilities.d.ts.map
|
package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-unused-exports-pattern-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,QAAA,MAAM,6BAA6B,GAAI,MAAM,OAAO,KAAG,MAAM,EA+C5D,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,GAAI,WAAW,OAAO,KAAG,MAAM,GAAG,SAW7D,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,2BAA2B,GAC/B,WAAW,OAAO,KACjB,MAAM,GAAG,SAIX,CAAC;AAEF,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,GACvB,CAAC"}
|