@angular/language-service 11.2.7 → 11.2.11
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/ivy.js +1581 -856
- package/bundles/language-service.js +127 -63
- package/ivy/adapters.d.ts +1 -0
- package/ivy/adapters.js +32 -4
- package/ivy/compiler_factory.js +9 -3
- package/ivy/completions.d.ts +5 -0
- package/ivy/completions.js +60 -18
- package/ivy/language_service.d.ts +20 -1
- package/ivy/language_service.js +158 -124
- package/ivy/references.js +98 -82
- package/ivy/utils.js +2 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v11.2.
|
|
2
|
+
* @license Angular v11.2.11
|
|
3
3
|
* Copyright Google LLC All Rights Reserved.
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -3914,6 +3914,21 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
3914
3914
|
* Use of this source code is governed by an MIT-style license that can be
|
|
3915
3915
|
* found in the LICENSE file at https://angular.io/license
|
|
3916
3916
|
*/
|
|
3917
|
+
/**
|
|
3918
|
+
* This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently
|
|
3919
|
+
* require the implementation of a visitor for Comments as they are only collected at
|
|
3920
|
+
* the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`
|
|
3921
|
+
* is true.
|
|
3922
|
+
*/
|
|
3923
|
+
class Comment {
|
|
3924
|
+
constructor(value, sourceSpan) {
|
|
3925
|
+
this.value = value;
|
|
3926
|
+
this.sourceSpan = sourceSpan;
|
|
3927
|
+
}
|
|
3928
|
+
visit(_visitor) {
|
|
3929
|
+
throw new Error('visit() not implemented for Comment');
|
|
3930
|
+
}
|
|
3931
|
+
}
|
|
3917
3932
|
class Text {
|
|
3918
3933
|
constructor(value, sourceSpan) {
|
|
3919
3934
|
this.value = value;
|
|
@@ -8785,7 +8800,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
8785
8800
|
return visitor.visitElement(this, context);
|
|
8786
8801
|
}
|
|
8787
8802
|
}
|
|
8788
|
-
class Comment {
|
|
8803
|
+
class Comment$1 {
|
|
8789
8804
|
constructor(value, sourceSpan) {
|
|
8790
8805
|
this.value = value;
|
|
8791
8806
|
this.sourceSpan = sourceSpan;
|
|
@@ -9843,7 +9858,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
9843
9858
|
const text = this._advanceIf(TokenType.RAW_TEXT);
|
|
9844
9859
|
this._advanceIf(TokenType.COMMENT_END);
|
|
9845
9860
|
const value = text != null ? text.parts[0].trim() : null;
|
|
9846
|
-
this._addToParent(new Comment(value, token.sourceSpan));
|
|
9861
|
+
this._addToParent(new Comment$1(value, token.sourceSpan));
|
|
9847
9862
|
}
|
|
9848
9863
|
_consumeExpansion(token) {
|
|
9849
9864
|
const switchValue = this._advance();
|
|
@@ -12537,7 +12552,11 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
12537
12552
|
if (isEmptyExpression(value)) {
|
|
12538
12553
|
return null;
|
|
12539
12554
|
}
|
|
12540
|
-
|
|
12555
|
+
// CSS custom properties are case-sensitive so we shouldn't normalize them.
|
|
12556
|
+
// See: https://www.w3.org/TR/css-variables-1/#defining-variables
|
|
12557
|
+
if (!isCssCustomProperty(name)) {
|
|
12558
|
+
name = hyphenate(name);
|
|
12559
|
+
}
|
|
12541
12560
|
const { property, hasOverrideFlag, suffix: bindingSuffix } = parseProperty(name);
|
|
12542
12561
|
suffix = typeof suffix === 'string' && suffix.length !== 0 ? suffix : bindingSuffix;
|
|
12543
12562
|
const entry = { name: property, suffix: suffix, value, sourceSpan, hasOverrideFlag };
|
|
@@ -12882,8 +12901,12 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
12882
12901
|
return Identifiers$1.stylePropInterpolateV;
|
|
12883
12902
|
}
|
|
12884
12903
|
}
|
|
12885
|
-
|
|
12886
|
-
|
|
12904
|
+
/**
|
|
12905
|
+
* Checks whether property name is a custom CSS property.
|
|
12906
|
+
* See: https://www.w3.org/TR/css-variables-1
|
|
12907
|
+
*/
|
|
12908
|
+
function isCssCustomProperty(name) {
|
|
12909
|
+
return name.startsWith('--');
|
|
12887
12910
|
}
|
|
12888
12911
|
|
|
12889
12912
|
/**
|
|
@@ -15001,26 +15024,33 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
15001
15024
|
EVENT: { start: '(', end: ')' },
|
|
15002
15025
|
};
|
|
15003
15026
|
const TEMPLATE_ATTR_PREFIX$2 = '*';
|
|
15004
|
-
function htmlAstToRender3Ast(htmlNodes, bindingParser) {
|
|
15005
|
-
const transformer = new HtmlAstToIvyAst(bindingParser);
|
|
15027
|
+
function htmlAstToRender3Ast(htmlNodes, bindingParser, options) {
|
|
15028
|
+
const transformer = new HtmlAstToIvyAst(bindingParser, options);
|
|
15006
15029
|
const ivyNodes = visitAll$1(transformer, htmlNodes);
|
|
15007
15030
|
// Errors might originate in either the binding parser or the html to ivy transformer
|
|
15008
15031
|
const allErrors = bindingParser.errors.concat(transformer.errors);
|
|
15009
|
-
|
|
15032
|
+
const result = {
|
|
15010
15033
|
nodes: ivyNodes,
|
|
15011
15034
|
errors: allErrors,
|
|
15012
15035
|
styleUrls: transformer.styleUrls,
|
|
15013
15036
|
styles: transformer.styles,
|
|
15014
|
-
ngContentSelectors: transformer.ngContentSelectors
|
|
15037
|
+
ngContentSelectors: transformer.ngContentSelectors
|
|
15015
15038
|
};
|
|
15039
|
+
if (options.collectCommentNodes) {
|
|
15040
|
+
result.commentNodes = transformer.commentNodes;
|
|
15041
|
+
}
|
|
15042
|
+
return result;
|
|
15016
15043
|
}
|
|
15017
15044
|
class HtmlAstToIvyAst {
|
|
15018
|
-
constructor(bindingParser) {
|
|
15045
|
+
constructor(bindingParser, options) {
|
|
15019
15046
|
this.bindingParser = bindingParser;
|
|
15047
|
+
this.options = options;
|
|
15020
15048
|
this.errors = [];
|
|
15021
15049
|
this.styles = [];
|
|
15022
15050
|
this.styleUrls = [];
|
|
15023
15051
|
this.ngContentSelectors = [];
|
|
15052
|
+
// This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true
|
|
15053
|
+
this.commentNodes = [];
|
|
15024
15054
|
this.inI18nBlock = false;
|
|
15025
15055
|
}
|
|
15026
15056
|
// HTML visitor
|
|
@@ -15189,6 +15219,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
15189
15219
|
return null;
|
|
15190
15220
|
}
|
|
15191
15221
|
visitComment(comment) {
|
|
15222
|
+
if (this.options.collectCommentNodes) {
|
|
15223
|
+
this.commentNodes.push(new Comment(comment.value || '', comment.sourceSpan));
|
|
15224
|
+
}
|
|
15192
15225
|
return null;
|
|
15193
15226
|
}
|
|
15194
15227
|
// convert view engine `ParsedProperty` to a format suitable for IVY
|
|
@@ -15380,7 +15413,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
15380
15413
|
return node instanceof Text$2 && node.value.trim().length == 0;
|
|
15381
15414
|
}
|
|
15382
15415
|
function isCommentNode(node) {
|
|
15383
|
-
return node instanceof Comment;
|
|
15416
|
+
return node instanceof Comment$1;
|
|
15384
15417
|
}
|
|
15385
15418
|
function textContents(node) {
|
|
15386
15419
|
if (node.children.length !== 1 || !(node.children[0] instanceof Text$2)) {
|
|
@@ -17957,7 +17990,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
17957
17990
|
const parseResult = htmlParser.parse(template, templateUrl, Object.assign(Object.assign({ leadingTriviaChars: LEADING_TRIVIA_CHARS }, options), { tokenizeExpansionForms: true }));
|
|
17958
17991
|
if (!options.alwaysAttemptHtmlToR3AstConversion && parseResult.errors &&
|
|
17959
17992
|
parseResult.errors.length > 0) {
|
|
17960
|
-
|
|
17993
|
+
const parsedTemplate = {
|
|
17961
17994
|
interpolationConfig,
|
|
17962
17995
|
preserveWhitespaces,
|
|
17963
17996
|
template,
|
|
@@ -17969,6 +18002,10 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
17969
18002
|
styles: [],
|
|
17970
18003
|
ngContentSelectors: []
|
|
17971
18004
|
};
|
|
18005
|
+
if (options.collectCommentNodes) {
|
|
18006
|
+
parsedTemplate.commentNodes = [];
|
|
18007
|
+
}
|
|
18008
|
+
return parsedTemplate;
|
|
17972
18009
|
}
|
|
17973
18010
|
let rootNodes = parseResult.rootNodes;
|
|
17974
18011
|
// process i18n meta information (scan attributes, generate ids)
|
|
@@ -17979,7 +18016,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
17979
18016
|
const i18nMetaResult = i18nMetaVisitor.visitAllWithErrors(rootNodes);
|
|
17980
18017
|
if (!options.alwaysAttemptHtmlToR3AstConversion && i18nMetaResult.errors &&
|
|
17981
18018
|
i18nMetaResult.errors.length > 0) {
|
|
17982
|
-
|
|
18019
|
+
const parsedTemplate = {
|
|
17983
18020
|
interpolationConfig,
|
|
17984
18021
|
preserveWhitespaces,
|
|
17985
18022
|
template,
|
|
@@ -17991,6 +18028,10 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
17991
18028
|
styles: [],
|
|
17992
18029
|
ngContentSelectors: []
|
|
17993
18030
|
};
|
|
18031
|
+
if (options.collectCommentNodes) {
|
|
18032
|
+
parsedTemplate.commentNodes = [];
|
|
18033
|
+
}
|
|
18034
|
+
return parsedTemplate;
|
|
17994
18035
|
}
|
|
17995
18036
|
rootNodes = i18nMetaResult.rootNodes;
|
|
17996
18037
|
if (!preserveWhitespaces) {
|
|
@@ -18003,9 +18044,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
18003
18044
|
rootNodes = visitAll$1(new I18nMetaVisitor(interpolationConfig, /* keepI18nAttrs */ false), rootNodes);
|
|
18004
18045
|
}
|
|
18005
18046
|
}
|
|
18006
|
-
const { nodes, errors, styleUrls, styles, ngContentSelectors } = htmlAstToRender3Ast(rootNodes, bindingParser);
|
|
18047
|
+
const { nodes, errors, styleUrls, styles, ngContentSelectors, commentNodes } = htmlAstToRender3Ast(rootNodes, bindingParser, { collectCommentNodes: !!options.collectCommentNodes });
|
|
18007
18048
|
errors.push(...parseResult.errors, ...i18nMetaResult.errors);
|
|
18008
|
-
|
|
18049
|
+
const parsedTemplate = {
|
|
18009
18050
|
interpolationConfig,
|
|
18010
18051
|
preserveWhitespaces,
|
|
18011
18052
|
errors: errors.length > 0 ? errors : null,
|
|
@@ -18017,6 +18058,10 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
18017
18058
|
styles,
|
|
18018
18059
|
ngContentSelectors
|
|
18019
18060
|
};
|
|
18061
|
+
if (options.collectCommentNodes) {
|
|
18062
|
+
parsedTemplate.commentNodes = commentNodes;
|
|
18063
|
+
}
|
|
18064
|
+
return parsedTemplate;
|
|
18020
18065
|
}
|
|
18021
18066
|
const elementRegistry = new DomElementSchemaRegistry();
|
|
18022
18067
|
/**
|
|
@@ -19135,7 +19180,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
19135
19180
|
* Use of this source code is governed by an MIT-style license that can be
|
|
19136
19181
|
* found in the LICENSE file at https://angular.io/license
|
|
19137
19182
|
*/
|
|
19138
|
-
const VERSION$1 = new Version('11.2.
|
|
19183
|
+
const VERSION$1 = new Version('11.2.11');
|
|
19139
19184
|
|
|
19140
19185
|
/**
|
|
19141
19186
|
* @license
|
|
@@ -19683,6 +19728,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
19683
19728
|
* found in the LICENSE file at https://angular.io/license
|
|
19684
19729
|
*/
|
|
19685
19730
|
const ERROR_COMPONENT_TYPE = 'ngComponentType';
|
|
19731
|
+
const MISSING_NG_MODULE_METADATA_ERROR_DATA = 'ngMissingNgModuleMetadataErrorData';
|
|
19686
19732
|
// Design notes:
|
|
19687
19733
|
// - don't lazily create metadata:
|
|
19688
19734
|
// For some metadata, we need to do async work sometimes,
|
|
@@ -20150,7 +20196,16 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
20150
20196
|
const importedModuleSummary = this.getNgModuleSummary(importedModuleType, alreadyCollecting);
|
|
20151
20197
|
alreadyCollecting.delete(importedModuleType);
|
|
20152
20198
|
if (!importedModuleSummary) {
|
|
20153
|
-
|
|
20199
|
+
const err = syntaxError(`Unexpected ${this._getTypeDescriptor(importedType)} '${stringifyType(importedType)}' imported by the module '${stringifyType(moduleType)}'. Please add a @NgModule annotation.`);
|
|
20200
|
+
// If possible, record additional context for this error to enable more useful
|
|
20201
|
+
// diagnostics on the compiler side.
|
|
20202
|
+
if (importedType instanceof StaticSymbol) {
|
|
20203
|
+
err[MISSING_NG_MODULE_METADATA_ERROR_DATA] = {
|
|
20204
|
+
fileName: importedType.filePath,
|
|
20205
|
+
className: importedType.name,
|
|
20206
|
+
};
|
|
20207
|
+
}
|
|
20208
|
+
this._reportError(err, moduleType);
|
|
20154
20209
|
return;
|
|
20155
20210
|
}
|
|
20156
20211
|
importedModules.push(importedModuleSummary);
|
|
@@ -27957,6 +28012,25 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
27957
28012
|
return instance[SIMPLE_CHANGES_STORE] = store;
|
|
27958
28013
|
}
|
|
27959
28014
|
|
|
28015
|
+
/**
|
|
28016
|
+
* @license
|
|
28017
|
+
* Copyright Google LLC All Rights Reserved.
|
|
28018
|
+
*
|
|
28019
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
28020
|
+
* found in the LICENSE file at https://angular.io/license
|
|
28021
|
+
*/
|
|
28022
|
+
/**
|
|
28023
|
+
* Profiler function which wraps user code executed by the runtime.
|
|
28024
|
+
*
|
|
28025
|
+
* @param event ProfilerEvent corresponding to the execution context
|
|
28026
|
+
* @param instance component instance
|
|
28027
|
+
* @param hookOrListener lifecycle hook function or output listener. The value depends on the
|
|
28028
|
+
* execution context
|
|
28029
|
+
* @returns
|
|
28030
|
+
*/
|
|
28031
|
+
const profiler = function (event, instance, hookOrListener) {
|
|
28032
|
+
};
|
|
28033
|
+
|
|
27960
28034
|
/**
|
|
27961
28035
|
* @license
|
|
27962
28036
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -28660,11 +28734,19 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
28660
28734
|
(currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&
|
|
28661
28735
|
(currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {
|
|
28662
28736
|
currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;
|
|
28663
|
-
|
|
28737
|
+
try {
|
|
28738
|
+
hook.call(directive);
|
|
28739
|
+
}
|
|
28740
|
+
finally {
|
|
28741
|
+
}
|
|
28664
28742
|
}
|
|
28665
28743
|
}
|
|
28666
28744
|
else {
|
|
28667
|
-
|
|
28745
|
+
try {
|
|
28746
|
+
hook.call(directive);
|
|
28747
|
+
}
|
|
28748
|
+
finally {
|
|
28749
|
+
}
|
|
28668
28750
|
}
|
|
28669
28751
|
}
|
|
28670
28752
|
|
|
@@ -32591,13 +32673,16 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
32591
32673
|
}
|
|
32592
32674
|
function executeTemplate(tView, lView, templateFn, rf, context) {
|
|
32593
32675
|
const prevSelectedIndex = getSelectedIndex();
|
|
32676
|
+
const isUpdatePhase = rf & 2 /* Update */;
|
|
32594
32677
|
try {
|
|
32595
32678
|
setSelectedIndex(-1);
|
|
32596
|
-
if (
|
|
32679
|
+
if (isUpdatePhase && lView.length > HEADER_OFFSET) {
|
|
32597
32680
|
// When we're updating, inherently select 0 so we don't
|
|
32598
32681
|
// have to generate that instruction for most update blocks.
|
|
32599
32682
|
selectIndexInternal(tView, lView, HEADER_OFFSET, isInCheckNoChangesMode());
|
|
32600
32683
|
}
|
|
32684
|
+
const preHookType = isUpdatePhase ? 2 /* TemplateUpdateStart */ : 0 /* TemplateCreateStart */;
|
|
32685
|
+
profiler(preHookType, context);
|
|
32601
32686
|
templateFn(rf, context);
|
|
32602
32687
|
}
|
|
32603
32688
|
finally {
|
|
@@ -35157,7 +35242,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
35157
35242
|
/**
|
|
35158
35243
|
* @publicApi
|
|
35159
35244
|
*/
|
|
35160
|
-
const VERSION$2 = new Version$1('11.2.
|
|
35245
|
+
const VERSION$2 = new Version$1('11.2.11');
|
|
35161
35246
|
|
|
35162
35247
|
/**
|
|
35163
35248
|
* @license
|
|
@@ -38425,58 +38510,37 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'typescript', 'path'], func
|
|
|
38425
38510
|
super.next(value);
|
|
38426
38511
|
}
|
|
38427
38512
|
subscribe(observerOrNext, error, complete) {
|
|
38428
|
-
|
|
38429
|
-
let
|
|
38430
|
-
let
|
|
38513
|
+
var _a, _b, _c;
|
|
38514
|
+
let nextFn = observerOrNext;
|
|
38515
|
+
let errorFn = error || (() => null);
|
|
38516
|
+
let completeFn = complete;
|
|
38431
38517
|
if (observerOrNext && typeof observerOrNext === 'object') {
|
|
38432
|
-
|
|
38433
|
-
|
|
38434
|
-
|
|
38435
|
-
|
|
38436
|
-
};
|
|
38437
|
-
if (observerOrNext.error) {
|
|
38438
|
-
errorFn = this.__isAsync ? (err) => {
|
|
38439
|
-
setTimeout(() => observerOrNext.error(err));
|
|
38440
|
-
} : (err) => {
|
|
38441
|
-
observerOrNext.error(err);
|
|
38442
|
-
};
|
|
38443
|
-
}
|
|
38444
|
-
if (observerOrNext.complete) {
|
|
38445
|
-
completeFn = this.__isAsync ? () => {
|
|
38446
|
-
setTimeout(() => observerOrNext.complete());
|
|
38447
|
-
} : () => {
|
|
38448
|
-
observerOrNext.complete();
|
|
38449
|
-
};
|
|
38450
|
-
}
|
|
38518
|
+
const observer = observerOrNext;
|
|
38519
|
+
nextFn = (_a = observer.next) === null || _a === void 0 ? void 0 : _a.bind(observer);
|
|
38520
|
+
errorFn = (_b = observer.error) === null || _b === void 0 ? void 0 : _b.bind(observer);
|
|
38521
|
+
completeFn = (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.bind(observer);
|
|
38451
38522
|
}
|
|
38452
|
-
|
|
38453
|
-
|
|
38454
|
-
|
|
38455
|
-
|
|
38456
|
-
observerOrNext(value);
|
|
38457
|
-
};
|
|
38458
|
-
if (error) {
|
|
38459
|
-
errorFn = this.__isAsync ? (err) => {
|
|
38460
|
-
setTimeout(() => error(err));
|
|
38461
|
-
} : (err) => {
|
|
38462
|
-
error(err);
|
|
38463
|
-
};
|
|
38523
|
+
if (this.__isAsync) {
|
|
38524
|
+
errorFn = _wrapInTimeout(errorFn);
|
|
38525
|
+
if (nextFn) {
|
|
38526
|
+
nextFn = _wrapInTimeout(nextFn);
|
|
38464
38527
|
}
|
|
38465
|
-
if (
|
|
38466
|
-
completeFn =
|
|
38467
|
-
setTimeout(() => complete());
|
|
38468
|
-
} : () => {
|
|
38469
|
-
complete();
|
|
38470
|
-
};
|
|
38528
|
+
if (completeFn) {
|
|
38529
|
+
completeFn = _wrapInTimeout(completeFn);
|
|
38471
38530
|
}
|
|
38472
38531
|
}
|
|
38473
|
-
const sink = super.subscribe(
|
|
38532
|
+
const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });
|
|
38474
38533
|
if (observerOrNext instanceof Subscription) {
|
|
38475
38534
|
observerOrNext.add(sink);
|
|
38476
38535
|
}
|
|
38477
38536
|
return sink;
|
|
38478
38537
|
}
|
|
38479
38538
|
}
|
|
38539
|
+
function _wrapInTimeout(fn) {
|
|
38540
|
+
return (value) => {
|
|
38541
|
+
setTimeout(fn, undefined, value);
|
|
38542
|
+
};
|
|
38543
|
+
}
|
|
38480
38544
|
/**
|
|
38481
38545
|
* @publicApi
|
|
38482
38546
|
*/
|
package/ivy/adapters.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare class LanguageServiceAdapter implements NgCompilerAdapter {
|
|
|
26
26
|
*/
|
|
27
27
|
private readonly lastReadResourceVersion;
|
|
28
28
|
constructor(project: ts.server.Project);
|
|
29
|
+
resourceNameToFileName(url: string, fromFile: string, fallbackResolve?: (url: string, fromFile: string) => string | null): string | null;
|
|
29
30
|
isShim(sf: ts.SourceFile): boolean;
|
|
30
31
|
fileExists(fileName: string): boolean;
|
|
31
32
|
readFile(fileName: string): string | undefined;
|
package/ivy/adapters.js
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
|
|
23
23
|
var p = require("path");
|
|
24
24
|
var utils_1 = require("@angular/language-service/ivy/utils");
|
|
25
|
+
var PRE_COMPILED_STYLE_EXTENSIONS = ['.scss', '.sass', '.less', '.styl'];
|
|
25
26
|
var LanguageServiceAdapter = /** @class */ (function () {
|
|
26
27
|
function LanguageServiceAdapter(project) {
|
|
27
28
|
this.project = project;
|
|
@@ -38,6 +39,33 @@
|
|
|
38
39
|
this.lastReadResourceVersion = new Map();
|
|
39
40
|
this.rootDirs = typescript_1.getRootDirs(this, project.getCompilationSettings());
|
|
40
41
|
}
|
|
42
|
+
LanguageServiceAdapter.prototype.resourceNameToFileName = function (url, fromFile, fallbackResolve) {
|
|
43
|
+
var e_1, _a;
|
|
44
|
+
var _b;
|
|
45
|
+
// If we are trying to resolve a `.css` file, see if we can find a pre-compiled file with the
|
|
46
|
+
// same name instead. That way, we can provide go-to-definition for the pre-compiled files which
|
|
47
|
+
// would generally be the desired behavior.
|
|
48
|
+
if (url.endsWith('.css')) {
|
|
49
|
+
var styleUrl = p.resolve(fromFile, '..', url);
|
|
50
|
+
try {
|
|
51
|
+
for (var PRE_COMPILED_STYLE_EXTENSIONS_1 = tslib_1.__values(PRE_COMPILED_STYLE_EXTENSIONS), PRE_COMPILED_STYLE_EXTENSIONS_1_1 = PRE_COMPILED_STYLE_EXTENSIONS_1.next(); !PRE_COMPILED_STYLE_EXTENSIONS_1_1.done; PRE_COMPILED_STYLE_EXTENSIONS_1_1 = PRE_COMPILED_STYLE_EXTENSIONS_1.next()) {
|
|
52
|
+
var ext = PRE_COMPILED_STYLE_EXTENSIONS_1_1.value;
|
|
53
|
+
var precompiledFileUrl = styleUrl.replace(/\.css$/, ext);
|
|
54
|
+
if (this.fileExists(precompiledFileUrl)) {
|
|
55
|
+
return precompiledFileUrl;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
60
|
+
finally {
|
|
61
|
+
try {
|
|
62
|
+
if (PRE_COMPILED_STYLE_EXTENSIONS_1_1 && !PRE_COMPILED_STYLE_EXTENSIONS_1_1.done && (_a = PRE_COMPILED_STYLE_EXTENSIONS_1.return)) _a.call(PRE_COMPILED_STYLE_EXTENSIONS_1);
|
|
63
|
+
}
|
|
64
|
+
finally { if (e_1) throw e_1.error; }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return (_b = fallbackResolve === null || fallbackResolve === void 0 ? void 0 : fallbackResolve(url, fromFile)) !== null && _b !== void 0 ? _b : null;
|
|
68
|
+
};
|
|
41
69
|
LanguageServiceAdapter.prototype.isShim = function (sf) {
|
|
42
70
|
return shims_1.isShim(sf);
|
|
43
71
|
};
|
|
@@ -87,7 +115,7 @@
|
|
|
87
115
|
return snapshot.getText(0, snapshot.getLength());
|
|
88
116
|
};
|
|
89
117
|
LanguageServiceAdapter.prototype.getModifiedResourceFiles = function () {
|
|
90
|
-
var
|
|
118
|
+
var e_2, _a;
|
|
91
119
|
var modifiedFiles = new Set();
|
|
92
120
|
try {
|
|
93
121
|
for (var _b = tslib_1.__values(this.lastReadResourceVersion), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
@@ -97,12 +125,12 @@
|
|
|
97
125
|
}
|
|
98
126
|
}
|
|
99
127
|
}
|
|
100
|
-
catch (
|
|
128
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
101
129
|
finally {
|
|
102
130
|
try {
|
|
103
131
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
104
132
|
}
|
|
105
|
-
finally { if (
|
|
133
|
+
finally { if (e_2) throw e_2.error; }
|
|
106
134
|
}
|
|
107
135
|
return modifiedFiles.size > 0 ? modifiedFiles : undefined;
|
|
108
136
|
};
|
|
@@ -171,4 +199,4 @@
|
|
|
171
199
|
}());
|
|
172
200
|
exports.LSParseConfigHost = LSParseConfigHost;
|
|
173
201
|
});
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL2l2eS9hZGFwdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBT0gsK0RBQTZEO0lBQzdELGtGQUFnRjtJQUNoRix3QkFBMEI7SUFHMUIsNkRBQXlDO0lBRXpDO1FBZUUsZ0NBQTZCLE9BQTBCO1lBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1lBZDlDLGVBQVUsR0FBRyxJQUFJLENBQUM7WUFDbEIsNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztZQUM5QyxrQkFBYSxHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzlDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQU0sc0JBQXNCO1lBQ2xELHVCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFFLHFCQUFxQjtZQUcxRDs7OztlQUlHO1lBQ2MsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7WUFHbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyx3QkFBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCx1Q0FBTSxHQUFOLFVBQU8sRUFBaUI7WUFDdEIsT0FBTyxjQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUVELDJDQUFVLEdBQVYsVUFBVyxRQUFnQjtZQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCx5Q0FBUSxHQUFSLFVBQVMsUUFBZ0I7WUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsb0RBQW1CLEdBQW5CO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFD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QUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsT0FBTyxLQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2dCQUM1RSxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCwrQkFBRyxHQUFIO1lBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFvQixDQUFDO1FBQ2pFLENBQUM7UUFDRCxtQ0FBTyxHQUFQLFVBQVEsSUFBZ0M7WUFDdEMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxtQ0FBTyxHQUFQO1lBQVEsZUFBa0I7aUJBQWxCLFVBQWtCLEVBQWxCLHFCQUFrQixFQUFsQixJQUFrQjtnQkFBbEIsMEJBQWtCOztZQUN4QixPQUFPLENBQUMsQ0FBQyxPQUFPLE9BQVQsQ0FBQyxtQkFBWSxLQUFLLEVBQW1CLENBQUM7UUFDL0MsQ0FBQztRQUNELG1DQUFPLEdBQVAsVUFBOEIsSUFBTztZQUNuQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFNLENBQUM7UUFDOUIsQ0FBQztRQUNELGdDQUFJLEdBQUosVUFBMkIsUUFBVztZQUFFLGVBQWtCO2lCQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7Z0JBQWxCLDhCQUFrQjs7WUFDeEQsT0FBTyxDQUFDLENBQUMsSUFBSSxPQUFOLENBQUMsb0JBQU0sUUFBUSxHQUFLLEtBQUssRUFBTSxDQUFDO1FBQ3pDLENBQUM7UUFDSCx3QkFBQztJQUFELENBQUMsQUF4Q0QsSUF3Q0M7SUF4Q1ksOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKiBAZmlsZW92ZXJ2aWV3IHByb3ZpZGVzIGFkYXB0ZXJzIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIG5nIGNvbXBpbGVyICovXG5cbmltcG9ydCB7Q29uZmlndXJhdGlvbkhvc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaSc7XG5pbXBvcnQge05nQ29tcGlsZXJBZGFwdGVyfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2NvcmUvYXBpJztcbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIEZpbGVTdGF0cywgUGF0aFNlZ21lbnQsIFBhdGhTdHJpbmd9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtpc1NoaW19IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2Mvc2hpbXMnO1xuaW1wb3J0IHtnZXRSb290RGlyc30gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy91dGlsL3NyYy90eXBlc2NyaXB0JztcbmltcG9ydCAqIGFzIHAgZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0L2xpYi90c3NlcnZlcmxpYnJhcnknO1xuXG5pbXBvcnQge2lzVHlwZVNjcmlwdEZpbGV9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTZXJ2aWNlQWRhcHRlciBpbXBsZW1lbnRzIE5nQ29tcGlsZXJBZGFwdGVyIHtcbiAgcmVhZG9ubHkgZW50cnlQb2ludCA9IG51bGw7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdGlvbkRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW10gPSBbXTtcbiAgcmVhZG9ubHkgaWdub3JlRm9yRW1pdDogU2V0PHRzLlNvdXJjZUZpbGU+ID0gbmV3IFNldCgpO1xuICByZWFkb25seSBmYWN0b3J5VHJhY2tlciA9IG51bGw7ICAgICAgLy8gbm8gLm5nZmFjdG9yeSBzaGltc1xuICByZWFkb25seSB1bmlmaWVkTW9kdWxlc0hvc3QgPSBudWxsOyAgLy8gb25seSB1c2VkIGluIEJhemVsXG4gIHJlYWRvbmx5IHJvb3REaXJzOiBBYnNvbHV0ZUZzUGF0aFtdO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgcmVzb3VyY2UgZmlsZW5hbWVzIHRvIHRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlIGxhc3QgcmVhZCB2aWEgYHJlYWRSZXNvdXJjZWAuXG4gICAqXG4gICAqIFVzZWQgdG8gaW1wbGVtZW50IGBnZXRNb2RpZmllZFJlc291cmNlRmlsZXNgLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBsYXN0UmVhZFJlc291cmNlVmVyc2lvbiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9qZWN0OiB0cy5zZXJ2ZXIuUHJvamVjdCkge1xuICAgIHRoaXMucm9vdERpcnMgPSBnZXRSb290RGlycyh0aGlzLCBwcm9qZWN0LmdldENvbXBpbGF0aW9uU2V0dGluZ3MoKSk7XG4gIH1cblxuICBpc1NoaW0oc2Y6IHRzLlNvdXJjZUZpbGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNTaGltKHNmKTtcbiAgfVxuXG4gIGZpbGVFeGlzdHMoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QuZmlsZUV4aXN0cyhmaWxlTmFtZSk7XG4gIH1cblxuICByZWFkRmlsZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nfHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5yZWFkRmlsZShmaWxlTmFtZSk7XG4gIH1cblxuICBnZXRDdXJyZW50RGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5nZXRDdXJyZW50RGlyZWN0b3J5KCk7XG4gIH1cblxuICBnZXRDYW5vbmljYWxGaWxlTmFtZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnByb2plY3RTZXJ2aWNlLnRvQ2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVhbCBwYXRoIG9mIGEgc3ltbGluay4gVGhpcyBtZXRob2QgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG9cbiAgICogcmVzb2x2ZSBzeW1saW5rcyBpbiBub2RlX21vZHVsZXMuXG4gICAqL1xuICByZWFscGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QucmVhbHBhdGg/LihwYXRoKSA/PyBwYXRoO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlYWRSZXNvdXJjZSgpIGlzIGFuIEFuZ3VsYXItc3BlY2lmaWMgbWV0aG9kIGZvciByZWFkaW5nIGZpbGVzIHRoYXQgYXJlIG5vdFxuICAgKiBtYW5hZ2VkIGJ5IHRoZSBUUyBjb21waWxlciBob3N0LCBuYW1lbHkgdGVtcGxhdGVzIGFuZCBzdHlsZXNoZWV0cy5cbiAgICogSXQgaXMgYSBtZXRob2Qgb24gRXh0ZW5kZWRUc0NvbXBpbGVySG9zdCwgc2VlXG4gICAqIHBhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvY29yZS9hcGkvc3JjL2ludGVyZmFjZXMudHNcbiAgICovXG4gIHJlYWRSZXNvdXJjZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoaXNUeXBlU2NyaXB0RmlsZShmaWxlTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcmVhZFJlc291cmNlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gVFMgZmlsZTogJHtmaWxlTmFtZX1gKTtcbiAgICB9XG4gICAgLy8gQ2FsbGluZyBnZXRTY3JpcHRTbmFwc2hvdCgpIHdpbGwgYWN0dWFsbHkgY3JlYXRlIGEgU2NyaXB0SW5mbyBpZiBpdCBkb2VzXG4gICAgLy8gbm90IGV4aXN0ISBUaGUgc2FtZSBhcHBsaWVzIGZvciBnZXRTY3JpcHRWZXJzaW9uKCkuXG4gICAgLy8gZ2V0U2NyaXB0SW5mbygpIHdpbGwgbm90IGNyZWF0ZSBvbmUgaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSAqd2FudCogYSBzY3JpcHQgaW5mbyB0byBiZSBjcmVhdGVkIHNvIHRoYXQgd2UgY291bGRcbiAgICAvLyBrZWVwIHRyYWNrIG9mIGl0cyB2ZXJzaW9uLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5wcm9qZWN0LmdldFNjcmlwdFNuYXBzaG90KGZpbGVOYW1lKTtcbiAgICBpZiAoIXNuYXBzaG90KSB7XG4gICAgICAvLyBUaGlzIHdvdWxkIGZhaWwgaWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIG9yIHJlYWRGaWxlKCkgZmFpbHMgZm9yXG4gICAgICAvLyB3aGF0ZXZlciByZWFzb25zLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IHNjcmlwdCBzbmFwc2hvdCB3aGlsZSB0cnlpbmcgdG8gcmVhZCAke2ZpbGVOYW1lfWApO1xuICAgIH1cbiAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5wcm9qZWN0LmdldFNjcmlwdFZlcnNpb24oZmlsZU5hbWUpO1xuICAgIHRoaXMubGFzdFJlYWRSZXNvdXJjZVZlcnNpb24uc2V0KGZpbGVOYW1lLCB2ZXJzaW9uKTtcbiAgICByZXR1cm4gc25hcHNob3QuZ2V0VGV4dCgwLCBzbmFwc2hvdC5nZXRMZW5ndGgoKSk7XG4gIH1cblxuICBnZXRNb2RpZmllZFJlc291cmNlRmlsZXMoKTogU2V0PHN0cmluZz58dW5kZWZpbmVkIHtcbiAgICBjb25zdCBtb2RpZmllZEZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBbZmlsZU5hbWUsIG9sZFZlcnNpb25dIG9mIHRoaXMubGFzdFJlYWRSZXNvdXJjZVZlcnNpb24pIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QuZ2V0U2NyaXB0VmVyc2lvbihmaWxlTmFtZSkgIT09IG9sZFZlcnNpb24pIHtcbiAgICAgICAgbW9kaWZpZWRGaWxlcy5hZGQoZmlsZU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbW9kaWZpZWRGaWxlcy5zaXplID4gMCA/IG1vZGlmaWVkRmlsZXMgOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBVc2VkIHRvIHJlYWQgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAqXG4gKiBBIGxhbmd1YWdlIHNlcnZpY2UgcGFyc2UgY29uZmlndXJhdGlvbiBob3N0IGlzIGluZGVwZW5kZW50IG9mIHRoZSBhZGFwdGVyXG4gKiBiZWNhdXNlIHNpZ25hdHVyZXMgb2YgY2FsbHMgbGlrZSBgRmlsZVN5c3RlbSNyZWFkRmlsZWAgYXJlIGEgYml0IHN0cmljdGVyXG4gKiB0aGFuIHRob3NlIG9uIHRoZSBhZGFwdGVyLlxuICovXG5leHBvcnQgY2xhc3MgTFNQYXJzZUNvbmZpZ0hvc3QgaW1wbGVtZW50cyBDb25maWd1cmF0aW9uSG9zdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VydmVySG9zdDogdHMuc2VydmVyLlNlcnZlckhvc3QpIHt9XG4gIGV4aXN0cyhwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZlckhvc3QuZmlsZUV4aXN0cyhwYXRoKSB8fCB0aGlzLnNlcnZlckhvc3QuZGlyZWN0b3J5RXhpc3RzKHBhdGgpO1xuICB9XG4gIHJlYWRGaWxlKHBhdGg6IEFic29sdXRlRnNQYXRoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5zZXJ2ZXJIb3N0LnJlYWRGaWxlKHBhdGgpO1xuICAgIGlmIChjb250ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTGFuZ3VhZ2VTZXJ2aWNlRlMjcmVhZEZpbGUgY2FsbGVkIG9uIHVuYXZhaWxhYmxlIGZpbGUgJHtwYXRofWApO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBsc3RhdChwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IEZpbGVTdGF0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzRmlsZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJIb3N0LmZpbGVFeGlzdHMocGF0aCk7XG4gICAgICB9LFxuICAgICAgaXNEaXJlY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVySG9zdC5kaXJlY3RvcnlFeGlzdHMocGF0aCk7XG4gICAgICB9LFxuICAgICAgaXNTeW1ib2xpY0xpbms6ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBMYW5ndWFnZVNlcnZpY2VGUyNsc3RhdCNpc1N5bWJvbGljTGluayBub3QgaW1wbGVtZW50ZWRgKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBwd2QoKTogQWJzb2x1dGVGc1BhdGgge1xuICAgIHJldHVybiB0aGlzLnNlcnZlckhvc3QuZ2V0Q3VycmVudERpcmVjdG9yeSgpIGFzIEFic29sdXRlRnNQYXRoO1xuICB9XG4gIGV4dG5hbWUocGF0aDogQWJzb2x1dGVGc1BhdGh8UGF0aFNlZ21lbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBwLmV4dG5hbWUocGF0aCk7XG4gIH1cbiAgcmVzb2x2ZSguLi5wYXRoczogc3RyaW5nW10pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gICAgcmV0dXJuIHAucmVzb2x2ZSguLi5wYXRocykgYXMgQWJzb2x1dGVGc1BhdGg7XG4gIH1cbiAgZGlybmFtZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4oZmlsZTogVCk6IFQge1xuICAgIHJldHVybiBwLmRpcm5hbWUoZmlsZSkgYXMgVDtcbiAgfVxuICBqb2luPFQgZXh0ZW5kcyBQYXRoU3RyaW5nPihiYXNlUGF0aDogVCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogVCB7XG4gICAgcmV0dXJuIHAuam9pbihiYXNlUGF0aCwgLi4ucGF0aHMpIGFzIFQ7XG4gIH1cbn1cbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL2l2eS9hZGFwdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBT0gsK0RBQTZEO0lBQzdELGtGQUFnRjtJQUNoRix3QkFBMEI7SUFHMUIsNkRBQXlDO0lBRXpDLElBQU0sNkJBQTZCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUzRTtRQWVFLGdDQUE2QixPQUEwQjtZQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtZQWQ5QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLDRCQUF1QixHQUFvQixFQUFFLENBQUM7WUFDOUMsa0JBQWEsR0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUM5QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxDQUFNLHNCQUFzQjtZQUNsRCx1QkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBRSxxQkFBcUI7WUFHMUQ7Ozs7ZUFJRztZQUNjLDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1lBR25FLElBQUksQ0FBQyxRQUFRLEdBQUcsd0JBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsdURBQXNCLEdBQXRCLFVBQ0ksR0FBVyxFQUFFLFFBQWdCLEVBQzdCLGVBQWtFOzs7WUFDcEUsNkZBQTZGO1lBQzdGLGdHQUFnRztZQUNoRywyQ0FBMkM7WUFDM0MsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QixJQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7O29CQUNoRCxLQUFrQixJQUFBLGtD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Q0FBQztRQUNqRSxDQUFDO1FBQ0QsbUNBQU8sR0FBUCxVQUFRLElBQWdDO1lBQ3RDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsbUNBQU8sR0FBUDtZQUFRLGVBQWtCO2lCQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7Z0JBQWxCLDBCQUFrQjs7WUFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxPQUFULENBQUMsbUJBQVksS0FBSyxFQUFtQixDQUFDO1FBQy9DLENBQUM7UUFDRCxtQ0FBTyxHQUFQLFVBQThCLElBQU87WUFDbkMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBTSxDQUFDO1FBQzlCLENBQUM7UUFDRCxnQ0FBSSxHQUFKLFVBQTJCLFFBQVc7WUFBRSxlQUFrQjtpQkFBbEIsVUFBa0IsRUFBbEIscUJBQWtCLEVBQWxCLElBQWtCO2dCQUFsQiw4QkFBa0I7O1lBQ3hELE9BQU8sQ0FBQyxDQUFDLElBQUksT0FBTixDQUFDLG9CQUFNLFFBQVEsR0FBSyxLQUFLLEVBQU0sQ0FBQztRQUN6QyxDQUFDO1FBQ0gsd0JBQUM7SUFBRCxDQUFDLEFBeENELElBd0NDO0lBeENZLDhDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKiogQGZpbGVvdmVydmlldyBwcm92aWRlcyBhZGFwdGVycyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBuZyBjb21waWxlciAqL1xuXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25Ib3N0fSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGknO1xuaW1wb3J0IHtOZ0NvbXBpbGVyQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9jb3JlL2FwaSc7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBGaWxlU3RhdHMsIFBhdGhTZWdtZW50LCBQYXRoU3RyaW5nfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7aXNTaGltfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3NoaW1zJztcbmltcG9ydCB7Z2V0Um9vdERpcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdXRpbC9zcmMvdHlwZXNjcmlwdCc7XG5pbXBvcnQgKiBhcyBwIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdC9saWIvdHNzZXJ2ZXJsaWJyYXJ5JztcblxuaW1wb3J0IHtpc1R5cGVTY3JpcHRGaWxlfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgUFJFX0NPTVBJTEVEX1NUWUxFX0VYVEVOU0lPTlMgPSBbJy5zY3NzJywgJy5zYXNzJywgJy5sZXNzJywgJy5zdHlsJ107XG5cbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlcnZpY2VBZGFwdGVyIGltcGxlbWVudHMgTmdDb21waWxlckFkYXB0ZXIge1xuICByZWFkb25seSBlbnRyeVBvaW50ID0gbnVsbDtcbiAgcmVhZG9ubHkgY29uc3RydWN0aW9uRGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXSA9IFtdO1xuICByZWFkb25seSBpZ25vcmVGb3JFbWl0OiBTZXQ8dHMuU291cmNlRmlsZT4gPSBuZXcgU2V0KCk7XG4gIHJlYWRvbmx5IGZhY3RvcnlUcmFja2VyID0gbnVsbDsgICAgICAvLyBubyAubmdmYWN0b3J5IHNoaW1zXG4gIHJlYWRvbmx5IHVuaWZpZWRNb2R1bGVzSG9zdCA9IG51bGw7ICAvLyBvbmx5IHVzZWQgaW4gQmF6ZWxcbiAgcmVhZG9ubHkgcm9vdERpcnM6IEFic29sdXRlRnNQYXRoW107XG5cbiAgLyoqXG4gICAqIE1hcCBvZiByZXNvdXJjZSBmaWxlbmFtZXMgdG8gdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUgbGFzdCByZWFkIHZpYSBgcmVhZFJlc291cmNlYC5cbiAgICpcbiAgICogVXNlZCB0byBpbXBsZW1lbnQgYGdldE1vZGlmaWVkUmVzb3VyY2VGaWxlc2AuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGxhc3RSZWFkUmVzb3VyY2VWZXJzaW9uID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2plY3Q6IHRzLnNlcnZlci5Qcm9qZWN0KSB7XG4gICAgdGhpcy5yb290RGlycyA9IGdldFJvb3REaXJzKHRoaXMsIHByb2plY3QuZ2V0Q29tcGlsYXRpb25TZXR0aW5ncygpKTtcbiAgfVxuXG4gIHJlc291cmNlTmFtZVRvRmlsZU5hbWUoXG4gICAgICB1cmw6IHN0cmluZywgZnJvbUZpbGU6IHN0cmluZyxcbiAgICAgIGZhbGxiYWNrUmVzb2x2ZT86ICh1cmw6IHN0cmluZywgZnJvbUZpbGU6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbCk6IHN0cmluZ3xudWxsIHtcbiAgICAvLyBJZiB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBgLmNzc2AgZmlsZSwgc2VlIGlmIHdlIGNhbiBmaW5kIGEgcHJlLWNvbXBpbGVkIGZpbGUgd2l0aCB0aGVcbiAgICAvLyBzYW1lIG5hbWUgaW5zdGVhZC4gVGhhdCB3YXksIHdlIGNhbiBwcm92aWRlIGdvLXRvLWRlZmluaXRpb24gZm9yIHRoZSBwcmUtY29tcGlsZWQgZmlsZXMgd2hpY2hcbiAgICAvLyB3b3VsZCBnZW5lcmFsbHkgYmUgdGhlIGRlc2lyZWQgYmVoYXZpb3IuXG4gICAgaWYgKHVybC5lbmRzV2l0aCgnLmNzcycpKSB7XG4gICAgICBjb25zdCBzdHlsZVVybCA9IHAucmVzb2x2ZShmcm9tRmlsZSwgJy4uJywgdXJsKTtcbiAgICAgIGZvciAoY29uc3QgZXh0IG9mIFBSRV9DT01QSUxFRF9TVFlMRV9FWFRFTlNJT05TKSB7XG4gICAgICAgIGNvbnN0IHByZWNvbXBpbGVkRmlsZVVybCA9IHN0eWxlVXJsLnJlcGxhY2UoL1xcLmNzcyQvLCBleHQpO1xuICAgICAgICBpZiAodGhpcy5maWxlRXhpc3RzKHByZWNvbXBpbGVkRmlsZVVybCkpIHtcbiAgICAgICAgICByZXR1cm4gcHJlY29tcGlsZWRGaWxlVXJsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFja1Jlc29sdmU/Lih1cmwsIGZyb21GaWxlKSA/PyBudWxsO1xuICB9XG5cbiAgaXNTaGltKHNmOiB0cy5Tb3VyY2VGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzU2hpbShzZik7XG4gIH1cblxuICBmaWxlRXhpc3RzKGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmZpbGVFeGlzdHMoZmlsZU5hbWUpO1xuICB9XG5cbiAgcmVhZEZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QucmVhZEZpbGUoZmlsZU5hbWUpO1xuICB9XG5cbiAgZ2V0Q3VycmVudERpcmVjdG9yeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QuZ2V0Q3VycmVudERpcmVjdG9yeSgpO1xuICB9XG5cbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5wcm9qZWN0U2VydmljZS50b0Nhbm9uaWNhbEZpbGVOYW1lKGZpbGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHJlYWwgcGF0aCBvZiBhIHN5bWxpbmsuIFRoaXMgbWV0aG9kIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvXG4gICAqIHJlc29sdmUgc3ltbGlua3MgaW4gbm9kZV9tb2R1bGVzLlxuICAgKi9cbiAgcmVhbHBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnJlYWxwYXRoPy4ocGF0aCkgPz8gcGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWFkUmVzb3VyY2UoKSBpcyBhbiBBbmd1bGFyLXNwZWNpZmljIG1ldGhvZCBmb3IgcmVhZGluZyBmaWxlcyB0aGF0IGFyZSBub3RcbiAgICogbWFuYWdlZCBieSB0aGUgVFMgY29tcGlsZXIgaG9zdCwgbmFtZWx5IHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuXG4gICAqIEl0IGlzIGEgbWV0aG9kIG9uIEV4dGVuZGVkVHNDb21waWxlckhvc3QsIHNlZVxuICAgKiBwYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2NvcmUvYXBpL3NyYy9pbnRlcmZhY2VzLnRzXG4gICAqL1xuICByZWFkUmVzb3VyY2UoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGlzVHlwZVNjcmlwdEZpbGUoZmlsZU5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJlYWRSZXNvdXJjZSgpIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIFRTIGZpbGU6ICR7ZmlsZU5hbWV9YCk7XG4gICAgfVxuICAgIC8vIENhbGxpbmcgZ2V0U2NyaXB0U25hcHNob3QoKSB3aWxsIGFjdHVhbGx5IGNyZWF0ZSBhIFNjcmlwdEluZm8gaWYgaXQgZG9lc1xuICAgIC8vIG5vdCBleGlzdCEgVGhlIHNhbWUgYXBwbGllcyBmb3IgZ2V0U2NyaXB0VmVyc2lvbigpLlxuICAgIC8vIGdldFNjcmlwdEluZm8oKSB3aWxsIG5vdCBjcmVhdGUgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgIC8vIEluIHRoaXMgY2FzZSwgd2UgKndhbnQqIGEgc2NyaXB0IGluZm8gdG8gYmUgY3JlYXRlZCBzbyB0aGF0IHdlIGNvdWxkXG4gICAgLy8ga2VlcCB0cmFjayBvZiBpdHMgdmVyc2lvbi5cbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMucHJvamVjdC5nZXRTY3JpcHRTbmFwc2hvdChmaWxlTmFtZSk7XG4gICAgaWYgKCFzbmFwc2hvdCkge1xuICAgICAgLy8gVGhpcyB3b3VsZCBmYWlsIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBvciByZWFkRmlsZSgpIGZhaWxzIGZvclxuICAgICAgLy8gd2hhdGV2ZXIgcmVhc29ucy5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCBzY3JpcHQgc25hcHNob3Qgd2hpbGUgdHJ5aW5nIHRvIHJlYWQgJHtmaWxlTmFtZX1gKTtcbiAgICB9XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMucHJvamVjdC5nZXRTY3JpcHRWZXJzaW9uKGZpbGVOYW1lKTtcbiAgICB0aGlzLmxhc3RSZWFkUmVzb3VyY2VWZXJzaW9uLnNldChmaWxlTmFtZSwgdmVyc2lvbik7XG4gICAgcmV0dXJuIHNuYXBzaG90LmdldFRleHQoMCwgc25hcHNob3QuZ2V0TGVuZ3RoKCkpO1xuICB9XG5cbiAgZ2V0TW9kaWZpZWRSZXNvdXJjZUZpbGVzKCk6IFNldDxzdHJpbmc+fHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbW9kaWZpZWRGaWxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgW2ZpbGVOYW1lLCBvbGRWZXJzaW9uXSBvZiB0aGlzLmxhc3RSZWFkUmVzb3VyY2VWZXJzaW9uKSB7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0LmdldFNjcmlwdFZlcnNpb24oZmlsZU5hbWUpICE9PSBvbGRWZXJzaW9uKSB7XG4gICAgICAgIG1vZGlmaWVkRmlsZXMuYWRkKGZpbGVOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vZGlmaWVkRmlsZXMuc2l6ZSA+IDAgPyBtb2RpZmllZEZpbGVzIDogdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogVXNlZCB0byByZWFkIGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gKlxuICogQSBsYW5ndWFnZSBzZXJ2aWNlIHBhcnNlIGNvbmZpZ3VyYXRpb24gaG9zdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgYWRhcHRlclxuICogYmVjYXVzZSBzaWduYXR1cmVzIG9mIGNhbGxzIGxpa2UgYEZpbGVTeXN0ZW0jcmVhZEZpbGVgIGFyZSBhIGJpdCBzdHJpY3RlclxuICogdGhhbiB0aG9zZSBvbiB0aGUgYWRhcHRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIExTUGFyc2VDb25maWdIb3N0IGltcGxlbWVudHMgQ29uZmlndXJhdGlvbkhvc3Qge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlcnZlckhvc3Q6IHRzLnNlcnZlci5TZXJ2ZXJIb3N0KSB7fVxuICBleGlzdHMocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2ZXJIb3N0LmZpbGVFeGlzdHMocGF0aCkgfHwgdGhpcy5zZXJ2ZXJIb3N0LmRpcmVjdG9yeUV4aXN0cyhwYXRoKTtcbiAgfVxuICByZWFkRmlsZShwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2VydmVySG9zdC5yZWFkRmlsZShwYXRoKTtcbiAgICBpZiAoY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExhbmd1YWdlU2VydmljZUZTI3JlYWRGaWxlIGNhbGxlZCBvbiB1bmF2YWlsYWJsZSBmaWxlICR7cGF0aH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgbHN0YXQocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBGaWxlU3RhdHMge1xuICAgIHJldHVybiB7XG4gICAgICBpc0ZpbGU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVySG9zdC5maWxlRXhpc3RzKHBhdGgpO1xuICAgICAgfSxcbiAgICAgIGlzRGlyZWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZlckhvc3QuZGlyZWN0b3J5RXhpc3RzKHBhdGgpO1xuICAgICAgfSxcbiAgICAgIGlzU3ltYm9saWNMaW5rOiAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTGFuZ3VhZ2VTZXJ2aWNlRlMjbHN0YXQjaXNTeW1ib2xpY0xpbmsgbm90IGltcGxlbWVudGVkYCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgcHdkKCk6IEFic29sdXRlRnNQYXRoIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2ZXJIb3N0LmdldEN1cnJlbnREaXJlY3RvcnkoKSBhcyBBYnNvbHV0ZUZzUGF0aDtcbiAgfVxuICBleHRuYW1lKHBhdGg6IEFic29sdXRlRnNQYXRofFBhdGhTZWdtZW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcC5leHRuYW1lKHBhdGgpO1xuICB9XG4gIHJlc29sdmUoLi4ucGF0aHM6IHN0cmluZ1tdKTogQWJzb2x1dGVGc1BhdGgge1xuICAgIHJldHVybiBwLnJlc29sdmUoLi4ucGF0aHMpIGFzIEFic29sdXRlRnNQYXRoO1xuICB9XG4gIGRpcm5hbWU8VCBleHRlbmRzIFBhdGhTdHJpbmc+KGZpbGU6IFQpOiBUIHtcbiAgICByZXR1cm4gcC5kaXJuYW1lKGZpbGUpIGFzIFQ7XG4gIH1cbiAgam9pbjxUIGV4dGVuZHMgUGF0aFN0cmluZz4oYmFzZVBhdGg6IFQsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IFQge1xuICAgIHJldHVybiBwLmpvaW4oYmFzZVBhdGgsIC4uLnBhdGhzKSBhcyBUO1xuICB9XG59XG4iXX0=
|
package/ivy/compiler_factory.js
CHANGED
|
@@ -47,14 +47,20 @@
|
|
|
47
47
|
var ticket_1 = core_1.resourceChangeTicket(this.compiler, modifiedResourceFiles);
|
|
48
48
|
this.compiler = core_1.NgCompiler.fromTicket(ticket_1, this.adapter);
|
|
49
49
|
}
|
|
50
|
+
else {
|
|
51
|
+
// The previous NgCompiler is being reused, but we still want to reset its performance
|
|
52
|
+
// tracker to capture only the operations that are needed to service the current request.
|
|
53
|
+
this.compiler.perfRecorder.reset();
|
|
54
|
+
}
|
|
50
55
|
return this.compiler;
|
|
51
56
|
}
|
|
52
57
|
var ticket;
|
|
53
58
|
if (this.compiler === null || this.lastKnownProgram === null) {
|
|
54
|
-
ticket = core_1.freshCompilationTicket(program, this.options, this.incrementalStrategy, this.programStrategy,
|
|
59
|
+
ticket = core_1.freshCompilationTicket(program, this.options, this.incrementalStrategy, this.programStrategy,
|
|
60
|
+
/* perfRecorder */ null, true, true);
|
|
55
61
|
}
|
|
56
62
|
else {
|
|
57
|
-
ticket = core_1.incrementalFromCompilerTicket(this.compiler, program, this.incrementalStrategy, this.programStrategy, modifiedResourceFiles);
|
|
63
|
+
ticket = core_1.incrementalFromCompilerTicket(this.compiler, program, this.incrementalStrategy, this.programStrategy, modifiedResourceFiles, /* perfRecorder */ null);
|
|
58
64
|
}
|
|
59
65
|
this.compiler = core_1.NgCompiler.fromTicket(ticket, this.adapter);
|
|
60
66
|
this.lastKnownProgram = program;
|
|
@@ -67,4 +73,4 @@
|
|
|
67
73
|
}());
|
|
68
74
|
exports.CompilerFactory = CompilerFactory;
|
|
69
75
|
});
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhbmd1YWdlLXNlcnZpY2UvaXZ5L2NvbXBpbGVyX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUgsNkRBQWdLO0lBRWhLLDJFQUE0RjtJQVE1Rjs7Ozs7Ozs7T0FRRztJQUNIO1FBS0UseUJBQ3FCLE9BQStCLEVBQy9CLGVBQTRDLEVBQzVDLE9BQTBCO1lBRjFCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1lBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUE2QjtZQUM1QyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtZQVA5Qix3QkFBbUIsR0FBRyxJQUFJLDZDQUErQixFQUFFLENBQUM7WUFDckUsYUFBUSxHQUFvQixJQUFJLENBQUM7WUFDakMscUJBQWdCLEdBQW9CLElBQUksQ0FBQztRQU05QyxDQUFDO1FBRUoscUNBQVcsR0FBWDs7WUFDRSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xELElBQU0scUJBQXFCLFNBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxtQ0FBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBRW5GLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDL0QsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO29CQUNsQywwRUFBMEU7b0JBQzFFLElBQU0sUUFBTSxHQUFHLDJCQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM3RDtxQkFBTTtvQkFDTCxzRkFBc0Y7b0JBQ3RGLHlGQUF5RjtvQkFDekYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ3BDO2dCQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUVELElBQUksTUFBeUIsQ0FBQztZQUM5QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7Z0JBQzVELE1BQU0sR0FBRyw2QkFBc0IsQ0FDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNyRSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzFDO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxvQ0FBNkIsQ0FDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQ3RFLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxrREFBd0IsR0FBeEI7WUFDRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1RCxDQUFDO1FBQ0gsc0JBQUM7SUFBRCxDQUFDLEFBL0NELElBK0NDO0lBL0NZLDBDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29tcGlsYXRpb25UaWNrZXQsIGZyZXNoQ29tcGlsYXRpb25UaWNrZXQsIGluY3JlbWVudGFsRnJvbUNvbXBpbGVyVGlja2V0LCBOZ0NvbXBpbGVyLCByZXNvdXJjZUNoYW5nZVRpY2tldH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9jb3JlJztcbmltcG9ydCB7TmdDb21waWxlck9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvY29yZS9hcGknO1xuaW1wb3J0IHtUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsJztcbmltcG9ydCB7QWN0aXZlUGVyZlJlY29yZGVyfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3BlcmYnO1xuaW1wb3J0IHtUeXBlQ2hlY2tpbmdQcm9ncmFtU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaSc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0L2xpYi90c3NlcnZlcmxpYnJhcnknO1xuXG5pbXBvcnQge0xhbmd1YWdlU2VydmljZUFkYXB0ZXJ9IGZyb20gJy4vYWRhcHRlcnMnO1xuaW1wb3J0IHtpc0V4dGVybmFsVGVtcGxhdGV9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIE1hbmFnZXMgdGhlIGBOZ0NvbXBpbGVyYCBpbnN0YW5jZSB3aGljaCBiYWNrcyB0aGUgbGFuZ3VhZ2Ugc2VydmljZSwgdXBkYXRpbmcgb3IgcmVwbGFjaW5nIGl0IGFzXG4gKiBuZWVkZWQgdG8gcHJvZHVjZSBhbiB1cC10by1kYXRlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGN1cnJlbnQgcHJvZ3JhbS5cbiAqXG4gKiBUT0RPKGFseGh1Yik6IGN1cnJlbnRseSB0aGUgb3B0aW9ucyB1c2VkIGZvciB0aGUgY29tcGlsZXIgYXJlIHNwZWNpZmllZCBhdCBgQ29tcGlsZXJGYWN0b3J5YFxuICogY29uc3RydWN0aW9uLCBhbmQgYXJlIG5vdCBjaGFuZ2FibGUuIEluIGEgcmVhbCBwcm9qZWN0LCB1c2VycyBjYW4gdXBkYXRlIGB0c2NvbmZpZy5qc29uYC4gV2UgbmVlZFxuICogdG8gcHJvcGVybHkgaGFuZGxlIGEgY2hhbmdlIGluIHRoZSBjb21waWxlciBvcHRpb25zLCBlaXRoZXIgYnkgaGF2aW5nIGFuIEFQSSB0byB1cGRhdGUgdGhlXG4gKiBgQ29tcGlsZXJGYWN0b3J5YCB0byB1c2UgbmV3IG9wdGlvbnMsIG9yIGJ5IHJlcGxhY2luZyBpdCBlbnRpcmVseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBpbGVyRmFjdG9yeSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5jcmVtZW50YWxTdHJhdGVneSA9IG5ldyBUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5KCk7XG4gIHByaXZhdGUgY29tcGlsZXI6IE5nQ29tcGlsZXJ8bnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGFzdEtub3duUHJvZ3JhbTogdHMuUHJvZ3JhbXxudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlcjogTGFuZ3VhZ2VTZXJ2aWNlQWRhcHRlcixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZ3JhbVN0cmF0ZWd5OiBUeXBlQ2hlY2tpbmdQcm9ncmFtU3RyYXRlZ3ksXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE5nQ29tcGlsZXJPcHRpb25zLFxuICApIHt9XG5cbiAgZ2V0T3JDcmVhdGUoKTogTmdDb21waWxlciB7XG4gICAgY29uc3QgcHJvZ3JhbSA9IHRoaXMucHJvZ3JhbVN0cmF0ZWd5LmdldFByb2dyYW0oKTtcbiAgICBjb25zdCBtb2RpZmllZFJlc291cmNlRmlsZXMgPSB0aGlzLmFkYXB0ZXIuZ2V0TW9kaWZpZWRSZXNvdXJjZUZpbGVzKCkgPz8gbmV3IFNldCgpO1xuXG4gICAgaWYgKHRoaXMuY29tcGlsZXIgIT09IG51bGwgJiYgcHJvZ3JhbSA9PT0gdGhpcy5sYXN0S25vd25Qcm9ncmFtKSB7XG4gICAgICBpZiAobW9kaWZpZWRSZXNvdXJjZUZpbGVzLnNpemUgPiAwKSB7XG4gICAgICAgIC8vIE9ubHkgcmVzb3VyY2UgZmlsZXMgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IE5nQ29tcGlsZXIgd2FzIGNyZWF0ZWQuXG4gICAgICAgIGNvbnN0IHRpY2tldCA9IHJlc291cmNlQ2hhbmdlVGlja2V0KHRoaXMuY29tcGlsZXIsIG1vZGlmaWVkUmVzb3VyY2VGaWxlcyk7XG4gICAgICAgIHRoaXMuY29tcGlsZXIgPSBOZ0NvbXBpbGVyLmZyb21UaWNrZXQodGlja2V0LCB0aGlzLmFkYXB0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIHByZXZpb3VzIE5nQ29tcGlsZXIgaXMgYmVpbmcgcmV1c2VkLCBidXQgd2Ugc3RpbGwgd2FudCB0byByZXNldCBpdHMgcGVyZm9ybWFuY2VcbiAgICAgICAgLy8gdHJhY2tlciB0byBjYXB0dXJlIG9ubHkgdGhlIG9wZXJhdGlvbnMgdGhhdCBhcmUgbmVlZGVkIHRvIHNlcnZpY2UgdGhlIGN1cnJlbnQgcmVxdWVzdC5cbiAgICAgICAgdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIucmVzZXQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXI7XG4gICAgfVxuXG4gICAgbGV0IHRpY2tldDogQ29tcGlsYXRpb25UaWNrZXQ7XG4gICAgaWYgKHRoaXMuY29tcGlsZXIgPT09IG51bGwgfHwgdGhpcy5sYXN0S25vd25Qcm9ncmFtID09PSBudWxsKSB7XG4gICAgICB0aWNrZXQgPSBmcmVzaENvbXBpbGF0aW9uVGlja2V0KFxuICAgICAgICAgIHByb2dyYW0sIHRoaXMub3B0aW9ucywgdGhpcy5pbmNyZW1lbnRhbFN0cmF0ZWd5LCB0aGlzLnByb2dyYW1TdHJhdGVneSxcbiAgICAgICAgICAvKiBwZXJmUmVjb3JkZXIgKi8gbnVsbCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRpY2tldCA9IGluY3JlbWVudGFsRnJvbUNvbXBpbGVyVGlja2V0KFxuICAgICAgICAgIHRoaXMuY29tcGlsZXIsIHByb2dyYW0sIHRoaXMuaW5jcmVtZW50YWxTdHJhdGVneSwgdGhpcy5wcm9ncmFtU3RyYXRlZ3ksXG4gICAgICAgICAgbW9kaWZpZWRSZXNvdXJjZUZpbGVzLCAvKiBwZXJmUmVjb3JkZXIgKi8gbnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGlsZXIgPSBOZ0NvbXBpbGVyLmZyb21UaWNrZXQodGlja2V0LCB0aGlzLmFkYXB0ZXIpO1xuICAgIHRoaXMubGFzdEtub3duUHJvZ3JhbSA9IHByb2dyYW07XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXI7XG4gIH1cblxuICByZWdpc3Rlckxhc3RLbm93blByb2dyYW0oKSB7XG4gICAgdGhpcy5sYXN0S25vd25Qcm9ncmFtID0gdGhpcy5wcm9ncmFtU3RyYXRlZ3kuZ2V0UHJvZ3JhbSgpO1xuICB9XG59XG4iXX0=
|
package/ivy/completions.d.ts
CHANGED
|
@@ -100,4 +100,9 @@ export declare class CompletionBuilder<N extends TmplAstNode | AST> {
|
|
|
100
100
|
private getElementAttributeCompletionSymbol;
|
|
101
101
|
private isPipeCompletion;
|
|
102
102
|
private getPipeCompletions;
|
|
103
|
+
/**
|
|
104
|
+
* From the AST node of the cursor position, include completion of string literals, number
|
|
105
|
+
* literals, `true`, `false`, `null`, and `undefined`.
|
|
106
|
+
*/
|
|
107
|
+
private isValidNodeContextCompletion;
|
|
103
108
|
}
|