@codeperfect/eslint-plugin 3.1.0 → 3.2.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/adapters/angular/angular-template-block-usage-utilities.d.ts +4 -0
- package/dist/adapters/angular/angular-template-block-usage-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-block-usage-utilities.js +69 -0
- package/dist/adapters/angular/angular-template-expression-utilities.d.ts +5 -0
- package/dist/adapters/angular/angular-template-expression-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-expression-utilities.js +121 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts +4 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.js +47 -0
- package/dist/adapters/angular/angular-template-usage-context.d.ts +26 -0
- package/dist/adapters/angular/angular-template-usage-context.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-usage-context.js +12 -0
- package/dist/adapters/angular/index.d.ts +2 -0
- package/dist/adapters/angular/index.d.ts.map +1 -0
- package/dist/adapters/angular/index.js +2 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts +15 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts.map +1 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.js +126 -0
- package/dist/adapters/angular/plugin.d.ts +12 -0
- package/dist/adapters/angular/plugin.d.ts.map +1 -0
- package/dist/adapters/angular/plugin.js +14 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +2 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.js +7 -2
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.js +77 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts +2 -2
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.js +69 -43
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.js +151 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.js +12 -5
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts +30 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.js +107 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts +26 -4
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.js +77 -21
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts +5 -1
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.js +11 -2
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts +43 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.js +126 -0
- package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts +3 -1
- package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/member-utilities.js +4 -3
- package/dist/domain/architecture/no-unused-public-members/rule.d.ts +12 -1
- package/dist/domain/architecture/no-unused-public-members/rule.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-public-members/rule.js +45 -35
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/package.json +13 -1
package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-public-api-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-public-api-utilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"member-public-api-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-public-api-utilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAwEvE;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,iBAAiB,GACrB,SAAS,EAAE,CAAC,OAAO,EACnB,OAAO,oBAAoB,EAC3B,UAAU,MAAM,EAChB,cAAc,EAAE,CAAC,MAAM,KACtB,OAsDF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,GACnB,SAAS,EAAE,CAAC,OAAO,EACnB,OAAO,oBAAoB,EAC3B,UAAU,MAAM,EAChB,YAAY,EAAE,CAAC,MAAM,GAAG,SAAS,KAChC,OAsBF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -21,6 +21,9 @@ const typeContainsSymbol = (type, targetSymbol, checker, location, visitedTypes,
|
|
|
21
21
|
return false;
|
|
22
22
|
}
|
|
23
23
|
visitedTypes.add(type);
|
|
24
|
+
if (type.isUnionOrIntersection()) {
|
|
25
|
+
return type.types.some((constituent) => typeContainsSymbol(constituent, targetSymbol, checker, location, visitedTypes, depth));
|
|
26
|
+
}
|
|
24
27
|
for (const property of checker.getPropertiesOfType(type)) {
|
|
25
28
|
if (isSameSymbol(resolveCanonicalSymbol(property, checker), targetSymbol) ||
|
|
26
29
|
typeContainsSymbol(checker.getTypeOfSymbolAtLocation(property, location), targetSymbol, checker, location, visitedTypes, depth - 1)) {
|
|
@@ -61,7 +64,9 @@ const isPublicApiMember = (program, state, repoRoot, memberSymbol) => {
|
|
|
61
64
|
for (const exportedSymbol of checker.getExportsOfModule(moduleSymbol)) {
|
|
62
65
|
const canonicalExport = resolveCanonicalSymbol(exportedSymbol, checker);
|
|
63
66
|
if (isSameSymbol(canonicalExport, targetSymbol) ||
|
|
64
|
-
typeContainsSymbol(checker.getTypeOfSymbolAtLocation(canonicalExport, sourceFile), targetSymbol, checker, sourceFile, new Set(), 3)
|
|
67
|
+
typeContainsSymbol(checker.getTypeOfSymbolAtLocation(canonicalExport, sourceFile), targetSymbol, checker, sourceFile, new Set(), 3) ||
|
|
68
|
+
((canonicalExport.flags & ts.SymbolFlags.Type) !== 0 &&
|
|
69
|
+
typeContainsSymbol(checker.getDeclaredTypeOfSymbol(canonicalExport), targetSymbol, checker, sourceFile, new Set(), 3))) {
|
|
65
70
|
return true;
|
|
66
71
|
}
|
|
67
72
|
}
|
|
@@ -98,4 +103,4 @@ const isPublicApiHost = (program, state, repoRoot, hostSymbol) => {
|
|
|
98
103
|
});
|
|
99
104
|
};
|
|
100
105
|
export { isPublicApiHost, isPublicApiMember };
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXB1YmxpYy1hcGktdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzL21lbWJlci1wdWJsaWMtYXBpLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJakMsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEdBQ1gsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDeEIsTUFBTSx5REFBeUQsQ0FBQztBQUVqRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixJQUFhLEVBQ2IsWUFBdUIsRUFDdkIsT0FBdUIsRUFDdkIsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsS0FBYSxFQUNKLEVBQUU7SUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxJQUNFLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDO1lBQ3JFLGtCQUFrQixDQUNoQixPQUFPLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUNyRCxZQUFZLEVBQ1osT0FBTyxFQUNQLFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxH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LEVBQUUsY0FBYyxDQUFDO1lBQzVDLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQzVELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5cbmltcG9ydCB0eXBlIHsgTm9VbnVzZWRFeHBvcnRzU3RhdGUgfSBmcm9tIFwiLi4vbm8tdW51c2VkLWV4cG9ydHMvdHlwZXNcIjtcblxuaW1wb3J0IHtcbiAgaXNQdWJsaWNBcGlGaWxlLFxuICBpc1Rlc3RGaWxlLFxufSBmcm9tIFwiLi4vbm8tdW51c2VkLWV4cG9ydHMvbm8tdW51c2VkLWV4cG9ydHMtb3B0aW9uc1wiO1xuaW1wb3J0IHtcbiAgaXNTYW1lU3ltYm9sLFxuICByZXNvbHZlQ2Fub25pY2FsU3ltYm9sLFxuICBzb3VyY2VGaWxlRXhwb3J0c1N5bWJvbCxcbn0gZnJvbSBcIi4uL25vLXVudXNlZC1leHBvcnRzL25vLXVudXNlZC1leHBvcnRzLXN5bWJvbC11dGlsaXRpZXNcIjtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHN5bWJvbCBpcyBuZXN0ZWQgd2l0aGluIGFuIGV4cG9ydGVkIEFQSSB0eXBlLlxuICogQHBhcmFtIHR5cGUgVHlwZSBzaGFwZSBvZiBhbiBleHBvcnRlZCB2YWx1ZSBvciB0eXBlLlxuICogQHBhcmFtIHRhcmdldFN5bWJvbCBTeW1ib2wgYmVpbmcgc2VhcmNoZWQgZm9yLlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbG9jYXRpb24gTm9kZSB1c2VkIHRvIHJlc29sdmUgcHJvcGVydHkgdHlwZXMuXG4gKiBAcGFyYW0gdmlzaXRlZFR5cGVzIFR5cGVzIGFscmVhZHkgY2hlY2tlZCBvbiB0aGlzIHNlYXJjaCBwYXRoLlxuICogQHBhcmFtIGRlcHRoIFJlbWFpbmluZyBuZXN0ZWQgcHJvcGVydHkgZGVwdGguXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHRhcmdldCBvY2N1cnMgaW4gdGhlIGV4cG9ydGVkIHR5cGUgc2hhcGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwb3NlZCA9IHR5cGVDb250YWluc1N5bWJvbCh0eXBlLCBtZW1iZXIsIGNoZWNrZXIsIHNvdXJjZUZpbGUsIG5ldyBTZXQoKSwgMik7XG4gKiBgYGBcbiAqL1xuY29uc3QgdHlwZUNvbnRhaW5zU3ltYm9sID0gKFxuICB0eXBlOiB0cy5UeXBlLFxuICB0YXJnZXRTeW1ib2w6IHRzLlN5bWJvbCxcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gIGxvY2F0aW9uOiB0cy5Ob2RlLFxuICB2aXNpdGVkVHlwZXM6IFNldDx0cy5UeXBlPixcbiAgZGVwdGg6IG51bWJlcixcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoZGVwdGggPCAwIHx8IHZpc2l0ZWRUeXBlcy5oYXModHlwZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2aXNpdGVkVHlwZXMuYWRkKHR5cGUpO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgY2hlY2tlci5nZXRQcm9wZXJ0aWVzT2ZUeXBlKHR5cGUpKSB7XG4gICAgaWYgKFxuICAgICAgaXNTYW1lU3ltYm9sKHJlc29sdmVDYW5vbmljYWxTeW1ib2wocHJvcGVydHksIGNoZWNrZXIpLCB0YXJnZXRTeW1ib2wpIHx8XG4gICAgICB0eXBlQ29udGFpbnNTeW1ib2woXG4gICAgICAgIGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihwcm9wZXJ0eSwgbG9jYXRpb24pLFxuICAgICAgICB0YXJnZXRTeW1ib2wsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIGxvY2F0aW9uLFxuICAgICAgICB2aXNpdGVkVHlwZXMsXG4gICAgICAgIGRlcHRoIC0gMSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBtZW1iZXIgaXMgcmVhY2hhYmxlIGZyb20gYSBjb25maWd1cmVkIHB1YmxpYyBBUEkgZXhwb3J0LlxuICogQHBhcmFtIHByb2dyYW0gVHlwZVNjcmlwdCBwcm9qZWN0IHByb2dyYW0uXG4gKiBAcGFyYW0gc3RhdGUgTm9ybWFsaXplZCBwdWJsaWMgQVBJIGFuZCB0ZXN0IHBhdHRlcm5zLlxuICogQHBhcmFtIHJlcG9Sb290IFJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yIGdsb2IgbWF0Y2hpbmcuXG4gKiBAcGFyYW0gbWVtYmVyU3ltYm9sIE1lbWJlciBzeW1ib2wgYmVpbmcgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiBhbiBBUEkgZXhwb3J0IGV4cG9zZXMgdGhlIG1lbWJlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHBvc2VkID0gaXNQdWJsaWNBcGlNZW1iZXIocHJvZ3JhbSwgc3RhdGUsIHJlcG9Sb290LCBtZW1iZXJTeW1ib2wpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzUHVibGljQXBpTWVtYmVyID0gKFxuICBwcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICBzdGF0ZTogTm9VbnVzZWRFeHBvcnRzU3RhdGUsXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIG1lbWJlclN5bWJvbDogdHMuU3ltYm9sLFxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IHRhcmdldFN5bWJvbCA9IHJlc29sdmVDYW5vbmljYWxTeW1ib2wobWVtYmVyU3ltYm9sLCBjaGVja2VyKTtcbiAgY29uc3Qgbm9ybWFsaXplZFJvb3QgPSBwYXRoLnJlc29sdmUocmVwb1Jvb3QpO1xuXG4gIGZvciAoY29uc3Qgc291cmNlRmlsZSBvZiBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkpIHtcbiAgICBpZiAoc291cmNlRmlsZS5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLnJlc29sdmUoc291cmNlRmlsZS5maWxlTmFtZSk7XG5cbiAgICBpZiAoXG4gICAgICAhaXNQdWJsaWNBcGlGaWxlKGZpbGVuYW1lLCBzdGF0ZSwgbm9ybWFsaXplZFJvb3QpIHx8XG4gICAgICBpc1Rlc3RGaWxlKGZpbGVuYW1lLCBzdGF0ZSwgbm9ybWFsaXplZFJvb3QpXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGVTeW1ib2wgPSBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24oc291cmNlRmlsZSk7XG5cbiAgICBpZiAobW9kdWxlU3ltYm9sID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZXhwb3J0ZWRTeW1ib2wgb2YgY2hlY2tlci5nZXRFeHBvcnRzT2ZNb2R1bGUobW9kdWxlU3ltYm9sKSkge1xuICAgICAgY29uc3QgY2Fub25pY2FsRXhwb3J0ID0gcmVzb2x2ZUNhbm9uaWNhbFN5bWJvbChleHBvcnRlZFN5bWJvbCwgY2hlY2tlcik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgaXNTYW1lU3ltYm9sKGNhbm9uaWNhbEV4cG9ydCwgdGFyZ2V0U3ltYm9sKSB8fFxuICAgICAgICB0eXBlQ29udGFpbnNTeW1ib2woXG4gICAgICAgICAgY2hlY2tlci5nZXRUeXBlT2ZTeW1ib2xBdExvY2F0aW9uKGNhbm9uaWNhbEV4cG9ydCwgc291cmNlRmlsZSksXG4gICAgICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgICAgIGNoZWNrZXIsXG4gICAgICAgICAgc291cmNlRmlsZSxcbiAgICAgICAgICBuZXcgU2V0KCksXG4gICAgICAgICAgMyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBob3N0IGlzIGV4cG9ydGVkIGZyb20gYSBjb25maWd1cmVkIHB1YmxpYyBBUEkgZmlsZS5cbiAqIEBwYXJhbSBwcm9ncmFtIFR5cGVTY3JpcHQgcHJvamVjdCBwcm9ncmFtLlxuICogQHBhcmFtIHN0YXRlIE5vcm1hbGl6ZWQgcHVibGljIEFQSSBhbmQgdGVzdCBwYXR0ZXJucy5cbiAqIEBwYXJhbSByZXBvUm9vdCBSb290IGRpcmVjdG9yeSB1c2VkIGZvciBnbG9iIG1hdGNoaW5nLlxuICogQHBhcmFtIGhvc3RTeW1ib2wgSG9zdCBkZWNsYXJhdGlvbiBzeW1ib2wuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGhvc3QgaXMgZXhwb3NlZCBieSBhIG5vbi10ZXN0IEFQSSBmaWxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlzUHVibGljID0gaXNQdWJsaWNBcGlIb3N0KHByb2dyYW0sIHN0YXRlLCByZXBvUm9vdCwgaG9zdFN5bWJvbCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNQdWJsaWNBcGlIb3N0ID0gKFxuICBwcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICBzdGF0ZTogTm9VbnVzZWRFeHBvcnRzU3RhdGUsXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIGhvc3RTeW1ib2w6IHRzLlN5bWJvbCB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoaG9zdFN5bWJvbCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY2hlY2tlciA9IHByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgY29uc3Qgbm9ybWFsaXplZFJvb3QgPSBwYXRoLnJlc29sdmUocmVwb1Jvb3QpO1xuICBjb25zdCBjYW5vbmljYWxIb3N0ID0gcmVzb2x2ZUNhbm9uaWNhbFN5bWJvbChob3N0U3ltYm9sLCBjaGVja2VyKTtcblxuICByZXR1cm4gcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpLnNvbWUoKHNvdXJjZUZpbGUpID0+IHtcbiAgICBpZiAoc291cmNlRmlsZS5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIG5vcm1hbGl6ZWRSb290KSAmJlxuICAgICAgIWlzVGVzdEZpbGUoZmlsZW5hbWUsIHN0YXRlLCBub3JtYWxpemVkUm9vdCkgJiZcbiAgICAgIHNvdXJjZUZpbGVFeHBvcnRzU3ltYm9sKHNvdXJjZUZpbGUsIGNoZWNrZXIsIGNhbm9uaWNhbEhvc3QpXG4gICAgKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBpc1B1YmxpY0FwaUhvc3QsIGlzUHVibGljQXBpTWVtYmVyIH07XG4iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXB1YmxpYy1hcGktdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzL21lbWJlci1wdWJsaWMtYXBpLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJakMsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEdBQ1gsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDeEIsTUFBTSx5REFBeUQsQ0FBQztBQUVqRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixJQUFhLEVBQ2IsWUFBdUIsRUFDdkIsT0FBdUIsRUFDdkIsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsS0FBYSxFQUNKLEVBQUU7SUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNyQyxrQkFBa0IsQ0FDaEIsV0FBVyxFQUNYLFlBQVksRUFDWixPQUFPLEVBQ1AsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLENBQ04sQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFD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QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVsRSxPQUFPLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUNsRCxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sQ0FDTCxlQUFlLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUM7WUFDaEQsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUM7WUFDNUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FDNUQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHR5cGUgeyBOb1VudXNlZEV4cG9ydHNTdGF0ZSB9IGZyb20gXCIuLi9uby11bnVzZWQtZXhwb3J0cy90eXBlc1wiO1xuXG5pbXBvcnQge1xuICBpc1B1YmxpY0FwaUZpbGUsXG4gIGlzVGVzdEZpbGUsXG59IGZyb20gXCIuLi9uby11bnVzZWQtZXhwb3J0cy9uby11bnVzZWQtZXhwb3J0cy1vcHRpb25zXCI7XG5pbXBvcnQge1xuICBpc1NhbWVTeW1ib2wsXG4gIHJlc29sdmVDYW5vbmljYWxTeW1ib2wsXG4gIHNvdXJjZUZpbGVFeHBvcnRzU3ltYm9sLFxufSBmcm9tIFwiLi4vbm8tdW51c2VkLWV4cG9ydHMvbm8tdW51c2VkLWV4cG9ydHMtc3ltYm9sLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgc3ltYm9sIGlzIG5lc3RlZCB3aXRoaW4gYW4gZXhwb3J0ZWQgQVBJIHR5cGUuXG4gKiBAcGFyYW0gdHlwZSBUeXBlIHNoYXBlIG9mIGFuIGV4cG9ydGVkIHZhbHVlIG9yIHR5cGUuXG4gKiBAcGFyYW0gdGFyZ2V0U3ltYm9sIFN5bWJvbCBiZWluZyBzZWFyY2hlZCBmb3IuXG4gKiBAcGFyYW0gY2hlY2tlciBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSBsb2NhdGlvbiBOb2RlIHVzZWQgdG8gcmVzb2x2ZSBwcm9wZXJ0eSB0eXBlcy5cbiAqIEBwYXJhbSB2aXNpdGVkVHlwZXMgVHlwZXMgYWxyZWFkeSBjaGVja2VkIG9uIHRoaXMgc2VhcmNoIHBhdGguXG4gKiBAcGFyYW0gZGVwdGggUmVtYWluaW5nIG5lc3RlZCBwcm9wZXJ0eSBkZXB0aC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgdGFyZ2V0IG9jY3VycyBpbiB0aGUgZXhwb3J0ZWQgdHlwZSBzaGFwZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHBvc2VkID0gdHlwZUNvbnRhaW5zU3ltYm9sKHR5cGUsIG1lbWJlciwgY2hlY2tlciwgc291cmNlRmlsZSwgbmV3IFNldCgpLCAyKTtcbiAqIGBgYFxuICovXG5jb25zdCB0eXBlQ29udGFpbnNTeW1ib2wgPSAoXG4gIHR5cGU6IHRzLlR5cGUsXG4gIHRhcmdldFN5bWJvbDogdHMuU3ltYm9sLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbG9jYXRpb246IHRzLk5vZGUsXG4gIHZpc2l0ZWRUeXBlczogU2V0PHRzLlR5cGU+LFxuICBkZXB0aDogbnVtYmVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChkZXB0aCA8IDAgfHwgdmlzaXRlZFR5cGVzLmhhcyh0eXBlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZpc2l0ZWRUeXBlcy5hZGQodHlwZSk7XG5cbiAgaWYgKHR5cGUuaXNVbmlvbk9ySW50ZXJzZWN0aW9uKCkpIHtcbiAgICByZXR1cm4gdHlwZS50eXBlcy5zb21lKChjb25zdGl0dWVudCkgPT5cbiAgICAgIHR5cGVDb250YWluc1N5bWJvbChcbiAgICAgICAgY29uc3RpdHVlbnQsXG4gICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgY2hlY2tlcixcbiAgICAgICAgbG9jYXRpb24sXG4gICAgICAgIHZpc2l0ZWRUeXBlcyxcbiAgICAgICAgZGVwdGgsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGNoZWNrZXIuZ2V0UHJvcGVydGllc09mVHlwZSh0eXBlKSkge1xuICAgIGlmIChcbiAgICAgIGlzU2FtZVN5bWJvbChyZXNvbHZlQ2Fub25pY2FsU3ltYm9sKHByb3BlcnR5LCBjaGVja2VyKSwgdGFyZ2V0U3ltYm9sKSB8fFxuICAgICAgdHlwZUNvbnRhaW5zU3ltYm9sKFxuICAgICAgICBjaGVja2VyLmdldFR5cGVPZlN5bWJvbEF0TG9jYXRpb24ocHJvcGVydHksIGxvY2F0aW9uKSxcbiAgICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgICBjaGVja2VyLFxuICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgdmlzaXRlZFR5cGVzLFxuICAgICAgICBkZXB0aCAtIDEsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbWVtYmVyIGlzIHJlYWNoYWJsZSBmcm9tIGEgY29uZmlndXJlZCBwdWJsaWMgQVBJIGV4cG9ydC5cbiAqIEBwYXJhbSBwcm9ncmFtIFR5cGVTY3JpcHQgcHJvamVjdCBwcm9ncmFtLlxuICogQHBhcmFtIHN0YXRlIE5vcm1hbGl6ZWQgcHVibGljIEFQSSBhbmQgdGVzdCBwYXR0ZXJucy5cbiAqIEBwYXJhbSByZXBvUm9vdCBSb290IGRpcmVjdG9yeSB1c2VkIGZvciBnbG9iIG1hdGNoaW5nLlxuICogQHBhcmFtIG1lbWJlclN5bWJvbCBNZW1iZXIgc3ltYm9sIGJlaW5nIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gYW4gQVBJIGV4cG9ydCBleHBvc2VzIHRoZSBtZW1iZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwb3NlZCA9IGlzUHVibGljQXBpTWVtYmVyKHByb2dyYW0sIHN0YXRlLCByZXBvUm9vdCwgbWVtYmVyU3ltYm9sKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc1B1YmxpY0FwaU1lbWJlciA9IChcbiAgcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgc3RhdGU6IE5vVW51c2VkRXhwb3J0c1N0YXRlLFxuICByZXBvUm9vdDogc3RyaW5nLFxuICBtZW1iZXJTeW1ib2w6IHRzLlN5bWJvbCxcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBjaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCB0YXJnZXRTeW1ib2wgPSByZXNvbHZlQ2Fub25pY2FsU3ltYm9sKG1lbWJlclN5bWJvbCwgY2hlY2tlcik7XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb290ID0gcGF0aC5yZXNvbHZlKHJlcG9Sb290KTtcblxuICBmb3IgKGNvbnN0IHNvdXJjZUZpbGUgb2YgcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpKSB7XG4gICAgaWYgKHNvdXJjZUZpbGUuaXNEZWNsYXJhdGlvbkZpbGUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuXG4gICAgaWYgKFxuICAgICAgIWlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIG5vcm1hbGl6ZWRSb290KSB8fFxuICAgICAgaXNUZXN0RmlsZShmaWxlbmFtZSwgc3RhdGUsIG5vcm1hbGl6ZWRSb290KVxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlU3ltYm9sID0gY2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKHNvdXJjZUZpbGUpO1xuXG4gICAgaWYgKG1vZHVsZVN5bWJvbCA9PT0gdm9pZCAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGV4cG9ydGVkU3ltYm9sIG9mIGNoZWNrZXIuZ2V0RXhwb3J0c09mTW9kdWxlKG1vZHVsZVN5bWJvbCkpIHtcbiAgICAgIGNvbnN0IGNhbm9uaWNhbEV4cG9ydCA9IHJlc29sdmVDYW5vbmljYWxTeW1ib2woZXhwb3J0ZWRTeW1ib2wsIGNoZWNrZXIpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGlzU2FtZVN5bWJvbChjYW5vbmljYWxFeHBvcnQsIHRhcmdldFN5bWJvbCkgfHxcbiAgICAgICAgdHlwZUNvbnRhaW5zU3ltYm9sKFxuICAgICAgICAgIGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihjYW5vbmljYWxFeHBvcnQsIHNvdXJjZUZpbGUpLFxuICAgICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgICBjaGVja2VyLFxuICAgICAgICAgIHNvdXJjZUZpbGUsXG4gICAgICAgICAgbmV3IFNldCgpLFxuICAgICAgICAgIDMsXG4gICAgICAgICkgfHxcbiAgICAgICAgKChjYW5vbmljYWxFeHBvcnQuZmxhZ3MgJiB0cy5TeW1ib2xGbGFncy5UeXBlKSAhPT0gMCAmJlxuICAgICAgICAgIHR5cGVDb250YWluc1N5bWJvbChcbiAgICAgICAgICAgIGNoZWNrZXIuZ2V0RGVjbGFyZWRUeXBlT2ZTeW1ib2woY2Fub25pY2FsRXhwb3J0KSxcbiAgICAgICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgICAgIGNoZWNrZXIsXG4gICAgICAgICAgICBzb3VyY2VGaWxlLFxuICAgICAgICAgICAgbmV3IFNldCgpLFxuICAgICAgICAgICAgMyxcbiAgICAgICAgICApKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBob3N0IGlzIGV4cG9ydGVkIGZyb20gYSBjb25maWd1cmVkIHB1YmxpYyBBUEkgZmlsZS5cbiAqIEBwYXJhbSBwcm9ncmFtIFR5cGVTY3JpcHQgcHJvamVjdCBwcm9ncmFtLlxuICogQHBhcmFtIHN0YXRlIE5vcm1hbGl6ZWQgcHVibGljIEFQSSBhbmQgdGVzdCBwYXR0ZXJucy5cbiAqIEBwYXJhbSByZXBvUm9vdCBSb290IGRpcmVjdG9yeSB1c2VkIGZvciBnbG9iIG1hdGNoaW5nLlxuICogQHBhcmFtIGhvc3RTeW1ib2wgSG9zdCBkZWNsYXJhdGlvbiBzeW1ib2wuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGhvc3QgaXMgZXhwb3NlZCBieSBhIG5vbi10ZXN0IEFQSSBmaWxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlzUHVibGljID0gaXNQdWJsaWNBcGlIb3N0KHByb2dyYW0sIHN0YXRlLCByZXBvUm9vdCwgaG9zdFN5bWJvbCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNQdWJsaWNBcGlIb3N0ID0gKFxuICBwcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICBzdGF0ZTogTm9VbnVzZWRFeHBvcnRzU3RhdGUsXG4gIHJlcG9Sb290OiBzdHJpbmcsXG4gIGhvc3RTeW1ib2w6IHRzLlN5bWJvbCB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoaG9zdFN5bWJvbCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY2hlY2tlciA9IHByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgY29uc3Qgbm9ybWFsaXplZFJvb3QgPSBwYXRoLnJlc29sdmUocmVwb1Jvb3QpO1xuICBjb25zdCBjYW5vbmljYWxIb3N0ID0gcmVzb2x2ZUNhbm9uaWNhbFN5bWJvbChob3N0U3ltYm9sLCBjaGVja2VyKTtcblxuICByZXR1cm4gcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpLnNvbWUoKHNvdXJjZUZpbGUpID0+IHtcbiAgICBpZiAoc291cmNlRmlsZS5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIG5vcm1hbGl6ZWRSb290KSAmJlxuICAgICAgIWlzVGVzdEZpbGUoZmlsZW5hbWUsIHN0YXRlLCBub3JtYWxpemVkUm9vdCkgJiZcbiAgICAgIHNvdXJjZUZpbGVFeHBvcnRzU3ltYm9sKHNvdXJjZUZpbGUsIGNoZWNrZXIsIGNhbm9uaWNhbEhvc3QpXG4gICAgKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBpc1B1YmxpY0FwaUhvc3QsIGlzUHVibGljQXBpTWVtYmVyIH07XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
/**
|
|
3
|
+
* Checks whether an expression can be traced back to a symbol.
|
|
4
|
+
* @param expression Expression to inspect.
|
|
5
|
+
* @param targetSymbol Symbol whose value flow is followed.
|
|
6
|
+
* @param checker TypeScript type checker.
|
|
7
|
+
* @param visitedExpressions Expressions already inspected.
|
|
8
|
+
* @returns True when the expression derives from the target symbol.
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const forwarded = expressionReferencesSymbol(value, symbol, checker);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare const expressionReferencesSymbol: (expression: ts.Expression, targetSymbol: ts.Symbol, checker: ts.TypeChecker, visitedExpressions?: Set<ts.Node>) => boolean;
|
|
15
|
+
export { expressionReferencesSymbol };
|
|
16
|
+
//# sourceMappingURL=member-usage-expression-reference-utilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member-usage-expression-reference-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAOjC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,0BAA0B,GAC9B,YAAY,EAAE,CAAC,UAAU,EACzB,cAAc,EAAE,CAAC,MAAM,EACvB,SAAS,EAAE,CAAC,WAAW,EACvB,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAa,KAC3C,OAyJF,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { isSameSymbol, resolveCanonicalSymbol, } from "../no-unused-exports/no-unused-exports-symbol-utilities.js";
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether an expression can be traced back to a symbol.
|
|
5
|
+
* @param expression Expression to inspect.
|
|
6
|
+
* @param targetSymbol Symbol whose value flow is followed.
|
|
7
|
+
* @param checker TypeScript type checker.
|
|
8
|
+
* @param visitedExpressions Expressions already inspected.
|
|
9
|
+
* @returns True when the expression derives from the target symbol.
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const forwarded = expressionReferencesSymbol(value, symbol, checker);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
const expressionReferencesSymbol = (expression, targetSymbol, checker, visitedExpressions = new Set()) => {
|
|
16
|
+
if (visitedExpressions.has(expression)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
visitedExpressions.add(expression);
|
|
20
|
+
if (ts.isIdentifier(expression)) {
|
|
21
|
+
const symbol = ts.isShorthandPropertyAssignment(expression.parent)
|
|
22
|
+
? checker.getShorthandAssignmentValueSymbol(expression.parent)
|
|
23
|
+
: checker.getSymbolAtLocation(expression);
|
|
24
|
+
if (symbol !== void 0 &&
|
|
25
|
+
isSameSymbol(resolveCanonicalSymbol(symbol, checker), resolveCanonicalSymbol(targetSymbol, checker))) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const declaration = symbol?.valueDeclaration;
|
|
29
|
+
if (declaration !== void 0 && ts.isVariableDeclaration(declaration)) {
|
|
30
|
+
return (declaration.initializer !== void 0 &&
|
|
31
|
+
expressionReferencesSymbol(declaration.initializer, targetSymbol, checker, visitedExpressions));
|
|
32
|
+
}
|
|
33
|
+
if (declaration !== void 0 &&
|
|
34
|
+
ts.isBindingElement(declaration) &&
|
|
35
|
+
ts.isObjectBindingPattern(declaration.parent)) {
|
|
36
|
+
const owner = declaration.parent.parent;
|
|
37
|
+
return (ts.isVariableDeclaration(owner) &&
|
|
38
|
+
owner.initializer !== void 0 &&
|
|
39
|
+
expressionReferencesSymbol(owner.initializer, targetSymbol, checker, visitedExpressions));
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (ts.isAsExpression(expression) ||
|
|
44
|
+
ts.isNonNullExpression(expression) ||
|
|
45
|
+
ts.isParenthesizedExpression(expression) ||
|
|
46
|
+
ts.isSatisfiesExpression(expression) ||
|
|
47
|
+
ts.isTypeAssertionExpression(expression)) {
|
|
48
|
+
return expressionReferencesSymbol(expression.expression, targetSymbol, checker, visitedExpressions);
|
|
49
|
+
}
|
|
50
|
+
if (ts.isPropertyAccessExpression(expression)) {
|
|
51
|
+
return expressionReferencesSymbol(expression.expression, targetSymbol, checker, visitedExpressions);
|
|
52
|
+
}
|
|
53
|
+
if (ts.isElementAccessExpression(expression)) {
|
|
54
|
+
return expressionReferencesSymbol(expression.expression, targetSymbol, checker, visitedExpressions);
|
|
55
|
+
}
|
|
56
|
+
if (ts.isCallExpression(expression)) {
|
|
57
|
+
return expression.arguments.some((argument) => expressionReferencesSymbol(argument, targetSymbol, checker, visitedExpressions));
|
|
58
|
+
}
|
|
59
|
+
if (ts.isConditionalExpression(expression)) {
|
|
60
|
+
return (expressionReferencesSymbol(expression.whenTrue, targetSymbol, checker, visitedExpressions) ||
|
|
61
|
+
expressionReferencesSymbol(expression.whenFalse, targetSymbol, checker, visitedExpressions));
|
|
62
|
+
}
|
|
63
|
+
if (ts.isObjectLiteralExpression(expression)) {
|
|
64
|
+
return expression.properties.some((property) => {
|
|
65
|
+
return ts.isSpreadAssignment(property)
|
|
66
|
+
? expressionReferencesSymbol(property.expression, targetSymbol, checker, visitedExpressions)
|
|
67
|
+
: (ts.isPropertyAssignment(property) &&
|
|
68
|
+
expressionReferencesSymbol(property.initializer, targetSymbol, checker, visitedExpressions)) ||
|
|
69
|
+
(ts.isShorthandPropertyAssignment(property) &&
|
|
70
|
+
expressionReferencesSymbol(property.name, targetSymbol, checker, visitedExpressions));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return (ts.isArrayLiteralExpression(expression) &&
|
|
74
|
+
expression.elements.some((element) => expressionReferencesSymbol(element, targetSymbol, checker, visitedExpressions)));
|
|
75
|
+
};
|
|
76
|
+
export { expressionReferencesSymbol };
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXVzYWdlLWV4cHJlc3Npb24tcmVmZXJlbmNlLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1wdWJsaWMtbWVtYmVycy9tZW1iZXItdXNhZ2UtZXhwcmVzc2lvbi1yZWZlcmVuY2UtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0seURBQXlELENBQUM7QUFFakU7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLENBQ2pDLFVBQXlCLEVBQ3pCLFlBQXVCLEVBQ3ZCLE9BQXVCLEVBQ3ZCLHFCQUFtQyxJQUFJLEdBQUcsRUFBRSxFQUNuQyxFQUFFO0lBQ1gsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkMsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDaEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQzlELENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsSUFDRSxNQUFNLEtBQUssS0FBSyxDQUFDO1lBQ2pCLFlBQVksQ0FDVixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQ3ZDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxPQUFP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QUMsUUFBUSxFQUFFLEVBQUU7WUFDN0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO2dCQUNwQyxDQUFDLENBQUMsMEJBQTBCLENBQ3hCLFFBQVEsQ0FBQyxVQUFVLEVBQ25CLFlBQVksRUFDWixPQUFPLEVBQ1Asa0JBQWtCLENBQ25CO2dCQUNILENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7b0JBQ2hDLDBCQUEwQixDQUN4QixRQUFRLENBQUMsV0FBVyxFQUNwQixZQUFZLEVBQ1osT0FBTyxFQUNQLGtCQUFrQixDQUNuQixDQUFDO29CQUNGLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQzt3QkFDekMsMEJBQTBCLENBQ3hCLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsWUFBWSxFQUNaLE9BQU8sRUFDUCxrQkFBa0IsQ0FDbkIsQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUNMLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7UUFDdkMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNuQywwQkFBMEIsQ0FDeEIsT0FBTyxFQUNQLFlBQVksRUFDWixPQUFPLEVBQ1Asa0JBQWtCLENBQ25CLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuXG5pbXBvcnQge1xuICBpc1NhbWVTeW1ib2wsXG4gIHJlc29sdmVDYW5vbmljYWxTeW1ib2wsXG59IGZyb20gXCIuLi9uby11bnVzZWQtZXhwb3J0cy9uby11bnVzZWQtZXhwb3J0cy1zeW1ib2wtdXRpbGl0aWVzXCI7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBjYW4gYmUgdHJhY2VkIGJhY2sgdG8gYSBzeW1ib2wuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBFeHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gdGFyZ2V0U3ltYm9sIFN5bWJvbCB3aG9zZSB2YWx1ZSBmbG93IGlzIGZvbGxvd2VkLlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gdmlzaXRlZEV4cHJlc3Npb25zIEV4cHJlc3Npb25zIGFscmVhZHkgaW5zcGVjdGVkLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBleHByZXNzaW9uIGRlcml2ZXMgZnJvbSB0aGUgdGFyZ2V0IHN5bWJvbC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmb3J3YXJkZWQgPSBleHByZXNzaW9uUmVmZXJlbmNlc1N5bWJvbCh2YWx1ZSwgc3ltYm9sLCBjaGVja2VyKTtcbiAqIGBgYFxuICovXG5jb25zdCBleHByZXNzaW9uUmVmZXJlbmNlc1N5bWJvbCA9IChcbiAgZXhwcmVzc2lvbjogdHMuRXhwcmVzc2lvbixcbiAgdGFyZ2V0U3ltYm9sOiB0cy5TeW1ib2wsXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICB2aXNpdGVkRXhwcmVzc2lvbnM6IFNldDx0cy5Ob2RlPiA9IG5ldyBTZXQoKSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAodmlzaXRlZEV4cHJlc3Npb25zLmhhcyhleHByZXNzaW9uKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2aXNpdGVkRXhwcmVzc2lvbnMuYWRkKGV4cHJlc3Npb24pO1xuXG4gIGlmICh0cy5pc0lkZW50aWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBjb25zdCBzeW1ib2wgPSB0cy5pc1Nob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudChleHByZXNzaW9uLnBhcmVudClcbiAgICAgID8gY2hlY2tlci5nZXRTaG9ydGhhbmRBc3NpZ25tZW50VmFsdWVTeW1ib2woZXhwcmVzc2lvbi5wYXJlbnQpXG4gICAgICA6IGNoZWNrZXIuZ2V0U3ltYm9sQXRMb2NhdGlvbihleHByZXNzaW9uKTtcblxuICAgIGlmIChcbiAgICAgIHN5bWJvbCAhPT0gdm9pZCAwICYmXG4gICAgICBpc1NhbWVTeW1ib2woXG4gICAgICAgIHJlc29sdmVDYW5vbmljYWxTeW1ib2woc3ltYm9sLCBjaGVja2VyKSxcbiAgICAgICAgcmVzb2x2ZUNhbm9uaWNhbFN5bWJvbCh0YXJnZXRTeW1ib2wsIGNoZWNrZXIpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjbGFyYXRpb24gPSBzeW1ib2w/LnZhbHVlRGVjbGFyYXRpb247XG4gICAgaWYgKGRlY2xhcmF0aW9uICE9PSB2b2lkIDAgJiYgdHMuaXNWYXJpYWJsZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZGVjbGFyYXRpb24uaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCAmJlxuICAgICAgICBleHByZXNzaW9uUmVmZXJlbmNlc1N5bWJvbChcbiAgICAgICAgICBkZWNsYXJhdGlvbi5pbml0aWFsaXplcixcbiAgICAgICAgICB0YXJnZXRTeW1ib2wsXG4gICAgICAgICAgY2hlY2tlcixcbiAgICAgICAgICB2aXNpdGVkRXhwcmVzc2lvbnMsXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRlY2xhcmF0aW9uICE9PSB2b2lkIDAgJiZcbiAgICAgIHRzLmlzQmluZGluZ0VsZW1lbnQoZGVjbGFyYXRpb24pICYmXG4gICAgICB0cy5pc09iamVjdEJpbmRpbmdQYXR0ZXJuKGRlY2xhcmF0aW9uLnBhcmVudClcbiAgICApIHtcbiAgICAgIGNvbnN0IG93bmVyID0gZGVjbGFyYXRpb24ucGFyZW50LnBhcmVudDtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdHMuaXNWYXJpYWJsZURlY2xhcmF0aW9uKG93bmVyKSAmJlxuICAgICAgICBvd25lci5pbml0aWFsaXplciAhPT0gdm9pZCAwICYmXG4gICAgICAgIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgICAgIG93bmVyLmluaXRpYWxpemVyLFxuICAgICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgICBjaGVja2VyLFxuICAgICAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgdHMuaXNBc0V4cHJlc3Npb24oZXhwcmVzc2lvbikgfHxcbiAgICB0cy5pc05vbk51bGxFeHByZXNzaW9uKGV4cHJlc3Npb24pIHx8XG4gICAgdHMuaXNQYXJlbnRoZXNpemVkRXhwcmVzc2lvbihleHByZXNzaW9uKSB8fFxuICAgIHRzLmlzU2F0aXNmaWVzRXhwcmVzc2lvbihleHByZXNzaW9uKSB8fFxuICAgIHRzLmlzVHlwZUFzc2VydGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbilcbiAgKSB7XG4gICAgcmV0dXJuIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgZXhwcmVzc2lvbi5leHByZXNzaW9uLFxuICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgY2hlY2tlcixcbiAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICApO1xuICB9XG5cbiAgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgZXhwcmVzc2lvbi5leHByZXNzaW9uLFxuICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgY2hlY2tlcixcbiAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICApO1xuICB9XG5cbiAgaWYgKHRzLmlzRWxlbWVudEFjY2Vzc0V4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvblJlZmVyZW5jZXNTeW1ib2woXG4gICAgICBleHByZXNzaW9uLmV4cHJlc3Npb24sXG4gICAgICB0YXJnZXRTeW1ib2wsXG4gICAgICBjaGVja2VyLFxuICAgICAgdmlzaXRlZEV4cHJlc3Npb25zLFxuICAgICk7XG4gIH1cblxuICBpZiAodHMuaXNDYWxsRXhwcmVzc2lvbihleHByZXNzaW9uKSkge1xuICAgIHJldHVybiBleHByZXNzaW9uLmFyZ3VtZW50cy5zb21lKChhcmd1bWVudCkgPT5cbiAgICAgIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgICBhcmd1bWVudCxcbiAgICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgICBjaGVja2VyLFxuICAgICAgICB2aXNpdGVkRXhwcmVzc2lvbnMsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBpZiAodHMuaXNDb25kaXRpb25hbEV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZXhwcmVzc2lvblJlZmVyZW5jZXNTeW1ib2woXG4gICAgICAgIGV4cHJlc3Npb24ud2hlblRydWUsXG4gICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgY2hlY2tlcixcbiAgICAgICAgdmlzaXRlZEV4cHJlc3Npb25zLFxuICAgICAgKSB8fFxuICAgICAgZXhwcmVzc2lvblJlZmVyZW5jZXNTeW1ib2woXG4gICAgICAgIGV4cHJlc3Npb24ud2hlbkZhbHNlLFxuICAgICAgICB0YXJnZXRTeW1ib2wsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgaWYgKHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5wcm9wZXJ0aWVzLnNvbWUoKHByb3BlcnR5KSA9PiB7XG4gICAgICByZXR1cm4gdHMuaXNTcHJlYWRBc3NpZ25tZW50KHByb3BlcnR5KVxuICAgICAgICA/IGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgICAgICAgcHJvcGVydHkuZXhwcmVzc2lvbixcbiAgICAgICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgICAgIGNoZWNrZXIsXG4gICAgICAgICAgICB2aXNpdGVkRXhwcmVzc2lvbnMsXG4gICAgICAgICAgKVxuICAgICAgICA6ICh0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkgJiZcbiAgICAgICAgICAgIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgICAgICAgICBwcm9wZXJ0eS5pbml0aWFsaXplcixcbiAgICAgICAgICAgICAgdGFyZ2V0U3ltYm9sLFxuICAgICAgICAgICAgICBjaGVja2VyLFxuICAgICAgICAgICAgICB2aXNpdGVkRXhwcmVzc2lvbnMsXG4gICAgICAgICAgICApKSB8fFxuICAgICAgICAgICAgKHRzLmlzU2hvcnRoYW5kUHJvcGVydHlBc3NpZ25tZW50KHByb3BlcnR5KSAmJlxuICAgICAgICAgICAgICBleHByZXNzaW9uUmVmZXJlbmNlc1N5bWJvbChcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgICAgICAgIHRhcmdldFN5bWJvbCxcbiAgICAgICAgICAgICAgICBjaGVja2VyLFxuICAgICAgICAgICAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICAgICAgICAgICAgKSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihleHByZXNzaW9uKSAmJlxuICAgIGV4cHJlc3Npb24uZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT5cbiAgICAgIGV4cHJlc3Npb25SZWZlcmVuY2VzU3ltYm9sKFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICB0YXJnZXRTeW1ib2wsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIHZpc2l0ZWRFeHByZXNzaW9ucyxcbiAgICAgICksXG4gICAgKVxuICApO1xufTtcblxuZXhwb3J0IHsgZXhwcmVzc2lvblJlZmVyZW5jZXNTeW1ib2wgfTtcbiJdfQ==
|
package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as ts from "typescript";
|
|
2
2
|
import type { PublicMember } from "./member-declaration-utilities.js";
|
|
3
3
|
/**
|
|
4
|
-
* Checks whether
|
|
5
|
-
* @param node Candidate
|
|
4
|
+
* Checks whether a value is supplied to a typed external call boundary.
|
|
5
|
+
* @param node Candidate call expression.
|
|
6
6
|
* @param checker TypeScript type checker.
|
|
7
7
|
* @param member Member whose usage is being checked.
|
|
8
8
|
* @returns True when an external call contract accepts the member shape.
|
package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-usage-handoff-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"member-usage-handoff-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AA2HnE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,oBAAoB,GACxB,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,WAAW,EACvB,QAAQ,YAAY,KACnB,OA0BF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,QAAA,MAAM,uBAAuB,GAC3B,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,WAAW,EACvB,QAAQ,YAAY,KACnB,OA0EF,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
import * as ts from "typescript";
|
|
2
|
-
import { getContextualPropertyType, isMemberHandoff, } from "./member-usage-type-utilities.js";
|
|
3
|
-
|
|
4
|
-
* Finds a call argument's resolved parameter type.
|
|
5
|
-
* @param call Call expression containing the argument.
|
|
6
|
-
* @param argument Argument expression to inspect.
|
|
7
|
-
* @param checker TypeScript type checker.
|
|
8
|
-
* @returns Parameter type when TypeScript resolves the call.
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* const parameterType = getCallArgumentType(call, argument, checker);
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
const getCallArgumentType = (call, argument, checker) => {
|
|
15
|
-
const contextualType = checker.getContextualType(argument);
|
|
16
|
-
if (contextualType !== void 0) {
|
|
17
|
-
return contextualType;
|
|
18
|
-
}
|
|
19
|
-
const argumentIndex = call.arguments.indexOf(argument);
|
|
20
|
-
const signature = checker.getResolvedSignature(call);
|
|
21
|
-
const parameter = signature === void 0 ? void 0 : signature.parameters[argumentIndex];
|
|
22
|
-
return parameter === void 0
|
|
23
|
-
? void 0
|
|
24
|
-
: checker.getTypeOfSymbolAtLocation(parameter, call);
|
|
25
|
-
};
|
|
2
|
+
import { getCallArgumentType, getContextualPropertyType, isDeclarationOnlyMethod, isMemberHandoff, } from "./member-usage-type-utilities.js";
|
|
3
|
+
import { expressionCarriesMemberValue } from "./member-usage-value-utilities.js";
|
|
26
4
|
/**
|
|
27
5
|
* Checks whether a contextual property comes from an external declaration.
|
|
28
6
|
* @param objectType Contextual type of the containing object literal.
|
|
@@ -57,8 +35,49 @@ const hasCallImplementation = (call, checker) => {
|
|
|
57
35
|
declaration.body !== void 0);
|
|
58
36
|
};
|
|
59
37
|
/**
|
|
60
|
-
* Checks whether an
|
|
61
|
-
* @param
|
|
38
|
+
* Checks whether an opaque value property is passed to a method contract.
|
|
39
|
+
* @param objectLiteral Object literal passed to the method.
|
|
40
|
+
* @param propertyName Property carrying the value.
|
|
41
|
+
* @param valueExpression Value assigned to the property.
|
|
42
|
+
* @param objectType Contextual type of the object literal.
|
|
43
|
+
* @param checker TypeScript type checker.
|
|
44
|
+
* @param member Member whose value is being handed off.
|
|
45
|
+
* @returns True when a declaration-only method receives the member as opaque data.
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const handedOff = isOpaqueMethodContractHandoff(
|
|
49
|
+
* objectLiteral,
|
|
50
|
+
* "payload",
|
|
51
|
+
* value,
|
|
52
|
+
* type,
|
|
53
|
+
* checker,
|
|
54
|
+
* member,
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
const isOpaqueMethodContractHandoff = (objectLiteral, propertyName, valueExpression, objectType, checker, member) => {
|
|
59
|
+
const call = objectLiteral.parent;
|
|
60
|
+
const declaration = ts.isCallExpression(call)
|
|
61
|
+
? checker.getResolvedSignature(call)?.getDeclaration()
|
|
62
|
+
: void 0;
|
|
63
|
+
if (!ts.isCallExpression(call) ||
|
|
64
|
+
!call.arguments.includes(objectLiteral) ||
|
|
65
|
+
declaration === void 0 ||
|
|
66
|
+
!isDeclarationOnlyMethod(declaration)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const targetType = getContextualPropertyType(objectType, propertyName, objectLiteral, checker);
|
|
70
|
+
const isHttpRequestBody = propertyName === "body" &&
|
|
71
|
+
ts.isPropertyAccessExpression(call.expression) &&
|
|
72
|
+
call.expression.name.text === "request";
|
|
73
|
+
return (targetType !== void 0 &&
|
|
74
|
+
((targetType.flags & ts.TypeFlags.Unknown) !== 0 ||
|
|
75
|
+
(isHttpRequestBody && (targetType.flags & ts.TypeFlags.Any) !== 0)) &&
|
|
76
|
+
expressionCarriesMemberValue(valueExpression, checker, member));
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Checks whether a value is supplied to a typed external call boundary.
|
|
80
|
+
* @param node Candidate call expression.
|
|
62
81
|
* @param checker TypeScript type checker.
|
|
63
82
|
* @param member Member whose usage is being checked.
|
|
64
83
|
* @returns True when an external call contract accepts the member shape.
|
|
@@ -68,20 +87,23 @@ const hasCallImplementation = (call, checker) => {
|
|
|
68
87
|
* ```
|
|
69
88
|
*/
|
|
70
89
|
const isCallArgumentMember = (node, checker, member) => {
|
|
71
|
-
if (!ts.
|
|
72
|
-
(!ts.isIdentifier(node.name) && !ts.isStringLiteralLike(node.name)) ||
|
|
73
|
-
!ts.isObjectLiteralExpression(node.parent)) {
|
|
90
|
+
if (!ts.isCallExpression(node) || hasCallImplementation(node, checker)) {
|
|
74
91
|
return false;
|
|
75
92
|
}
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
const declaration = checker.getResolvedSignature(node)?.getDeclaration();
|
|
94
|
+
return (declaration !== void 0 &&
|
|
95
|
+
node.arguments.some((argument) => {
|
|
96
|
+
const argumentType = getCallArgumentType(node, argument, checker);
|
|
97
|
+
const isOpaqueJsonBody = isDeclarationOnlyMethod(declaration) &&
|
|
98
|
+
ts.isPropertyAccessExpression(node.expression) &&
|
|
99
|
+
node.expression.name.text === "json" &&
|
|
100
|
+
node.arguments[0] === argument &&
|
|
101
|
+
argumentType !== void 0 &&
|
|
102
|
+
(argumentType.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) !== 0;
|
|
103
|
+
return ((isOpaqueJsonBody &&
|
|
104
|
+
expressionCarriesMemberValue(argument, checker, member)) ||
|
|
105
|
+
isMemberHandoff(argument, argumentType, member, checker));
|
|
106
|
+
}));
|
|
85
107
|
};
|
|
86
108
|
/**
|
|
87
109
|
* Checks whether a property value is forwarded into an external object contract.
|
|
@@ -102,24 +124,28 @@ const isObjectContractHandoff = (node, checker, member) => {
|
|
|
102
124
|
return false;
|
|
103
125
|
}
|
|
104
126
|
const objectType = checker.getContextualType(node.parent);
|
|
127
|
+
if (isOpaqueMethodContractHandoff(node.parent, name.text, node.initializer, objectType, checker, member)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
105
130
|
if (!isExternalPropertyContract(objectType, name.text, checker)) {
|
|
106
131
|
return false;
|
|
107
132
|
}
|
|
108
|
-
const sourceType = checker.getTypeAtLocation(node.initializer);
|
|
109
133
|
const targetType = getContextualPropertyType(objectType, name.text, node, checker);
|
|
110
|
-
return isMemberHandoff(
|
|
134
|
+
return isMemberHandoff(node.initializer, targetType, member, checker);
|
|
111
135
|
}
|
|
112
136
|
if (ts.isShorthandPropertyAssignment(node) &&
|
|
113
137
|
ts.isObjectLiteralExpression(node.parent)) {
|
|
114
138
|
const objectType = checker.getContextualType(node.parent);
|
|
139
|
+
if (isOpaqueMethodContractHandoff(node.parent, node.name.text, node.name, objectType, checker, member)) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
115
142
|
if (!isExternalPropertyContract(objectType, node.name.text, checker)) {
|
|
116
143
|
return false;
|
|
117
144
|
}
|
|
118
|
-
const sourceType = checker.getTypeAtLocation(node.name);
|
|
119
145
|
const targetType = getContextualPropertyType(objectType, node.name.text, node, checker);
|
|
120
|
-
return isMemberHandoff(
|
|
146
|
+
return isMemberHandoff(node.name, targetType, member, checker);
|
|
121
147
|
}
|
|
122
148
|
return false;
|
|
123
149
|
};
|
|
124
150
|
export { isCallArgumentMember, isObjectContractHandoff };
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXVzYWdlLWhhbmRvZmYtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzL21lbWJlci11c2FnZS1oYW5kb2ZmLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUlqQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixJQUF1QixFQUN2QixRQUF1QixFQUN2QixPQUF1QixFQUNGLEVBQUU7SUFDdkIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNELElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFNLFNBQVMsR0FDYixTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXRFLE9BQU8sU0FBUyxLQUFLLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7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QUVGLE9BQU8sZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHR5cGUgeyBQdWJsaWNNZW1iZXIgfSBmcm9tIFwiLi9tZW1iZXItZGVjbGFyYXRpb24tdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7XG4gIGdldENvbnRleHR1YWxQcm9wZXJ0eVR5cGUsXG4gIGlzTWVtYmVySGFuZG9mZixcbn0gZnJvbSBcIi4vbWVtYmVyLXVzYWdlLXR5cGUtdXRpbGl0aWVzXCI7XG5cbi8qKlxuICogRmluZHMgYSBjYWxsIGFyZ3VtZW50J3MgcmVzb2x2ZWQgcGFyYW1ldGVyIHR5cGUuXG4gKiBAcGFyYW0gY2FsbCBDYWxsIGV4cHJlc3Npb24gY29udGFpbmluZyB0aGUgYXJndW1lbnQuXG4gKiBAcGFyYW0gYXJndW1lbnQgQXJndW1lbnQgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcmV0dXJucyBQYXJhbWV0ZXIgdHlwZSB3aGVuIFR5cGVTY3JpcHQgcmVzb2x2ZXMgdGhlIGNhbGwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyYW1ldGVyVHlwZSA9IGdldENhbGxBcmd1bWVudFR5cGUoY2FsbCwgYXJndW1lbnQsIGNoZWNrZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldENhbGxBcmd1bWVudFR5cGUgPSAoXG4gIGNhbGw6IHRzLkNhbGxFeHByZXNzaW9uLFxuICBhcmd1bWVudDogdHMuRXhwcmVzc2lvbixcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgY29udGV4dHVhbFR5cGUgPSBjaGVja2VyLmdldENvbnRleHR1YWxUeXBlKGFyZ3VtZW50KTtcblxuICBpZiAoY29udGV4dHVhbFR5cGUgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBjb250ZXh0dWFsVHlwZTtcbiAgfVxuXG4gIGNvbnN0IGFyZ3VtZW50SW5kZXggPSBjYWxsLmFyZ3VtZW50cy5pbmRleE9mKGFyZ3VtZW50KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gY2hlY2tlci5nZXRSZXNvbHZlZFNpZ25hdHVyZShjYWxsKTtcbiAgY29uc3QgcGFyYW1ldGVyID1cbiAgICBzaWduYXR1cmUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNpZ25hdHVyZS5wYXJhbWV0ZXJzW2FyZ3VtZW50SW5kZXhdO1xuXG4gIHJldHVybiBwYXJhbWV0ZXIgPT09IHZvaWQgMFxuICAgID8gdm9pZCAwXG4gICAgOiBjaGVja2VyLmdldFR5cGVPZlN5bWJvbEF0TG9jYXRpb24ocGFyYW1ldGVyLCBjYWxsKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb250ZXh0dWFsIHByb3BlcnR5IGNvbWVzIGZyb20gYW4gZXh0ZXJuYWwgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gb2JqZWN0VHlwZSBDb250ZXh0dWFsIHR5cGUgb2YgdGhlIGNvbnRhaW5pbmcgb2JqZWN0IGxpdGVyYWwuXG4gKiBAcGFyYW0gcHJvcGVydHlOYW1lIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9iamVjdCBsaXRlcmFsLlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGNvbnRyYWN0IGlzIGRlY2xhcmVkIG91dHNpZGUgdGhlIHByb2plY3Qgc291cmNlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGV4dGVybmFsID0gaXNFeHRlcm5hbFByb3BlcnR5Q29udHJhY3Qob2JqZWN0VHlwZSwgXCJkb2NzXCIsIGNoZWNrZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRXh0ZXJuYWxQcm9wZXJ0eUNvbnRyYWN0ID0gKFxuICBvYmplY3RUeXBlOiB0cy5UeXBlIHwgdW5kZWZpbmVkLFxuICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgcHJvcGVydHkgPVxuICAgIG9iamVjdFR5cGUgPT09IHZvaWQgMFxuICAgICAgPyB2b2lkIDBcbiAgICAgIDogY2hlY2tlci5nZXRQcm9wZXJ0eU9mVHlwZShvYmplY3RUeXBlLCBwcm9wZXJ0eU5hbWUpO1xuXG4gIHJldHVybiAoXG4gICAgcHJvcGVydHk/LmRlY2xhcmF0aW9ucz8uc29tZShcbiAgICAgIChkZWNsYXJhdGlvbikgPT4gZGVjbGFyYXRpb24uZ2V0U291cmNlRmlsZSgpLmlzRGVjbGFyYXRpb25GaWxlLFxuICAgICkgPz8gZmFsc2VcbiAgKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIHJlc29sdmVzIHRvIGEgZGVjbGFyYXRpb24gd2l0aCBhIGxvY2FsIGltcGxlbWVudGF0aW9uLlxuICogQHBhcmFtIGNhbGwgQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gY2hlY2tlciBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgcmVzb2x2ZWQgZGVjbGFyYXRpb24gaGFzIGEgYm9keS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbXBsZW1lbnRlZCA9IGhhc0NhbGxJbXBsZW1lbnRhdGlvbihjYWxsLCBjaGVja2VyKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNDYWxsSW1wbGVtZW50YXRpb24gPSAoXG4gIGNhbGw6IHRzLkNhbGxFeHByZXNzaW9uLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBkZWNsYXJhdGlvbiA9IGNoZWNrZXIuZ2V0UmVzb2x2ZWRTaWduYXR1cmUoY2FsbCk/LmdldERlY2xhcmF0aW9uKCk7XG5cbiAgcmV0dXJuIChcbiAgICBkZWNsYXJhdGlvbiAhPT0gdm9pZCAwICYmXG4gICAgXCJib2R5XCIgaW4gZGVjbGFyYXRpb24gJiZcbiAgICBkZWNsYXJhdGlvbi5ib2R5ICE9PSB2b2lkIDBcbiAgKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gb2JqZWN0IHByb3BlcnR5IGlzIHN1cHBsaWVkIHRvIGEgdHlwZWQgY2FsbCBib3VuZGFyeS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50LlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbWVtYmVyIE1lbWJlciB3aG9zZSB1c2FnZSBpcyBiZWluZyBjaGVja2VkLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFuIGV4dGVybmFsIGNhbGwgY29udHJhY3QgYWNjZXB0cyB0aGUgbWVtYmVyIHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHVzZWQgPSBpc0NhbGxBcmd1bWVudE1lbWJlcihub2RlLCBjaGVja2VyLCBtZW1iZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzQ2FsbEFyZ3VtZW50TWVtYmVyID0gKFxuICBub2RlOiB0cy5Ob2RlLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbWVtYmVyOiBQdWJsaWNNZW1iZXIsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKFxuICAgICF0cy5pc1Byb3BlcnR5QXNzaWdubWVudChub2RlKSB8fFxuICAgICghdHMuaXNJZGVudGlmaWVyKG5vZGUubmFtZSkgJiYgIXRzLmlzU3RyaW5nTGl0ZXJhbExpa2Uobm9kZS5uYW1lKSkgfHxcbiAgICAhdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLnBhcmVudClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY2FsbCA9IG5vZGUucGFyZW50LnBhcmVudDtcblxuICBpZiAoXG4gICAgIXRzLmlzQ2FsbEV4cHJlc3Npb24oY2FsbCkgfHxcbiAgICBoYXNDYWxsSW1wbGVtZW50YXRpb24oY2FsbCwgY2hlY2tlcikgfHxcbiAgICAhY2FsbC5hcmd1bWVudHMuc29tZSgoYXJndW1lbnQpID0+IGFyZ3VtZW50ID09PSBub2RlLnBhcmVudClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdGFyZ2V0VHlwZSA9IGdldENhbGxBcmd1bWVudFR5cGUoY2FsbCwgbm9kZS5wYXJlbnQsIGNoZWNrZXIpO1xuXG4gIHJldHVybiAoXG4gICAgbm9kZS5uYW1lLnRleHQgPT09IG1lbWJlci5tZW1iZXJOYW1lICYmXG4gICAgaXNNZW1iZXJIYW5kb2ZmKFxuICAgICAgY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihub2RlLnBhcmVudCksXG4gICAgICB0YXJnZXRUeXBlLFxuICAgICAgbWVtYmVyLFxuICAgICAgY2hlY2tlcixcbiAgICApXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvcGVydHkgdmFsdWUgaXMgZm9yd2FyZGVkIGludG8gYW4gZXh0ZXJuYWwgb2JqZWN0IGNvbnRyYWN0LlxuICogQHBhcmFtIG5vZGUgQ2FuZGlkYXRlIG91dGVyIG9iamVjdCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG1lbWJlciBNZW1iZXIgd2hvc2UgaG9zdCB2YWx1ZSBpcyBiZWluZyBmb3J3YXJkZWQuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHJlY2VpdmluZyBwcm9wZXJ0eSBhY2NlcHRzIHRoZSBob3N0IHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHVzZWQgPSBpc09iamVjdENvbnRyYWN0SGFuZG9mZihub2RlLCBjaGVja2VyLCBtZW1iZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzT2JqZWN0Q29udHJhY3RIYW5kb2ZmID0gKFxuICBub2RlOiB0cy5Ob2RlLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbWVtYmVyOiBQdWJsaWNNZW1iZXIsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKFxuICAgIHRzLmlzUHJvcGVydHlBc3NpZ25tZW50KG5vZGUpICYmXG4gICAgdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLnBhcmVudClcbiAgKSB7XG4gICAgY29uc3QgbmFtZSA9IG5vZGUubmFtZTtcblxuICAgIGlmICghdHMuaXNJZGVudGlmaWVyKG5hbWUpICYmICF0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKG5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb2JqZWN0VHlwZSA9IGNoZWNrZXIuZ2V0Q29udGV4dHVhbFR5cGUobm9kZS5wYXJlbnQpO1xuXG4gICAgaWYgKCFpc0V4dGVybmFsUHJvcGVydHlDb250cmFjdChvYmplY3RUeXBlLCBuYW1lLnRleHQsIGNoZWNrZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24obm9kZS5pbml0aWFsaXplcik7XG4gICAgY29uc3QgdGFyZ2V0VHlwZSA9IGdldENvbnRleHR1YWxQcm9wZXJ0eVR5cGUoXG4gICAgICBvYmplY3RUeXBlLFxuICAgICAgbmFtZS50ZXh0LFxuICAgICAgbm9kZSxcbiAgICAgIGNoZWNrZXIsXG4gICAgKTtcblxuICAgIHJldHVybiBpc01lbWJlckhhbmRvZmYoc291cmNlVHlwZSwgdGFyZ2V0VHlwZSwgbWVtYmVyLCBjaGVja2VyKTtcbiAgfVxuXG4gIGlmIChcbiAgICB0cy5pc1Nob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudChub2RlKSAmJlxuICAgIHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obm9kZS5wYXJlbnQpXG4gICkge1xuICAgIGNvbnN0IG9iamVjdFR5cGUgPSBjaGVja2VyLmdldENvbnRleHR1YWxUeXBlKG5vZGUucGFyZW50KTtcblxuICAgIGlmICghaXNFeHRlcm5hbFByb3BlcnR5Q29udHJhY3Qob2JqZWN0VHlwZSwgbm9kZS5uYW1lLnRleHQsIGNoZWNrZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24obm9kZS5uYW1lKTtcbiAgICBjb25zdCB0YXJnZXRUeXBlID0gZ2V0Q29udGV4dHVhbFByb3BlcnR5VHlwZShcbiAgICAgIG9iamVjdFR5cGUsXG4gICAgICBub2RlLm5hbWUudGV4dCxcbiAgICAgIG5vZGUsXG4gICAgICBjaGVja2VyLFxuICAgICk7XG5cbiAgICByZXR1cm4gaXNNZW1iZXJIYW5kb2ZmKHNvdXJjZVR5cGUsIHRhcmdldFR5cGUsIG1lbWJlciwgY2hlY2tlcik7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgeyBpc0NhbGxBcmd1bWVudE1lbWJlciwgaXNPYmplY3RDb250cmFjdEhhbmRvZmYgfTtcbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXVzYWdlLWhhbmRvZmYtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLXB1YmxpYy1tZW1iZXJzL21lbWJlci11c2FnZS1oYW5kb2ZmLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUlqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsZUFBZSxHQUNoQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlFOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLDBCQUEwQixHQUFHLENBQ2pDLFVBQStCLEVBQy9CLFlBQW9CLEVBQ3BCLE9BQXVCLEVBQ2QsRUFBRTtJQUNYLE1BQU0sUUFBUSxHQUNaLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTFELE9BQU8sQ0FDTCxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FDMUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxpQkFBaUIsQ0FDL0QsSUFBSSxLQUFLLENBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsSUFBdUIsRUFDdkIsT0FBdUIsRUFDZCxFQUFFO0lBQ1gsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBRXpFLE9BQU8sQ0FDTCxXQUFXLEtBQUss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Q2YsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuXG5pbXBvcnQgdHlwZSB7IFB1YmxpY01lbWJlciB9IGZyb20gXCIuL21lbWJlci1kZWNsYXJhdGlvbi11dGlsaXRpZXNcIjtcblxuaW1wb3J0IHtcbiAgZ2V0Q2FsbEFyZ3VtZW50VHlwZSxcbiAgZ2V0Q29udGV4dHVhbFByb3BlcnR5VHlwZSxcbiAgaXNEZWNsYXJhdGlvbk9ubHlNZXRob2QsXG4gIGlzTWVtYmVySGFuZG9mZixcbn0gZnJvbSBcIi4vbWVtYmVyLXVzYWdlLXR5cGUtdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBleHByZXNzaW9uQ2Fycmllc01lbWJlclZhbHVlIH0gZnJvbSBcIi4vbWVtYmVyLXVzYWdlLXZhbHVlLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY29udGV4dHVhbCBwcm9wZXJ0eSBjb21lcyBmcm9tIGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uLlxuICogQHBhcmFtIG9iamVjdFR5cGUgQ29udGV4dHVhbCB0eXBlIG9mIHRoZSBjb250YWluaW5nIG9iamVjdCBsaXRlcmFsLlxuICogQHBhcmFtIHByb3BlcnR5TmFtZSBQcm9wZXJ0eSBuYW1lIGluIHRoZSBvYmplY3QgbGl0ZXJhbC5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBjb250cmFjdCBpcyBkZWNsYXJlZCBvdXRzaWRlIHRoZSBwcm9qZWN0IHNvdXJjZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHRlcm5hbCA9IGlzRXh0ZXJuYWxQcm9wZXJ0eUNvbnRyYWN0KG9iamVjdFR5cGUsIFwiZG9jc1wiLCBjaGVja2VyKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0V4dGVybmFsUHJvcGVydHlDb250cmFjdCA9IChcbiAgb2JqZWN0VHlwZTogdHMuVHlwZSB8IHVuZGVmaW5lZCxcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHByb3BlcnR5ID1cbiAgICBvYmplY3RUeXBlID09PSB2b2lkIDBcbiAgICAgID8gdm9pZCAwXG4gICAgICA6IGNoZWNrZXIuZ2V0UHJvcGVydHlPZlR5cGUob2JqZWN0VHlwZSwgcHJvcGVydHlOYW1lKTtcblxuICByZXR1cm4gKFxuICAgIHByb3BlcnR5Py5kZWNsYXJhdGlvbnM/LnNvbWUoXG4gICAgICAoZGVjbGFyYXRpb24pID0+IGRlY2xhcmF0aW9uLmdldFNvdXJjZUZpbGUoKS5pc0RlY2xhcmF0aW9uRmlsZSxcbiAgICApID8/IGZhbHNlXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCByZXNvbHZlcyB0byBhIGRlY2xhcmF0aW9uIHdpdGggYSBsb2NhbCBpbXBsZW1lbnRhdGlvbi5cbiAqIEBwYXJhbSBjYWxsIENhbGwgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHJlc29sdmVkIGRlY2xhcmF0aW9uIGhhcyBhIGJvZHkuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW1wbGVtZW50ZWQgPSBoYXNDYWxsSW1wbGVtZW50YXRpb24oY2FsbCwgY2hlY2tlcik7XG4gKiBgYGBcbiAqL1xuY29uc3QgaGFzQ2FsbEltcGxlbWVudGF0aW9uID0gKFxuICBjYWxsOiB0cy5DYWxsRXhwcmVzc2lvbixcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb24gPSBjaGVja2VyLmdldFJlc29sdmVkU2lnbmF0dXJlKGNhbGwpPy5nZXREZWNsYXJhdGlvbigpO1xuXG4gIHJldHVybiAoXG4gICAgZGVjbGFyYXRpb24gIT09IHZvaWQgMCAmJlxuICAgIFwiYm9keVwiIGluIGRlY2xhcmF0aW9uICYmXG4gICAgZGVjbGFyYXRpb24uYm9keSAhPT0gdm9pZCAwXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIG9wYXF1ZSB2YWx1ZSBwcm9wZXJ0eSBpcyBwYXNzZWQgdG8gYSBtZXRob2QgY29udHJhY3QuXG4gKiBAcGFyYW0gb2JqZWN0TGl0ZXJhbCBPYmplY3QgbGl0ZXJhbCBwYXNzZWQgdG8gdGhlIG1ldGhvZC5cbiAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgUHJvcGVydHkgY2FycnlpbmcgdGhlIHZhbHVlLlxuICogQHBhcmFtIHZhbHVlRXhwcmVzc2lvbiBWYWx1ZSBhc3NpZ25lZCB0byB0aGUgcHJvcGVydHkuXG4gKiBAcGFyYW0gb2JqZWN0VHlwZSBDb250ZXh0dWFsIHR5cGUgb2YgdGhlIG9iamVjdCBsaXRlcmFsLlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbWVtYmVyIE1lbWJlciB3aG9zZSB2YWx1ZSBpcyBiZWluZyBoYW5kZWQgb2ZmLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGEgZGVjbGFyYXRpb24tb25seSBtZXRob2QgcmVjZWl2ZXMgdGhlIG1lbWJlciBhcyBvcGFxdWUgZGF0YS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoYW5kZWRPZmYgPSBpc09wYXF1ZU1ldGhvZENvbnRyYWN0SGFuZG9mZihcbiAqICAgb2JqZWN0TGl0ZXJhbCxcbiAqICAgXCJwYXlsb2FkXCIsXG4gKiAgIHZhbHVlLFxuICogICB0eXBlLFxuICogICBjaGVja2VyLFxuICogICBtZW1iZXIsXG4gKiApO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzT3BhcXVlTWV0aG9kQ29udHJhY3RIYW5kb2ZmID0gKFxuICBvYmplY3RMaXRlcmFsOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbixcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gIHZhbHVlRXhwcmVzc2lvbjogdHMuRXhwcmVzc2lvbixcbiAgb2JqZWN0VHlwZTogdHMuVHlwZSB8IHVuZGVmaW5lZCxcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gIG1lbWJlcjogUHVibGljTWVtYmVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGNhbGwgPSBvYmplY3RMaXRlcmFsLnBhcmVudDtcbiAgY29uc3QgZGVjbGFyYXRpb24gPSB0cy5pc0NhbGxFeHByZXNzaW9uKGNhbGwpXG4gICAgPyBjaGVja2VyLmdldFJlc29sdmVkU2lnbmF0dXJlKGNhbGwpPy5nZXREZWNsYXJhdGlvbigpXG4gICAgOiB2b2lkIDA7XG5cbiAgaWYgKFxuICAgICF0cy5pc0NhbGxFeHByZXNzaW9uKGNhbGwpIHx8XG4gICAgIWNhbGwuYXJndW1lbnRzLmluY2x1ZGVzKG9iamVjdExpdGVyYWwpIHx8XG4gICAgZGVjbGFyYXRpb24gPT09IHZvaWQgMCB8fFxuICAgICFpc0RlY2xhcmF0aW9uT25seU1ldGhvZChkZWNsYXJhdGlvbilcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdGFyZ2V0VHlwZSA9IGdldENvbnRleHR1YWxQcm9wZXJ0eVR5cGUoXG4gICAgb2JqZWN0VHlwZSxcbiAgICBwcm9wZXJ0eU5hbWUsXG4gICAgb2JqZWN0TGl0ZXJhbCxcbiAgICBjaGVja2VyLFxuICApO1xuICBjb25zdCBpc0h0dHBSZXF1ZXN0Qm9keSA9XG4gICAgcHJvcGVydHlOYW1lID09PSBcImJvZHlcIiAmJlxuICAgIHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGNhbGwuZXhwcmVzc2lvbikgJiZcbiAgICBjYWxsLmV4cHJlc3Npb24ubmFtZS50ZXh0ID09PSBcInJlcXVlc3RcIjtcblxuICByZXR1cm4gKFxuICAgIHRhcmdldFR5cGUgIT09IHZvaWQgMCAmJlxuICAgICgodGFyZ2V0VHlwZS5mbGFncyAmIHRzLlR5cGVGbGFncy5Vbmtub3duKSAhPT0gMCB8fFxuICAgICAgKGlzSHR0cFJlcXVlc3RCb2R5ICYmICh0YXJnZXRUeXBlLmZsYWdzICYgdHMuVHlwZUZsYWdzLkFueSkgIT09IDApKSAmJlxuICAgIGV4cHJlc3Npb25DYXJyaWVzTWVtYmVyVmFsdWUodmFsdWVFeHByZXNzaW9uLCBjaGVja2VyLCBtZW1iZXIpXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgdmFsdWUgaXMgc3VwcGxpZWQgdG8gYSB0eXBlZCBleHRlcm5hbCBjYWxsIGJvdW5kYXJ5LlxuICogQHBhcmFtIG5vZGUgQ2FuZGlkYXRlIGNhbGwgZXhwcmVzc2lvbi5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG1lbWJlciBNZW1iZXIgd2hvc2UgdXNhZ2UgaXMgYmVpbmcgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiBhbiBleHRlcm5hbCBjYWxsIGNvbnRyYWN0IGFjY2VwdHMgdGhlIG1lbWJlciBzaGFwZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB1c2VkID0gaXNDYWxsQXJndW1lbnRNZW1iZXIobm9kZSwgY2hlY2tlciwgbWVtYmVyKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0NhbGxBcmd1bWVudE1lbWJlciA9IChcbiAgbm9kZTogdHMuTm9kZSxcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gIG1lbWJlcjogUHVibGljTWVtYmVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdHMuaXNDYWxsRXhwcmVzc2lvbihub2RlKSB8fCBoYXNDYWxsSW1wbGVtZW50YXRpb24obm9kZSwgY2hlY2tlcikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IGNoZWNrZXIuZ2V0UmVzb2x2ZWRTaWduYXR1cmUobm9kZSk/LmdldERlY2xhcmF0aW9uKCk7XG5cbiAgcmV0dXJuIChcbiAgICBkZWNsYXJhdGlvbiAhPT0gdm9pZCAwICYmXG4gICAgbm9kZS5hcmd1bWVudHMuc29tZSgoYXJndW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGFyZ3VtZW50VHlwZSA9IGdldENhbGxBcmd1bWVudFR5cGUobm9kZSwgYXJndW1lbnQsIGNoZWNrZXIpO1xuICAgICAgY29uc3QgaXNPcGFxdWVKc29uQm9keSA9XG4gICAgICAgIGlzRGVjbGFyYXRpb25Pbmx5TWV0aG9kKGRlY2xhcmF0aW9uKSAmJlxuICAgICAgICB0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlLmV4cHJlc3Npb24pICYmXG4gICAgICAgIG5vZGUuZXhwcmVzc2lvbi5uYW1lLnRleHQgPT09IFwianNvblwiICYmXG4gICAgICAgIG5vZGUuYXJndW1lbnRzWzBdID09PSBhcmd1bWVudCAmJlxuICAgICAgICBhcmd1bWVudFR5cGUgIT09IHZvaWQgMCAmJlxuICAgICAgICAoYXJndW1lbnRUeXBlLmZsYWdzICYgKHRzLlR5cGVGbGFncy5BbnkgfCB0cy5UeXBlRmxhZ3MuVW5rbm93bikpICE9PSAwO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICAoaXNPcGFxdWVKc29uQm9keSAmJlxuICAgICAgICAgIGV4cHJlc3Npb25DYXJyaWVzTWVtYmVyVmFsdWUoYXJndW1lbnQsIGNoZWNrZXIsIG1lbWJlcikpIHx8XG4gICAgICAgIGlzTWVtYmVySGFuZG9mZihhcmd1bWVudCwgYXJndW1lbnRUeXBlLCBtZW1iZXIsIGNoZWNrZXIpXG4gICAgICApO1xuICAgIH0pXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvcGVydHkgdmFsdWUgaXMgZm9yd2FyZGVkIGludG8gYW4gZXh0ZXJuYWwgb2JqZWN0IGNvbnRyYWN0LlxuICogQHBhcmFtIG5vZGUgQ2FuZGlkYXRlIG91dGVyIG9iamVjdCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG1lbWJlciBNZW1iZXIgd2hvc2UgaG9zdCB2YWx1ZSBpcyBiZWluZyBmb3J3YXJkZWQuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHJlY2VpdmluZyBwcm9wZXJ0eSBhY2NlcHRzIHRoZSBob3N0IHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHVzZWQgPSBpc09iamVjdENvbnRyYWN0SGFuZG9mZihub2RlLCBjaGVja2VyLCBtZW1iZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzT2JqZWN0Q29udHJhY3RIYW5kb2ZmID0gKFxuICBub2RlOiB0cy5Ob2RlLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbWVtYmVyOiBQdWJsaWNNZW1iZXIsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKFxuICAgIHRzLmlzUHJvcGVydHlBc3NpZ25tZW50KG5vZGUpICYmXG4gICAgdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLnBhcmVudClcbiAgKSB7XG4gICAgY29uc3QgbmFtZSA9IG5vZGUubmFtZTtcblxuICAgIGlmICghdHMuaXNJZGVudGlmaWVyKG5hbWUpICYmICF0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKG5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb2JqZWN0VHlwZSA9IGNoZWNrZXIuZ2V0Q29udGV4dHVhbFR5cGUobm9kZS5wYXJlbnQpO1xuXG4gICAgaWYgKFxuICAgICAgaXNPcGFxdWVNZXRob2RDb250cmFjdEhhbmRvZmYoXG4gICAgICAgIG5vZGUucGFyZW50LFxuICAgICAgICBuYW1lLnRleHQsXG4gICAgICAgIG5vZGUuaW5pdGlhbGl6ZXIsXG4gICAgICAgIG9iamVjdFR5cGUsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIG1lbWJlcixcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICghaXNFeHRlcm5hbFByb3BlcnR5Q29udHJhY3Qob2JqZWN0VHlwZSwgbmFtZS50ZXh0LCBjaGVja2VyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFR5cGUgPSBnZXRDb250ZXh0dWFsUHJvcGVydHlUeXBlKFxuICAgICAgb2JqZWN0VHlwZSxcbiAgICAgIG5hbWUudGV4dCxcbiAgICAgIG5vZGUsXG4gICAgICBjaGVja2VyLFxuICAgICk7XG5cbiAgICByZXR1cm4gaXNNZW1iZXJIYW5kb2ZmKG5vZGUuaW5pdGlhbGl6ZXIsIHRhcmdldFR5cGUsIG1lbWJlciwgY2hlY2tlcik7XG4gIH1cblxuICBpZiAoXG4gICAgdHMuaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQobm9kZSkgJiZcbiAgICB0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUucGFyZW50KVxuICApIHtcbiAgICBjb25zdCBvYmplY3RUeXBlID0gY2hlY2tlci5nZXRDb250ZXh0dWFsVHlwZShub2RlLnBhcmVudCk7XG5cbiAgICBpZiAoXG4gICAgICBpc09wYXF1ZU1ldGhvZENvbnRyYWN0SGFuZG9mZihcbiAgICAgICAgbm9kZS5wYXJlbnQsXG4gICAgICAgIG5vZGUubmFtZS50ZXh0LFxuICAgICAgICBub2RlLm5hbWUsXG4gICAgICAgIG9iamVjdFR5cGUsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIG1lbWJlcixcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICghaXNFeHRlcm5hbFByb3BlcnR5Q29udHJhY3Qob2JqZWN0VHlwZSwgbm9kZS5uYW1lLnRleHQsIGNoZWNrZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0VHlwZSA9IGdldENvbnRleHR1YWxQcm9wZXJ0eVR5cGUoXG4gICAgICBvYmplY3RUeXBlLFxuICAgICAgbm9kZS5uYW1lLnRleHQsXG4gICAgICBub2RlLFxuICAgICAgY2hlY2tlcixcbiAgICApO1xuXG4gICAgcmV0dXJuIGlzTWVtYmVySGFuZG9mZihub2RlLm5hbWUsIHRhcmdldFR5cGUsIG1lbWJlciwgY2hlY2tlcik7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgeyBpc0NhbGxBcmd1bWVudE1lbWJlciwgaXNPYmplY3RDb250cmFjdEhhbmRvZmYgfTtcbiJdfQ==
|
package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { PublicMember } from "./member-declaration-utilities.js";
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether a local call forwards a member-bearing value to an HTTP body.
|
|
5
|
+
* @param node Candidate local call expression.
|
|
6
|
+
* @param checker TypeScript type checker.
|
|
7
|
+
* @param member Member whose value is being transmitted.
|
|
8
|
+
* @returns True when the argument reaches an opaque request body contract.
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const transmitted = isLocalCallArgumentTransmitted(call, checker, member);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare const isLocalCallArgumentTransmitted: (node: ts.Node, checker: ts.TypeChecker, member: PublicMember) => boolean;
|
|
15
|
+
export { isLocalCallArgumentTransmitted };
|
|
16
|
+
//# sourceMappingURL=member-usage-local-flow-utilities.d.ts.map
|
package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member-usage-local-flow-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,8BAA8B,GAClC,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,WAAW,EACvB,QAAQ,YAAY,KACnB,OA+BF,CAAC;AAwKF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|