@angular/language-service 9.0.0-rc.9 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/language-service.umd.js +1574 -2087
- package/package.json +1 -1
- package/src/definitions.js +61 -24
- package/src/diagnostics.d.ts +0 -7
- package/src/diagnostics.js +1 -37
- package/src/expression_diagnostics.d.ts +7 -3
- package/src/expression_diagnostics.js +61 -44
- package/src/expression_type.d.ts +6 -13
- package/src/expression_type.js +63 -66
- package/src/expressions.js +8 -2
- package/src/hover.d.ts +7 -6
- package/src/hover.js +69 -88
- package/src/language_service.d.ts +12 -2
- package/src/language_service.js +16 -20
- package/src/locate_symbol.d.ts +9 -8
- package/src/locate_symbol.js +200 -173
- package/src/ts_plugin.js +6 -6
- package/src/types.d.ts +6 -40
- package/src/types.js +1 -1
- package/src/typescript_host.d.ts +2 -11
- package/src/typescript_host.js +6 -18
- package/src/typescript_symbols.js +8 -25
- package/src/utils.d.ts +22 -8
- package/src/utils.js +63 -8
- package/src/version.js +1 -1
package/src/hover.js
CHANGED
|
@@ -11,20 +11,18 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/language-service/src/hover", ["require", "exports", "tslib", "
|
|
14
|
+
define("@angular/language-service/src/hover", ["require", "exports", "tslib", "typescript", "@angular/language-service/src/locate_symbol", "@angular/language-service/src/utils"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
var tslib_1 = require("tslib");
|
|
20
|
-
var compiler_1 = require("@angular/compiler");
|
|
21
20
|
var ts = require("typescript");
|
|
22
21
|
var locate_symbol_1 = require("@angular/language-service/src/locate_symbol");
|
|
23
22
|
var utils_1 = require("@angular/language-service/src/utils");
|
|
24
23
|
// Reverse mappings of enum would generate strings
|
|
25
24
|
var SYMBOL_SPACE = ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.space];
|
|
26
25
|
var SYMBOL_PUNC = ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.punctuation];
|
|
27
|
-
var SYMBOL_CLASS = ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.className];
|
|
28
26
|
var SYMBOL_TEXT = ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.text];
|
|
29
27
|
var SYMBOL_INTERFACE = ts.SymbolDisplayPartKind[ts.SymbolDisplayPartKind.interfaceName];
|
|
30
28
|
/**
|
|
@@ -32,113 +30,96 @@
|
|
|
32
30
|
* return the corresponding quick info.
|
|
33
31
|
* @param info template AST
|
|
34
32
|
* @param position location of the symbol
|
|
35
|
-
* @param
|
|
33
|
+
* @param analyzedModules all NgModules in the program.
|
|
36
34
|
*/
|
|
37
|
-
function
|
|
38
|
-
var
|
|
35
|
+
function getTemplateHover(info, position, analyzedModules) {
|
|
36
|
+
var _a, _b, _c;
|
|
37
|
+
var symbolInfo = locate_symbol_1.locateSymbols(info, position)[0];
|
|
39
38
|
if (!symbolInfo) {
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
|
-
var symbol = symbolInfo.symbol, span = symbolInfo.span,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
var symbol = symbolInfo.symbol, span = symbolInfo.span, staticSymbol = symbolInfo.staticSymbol;
|
|
42
|
+
// The container is either the symbol's container (for example, 'AppComponent'
|
|
43
|
+
// is the container of the symbol 'title' in its template) or the NgModule
|
|
44
|
+
// that the directive belongs to (the container of AppComponent is AppModule).
|
|
45
|
+
var containerName = (_a = symbol.container) === null || _a === void 0 ? void 0 : _a.name;
|
|
46
|
+
if (!containerName && staticSymbol) {
|
|
47
|
+
// If there is a static symbol then the target is a directive.
|
|
48
|
+
var ngModule = analyzedModules.ngModuleByPipeOrDirective.get(staticSymbol);
|
|
49
|
+
containerName = (_b = ngModule) === null || _b === void 0 ? void 0 : _b.type.reference.name;
|
|
46
50
|
}
|
|
47
|
-
|
|
51
|
+
return createQuickInfo(symbol.name, symbol.kind, span, containerName, (_c = symbol.type) === null || _c === void 0 ? void 0 : _c.name, symbol.documentation);
|
|
52
|
+
}
|
|
53
|
+
exports.getTemplateHover = getTemplateHover;
|
|
54
|
+
/**
|
|
55
|
+
* Get quick info for Angular semantic entities in TypeScript files, like Directives.
|
|
56
|
+
* @param position location of the symbol in the source file
|
|
57
|
+
* @param declarations All Directive-like declarations in the source file.
|
|
58
|
+
* @param analyzedModules all NgModules in the program.
|
|
59
|
+
*/
|
|
60
|
+
function getTsHover(position, declarations, analyzedModules) {
|
|
61
|
+
var e_1, _a;
|
|
62
|
+
var _b;
|
|
63
|
+
try {
|
|
64
|
+
for (var declarations_1 = tslib_1.__values(declarations), declarations_1_1 = declarations_1.next(); !declarations_1_1.done; declarations_1_1 = declarations_1.next()) {
|
|
65
|
+
var _c = declarations_1_1.value, declarationSpan = _c.declarationSpan, metadata = _c.metadata;
|
|
66
|
+
if (utils_1.inSpan(position, declarationSpan)) {
|
|
67
|
+
var staticSymbol = metadata.type.reference;
|
|
68
|
+
var directiveName = staticSymbol.name;
|
|
69
|
+
var kind = metadata.isComponent ? 'component' : 'directive';
|
|
70
|
+
var textSpan = ts.createTextSpanFromBounds(declarationSpan.start, declarationSpan.end);
|
|
71
|
+
var ngModule = analyzedModules.ngModuleByPipeOrDirective.get(staticSymbol);
|
|
72
|
+
var moduleName = (_b = ngModule) === null || _b === void 0 ? void 0 : _b.type.reference.name;
|
|
73
|
+
return createQuickInfo(directiveName, kind, textSpan, moduleName, ts.ScriptElementKind.classElement);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
78
|
+
finally {
|
|
79
|
+
try {
|
|
80
|
+
if (declarations_1_1 && !declarations_1_1.done && (_a = declarations_1.return)) _a.call(declarations_1);
|
|
81
|
+
}
|
|
82
|
+
finally { if (e_1) throw e_1.error; }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.getTsHover = getTsHover;
|
|
86
|
+
/**
|
|
87
|
+
* Construct a QuickInfo object taking into account its container and type.
|
|
88
|
+
* @param name Name of the QuickInfo target
|
|
89
|
+
* @param kind component, directive, pipe, etc.
|
|
90
|
+
* @param textSpan span of the target
|
|
91
|
+
* @param containerName either the Symbol's container or the NgModule that contains the directive
|
|
92
|
+
* @param type user-friendly name of the type
|
|
93
|
+
* @param documentation docstring or comment
|
|
94
|
+
*/
|
|
95
|
+
function createQuickInfo(name, kind, textSpan, containerName, type, documentation) {
|
|
96
|
+
var containerDisplayParts = containerName ?
|
|
48
97
|
[
|
|
49
|
-
{ text:
|
|
98
|
+
{ text: containerName, kind: SYMBOL_INTERFACE },
|
|
50
99
|
{ text: '.', kind: SYMBOL_PUNC },
|
|
51
100
|
] :
|
|
52
101
|
[];
|
|
53
|
-
var typeDisplayParts =
|
|
102
|
+
var typeDisplayParts = type ?
|
|
54
103
|
[
|
|
55
104
|
{ text: ':', kind: SYMBOL_PUNC },
|
|
56
105
|
{ text: ' ', kind: SYMBOL_SPACE },
|
|
57
|
-
{ text:
|
|
106
|
+
{ text: type, kind: SYMBOL_INTERFACE },
|
|
58
107
|
] :
|
|
59
108
|
[];
|
|
60
109
|
return {
|
|
61
|
-
kind:
|
|
62
|
-
kindModifiers:
|
|
110
|
+
kind: kind,
|
|
111
|
+
kindModifiers: ts.ScriptElementKindModifier.none,
|
|
63
112
|
textSpan: textSpan,
|
|
64
|
-
documentation: symbol.documentation,
|
|
65
|
-
// this would generate a string like '(property) ClassX.propY: type'
|
|
66
|
-
// 'kind' in displayParts does not really matter because it's dropped when
|
|
67
|
-
// displayParts get converted to string.
|
|
68
113
|
displayParts: tslib_1.__spread([
|
|
69
114
|
{ text: '(', kind: SYMBOL_PUNC },
|
|
70
|
-
{ text:
|
|
115
|
+
{ text: kind, kind: SYMBOL_TEXT },
|
|
71
116
|
{ text: ')', kind: SYMBOL_PUNC },
|
|
72
117
|
{ text: ' ', kind: SYMBOL_SPACE }
|
|
73
118
|
], containerDisplayParts, [
|
|
74
|
-
{ text:
|
|
119
|
+
{ text: name, kind: SYMBOL_INTERFACE }
|
|
75
120
|
], typeDisplayParts),
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
exports.getHover = getHover;
|
|
79
|
-
/**
|
|
80
|
-
* Get quick info for Angular semantic entities in TypeScript files, like Directives.
|
|
81
|
-
* @param sf TypeScript source file an Angular symbol is in
|
|
82
|
-
* @param position location of the symbol in the source file
|
|
83
|
-
* @param host Language Service host to query
|
|
84
|
-
*/
|
|
85
|
-
function getTsHover(sf, position, host) {
|
|
86
|
-
var node = utils_1.findTightestNode(sf, position);
|
|
87
|
-
if (!node)
|
|
88
|
-
return;
|
|
89
|
-
switch (node.kind) {
|
|
90
|
-
case ts.SyntaxKind.Identifier:
|
|
91
|
-
var directiveId = node;
|
|
92
|
-
if (ts.isClassDeclaration(directiveId.parent)) {
|
|
93
|
-
var directiveName = directiveId.text;
|
|
94
|
-
var directiveSymbol = host.getStaticSymbol(node.getSourceFile().fileName, directiveName);
|
|
95
|
-
if (!directiveSymbol)
|
|
96
|
-
return;
|
|
97
|
-
return getDirectiveModule(directiveSymbol, { start: directiveId.getStart(), length: directiveId.end - directiveId.getStart() }, host);
|
|
98
|
-
}
|
|
99
|
-
break;
|
|
100
|
-
default:
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
exports.getTsHover = getTsHover;
|
|
106
|
-
/**
|
|
107
|
-
* Attempts to get quick info for the NgModule a Directive is declared in.
|
|
108
|
-
* @param directive identifier on a potential Directive class declaration
|
|
109
|
-
* @param textSpan span of the symbol
|
|
110
|
-
* @param host Language Service host to query
|
|
111
|
-
* @param symbol the internal symbol that represents the directive
|
|
112
|
-
*/
|
|
113
|
-
function getDirectiveModule(directive, textSpan, host, symbol) {
|
|
114
|
-
var analyzedModules = host.getAnalyzedModules(false);
|
|
115
|
-
var ngModule = analyzedModules.ngModuleByPipeOrDirective.get(directive);
|
|
116
|
-
if (!ngModule)
|
|
117
|
-
return;
|
|
118
|
-
var isComponent = host.getDeclarations(directive.filePath)
|
|
119
|
-
.find(function (decl) { return decl.type === directive && decl.metadata && decl.metadata.isComponent; });
|
|
120
|
-
var moduleName = ngModule.type.reference.name;
|
|
121
|
-
return {
|
|
122
|
-
kind: ts.ScriptElementKind.classElement,
|
|
123
|
-
kindModifiers: ts.ScriptElementKindModifier.none,
|
|
124
|
-
textSpan: textSpan,
|
|
125
|
-
documentation: symbol ? symbol.documentation : undefined,
|
|
126
|
-
// This generates a string like '(directive) NgModule.Directive: class'
|
|
127
|
-
// 'kind' in displayParts does not really matter because it's dropped when
|
|
128
|
-
// displayParts get converted to string.
|
|
129
|
-
displayParts: [
|
|
130
|
-
{ text: '(', kind: SYMBOL_PUNC },
|
|
131
|
-
{ text: isComponent ? 'component' : 'directive', kind: SYMBOL_TEXT },
|
|
132
|
-
{ text: ')', kind: SYMBOL_PUNC },
|
|
133
|
-
{ text: ' ', kind: SYMBOL_SPACE },
|
|
134
|
-
{ text: moduleName, kind: SYMBOL_CLASS },
|
|
135
|
-
{ text: '.', kind: SYMBOL_PUNC },
|
|
136
|
-
{ text: directive.name, kind: SYMBOL_CLASS },
|
|
137
|
-
{ text: ':', kind: SYMBOL_PUNC },
|
|
138
|
-
{ text: ' ', kind: SYMBOL_SPACE },
|
|
139
|
-
{ text: ts.ScriptElementKind.classElement, kind: SYMBOL_TEXT },
|
|
140
|
-
],
|
|
121
|
+
documentation: documentation,
|
|
141
122
|
};
|
|
142
123
|
}
|
|
143
124
|
});
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy9ob3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCw4Q0FBbUU7SUFDbkUsK0JBQWlDO0lBR2pDLDZFQUE2QztJQUc3Qyw2REFBeUM7SUFHekMsa0RBQWtEO0lBQ2xELElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRixJQUFNLFlBQVksR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xGLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUUsSUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRTFGOzs7Ozs7T0FNRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxJQUFlLEVBQUUsUUFBZ0IsRUFBRSxJQUFxQztRQUUvRixJQUFNLFVBQVUsR0FBRyw0QkFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTztTQUNSO1FBQ00sSUFBQSwwQkFBTSxFQUFFLHNCQUFJLEVBQUUsa0RBQWtCLENBQWU7UUFDdEQsSUFBTSxRQUFRLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFN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LEVBQUUsV0FBVyxFQUFDO2dCQUM5QixFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBQ2xFLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQUM5QixFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQztnQkFDL0IsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUM7Z0JBQ3RDLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQUM5QixFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUM7Z0JBQzFDLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQUM5QixFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQztnQkFDL0IsRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDO2FBQzdEO1NBQ0YsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29tcGlsZVN1bW1hcnlLaW5kLCBTdGF0aWNTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0FzdFJlc3VsdH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHtsb2NhdGVTeW1ib2x9IGZyb20gJy4vbG9jYXRlX3N5bWJvbCc7XG5pbXBvcnQgKiBhcyBuZyBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7VHlwZVNjcmlwdFNlcnZpY2VIb3N0fSBmcm9tICcuL3R5cGVzY3JpcHRfaG9zdCc7XG5pbXBvcnQge2ZpbmRUaWdodGVzdE5vZGV9IGZyb20gJy4vdXRpbHMnO1xuXG5cbi8vIFJldmVyc2UgbWFwcGluZ3Mgb2YgZW51bSB3b3VsZCBnZW5lcmF0ZSBzdHJpbmdzXG5jb25zdCBTWU1CT0xfU1BBQ0UgPSB0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmRbdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kLnNwYWNlXTtcbmNvbnN0IFNZTUJPTF9QVU5DID0gdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kW3RzLlN5bWJvbERpc3BsYXlQYXJ0S2luZC5wdW5jdHVhdGlvbl07XG5jb25zdCBTWU1CT0xfQ0xBU1MgPSB0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmRbdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kLmNsYXNzTmFtZV07XG5jb25zdCBTWU1CT0xfVEVYVCA9IHRzLlN5bWJvbERpc3BsYXlQYXJ0S2luZFt0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmQudGV4dF07XG5jb25zdCBTWU1CT0xfSU5URVJGQUNFID0gdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kW3RzLlN5bWJvbERpc3BsYXlQYXJ0S2luZC5pbnRlcmZhY2VOYW1lXTtcblxuLyoqXG4gKiBUcmF2ZXJzZSB0aGUgdGVtcGxhdGUgQVNUIGFuZCBsb29rIGZvciB0aGUgc3ltYm9sIGxvY2F0ZWQgYXQgYHBvc2l0aW9uYCwgdGhlblxuICogcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIHF1aWNrIGluZm8uXG4gKiBAcGFyYW0gaW5mbyB0ZW1wbGF0ZSBBU1RcbiAqIEBwYXJhbSBwb3NpdGlvbiBsb2NhdGlvbiBvZiB0aGUgc3ltYm9sXG4gKiBAcGFyYW0gaG9zdCBMYW5ndWFnZSBTZXJ2aWNlIGhvc3QgdG8gcXVlcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhvdmVyKGluZm86IEFzdFJlc3VsdCwgcG9zaXRpb246IG51bWJlciwgaG9zdDogUmVhZG9ubHk8VHlwZVNjcmlwdFNlcnZpY2VIb3N0Pik6XG4gICAgdHMuUXVpY2tJbmZvfHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN5bWJvbEluZm8gPSBsb2NhdGVTeW1ib2woaW5mbywgcG9zaXRpb24pO1xuICBpZiAoIXN5bWJvbEluZm8pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qge3N5bWJvbCwgc3BhbiwgY29tcGlsZVR5cGVTdW1tYXJ5fSA9IHN5bWJvbEluZm87XG4gIGNvbnN0IHRleHRTcGFuID0ge3N0YXJ0OiBzcGFuLnN0YXJ0LCBsZW5ndGg6IHNwYW4uZW5kIC0gc3Bhbi5zdGFydH07XG5cbiAgaWYgKGNvbXBpbGVUeXBlU3VtbWFyeSAmJiBjb21waWxlVHlwZVN1bW1hcnkuc3VtbWFyeUtpbmQgPT09IENvbXBpbGVTdW1tYXJ5S2luZC5EaXJlY3RpdmUpIHtcbiAgICByZXR1cm4gZ2V0RGlyZWN0aXZlTW9kdWxlKGNvbXBpbGVUeXBlU3VtbWFyeS50eXBlLnJlZmVyZW5jZSwgdGV4dFNwYW4sIGhvc3QsIHN5bWJvbCk7XG4gIH1cblxuICBjb25zdCBjb250YWluZXJEaXNwbGF5UGFydHM6IHRzLlN5bWJvbERpc3BsYXlQYXJ0W10gPSBzeW1ib2wuY29udGFpbmVyID9cbiAgICAgIFtcbiAgICAgICAge3RleHQ6IHN5bWJvbC5jb250YWluZXIubmFtZSwga2luZDogc3ltYm9sLmNvbnRhaW5lci5raW5kfSxcbiAgICAgICAge3RleHQ6ICcuJywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAgXSA6XG4gICAgICBbXTtcbiAgY29uc3QgdHlwZURpc3BsYXlQYXJ0czogdHMuU3ltYm9sRGlzcGxheVBhcnRbXSA9IHN5bWJvbC50eXBlID9cbiAgICAgIFtcbiAgICAgICAge3RleHQ6ICc6Jywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAgICB7dGV4dDogJyAnLCBraW5kOiBTWU1CT0xfU1BBQ0V9LFxuICAgICAgICB7dGV4dDogc3ltYm9sLnR5cGUubmFtZSwga2luZDogU1lNQk9MX0lOVEVSRkFDRX0sXG4gICAgICBdIDpcbiAgICAgIFtdO1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IHN5bWJvbC5raW5kIGFzIHRzLlNjcmlwdEVsZW1lbnRLaW5kLFxuICAgIGtpbmRNb2RpZmllcnM6ICcnLCAgLy8ga2luZE1vZGlmaWVyIGluZm8gbm90IGF2YWlsYWJsZSBvbiAnbmcuU3ltYm9sJ1xuICAgIHRleHRTcGFuLFxuICAgIGRvY3VtZW50YXRpb246IHN5bWJvbC5kb2N1bWVudGF0aW9uLFxuICAgIC8vIHRoaXMgd291bGQgZ2VuZXJhdGUgYSBzdHJpbmcgbGlrZSAnKHByb3BlcnR5KSBDbGFzc1gucHJvcFk6IHR5cGUnXG4gICAgLy8gJ2tpbmQnIGluIGRpc3BsYXlQYXJ0cyBkb2VzIG5vdCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgaXQncyBkcm9wcGVkIHdoZW5cbiAgICAvLyBkaXNwbGF5UGFydHMgZ2V0IGNvbnZlcnRlZCB0byBzdHJpbmcuXG4gICAgZGlzcGxheVBhcnRzOiBbXG4gICAgICB7dGV4dDogJygnLCBraW5kOiBTWU1CT0xfUFVOQ30sXG4gICAgICB7dGV4dDogc3ltYm9sLmtpbmQsIGtpbmQ6IHN5bWJvbC5raW5kfSxcbiAgICAgIHt0ZXh0OiAnKScsIGtpbmQ6IFNZTUJPTF9QVU5DfSxcbiAgICAgIHt0ZXh0OiAnICcsIGtpbmQ6IFNZTUJPTF9TUEFDRX0sXG4gICAgICAuLi5jb250YWluZXJEaXNwbGF5UGFydHMsXG4gICAgICB7dGV4dDogc3ltYm9sLm5hbWUsIGtpbmQ6IHN5bWJvbC5raW5kfSxcbiAgICAgIC4uLnR5cGVEaXNwbGF5UGFydHMsXG4gICAgXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgcXVpY2sgaW5mbyBmb3IgQW5ndWxhciBzZW1hbnRpYyBlbnRpdGllcyBpbiBUeXBlU2NyaXB0IGZpbGVzLCBsaWtlIERpcmVjdGl2ZXMuXG4gKiBAcGFyYW0gc2YgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZSBhbiBBbmd1bGFyIHN5bWJvbCBpcyBpblxuICogQHBhcmFtIHBvc2l0aW9uIGxvY2F0aW9uIG9mIHRoZSBzeW1ib2wgaW4gdGhlIHNvdXJjZSBmaWxlXG4gKiBAcGFyYW0gaG9zdCBMYW5ndWFnZSBTZXJ2aWNlIGhvc3QgdG8gcXVlcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRzSG92ZXIoXG4gICAgc2Y6IHRzLlNvdXJjZUZpbGUsIHBvc2l0aW9uOiBudW1iZXIsIGhvc3Q6IFJlYWRvbmx5PFR5cGVTY3JpcHRTZXJ2aWNlSG9zdD4pOiB0cy5RdWlja0luZm98XG4gICAgdW5kZWZpbmVkIHtcbiAgY29uc3Qgbm9kZSA9IGZpbmRUaWdodGVzdE5vZGUoc2YsIHBvc2l0aW9uKTtcbiAgaWYgKCFub2RlKSByZXR1cm47XG4gIHN3aXRjaCAobm9kZS5raW5kKSB7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXI6XG4gICAgICBjb25zdCBkaXJlY3RpdmVJZCA9IG5vZGUgYXMgdHMuSWRlbnRpZmllcjtcbiAgICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24oZGlyZWN0aXZlSWQucGFyZW50KSkge1xuICAgICAgICBjb25zdCBkaXJlY3RpdmVOYW1lID0gZGlyZWN0aXZlSWQudGV4dDtcbiAgICAgICAgY29uc3QgZGlyZWN0aXZlU3ltYm9sID0gaG9zdC5nZXRTdGF0aWNTeW1ib2wobm9kZS5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsIGRpcmVjdGl2ZU5hbWUpO1xuICAgICAgICBpZiAoIWRpcmVjdGl2ZVN5bWJvbCkgcmV0dXJuO1xuICAgICAgICByZXR1cm4gZ2V0RGlyZWN0aXZlTW9kdWxlKFxuICAgICAgICAgICAgZGlyZWN0aXZlU3ltYm9sLFxuICAgICAgICAgICAge3N0YXJ0OiBkaXJlY3RpdmVJZC5nZXRTdGFydCgpLCBsZW5ndGg6IGRpcmVjdGl2ZUlkLmVuZCAtIGRpcmVjdGl2ZUlkLmdldFN0YXJ0KCl9LFxuICAgICAgICAgICAgaG9zdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBnZXQgcXVpY2sgaW5mbyBmb3IgdGhlIE5nTW9kdWxlIGEgRGlyZWN0aXZlIGlzIGRlY2xhcmVkIGluLlxuICogQHBhcmFtIGRpcmVjdGl2ZSBpZGVudGlmaWVyIG9uIGEgcG90ZW50aWFsIERpcmVjdGl2ZSBjbGFzcyBkZWNsYXJhdGlvblxuICogQHBhcmFtIHRleHRTcGFuIHNwYW4gb2YgdGhlIHN5bWJvbFxuICogQHBhcmFtIGhvc3QgTGFuZ3VhZ2UgU2VydmljZSBob3N0IHRvIHF1ZXJ5XG4gKiBAcGFyYW0gc3ltYm9sIHRoZSBpbnRlcm5hbCBzeW1ib2wgdGhhdCByZXByZXNlbnRzIHRoZSBkaXJlY3RpdmVcbiAqL1xuZnVuY3Rpb24gZ2V0RGlyZWN0aXZlTW9kdWxlKFxuICAgIGRpcmVjdGl2ZTogU3RhdGljU3ltYm9sLCB0ZXh0U3BhbjogdHMuVGV4dFNwYW4sIGhvc3Q6IFJlYWRvbmx5PFR5cGVTY3JpcHRTZXJ2aWNlSG9zdD4sXG4gICAgc3ltYm9sPzogbmcuU3ltYm9sKTogdHMuUXVpY2tJbmZvfHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFuYWx5emVkTW9kdWxlcyA9IGhvc3QuZ2V0QW5hbHl6ZWRNb2R1bGVzKGZhbHNlKTtcbiAgY29uc3QgbmdNb2R1bGUgPSBhbmFseXplZE1vZHVsZXMubmdNb2R1bGVCeVBpcGVPckRpcmVjdGl2ZS5nZXQoZGlyZWN0aXZlKTtcbiAgaWYgKCFuZ01vZHVsZSkgcmV0dXJuO1xuXG4gIGNvbnN0IGlzQ29tcG9uZW50ID1cbiAgICAgIGhvc3QuZ2V0RGVjbGFyYXRpb25zKGRpcmVjdGl2ZS5maWxlUGF0aClcbiAgICAgICAgICAuZmluZChkZWNsID0+IGRlY2wudHlwZSA9PT0gZGlyZWN0aXZlICYmIGRlY2wubWV0YWRhdGEgJiYgZGVjbC5tZXRhZGF0YS5pc0NvbXBvbmVudCk7XG5cbiAgY29uc3QgbW9kdWxlTmFtZSA9IG5nTW9kdWxlLnR5cGUucmVmZXJlbmNlLm5hbWU7XG4gIHJldHVybiB7XG4gICAga2luZDogdHMuU2NyaXB0RWxlbWVudEtpbmQuY2xhc3NFbGVtZW50LFxuICAgIGtpbmRNb2RpZmllcnM6XG4gICAgICAgIHRzLlNjcmlwdEVsZW1lbnRLaW5kTW9kaWZpZXIubm9uZSwgIC8vIGtpbmRNb2RpZmllciBpbmZvIG5vdCBhdmFpbGFibGUgb24gJ25nLlN5bWJvbCdcbiAgICB0ZXh0U3BhbixcbiAgICBkb2N1bWVudGF0aW9uOiBzeW1ib2wgPyBzeW1ib2wuZG9jdW1lbnRhdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAvLyBUaGlzIGdlbmVyYXRlcyBhIHN0cmluZyBsaWtlICcoZGlyZWN0aXZlKSBOZ01vZHVsZS5EaXJlY3RpdmU6IGNsYXNzJ1xuICAgIC8vICdraW5kJyBpbiBkaXNwbGF5UGFydHMgZG9lcyBub3QgcmVhbGx5IG1hdHRlciBiZWNhdXNlIGl0J3MgZHJvcHBlZCB3aGVuXG4gICAgLy8gZGlzcGxheVBhcnRzIGdldCBjb252ZXJ0ZWQgdG8gc3RyaW5nLlxuICAgIGRpc3BsYXlQYXJ0czogW1xuICAgICAge3RleHQ6ICcoJywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAge3RleHQ6IGlzQ29tcG9uZW50ID8gJ2NvbXBvbmVudCcgOiAnZGlyZWN0aXZlJywga2luZDogU1lNQk9MX1RFWFR9LFxuICAgICAge3RleHQ6ICcpJywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAge3RleHQ6ICcgJywga2luZDogU1lNQk9MX1NQQUNFfSxcbiAgICAgIHt0ZXh0OiBtb2R1bGVOYW1lLCBraW5kOiBTWU1CT0xfQ0xBU1N9LFxuICAgICAge3RleHQ6ICcuJywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAge3RleHQ6IGRpcmVjdGl2ZS5uYW1lLCBraW5kOiBTWU1CT0xfQ0xBU1N9LFxuICAgICAge3RleHQ6ICc6Jywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAge3RleHQ6ICcgJywga2luZDogU1lNQk9MX1NQQUNFfSxcbiAgICAgIHt0ZXh0OiB0cy5TY3JpcHRFbGVtZW50S2luZC5jbGFzc0VsZW1lbnQsIGtpbmQ6IFNZTUJPTF9URVhUfSxcbiAgICBdLFxuICB9O1xufVxuIl19
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy9ob3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFHSCwrQkFBaUM7SUFFakMsNkVBQThDO0lBRTlDLDZEQUErQjtJQUUvQixrREFBa0Q7SUFDbEQsSUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25GLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUUsSUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRTFGOzs7Ozs7T0FNRztJQUNILFNBQWdCLGdCQUFnQixDQUM1QixJQUFlLEVBQUUsUUFBZ0IsRUFBRSxlQUFrQzs7UUFDdkUsSUFBTSxVQUFVLEdBQUcsNkJBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUNNLElBQUEsMEJBQU0sRUFBRSxzQkFBSSxFQUFFLHNDQUFZLENBQWU7UUFFaEQsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSw4RUFBOEU7UUFDOUUsSUFBSSxhQUFhLFNBQXFCLE1BQU0sQ0FBQyxTQUFTLDBDQUFHLElBQUksQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxJQUFJLFlBQVksRUFBRTtZQUNsQyw4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QUUsV0FBVyxFQUFDO2dCQUM5QixFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQztlQUM1QixxQkFBcUI7Z0JBQ3hCLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7ZUFDakMsZ0JBQWdCLENBQ3BCO1lBQ0QsYUFBYSxlQUFBO1NBQ2QsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TmdBbmFseXplZE1vZHVsZXN9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtBc3RSZXN1bHR9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7bG9jYXRlU3ltYm9sc30gZnJvbSAnLi9sb2NhdGVfc3ltYm9sJztcbmltcG9ydCAqIGFzIG5nIGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtpblNwYW59IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBSZXZlcnNlIG1hcHBpbmdzIG9mIGVudW0gd291bGQgZ2VuZXJhdGUgc3RyaW5nc1xuY29uc3QgU1lNQk9MX1NQQUNFID0gdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kW3RzLlN5bWJvbERpc3BsYXlQYXJ0S2luZC5zcGFjZV07XG5jb25zdCBTWU1CT0xfUFVOQyA9IHRzLlN5bWJvbERpc3BsYXlQYXJ0S2luZFt0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmQucHVuY3R1YXRpb25dO1xuY29uc3QgU1lNQk9MX1RFWFQgPSB0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmRbdHMuU3ltYm9sRGlzcGxheVBhcnRLaW5kLnRleHRdO1xuY29uc3QgU1lNQk9MX0lOVEVSRkFDRSA9IHRzLlN5bWJvbERpc3BsYXlQYXJ0S2luZFt0cy5TeW1ib2xEaXNwbGF5UGFydEtpbmQuaW50ZXJmYWNlTmFtZV07XG5cbi8qKlxuICogVHJhdmVyc2UgdGhlIHRlbXBsYXRlIEFTVCBhbmQgbG9vayBmb3IgdGhlIHN5bWJvbCBsb2NhdGVkIGF0IGBwb3NpdGlvbmAsIHRoZW5cbiAqIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBxdWljayBpbmZvLlxuICogQHBhcmFtIGluZm8gdGVtcGxhdGUgQVNUXG4gKiBAcGFyYW0gcG9zaXRpb24gbG9jYXRpb24gb2YgdGhlIHN5bWJvbFxuICogQHBhcmFtIGFuYWx5emVkTW9kdWxlcyBhbGwgTmdNb2R1bGVzIGluIHRoZSBwcm9ncmFtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcGxhdGVIb3ZlcihcbiAgICBpbmZvOiBBc3RSZXN1bHQsIHBvc2l0aW9uOiBudW1iZXIsIGFuYWx5emVkTW9kdWxlczogTmdBbmFseXplZE1vZHVsZXMpOiB0cy5RdWlja0luZm98dW5kZWZpbmVkIHtcbiAgY29uc3Qgc3ltYm9sSW5mbyA9IGxvY2F0ZVN5bWJvbHMoaW5mbywgcG9zaXRpb24pWzBdO1xuICBpZiAoIXN5bWJvbEluZm8pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qge3N5bWJvbCwgc3Bhbiwgc3RhdGljU3ltYm9sfSA9IHN5bWJvbEluZm87XG5cbiAgLy8gVGhlIGNvbnRhaW5lciBpcyBlaXRoZXIgdGhlIHN5bWJvbCdzIGNvbnRhaW5lciAoZm9yIGV4YW1wbGUsICdBcHBDb21wb25lbnQnXG4gIC8vIGlzIHRoZSBjb250YWluZXIgb2YgdGhlIHN5bWJvbCAndGl0bGUnIGluIGl0cyB0ZW1wbGF0ZSkgb3IgdGhlIE5nTW9kdWxlXG4gIC8vIHRoYXQgdGhlIGRpcmVjdGl2ZSBiZWxvbmdzIHRvICh0aGUgY29udGFpbmVyIG9mIEFwcENvbXBvbmVudCBpcyBBcHBNb2R1bGUpLlxuICBsZXQgY29udGFpbmVyTmFtZTogc3RyaW5nfHVuZGVmaW5lZCA9IHN5bWJvbC5jb250YWluZXIgPy5uYW1lO1xuICBpZiAoIWNvbnRhaW5lck5hbWUgJiYgc3RhdGljU3ltYm9sKSB7XG4gICAgLy8gSWYgdGhlcmUgaXMgYSBzdGF0aWMgc3ltYm9sIHRoZW4gdGhlIHRhcmdldCBpcyBhIGRpcmVjdGl2ZS5cbiAgICBjb25zdCBuZ01vZHVsZSA9IGFuYWx5emVkTW9kdWxlcy5uZ01vZHVsZUJ5UGlwZU9yRGlyZWN0aXZlLmdldChzdGF0aWNTeW1ib2wpO1xuICAgIGNvbnRhaW5lck5hbWUgPSBuZ01vZHVsZSA/LnR5cGUucmVmZXJlbmNlLm5hbWU7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlUXVpY2tJbmZvKHN5bWJvbC5uYW1lLCBzeW1ib2wua2luZCwgc3BhbiwgY29udGFpbmVyTmFtZSwgc3ltYm9sLnR5cGU/Lm5hbWUsIHN5bWJvbC5kb2N1bWVudGF0aW9uKTtcbn1cblxuLyoqXG4gKiBHZXQgcXVpY2sgaW5mbyBmb3IgQW5ndWxhciBzZW1hbnRpYyBlbnRpdGllcyBpbiBUeXBlU2NyaXB0IGZpbGVzLCBsaWtlIERpcmVjdGl2ZXMuXG4gKiBAcGFyYW0gcG9zaXRpb24gbG9jYXRpb24gb2YgdGhlIHN5bWJvbCBpbiB0aGUgc291cmNlIGZpbGVcbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgQWxsIERpcmVjdGl2ZS1saWtlIGRlY2xhcmF0aW9ucyBpbiB0aGUgc291cmNlIGZpbGUuXG4gKiBAcGFyYW0gYW5hbHl6ZWRNb2R1bGVzIGFsbCBOZ01vZHVsZXMgaW4gdGhlIHByb2dyYW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUc0hvdmVyKFxuICAgIHBvc2l0aW9uOiBudW1iZXIsIGRlY2xhcmF0aW9uczogbmcuRGVjbGFyYXRpb25bXSxcbiAgICBhbmFseXplZE1vZHVsZXM6IE5nQW5hbHl6ZWRNb2R1bGVzKTogdHMuUXVpY2tJbmZvfHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3Qge2RlY2xhcmF0aW9uU3BhbiwgbWV0YWRhdGF9IG9mIGRlY2xhcmF0aW9ucykge1xuICAgIGlmIChpblNwYW4ocG9zaXRpb24sIGRlY2xhcmF0aW9uU3BhbikpIHtcbiAgICAgIGNvbnN0IHN0YXRpY1N5bWJvbDogbmcuU3RhdGljU3ltYm9sID0gbWV0YWRhdGEudHlwZS5yZWZlcmVuY2U7XG4gICAgICBjb25zdCBkaXJlY3RpdmVOYW1lID0gc3RhdGljU3ltYm9sLm5hbWU7XG4gICAgICBjb25zdCBraW5kID0gbWV0YWRhdGEuaXNDb21wb25lbnQgPyAnY29tcG9uZW50JyA6ICdkaXJlY3RpdmUnO1xuICAgICAgY29uc3QgdGV4dFNwYW4gPSB0cy5jcmVhdGVUZXh0U3BhbkZyb21Cb3VuZHMoZGVjbGFyYXRpb25TcGFuLnN0YXJ0LCBkZWNsYXJhdGlvblNwYW4uZW5kKTtcbiAgICAgIGNvbnN0IG5nTW9kdWxlID0gYW5hbHl6ZWRNb2R1bGVzLm5nTW9kdWxlQnlQaXBlT3JEaXJlY3RpdmUuZ2V0KHN0YXRpY1N5bWJvbCk7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbmdNb2R1bGUgPy50eXBlLnJlZmVyZW5jZS5uYW1lO1xuICAgICAgcmV0dXJuIGNyZWF0ZVF1aWNrSW5mbyhcbiAgICAgICAgICBkaXJlY3RpdmVOYW1lLCBraW5kLCB0ZXh0U3BhbiwgbW9kdWxlTmFtZSwgdHMuU2NyaXB0RWxlbWVudEtpbmQuY2xhc3NFbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgYSBRdWlja0luZm8gb2JqZWN0IHRha2luZyBpbnRvIGFjY291bnQgaXRzIGNvbnRhaW5lciBhbmQgdHlwZS5cbiAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIFF1aWNrSW5mbyB0YXJnZXRcbiAqIEBwYXJhbSBraW5kIGNvbXBvbmVudCwgZGlyZWN0aXZlLCBwaXBlLCBldGMuXG4gKiBAcGFyYW0gdGV4dFNwYW4gc3BhbiBvZiB0aGUgdGFyZ2V0XG4gKiBAcGFyYW0gY29udGFpbmVyTmFtZSBlaXRoZXIgdGhlIFN5bWJvbCdzIGNvbnRhaW5lciBvciB0aGUgTmdNb2R1bGUgdGhhdCBjb250YWlucyB0aGUgZGlyZWN0aXZlXG4gKiBAcGFyYW0gdHlwZSB1c2VyLWZyaWVuZGx5IG5hbWUgb2YgdGhlIHR5cGVcbiAqIEBwYXJhbSBkb2N1bWVudGF0aW9uIGRvY3N0cmluZyBvciBjb21tZW50XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVF1aWNrSW5mbyhcbiAgICBuYW1lOiBzdHJpbmcsIGtpbmQ6IHN0cmluZywgdGV4dFNwYW46IHRzLlRleHRTcGFuLCBjb250YWluZXJOYW1lPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nLFxuICAgIGRvY3VtZW50YXRpb24/OiB0cy5TeW1ib2xEaXNwbGF5UGFydFtdKTogdHMuUXVpY2tJbmZvIHtcbiAgY29uc3QgY29udGFpbmVyRGlzcGxheVBhcnRzID0gY29udGFpbmVyTmFtZSA/XG4gICAgICBbXG4gICAgICAgIHt0ZXh0OiBjb250YWluZXJOYW1lLCBraW5kOiBTWU1CT0xfSU5URVJGQUNFfSxcbiAgICAgICAge3RleHQ6ICcuJywga2luZDogU1lNQk9MX1BVTkN9LFxuICAgICAgXSA6XG4gICAgICBbXTtcblxuICBjb25zdCB0eXBlRGlzcGxheVBhcnRzID0gdHlwZSA/XG4gICAgICBbXG4gICAgICAgIHt0ZXh0OiAnOicsIGtpbmQ6IFNZTUJPTF9QVU5DfSxcbiAgICAgICAge3RleHQ6ICcgJywga2luZDogU1lNQk9MX1NQQUNFfSxcbiAgICAgICAge3RleHQ6IHR5cGUsIGtpbmQ6IFNZTUJPTF9JTlRFUkZBQ0V9LFxuICAgICAgXSA6XG4gICAgICBbXTtcblxuICByZXR1cm4ge1xuICAgIGtpbmQ6IGtpbmQgYXMgdHMuU2NyaXB0RWxlbWVudEtpbmQsXG4gICAga2luZE1vZGlmaWVyczogdHMuU2NyaXB0RWxlbWVudEtpbmRNb2RpZmllci5ub25lLFxuICAgIHRleHRTcGFuOiB0ZXh0U3BhbixcbiAgICBkaXNwbGF5UGFydHM6IFtcbiAgICAgIHt0ZXh0OiAnKCcsIGtpbmQ6IFNZTUJPTF9QVU5DfSxcbiAgICAgIHt0ZXh0OiBraW5kLCBraW5kOiBTWU1CT0xfVEVYVH0sXG4gICAgICB7dGV4dDogJyknLCBraW5kOiBTWU1CT0xfUFVOQ30sXG4gICAgICB7dGV4dDogJyAnLCBraW5kOiBTWU1CT0xfU1BBQ0V9LFxuICAgICAgLi4uY29udGFpbmVyRGlzcGxheVBhcnRzLFxuICAgICAge3RleHQ6IG5hbWUsIGtpbmQ6IFNZTUJPTF9JTlRFUkZBQ0V9LFxuICAgICAgLi4udHlwZURpc3BsYXlQYXJ0cyxcbiAgICBdLFxuICAgIGRvY3VtZW50YXRpb24sXG4gIH07XG59XG4iXX0=
|
|
@@ -6,11 +6,21 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/language-service/src/language_service" />
|
|
9
|
-
import
|
|
9
|
+
import * as tss from 'typescript/lib/tsserverlibrary';
|
|
10
|
+
import * as ng from './types';
|
|
10
11
|
import { TypeScriptServiceHost } from './typescript_host';
|
|
11
12
|
/**
|
|
12
13
|
* Create an instance of an Angular `LanguageService`.
|
|
13
14
|
*
|
|
14
15
|
* @publicApi
|
|
15
16
|
*/
|
|
16
|
-
export declare function createLanguageService(host: TypeScriptServiceHost):
|
|
17
|
+
export declare function createLanguageService(host: TypeScriptServiceHost): LanguageServiceImpl;
|
|
18
|
+
declare class LanguageServiceImpl implements ng.LanguageService {
|
|
19
|
+
private readonly host;
|
|
20
|
+
constructor(host: TypeScriptServiceHost);
|
|
21
|
+
getSemanticDiagnostics(fileName: string): tss.Diagnostic[];
|
|
22
|
+
getCompletionsAtPosition(fileName: string, position: number, options?: tss.GetCompletionsAtPositionOptions): tss.CompletionInfo | undefined;
|
|
23
|
+
getDefinitionAndBoundSpan(fileName: string, position: number): tss.DefinitionInfoAndBoundSpan | undefined;
|
|
24
|
+
getQuickInfoAtPosition(fileName: string, position: number): tss.QuickInfo | undefined;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
package/src/language_service.js
CHANGED
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/language-service/src/language_service", ["require", "exports", "tslib", "@angular/language-service/src/completions", "@angular/language-service/src/definitions", "@angular/language-service/src/diagnostics", "@angular/language-service/src/hover"], factory);
|
|
14
|
+
define("@angular/language-service/src/language_service", ["require", "exports", "tslib", "typescript/lib/tsserverlibrary", "@angular/language-service/src/completions", "@angular/language-service/src/definitions", "@angular/language-service/src/diagnostics", "@angular/language-service/src/hover"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
var tslib_1 = require("tslib");
|
|
20
|
+
var tss = require("typescript/lib/tsserverlibrary");
|
|
20
21
|
var completions_1 = require("@angular/language-service/src/completions");
|
|
21
22
|
var definitions_1 = require("@angular/language-service/src/definitions");
|
|
22
23
|
var diagnostics_1 = require("@angular/language-service/src/diagnostics");
|
|
@@ -34,17 +35,17 @@
|
|
|
34
35
|
function LanguageServiceImpl(host) {
|
|
35
36
|
this.host = host;
|
|
36
37
|
}
|
|
37
|
-
LanguageServiceImpl.prototype.
|
|
38
|
+
LanguageServiceImpl.prototype.getSemanticDiagnostics = function (fileName) {
|
|
38
39
|
var e_1, _a;
|
|
39
40
|
var analyzedModules = this.host.getAnalyzedModules(); // same role as 'synchronizeHostData'
|
|
40
|
-
var
|
|
41
|
+
var ngDiagnostics = [];
|
|
41
42
|
var templates = this.host.getTemplates(fileName);
|
|
42
43
|
try {
|
|
43
44
|
for (var templates_1 = tslib_1.__values(templates), templates_1_1 = templates_1.next(); !templates_1_1.done; templates_1_1 = templates_1.next()) {
|
|
44
45
|
var template = templates_1_1.value;
|
|
45
46
|
var ast = this.host.getTemplateAst(template);
|
|
46
47
|
if (ast) {
|
|
47
|
-
|
|
48
|
+
ngDiagnostics.push.apply(ngDiagnostics, tslib_1.__spread(diagnostics_1.getTemplateDiagnostics(ast)));
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -56,13 +57,12 @@
|
|
|
56
57
|
finally { if (e_1) throw e_1.error; }
|
|
57
58
|
}
|
|
58
59
|
var declarations = this.host.getDeclarations(fileName);
|
|
59
|
-
|
|
60
|
-
results.push.apply(results, tslib_1.__spread(diagnostics_1.getDeclarationDiagnostics(declarations, analyzedModules, this.host)));
|
|
61
|
-
}
|
|
60
|
+
ngDiagnostics.push.apply(ngDiagnostics, tslib_1.__spread(diagnostics_1.getDeclarationDiagnostics(declarations, analyzedModules, this.host)));
|
|
62
61
|
var sourceFile = fileName.endsWith('.ts') ? this.host.getSourceFile(fileName) : undefined;
|
|
63
|
-
|
|
62
|
+
var tsDiagnostics = ngDiagnostics.map(function (d) { return diagnostics_1.ngDiagnosticToTsDiagnostic(d, sourceFile); });
|
|
63
|
+
return tslib_1.__spread(tss.sortAndDeduplicateDiagnostics(tsDiagnostics));
|
|
64
64
|
};
|
|
65
|
-
LanguageServiceImpl.prototype.
|
|
65
|
+
LanguageServiceImpl.prototype.getCompletionsAtPosition = function (fileName, position, options) {
|
|
66
66
|
this.host.getAnalyzedModules(); // same role as 'synchronizeHostData'
|
|
67
67
|
var ast = this.host.getTemplateAstAtPosition(fileName, position);
|
|
68
68
|
if (!ast) {
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
entries: results,
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
-
LanguageServiceImpl.prototype.
|
|
83
|
+
LanguageServiceImpl.prototype.getDefinitionAndBoundSpan = function (fileName, position) {
|
|
84
84
|
this.host.getAnalyzedModules(); // same role as 'synchronizeHostData'
|
|
85
85
|
var templateInfo = this.host.getTemplateAstAtPosition(fileName, position);
|
|
86
86
|
if (templateInfo) {
|
|
@@ -95,22 +95,18 @@
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
|
-
LanguageServiceImpl.prototype.
|
|
99
|
-
this.host.getAnalyzedModules(); // same role as 'synchronizeHostData'
|
|
98
|
+
LanguageServiceImpl.prototype.getQuickInfoAtPosition = function (fileName, position) {
|
|
99
|
+
var analyzedModules = this.host.getAnalyzedModules(); // same role as 'synchronizeHostData'
|
|
100
100
|
var templateInfo = this.host.getTemplateAstAtPosition(fileName, position);
|
|
101
101
|
if (templateInfo) {
|
|
102
|
-
return hover_1.
|
|
102
|
+
return hover_1.getTemplateHover(templateInfo, position, analyzedModules);
|
|
103
103
|
}
|
|
104
104
|
// Attempt to get Angular-specific hover information in a TypeScript file, the NgModule a
|
|
105
105
|
// directive belongs to.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (sf) {
|
|
109
|
-
return hover_1.getTsHover(sf, position, this.host);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
106
|
+
var declarations = this.host.getDeclarations(fileName);
|
|
107
|
+
return hover_1.getTsHover(position, declarations, analyzedModules);
|
|
112
108
|
};
|
|
113
109
|
return LanguageServiceImpl;
|
|
114
110
|
}());
|
|
115
111
|
});
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Vfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhbmd1YWdlLXNlcnZpY2Uvc3JjL2xhbmd1YWdlX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUgsb0RBQXNEO0lBRXRELHlFQUFxRDtJQUNyRCx5RUFBcUY7SUFDckYseUVBQTRHO0lBQzVHLDZEQUFxRDtJQUlyRDs7OztPQUlHO0lBQ0gsU0FBZ0IscUJBQXFCLENBQUMsSUFBMkI7UUFDL0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFGRCxzREFFQztJQUVEO1FBQ0UsNkJBQTZCLElBQTJCO1lBQTNCLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQUcsQ0FBQztRQUU1RCxvREFBc0IsR0FBdEIsVUFBdUIsUUFBZ0I7O1lBQ3JDLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFFLHFDQUFxQztZQUM5RixJQUFNLGFBQWEsR0FBb0IsRUFBRSxDQUFDO1lBRTFDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDbkQsS0FBdUIsSUFBQSxjQUFBLGlCQUFBLFNBQVMsQ0FBQSxvQ0FBQSwyREFBRTtvQkFBN0IsSUFBTSxRQUFRLHNCQUFBO29CQUNqQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxHQUFHLEVBQUU7d0JBQ1AsYUFBYSxDQUFDLElBQUksT0FBbEIsYUFBYSxtQkFBUyxvQ0FBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRTtxQkFDcEQ7aUJBQ0Y7Ozs7Ozs7OztZQUVELElBQU0sWUFBWSxHQUFHLElBQUksQ0FB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Q0FBQztZQUN6RCxPQUFPLGtCQUFVLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0gsMEJBQUM7SUFBRCxDQUFDLEFBMUVELElBMEVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0c3MgZnJvbSAndHlwZXNjcmlwdC9saWIvdHNzZXJ2ZXJsaWJyYXJ5JztcblxuaW1wb3J0IHtnZXRUZW1wbGF0ZUNvbXBsZXRpb25zfSBmcm9tICcuL2NvbXBsZXRpb25zJztcbmltcG9ydCB7Z2V0RGVmaW5pdGlvbkFuZEJvdW5kU3BhbiwgZ2V0VHNEZWZpbml0aW9uQW5kQm91bmRTcGFufSBmcm9tICcuL2RlZmluaXRpb25zJztcbmltcG9ydCB7Z2V0RGVjbGFyYXRpb25EaWFnbm9zdGljcywgZ2V0VGVtcGxhdGVEaWFnbm9zdGljcywgbmdEaWFnbm9zdGljVG9Uc0RpYWdub3N0aWN9IGZyb20gJy4vZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHtnZXRUZW1wbGF0ZUhvdmVyLCBnZXRUc0hvdmVyfSBmcm9tICcuL2hvdmVyJztcbmltcG9ydCAqIGFzIG5nIGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtUeXBlU2NyaXB0U2VydmljZUhvc3R9IGZyb20gJy4vdHlwZXNjcmlwdF9ob3N0JztcblxuLyoqXG4gKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYW4gQW5ndWxhciBgTGFuZ3VhZ2VTZXJ2aWNlYC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMYW5ndWFnZVNlcnZpY2UoaG9zdDogVHlwZVNjcmlwdFNlcnZpY2VIb3N0KSB7XG4gIHJldHVybiBuZXcgTGFuZ3VhZ2VTZXJ2aWNlSW1wbChob3N0KTtcbn1cblxuY2xhc3MgTGFuZ3VhZ2VTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIG5nLkxhbmd1YWdlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHlwZVNjcmlwdFNlcnZpY2VIb3N0KSB7fVxuXG4gIGdldFNlbWFudGljRGlhZ25vc3RpY3MoZmlsZU5hbWU6IHN0cmluZyk6IHRzcy5EaWFnbm9zdGljW10ge1xuICAgIGNvbnN0IGFuYWx5emVkTW9kdWxlcyA9IHRoaXMuaG9zdC5nZXRBbmFseXplZE1vZHVsZXMoKTsgIC8vIHNhbWUgcm9sZSBhcyAnc3luY2hyb25pemVIb3N0RGF0YSdcbiAgICBjb25zdCBuZ0RpYWdub3N0aWNzOiBuZy5EaWFnbm9zdGljW10gPSBbXTtcblxuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuaG9zdC5nZXRUZW1wbGF0ZXMoZmlsZU5hbWUpO1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKSB7XG4gICAgICBjb25zdCBhc3QgPSB0aGlzLmhvc3QuZ2V0VGVtcGxhdGVBc3QodGVtcGxhdGUpO1xuICAgICAgaWYgKGFzdCkge1xuICAgICAgICBuZ0RpYWdub3N0aWNzLnB1c2goLi4uZ2V0VGVtcGxhdGVEaWFnbm9zdGljcyhhc3QpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvbnMgPSB0aGlzLmhvc3QuZ2V0RGVjbGFyYXRpb25zKGZpbGVOYW1lKTtcbiAgICBuZ0RpYWdub3N0aWNzLnB1c2goLi4uZ2V0RGVjbGFyYXRpb25EaWFnbm9zdGljcyhkZWNsYXJhdGlvbnMsIGFuYWx5emVkTW9kdWxlcywgdGhpcy5ob3N0KSk7XG5cbiAgICBjb25zdCBzb3VyY2VGaWxlID0gZmlsZU5hbWUuZW5kc1dpdGgoJy50cycpID8gdGhpcy5ob3N0LmdldFNvdXJjZUZpbGUoZmlsZU5hbWUpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRzRGlhZ25vc3RpY3MgPSBuZ0RpYWdub3N0aWNzLm1hcChkID0+IG5nRGlhZ25vc3RpY1RvVHNEaWFnbm9zdGljKGQsIHNvdXJjZUZpbGUpKTtcbiAgICByZXR1cm4gWy4uLnRzcy5zb3J0QW5kRGVkdXBsaWNhdGVEaWFnbm9zdGljcyh0c0RpYWdub3N0aWNzKV07XG4gIH1cblxuICBnZXRDb21wbGV0aW9uc0F0UG9zaXRpb24oXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyLFxuICAgICAgb3B0aW9ucz86IHRzcy5HZXRDb21wbGV0aW9uc0F0UG9zaXRpb25PcHRpb25zKTogdHNzLkNvbXBsZXRpb25JbmZvfHVuZGVmaW5lZCB7XG4gICAgdGhpcy5ob3N0LmdldEFuYWx5emVkTW9kdWxlcygpOyAgLy8gc2FtZSByb2xlIGFzICdzeW5jaHJvbml6ZUhvc3REYXRhJ1xuICAgIGNvbnN0IGFzdCA9IHRoaXMuaG9zdC5nZXRUZW1wbGF0ZUFzdEF0UG9zaXRpb24oZmlsZU5hbWUsIHBvc2l0aW9uKTtcbiAgICBpZiAoIWFzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gZ2V0VGVtcGxhdGVDb21wbGV0aW9ucyhhc3QsIHBvc2l0aW9uKTtcbiAgICBpZiAoIXJlc3VsdHMgfHwgIXJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc0dsb2JhbENvbXBsZXRpb246IGZhbHNlLFxuICAgICAgaXNNZW1iZXJDb21wbGV0aW9uOiBmYWxzZSxcbiAgICAgIGlzTmV3SWRlbnRpZmllckxvY2F0aW9uOiBmYWxzZSxcbiAgICAgIC8vIENhc3QgQ29tcGxldGlvbkVudHJ5LmtpbmQgZnJvbSBuZy5Db21wbGV0aW9uS2luZCB0byB0cy5TY3JpcHRFbGVtZW50S2luZFxuICAgICAgZW50cmllczogcmVzdWx0cyBhcyB1bmtub3duIGFzIHRzLkNvbXBsZXRpb25FbnRyeVtdLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZpbml0aW9uQW5kQm91bmRTcGFuKGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0c3MuRGVmaW5pdGlvbkluZm9BbmRCb3VuZFNwYW5cbiAgICAgIHx1bmRlZmluZWQge1xuICAgIHRoaXMuaG9zdC5nZXRBbmFseXplZE1vZHVsZXMoKTsgIC8vIHNhbWUgcm9sZSBhcyAnc3luY2hyb25pemVIb3N0RGF0YSdcbiAgICBjb25zdCB0ZW1wbGF0ZUluZm8gPSB0aGlzLmhvc3QuZ2V0VGVtcGxhdGVBc3RBdFBvc2l0aW9uKGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gICAgaWYgKHRlbXBsYXRlSW5mbykge1xuICAgICAgcmV0dXJuIGdldERlZmluaXRpb25BbmRCb3VuZFNwYW4odGVtcGxhdGVJbmZvLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gQXR0ZW1wdCB0byBnZXQgQW5ndWxhci1zcGVjaWZpYyBkZWZpbml0aW9ucyBpbiBhIFR5cGVTY3JpcHQgZmlsZSwgbGlrZSB0ZW1wbGF0ZXMgZGVmaW5lZFxuICAgIC8vIGluIGEgYHRlbXBsYXRlVXJsYCBwcm9wZXJ0eS5cbiAgICBpZiAoZmlsZU5hbWUuZW5kc1dpdGgoJy50cycpKSB7XG4gICAgICBjb25zdCBzZiA9IHRoaXMuaG9zdC5nZXRTb3VyY2VGaWxlKGZpbGVOYW1lKTtcbiAgICAgIGlmIChzZikge1xuICAgICAgICByZXR1cm4gZ2V0VHNEZWZpbml0aW9uQW5kQm91bmRTcGFuKHNmLCBwb3NpdGlvbiwgdGhpcy5ob3N0LnRzTHNIb3N0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRRdWlja0luZm9BdFBvc2l0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0c3MuUXVpY2tJbmZvfHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYW5hbHl6ZWRNb2R1bGVzID0gdGhpcy5ob3N0LmdldEFuYWx5emVkTW9kdWxlcygpOyAgLy8gc2FtZSByb2xlIGFzICdzeW5jaHJvbml6ZUhvc3REYXRhJ1xuICAgIGNvbnN0IHRlbXBsYXRlSW5mbyA9IHRoaXMuaG9zdC5nZXRUZW1wbGF0ZUFzdEF0UG9zaXRpb24oZmlsZU5hbWUsIHBvc2l0aW9uKTtcbiAgICBpZiAodGVtcGxhdGVJbmZvKSB7XG4gICAgICByZXR1cm4gZ2V0VGVtcGxhdGVIb3Zlcih0ZW1wbGF0ZUluZm8sIHBvc2l0aW9uLCBhbmFseXplZE1vZHVsZXMpO1xuICAgIH1cblxuICAgIC8vIEF0dGVtcHQgdG8gZ2V0IEFuZ3VsYXItc3BlY2lmaWMgaG92ZXIgaW5mb3JtYXRpb24gaW4gYSBUeXBlU2NyaXB0IGZpbGUsIHRoZSBOZ01vZHVsZSBhXG4gICAgLy8gZGlyZWN0aXZlIGJlbG9uZ3MgdG8uXG4gICAgY29uc3QgZGVjbGFyYXRpb25zID0gdGhpcy5ob3N0LmdldERlY2xhcmF0aW9ucyhmaWxlTmFtZSk7XG4gICAgcmV0dXJuIGdldFRzSG92ZXIocG9zaXRpb24sIGRlY2xhcmF0aW9ucywgYW5hbHl6ZWRNb2R1bGVzKTtcbiAgfVxufVxuIl19
|
package/src/locate_symbol.d.ts
CHANGED
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/language-service/src/locate_symbol" />
|
|
9
|
-
import {
|
|
9
|
+
import { StaticSymbol } from '@angular/compiler';
|
|
10
|
+
import * as tss from 'typescript/lib/tsserverlibrary';
|
|
10
11
|
import { AstResult } from './common';
|
|
11
|
-
import {
|
|
12
|
+
import { Symbol } from './types';
|
|
12
13
|
export interface SymbolInfo {
|
|
13
14
|
symbol: Symbol;
|
|
14
|
-
span:
|
|
15
|
-
|
|
15
|
+
span: tss.TextSpan;
|
|
16
|
+
staticSymbol?: StaticSymbol;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @param info
|
|
20
|
-
* @param position location to
|
|
19
|
+
* Traverses a template AST and locates symbol(s) at a specified position.
|
|
20
|
+
* @param info template AST information set
|
|
21
|
+
* @param position location to locate symbols at
|
|
21
22
|
*/
|
|
22
|
-
export declare function
|
|
23
|
+
export declare function locateSymbols(info: AstResult, position: number): SymbolInfo[];
|