@angular/core 15.1.0-next.3 → 15.1.0-rc.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.
Files changed (74) hide show
  1. package/esm2020/src/application_ref.mjs +2 -2
  2. package/esm2020/src/di/injector_compatibility.mjs +2 -2
  3. package/esm2020/src/errors.mjs +1 -1
  4. package/esm2020/src/linker/view_ref.mjs +1 -1
  5. package/esm2020/src/render3/i18n/i18n_parse.mjs +17 -2
  6. package/esm2020/src/util/global.mjs +1 -1
  7. package/esm2020/src/version.mjs +1 -1
  8. package/esm2020/testing/src/component_fixture.mjs +1 -1
  9. package/esm2020/testing/src/logger.mjs +7 -7
  10. package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
  11. package/fesm2015/core.mjs +101 -1558
  12. package/fesm2015/core.mjs.map +1 -1
  13. package/fesm2015/testing.mjs +78 -1333
  14. package/fesm2015/testing.mjs.map +1 -1
  15. package/fesm2020/core.mjs +103 -1582
  16. package/fesm2020/core.mjs.map +1 -1
  17. package/fesm2020/testing.mjs +80 -1357
  18. package/fesm2020/testing.mjs.map +1 -1
  19. package/index.d.ts +3 -3
  20. package/package.json +1 -1
  21. package/schematics/migrations/relative-link-resolution/bundle.js +265 -0
  22. package/schematics/migrations/relative-link-resolution/bundle.js.map +7 -0
  23. package/schematics/migrations/relative-link-resolution/bundle_metadata.json +1 -0
  24. package/schematics/migrations/router-link-with-href/bundle.js +350 -0
  25. package/schematics/migrations/router-link-with-href/bundle.js.map +7 -0
  26. package/schematics/migrations/router-link-with-href/bundle_metadata.json +1 -0
  27. package/schematics/migrations.json +2 -2
  28. package/testing/index.d.ts +1 -1
  29. package/esm2020/src/render3/util/debug_utils.mjs +0 -40
  30. package/esm2020/testing/src/lang_utils.mjs +0 -14
  31. package/schematics/migrations/relative-link-resolution/index.d.ts +0 -10
  32. package/schematics/migrations/relative-link-resolution/index.js +0 -68
  33. package/schematics/migrations/relative-link-resolution/util.d.ts +0 -20
  34. package/schematics/migrations/relative-link-resolution/util.js +0 -82
  35. package/schematics/migrations/router-link-with-href/index.d.ts +0 -10
  36. package/schematics/migrations/router-link-with-href/index.js +0 -70
  37. package/schematics/migrations/router-link-with-href/util.d.ts +0 -19
  38. package/schematics/migrations/router-link-with-href/util.js +0 -111
  39. package/schematics/utils/import_manager.d.ts +0 -57
  40. package/schematics/utils/import_manager.js +0 -234
  41. package/schematics/utils/line_mappings.d.ts +0 -18
  42. package/schematics/utils/line_mappings.js +0 -75
  43. package/schematics/utils/load_esm.d.ts +0 -32
  44. package/schematics/utils/load_esm.js +0 -79
  45. package/schematics/utils/ng_component_template.d.ts +0 -44
  46. package/schematics/utils/ng_component_template.js +0 -131
  47. package/schematics/utils/ng_decorators.d.ts +0 -23
  48. package/schematics/utils/ng_decorators.js +0 -37
  49. package/schematics/utils/parse_html.d.ts +0 -14
  50. package/schematics/utils/parse_html.js +0 -37
  51. package/schematics/utils/project_tsconfig_paths.d.ts +0 -17
  52. package/schematics/utils/project_tsconfig_paths.js +0 -122
  53. package/schematics/utils/template_ast_visitor.d.ts +0 -55
  54. package/schematics/utils/template_ast_visitor.js +0 -73
  55. package/schematics/utils/typescript/class_declaration.d.ts +0 -15
  56. package/schematics/utils/typescript/class_declaration.js +0 -52
  57. package/schematics/utils/typescript/compiler_host.d.ts +0 -34
  58. package/schematics/utils/typescript/compiler_host.js +0 -85
  59. package/schematics/utils/typescript/decorators.d.ts +0 -11
  60. package/schematics/utils/typescript/decorators.js +0 -37
  61. package/schematics/utils/typescript/find_base_classes.d.ts +0 -14
  62. package/schematics/utils/typescript/find_base_classes.js +0 -47
  63. package/schematics/utils/typescript/functions.d.ts +0 -17
  64. package/schematics/utils/typescript/functions.js +0 -46
  65. package/schematics/utils/typescript/imports.d.ts +0 -53
  66. package/schematics/utils/typescript/imports.js +0 -128
  67. package/schematics/utils/typescript/nodes.d.ts +0 -20
  68. package/schematics/utils/typescript/nodes.js +0 -77
  69. package/schematics/utils/typescript/parse_tsconfig.d.ts +0 -10
  70. package/schematics/utils/typescript/parse_tsconfig.js +0 -66
  71. package/schematics/utils/typescript/property_name.d.ts +0 -19
  72. package/schematics/utils/typescript/property_name.js +0 -41
  73. package/schematics/utils/typescript/symbol.d.ts +0 -19
  74. package/schematics/utils/typescript/symbol.js +0 -93
@@ -1,77 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- (function (factory) {
12
- if (typeof module === "object" && typeof module.exports === "object") {
13
- var v = factory(require, exports);
14
- if (v !== undefined) module.exports = v;
15
- }
16
- else if (typeof define === "function" && define.amd) {
17
- define("@angular/core/schematics/utils/typescript/nodes", ["require", "exports", "typescript"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.isSafeAccess = exports.isNullCheck = exports.closestNode = exports.hasModifier = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- /** Checks whether the given TypeScript node has the specified modifier set. */
25
- function hasModifier(node, modifierKind) {
26
- return !!node.modifiers && node.modifiers.some(m => m.kind === modifierKind);
27
- }
28
- exports.hasModifier = hasModifier;
29
- /** Find the closest parent node of a particular kind. */
30
- function closestNode(node, kind) {
31
- let current = node;
32
- while (current && !typescript_1.default.isSourceFile(current)) {
33
- if (current.kind === kind) {
34
- return current;
35
- }
36
- current = current.parent;
37
- }
38
- return null;
39
- }
40
- exports.closestNode = closestNode;
41
- /**
42
- * Checks whether a particular node is part of a null check. E.g. given:
43
- * `foo.bar ? foo.bar.value : null` the null check would be `foo.bar`.
44
- */
45
- function isNullCheck(node) {
46
- if (!node.parent) {
47
- return false;
48
- }
49
- // `foo.bar && foo.bar.value` where `node` is `foo.bar`.
50
- if (typescript_1.default.isBinaryExpression(node.parent) && node.parent.left === node) {
51
- return true;
52
- }
53
- // `foo.bar && foo.bar.parent && foo.bar.parent.value`
54
- // where `node` is `foo.bar`.
55
- if (node.parent.parent && typescript_1.default.isBinaryExpression(node.parent.parent) &&
56
- node.parent.parent.left === node.parent) {
57
- return true;
58
- }
59
- // `if (foo.bar) {...}` where `node` is `foo.bar`.
60
- if (typescript_1.default.isIfStatement(node.parent) && node.parent.expression === node) {
61
- return true;
62
- }
63
- // `foo.bar ? foo.bar.value : null` where `node` is `foo.bar`.
64
- if (typescript_1.default.isConditionalExpression(node.parent) && node.parent.condition === node) {
65
- return true;
66
- }
67
- return false;
68
- }
69
- exports.isNullCheck = isNullCheck;
70
- /** Checks whether a property access is safe (e.g. `foo.parent?.value`). */
71
- function isSafeAccess(node) {
72
- return node.parent != null && typescript_1.default.isPropertyAccessExpression(node.parent) &&
73
- node.parent.expression === node && node.parent.questionDotToken != null;
74
- }
75
- exports.isSafeAccess = isSafeAccess;
76
- });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvdXRpbHMvdHlwZXNjcmlwdC9ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCw0REFBNEI7SUFFNUIsK0VBQStFO0lBQy9FLFNBQWdCLFdBQVcsQ0FBQyxJQUFhLEVBQUUsWUFBMkI7UUFDcEUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUZELGtDQUVDO0lBRUQseURBQXlEO0lBQ3pELFNBQWdCLFdBQVcsQ0FBb0IsSUFBYSxFQUFFLElBQW1CO1FBQy9FLElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztRQUU1QixPQUFPLE9BQU8sSUFBSSxDQUFDLG9CQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ3pCLE9BQU8sT0FBWSxDQUFDO2FBQ3JCO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFYRCxrQ0FXQztJQUVEOzs7T0FHRztJQUNILFNBQWdCLFdBQVcsQ0FBQyxJQUFhO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCx3REFBd0Q7UUFDeEQsSUFBSSxvQkFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELHNEQUFzRDtRQUN0RCw2QkFBNkI7UUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxvQkFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxrREFBa0Q7UUFDbEQsSUFBSSxvQkFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCw4REFBOEQ7UUFDOUQsSUFBSSxvQkFBRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDN0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQTVCRCxrQ0E0QkM7SUFFRCwyRUFBMkU7SUFDM0UsU0FBZ0IsWUFBWSxDQUFDLElBQWE7UUFDeEMsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxvQkFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO0lBQzlFLENBQUM7SUFIRCxvQ0FHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gVHlwZVNjcmlwdCBub2RlIGhhcyB0aGUgc3BlY2lmaWVkIG1vZGlmaWVyIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNNb2RpZmllcihub2RlOiB0cy5Ob2RlLCBtb2RpZmllcktpbmQ6IHRzLlN5bnRheEtpbmQpIHtcbiAgcmV0dXJuICEhbm9kZS5tb2RpZmllcnMgJiYgbm9kZS5tb2RpZmllcnMuc29tZShtID0+IG0ua2luZCA9PT0gbW9kaWZpZXJLaW5kKTtcbn1cblxuLyoqIEZpbmQgdGhlIGNsb3Nlc3QgcGFyZW50IG5vZGUgb2YgYSBwYXJ0aWN1bGFyIGtpbmQuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VzdE5vZGU8VCBleHRlbmRzIHRzLk5vZGU+KG5vZGU6IHRzLk5vZGUsIGtpbmQ6IHRzLlN5bnRheEtpbmQpOiBUfG51bGwge1xuICBsZXQgY3VycmVudDogdHMuTm9kZSA9IG5vZGU7XG5cbiAgd2hpbGUgKGN1cnJlbnQgJiYgIXRzLmlzU291cmNlRmlsZShjdXJyZW50KSkge1xuICAgIGlmIChjdXJyZW50LmtpbmQgPT09IGtpbmQpIHtcbiAgICAgIHJldHVybiBjdXJyZW50IGFzIFQ7XG4gICAgfVxuICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGFydGljdWxhciBub2RlIGlzIHBhcnQgb2YgYSBudWxsIGNoZWNrLiBFLmcuIGdpdmVuOlxuICogYGZvby5iYXIgPyBmb28uYmFyLnZhbHVlIDogbnVsbGAgdGhlIG51bGwgY2hlY2sgd291bGQgYmUgYGZvby5iYXJgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsQ2hlY2sobm9kZTogdHMuTm9kZSk6IGJvb2xlYW4ge1xuICBpZiAoIW5vZGUucGFyZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gYGZvby5iYXIgJiYgZm9vLmJhci52YWx1ZWAgd2hlcmUgYG5vZGVgIGlzIGBmb28uYmFyYC5cbiAgaWYgKHRzLmlzQmluYXJ5RXhwcmVzc2lvbihub2RlLnBhcmVudCkgJiYgbm9kZS5wYXJlbnQubGVmdCA9PT0gbm9kZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gYGZvby5iYXIgJiYgZm9vLmJhci5wYXJlbnQgJiYgZm9vLmJhci5wYXJlbnQudmFsdWVgXG4gIC8vIHdoZXJlIGBub2RlYCBpcyBgZm9vLmJhcmAuXG4gIGlmIChub2RlLnBhcmVudC5wYXJlbnQgJiYgdHMuaXNCaW5hcnlFeHByZXNzaW9uKG5vZGUucGFyZW50LnBhcmVudCkgJiZcbiAgICAgIG5vZGUucGFyZW50LnBhcmVudC5sZWZ0ID09PSBub2RlLnBhcmVudCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gYGlmIChmb28uYmFyKSB7Li4ufWAgd2hlcmUgYG5vZGVgIGlzIGBmb28uYmFyYC5cbiAgaWYgKHRzLmlzSWZTdGF0ZW1lbnQobm9kZS5wYXJlbnQpICYmIG5vZGUucGFyZW50LmV4cHJlc3Npb24gPT09IG5vZGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGBmb28uYmFyID8gZm9vLmJhci52YWx1ZSA6IG51bGxgIHdoZXJlIGBub2RlYCBpcyBgZm9vLmJhcmAuXG4gIGlmICh0cy5pc0NvbmRpdGlvbmFsRXhwcmVzc2lvbihub2RlLnBhcmVudCkgJiYgbm9kZS5wYXJlbnQuY29uZGl0aW9uID09PSBub2RlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciBhIHByb3BlcnR5IGFjY2VzcyBpcyBzYWZlIChlLmcuIGBmb28ucGFyZW50Py52YWx1ZWApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FmZUFjY2Vzcyhub2RlOiB0cy5Ob2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiBub2RlLnBhcmVudCAhPSBudWxsICYmIHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUucGFyZW50KSAmJlxuICAgICAgbm9kZS5wYXJlbnQuZXhwcmVzc2lvbiA9PT0gbm9kZSAmJiBub2RlLnBhcmVudC5xdWVzdGlvbkRvdFRva2VuICE9IG51bGw7XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/utils/typescript/parse_tsconfig" />
9
- import ts from 'typescript';
10
- export declare function parseTsconfigFile(tsconfigPath: string, basePath: string): ts.ParsedCommandLine;
@@ -1,66 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- (function (factory) {
35
- if (typeof module === "object" && typeof module.exports === "object") {
36
- var v = factory(require, exports);
37
- if (v !== undefined) module.exports = v;
38
- }
39
- else if (typeof define === "function" && define.amd) {
40
- define("@angular/core/schematics/utils/typescript/parse_tsconfig", ["require", "exports", "path", "typescript"], factory);
41
- }
42
- })(function (require, exports) {
43
- "use strict";
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.parseTsconfigFile = void 0;
46
- const path = __importStar(require("path"));
47
- const typescript_1 = __importDefault(require("typescript"));
48
- function parseTsconfigFile(tsconfigPath, basePath) {
49
- const { config } = typescript_1.default.readConfigFile(tsconfigPath, typescript_1.default.sys.readFile);
50
- const parseConfigHost = {
51
- useCaseSensitiveFileNames: typescript_1.default.sys.useCaseSensitiveFileNames,
52
- fileExists: typescript_1.default.sys.fileExists,
53
- readDirectory: typescript_1.default.sys.readDirectory,
54
- readFile: typescript_1.default.sys.readFile,
55
- };
56
- // Throw if incorrect arguments are passed to this function. Passing relative base paths
57
- // results in root directories not being resolved and in later type checking runtime errors.
58
- // More details can be found here: https://github.com/microsoft/TypeScript/issues/37731.
59
- if (!path.isAbsolute(basePath)) {
60
- throw Error('Unexpected relative base path has been specified.');
61
- }
62
- return typescript_1.default.parseJsonConfigFileContent(config, parseConfigHost, basePath, {});
63
- }
64
- exports.parseTsconfigFile = parseTsconfigFile;
65
- });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdHNjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvdXRpbHMvdHlwZXNjcmlwdC9wYXJzZV90c2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDJDQUE2QjtJQUM3Qiw0REFBNEI7SUFFNUIsU0FBZ0IsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxRQUFnQjtRQUN0RSxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsb0JBQUUsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLG9CQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLHlCQUF5QixFQUFFLG9CQUFFLENBQUMsR0FBRyxDQUFDLHlCQUF5QjtZQUMzRCxVQUFVLEVBQUUsb0JBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVTtZQUM3QixhQUFhLEVBQUUsb0JBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNuQyxRQUFRLEVBQUUsb0JBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUTtTQUMxQixDQUFDO1FBRUYsd0ZBQXdGO1FBQ3hGLDRGQUE0RjtRQUM1Rix3RkFBd0Y7UUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztTQUNsRTtRQUVELE9BQU8sb0JBQUUsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBakJELDhDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUc2NvbmZpZ0ZpbGUodHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpOiB0cy5QYXJzZWRDb21tYW5kTGluZSB7XG4gIGNvbnN0IHtjb25maWd9ID0gdHMucmVhZENvbmZpZ0ZpbGUodHNjb25maWdQYXRoLCB0cy5zeXMucmVhZEZpbGUpO1xuICBjb25zdCBwYXJzZUNvbmZpZ0hvc3QgPSB7XG4gICAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczogdHMuc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMsXG4gICAgZmlsZUV4aXN0czogdHMuc3lzLmZpbGVFeGlzdHMsXG4gICAgcmVhZERpcmVjdG9yeTogdHMuc3lzLnJlYWREaXJlY3RvcnksXG4gICAgcmVhZEZpbGU6IHRzLnN5cy5yZWFkRmlsZSxcbiAgfTtcblxuICAvLyBUaHJvdyBpZiBpbmNvcnJlY3QgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbi4gUGFzc2luZyByZWxhdGl2ZSBiYXNlIHBhdGhzXG4gIC8vIHJlc3VsdHMgaW4gcm9vdCBkaXJlY3RvcmllcyBub3QgYmVpbmcgcmVzb2x2ZWQgYW5kIGluIGxhdGVyIHR5cGUgY2hlY2tpbmcgcnVudGltZSBlcnJvcnMuXG4gIC8vIE1vcmUgZGV0YWlscyBjYW4gYmUgZm91bmQgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zNzczMS5cbiAgaWYgKCFwYXRoLmlzQWJzb2x1dGUoYmFzZVBhdGgpKSB7XG4gICAgdGhyb3cgRXJyb3IoJ1VuZXhwZWN0ZWQgcmVsYXRpdmUgYmFzZSBwYXRoIGhhcyBiZWVuIHNwZWNpZmllZC4nKTtcbiAgfVxuXG4gIHJldHVybiB0cy5wYXJzZUpzb25Db25maWdGaWxlQ29udGVudChjb25maWcsIHBhcnNlQ29uZmlnSG9zdCwgYmFzZVBhdGgsIHt9KTtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/utils/typescript/property_name" />
9
- import ts from 'typescript';
10
- /** Type that describes a property name with an obtainable text. */
11
- type PropertyNameWithText = Exclude<ts.PropertyName, ts.ComputedPropertyName>;
12
- /**
13
- * Gets the text of the given property name. Returns null if the property
14
- * name couldn't be determined statically.
15
- */
16
- export declare function getPropertyNameText(node: ts.PropertyName): string | null;
17
- /** Checks whether the given property name has a text. */
18
- export declare function hasPropertyNameText(node: ts.PropertyName): node is PropertyNameWithText;
19
- export {};
@@ -1,41 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- (function (factory) {
12
- if (typeof module === "object" && typeof module.exports === "object") {
13
- var v = factory(require, exports);
14
- if (v !== undefined) module.exports = v;
15
- }
16
- else if (typeof define === "function" && define.amd) {
17
- define("@angular/core/schematics/utils/typescript/property_name", ["require", "exports", "typescript"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.hasPropertyNameText = exports.getPropertyNameText = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- /**
25
- * Gets the text of the given property name. Returns null if the property
26
- * name couldn't be determined statically.
27
- */
28
- function getPropertyNameText(node) {
29
- if (typescript_1.default.isIdentifier(node) || typescript_1.default.isStringLiteralLike(node)) {
30
- return node.text;
31
- }
32
- return null;
33
- }
34
- exports.getPropertyNameText = getPropertyNameText;
35
- /** Checks whether the given property name has a text. */
36
- function hasPropertyNameText(node) {
37
- return typescript_1.default.isStringLiteral(node) || typescript_1.default.isNumericLiteral(node) || typescript_1.default.isIdentifier(node);
38
- }
39
- exports.hasPropertyNameText = hasPropertyNameText;
40
- });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHlfbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy91dGlscy90eXBlc2NyaXB0L3Byb3BlcnR5X25hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7O0lBRUgsNERBQTRCO0lBSzVCOzs7T0FHRztJQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQXFCO1FBQ3ZELElBQUksb0JBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFMRCxrREFLQztJQUVELHlEQUF5RDtJQUN6RCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFxQjtRQUN2RCxPQUFPLG9CQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUZELGtEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqIFR5cGUgdGhhdCBkZXNjcmliZXMgYSBwcm9wZXJ0eSBuYW1lIHdpdGggYW4gb2J0YWluYWJsZSB0ZXh0LiAqL1xudHlwZSBQcm9wZXJ0eU5hbWVXaXRoVGV4dCA9IEV4Y2x1ZGU8dHMuUHJvcGVydHlOYW1lLCB0cy5Db21wdXRlZFByb3BlcnR5TmFtZT47XG5cbi8qKlxuICogR2V0cyB0aGUgdGV4dCBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZS4gUmV0dXJucyBudWxsIGlmIHRoZSBwcm9wZXJ0eVxuICogbmFtZSBjb3VsZG4ndCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWVUZXh0KG5vZGU6IHRzLlByb3BlcnR5TmFtZSk6IHN0cmluZ3xudWxsIHtcbiAgaWYgKHRzLmlzSWRlbnRpZmllcihub2RlKSB8fCB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKG5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUudGV4dDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGhhcyBhIHRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUHJvcGVydHlOYW1lVGV4dChub2RlOiB0cy5Qcm9wZXJ0eU5hbWUpOiBub2RlIGlzIFByb3BlcnR5TmFtZVdpdGhUZXh0IHtcbiAgcmV0dXJuIHRzLmlzU3RyaW5nTGl0ZXJhbChub2RlKSB8fCB0cy5pc051bWVyaWNMaXRlcmFsKG5vZGUpIHx8IHRzLmlzSWRlbnRpZmllcihub2RlKTtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/utils/typescript/symbol" />
9
- import ts from 'typescript';
10
- export declare function getValueSymbolOfDeclaration(node: ts.Node, typeChecker: ts.TypeChecker): ts.Symbol | undefined;
11
- /** Checks whether a node is referring to a specific import specifier. */
12
- export declare function isReferenceToImport(typeChecker: ts.TypeChecker, node: ts.Node, importSpecifier: ts.ImportSpecifier): boolean;
13
- /** Checks whether a node's type is nullable (`null`, `undefined` or `void`). */
14
- export declare function isNullableType(typeChecker: ts.TypeChecker, node: ts.Node): boolean;
15
- /**
16
- * Walks through the types and sub-types of a node, looking for a
17
- * type that has the same name as one of the passed-in ones.
18
- */
19
- export declare function hasOneOfTypes(typeChecker: ts.TypeChecker, node: ts.Node, types: string[]): boolean;
@@ -1,93 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- (function (factory) {
12
- if (typeof module === "object" && typeof module.exports === "object") {
13
- var v = factory(require, exports);
14
- if (v !== undefined) module.exports = v;
15
- }
16
- else if (typeof define === "function" && define.amd) {
17
- define("@angular/core/schematics/utils/typescript/symbol", ["require", "exports", "typescript"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.hasOneOfTypes = exports.isNullableType = exports.isReferenceToImport = exports.getValueSymbolOfDeclaration = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- function getValueSymbolOfDeclaration(node, typeChecker) {
25
- let symbol = typeChecker.getSymbolAtLocation(node);
26
- while (symbol && symbol.flags & typescript_1.default.SymbolFlags.Alias) {
27
- symbol = typeChecker.getAliasedSymbol(symbol);
28
- }
29
- return symbol;
30
- }
31
- exports.getValueSymbolOfDeclaration = getValueSymbolOfDeclaration;
32
- /** Checks whether a node is referring to a specific import specifier. */
33
- function isReferenceToImport(typeChecker, node, importSpecifier) {
34
- var _a, _b;
35
- const nodeSymbol = typeChecker.getTypeAtLocation(node).getSymbol();
36
- const importSymbol = typeChecker.getTypeAtLocation(importSpecifier).getSymbol();
37
- return !!(((_a = nodeSymbol === null || nodeSymbol === void 0 ? void 0 : nodeSymbol.declarations) === null || _a === void 0 ? void 0 : _a[0]) && ((_b = importSymbol === null || importSymbol === void 0 ? void 0 : importSymbol.declarations) === null || _b === void 0 ? void 0 : _b[0])) &&
38
- nodeSymbol.declarations[0] === importSymbol.declarations[0];
39
- }
40
- exports.isReferenceToImport = isReferenceToImport;
41
- /** Checks whether a node's type is nullable (`null`, `undefined` or `void`). */
42
- function isNullableType(typeChecker, node) {
43
- // Skip expressions in the form of `foo.bar!.baz` since the `TypeChecker` seems
44
- // to identify them as null, even though the user indicated that it won't be.
45
- if (node.parent && typescript_1.default.isNonNullExpression(node.parent)) {
46
- return false;
47
- }
48
- const type = typeChecker.getTypeAtLocation(node);
49
- const typeNode = typeChecker.typeToTypeNode(type, undefined, typescript_1.default.NodeBuilderFlags.None);
50
- let hasSeenNullableType = false;
51
- // Trace the type of the node back to a type node, walk
52
- // through all of its sub-nodes and look for nullable types.
53
- if (typeNode) {
54
- (function walk(current) {
55
- if (current.kind === typescript_1.default.SyntaxKind.NullKeyword ||
56
- current.kind === typescript_1.default.SyntaxKind.UndefinedKeyword ||
57
- current.kind === typescript_1.default.SyntaxKind.VoidKeyword) {
58
- hasSeenNullableType = true;
59
- // Note that we don't descend into type literals, because it may cause
60
- // us to mis-identify the root type as nullable, because it has a nullable
61
- // property (e.g. `{ foo: string | null }`).
62
- }
63
- else if (!hasSeenNullableType && !typescript_1.default.isTypeLiteralNode(current)) {
64
- current.forEachChild(walk);
65
- }
66
- })(typeNode);
67
- }
68
- return hasSeenNullableType;
69
- }
70
- exports.isNullableType = isNullableType;
71
- /**
72
- * Walks through the types and sub-types of a node, looking for a
73
- * type that has the same name as one of the passed-in ones.
74
- */
75
- function hasOneOfTypes(typeChecker, node, types) {
76
- const type = typeChecker.getTypeAtLocation(node);
77
- const typeNode = type ? typeChecker.typeToTypeNode(type, undefined, typescript_1.default.NodeBuilderFlags.None) : undefined;
78
- let hasMatch = false;
79
- if (typeNode) {
80
- (function walk(current) {
81
- if (typescript_1.default.isIdentifier(current) && types.includes(current.text)) {
82
- hasMatch = true;
83
- }
84
- else if (!hasMatch && !typescript_1.default.isTypeLiteralNode(current)) {
85
- current.forEachChild(walk);
86
- }
87
- })(typeNode);
88
- }
89
- return hasMatch;
90
- }
91
- exports.hasOneOfTypes = hasOneOfTypes;
92
- });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL3V0aWxzL3R5cGVzY3JpcHQvc3ltYm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDREQUE0QjtJQUU1QixTQUFnQiwyQkFBMkIsQ0FBQyxJQUFhLEVBQUUsV0FBMkI7UUFFcEYsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsb0JBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BELE1BQU0sR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0M7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBVEQsa0VBU0M7SUFFRCx5RUFBeUU7SUFDekUsU0FBZ0IsbUJBQW1CLENBQy9CLFdBQTJCLEVBQUUsSUFBYSxFQUFFLGVBQW1DOztRQUNqRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkUsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxZQUFZLDBDQUFHLENBQUMsQ0FBQyxNQUFJLE1BQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLFlBQVksMENBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN2RSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQU5ELGtEQU1DO0lBRUQsZ0ZBQWdGO0lBQ2hGLFNBQWdCLGNBQWMsQ0FBQyxXQUEyQixFQUFFLElBQWE7UUFDdkUsK0VBQStFO1FBQy9FLDZFQUE2RTtRQUM3RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksb0JBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsb0JBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RixJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUVoQyx1REFBdUQ7UUFDdkQsNERBQTREO1FBQzVELElBQUksUUFBUSxFQUFFO1lBQ1osQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFnQjtnQkFDN0IsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLG9CQUFFLENBQUMsVUFBVSxDQUFDLFdBQVc7b0JBQzFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssb0JBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO29CQUMvQyxPQUFPLENBQUMsSUFBSSxLQUFLLG9CQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRTtvQkFDOUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO29CQUMzQixzRUFBc0U7b0JBQ3RFLDBFQUEwRTtvQkFDMUUsNENBQTRDO2lCQUM3QztxQkFBTSxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxvQkFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqRSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUE3QkQsd0NBNkJDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsYUFBYSxDQUN6QixXQUEyQixFQUFFLElBQWEsRUFBRSxLQUFlO1FBQzdELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FDVixJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxvQkFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0YsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksUUFBUSxFQUFFO1lBQ1osQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFnQjtnQkFDN0IsSUFBSSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDNUQsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDakI7cUJBQU0sSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3RELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzVCO1lBQ0gsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDZDtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFoQkQsc0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlU3ltYm9sT2ZEZWNsYXJhdGlvbihub2RlOiB0cy5Ob2RlLCB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIpOiB0cy5TeW1ib2x8XG4gICAgdW5kZWZpbmVkIHtcbiAgbGV0IHN5bWJvbCA9IHR5cGVDaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24obm9kZSk7XG5cbiAgd2hpbGUgKHN5bWJvbCAmJiBzeW1ib2wuZmxhZ3MgJiB0cy5TeW1ib2xGbGFncy5BbGlhcykge1xuICAgIHN5bWJvbCA9IHR5cGVDaGVja2VyLmdldEFsaWFzZWRTeW1ib2woc3ltYm9sKTtcbiAgfVxuXG4gIHJldHVybiBzeW1ib2w7XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaXMgcmVmZXJyaW5nIHRvIGEgc3BlY2lmaWMgaW1wb3J0IHNwZWNpZmllci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZVRvSW1wb3J0KFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuTm9kZSwgaW1wb3J0U3BlY2lmaWVyOiB0cy5JbXBvcnRTcGVjaWZpZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgbm9kZVN5bWJvbCA9IHR5cGVDaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKG5vZGUpLmdldFN5bWJvbCgpO1xuICBjb25zdCBpbXBvcnRTeW1ib2wgPSB0eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihpbXBvcnRTcGVjaWZpZXIpLmdldFN5bWJvbCgpO1xuICByZXR1cm4gISEobm9kZVN5bWJvbD8uZGVjbGFyYXRpb25zPy5bMF0gJiYgaW1wb3J0U3ltYm9sPy5kZWNsYXJhdGlvbnM/LlswXSkgJiZcbiAgICAgIG5vZGVTeW1ib2wuZGVjbGFyYXRpb25zWzBdID09PSBpbXBvcnRTeW1ib2wuZGVjbGFyYXRpb25zWzBdO1xufVxuXG4vKiogQ2hlY2tzIHdoZXRoZXIgYSBub2RlJ3MgdHlwZSBpcyBudWxsYWJsZSAoYG51bGxgLCBgdW5kZWZpbmVkYCBvciBgdm9pZGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbGFibGVUeXBlKHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuTm9kZSkge1xuICAvLyBTa2lwIGV4cHJlc3Npb25zIGluIHRoZSBmb3JtIG9mIGBmb28uYmFyIS5iYXpgIHNpbmNlIHRoZSBgVHlwZUNoZWNrZXJgIHNlZW1zXG4gIC8vIHRvIGlkZW50aWZ5IHRoZW0gYXMgbnVsbCwgZXZlbiB0aG91Z2ggdGhlIHVzZXIgaW5kaWNhdGVkIHRoYXQgaXQgd29uJ3QgYmUuXG4gIGlmIChub2RlLnBhcmVudCAmJiB0cy5pc05vbk51bGxFeHByZXNzaW9uKG5vZGUucGFyZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHR5cGUgPSB0eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihub2RlKTtcbiAgY29uc3QgdHlwZU5vZGUgPSB0eXBlQ2hlY2tlci50eXBlVG9UeXBlTm9kZSh0eXBlLCB1bmRlZmluZWQsIHRzLk5vZGVCdWlsZGVyRmxhZ3MuTm9uZSk7XG4gIGxldCBoYXNTZWVuTnVsbGFibGVUeXBlID0gZmFsc2U7XG5cbiAgLy8gVHJhY2UgdGhlIHR5cGUgb2YgdGhlIG5vZGUgYmFjayB0byBhIHR5cGUgbm9kZSwgd2Fsa1xuICAvLyB0aHJvdWdoIGFsbCBvZiBpdHMgc3ViLW5vZGVzIGFuZCBsb29rIGZvciBudWxsYWJsZSB0eXBlcy5cbiAgaWYgKHR5cGVOb2RlKSB7XG4gICAgKGZ1bmN0aW9uIHdhbGsoY3VycmVudDogdHMuTm9kZSkge1xuICAgICAgaWYgKGN1cnJlbnQua2luZCA9PT0gdHMuU3ludGF4S2luZC5OdWxsS2V5d29yZCB8fFxuICAgICAgICAgIGN1cnJlbnQua2luZCA9PT0gdHMuU3ludGF4S2luZC5VbmRlZmluZWRLZXl3b3JkIHx8XG4gICAgICAgICAgY3VycmVudC5raW5kID09PSB0cy5TeW50YXhLaW5kLlZvaWRLZXl3b3JkKSB7XG4gICAgICAgIGhhc1NlZW5OdWxsYWJsZVR5cGUgPSB0cnVlO1xuICAgICAgICAvLyBOb3RlIHRoYXQgd2UgZG9uJ3QgZGVzY2VuZCBpbnRvIHR5cGUgbGl0ZXJhbHMsIGJlY2F1c2UgaXQgbWF5IGNhdXNlXG4gICAgICAgIC8vIHVzIHRvIG1pcy1pZGVudGlmeSB0aGUgcm9vdCB0eXBlIGFzIG51bGxhYmxlLCBiZWNhdXNlIGl0IGhhcyBhIG51bGxhYmxlXG4gICAgICAgIC8vIHByb3BlcnR5IChlLmcuIGB7IGZvbzogc3RyaW5nIHwgbnVsbCB9YCkuXG4gICAgICB9IGVsc2UgaWYgKCFoYXNTZWVuTnVsbGFibGVUeXBlICYmICF0cy5pc1R5cGVMaXRlcmFsTm9kZShjdXJyZW50KSkge1xuICAgICAgICBjdXJyZW50LmZvckVhY2hDaGlsZCh3YWxrKTtcbiAgICAgIH1cbiAgICB9KSh0eXBlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gaGFzU2Vlbk51bGxhYmxlVHlwZTtcbn1cblxuLyoqXG4gKiBXYWxrcyB0aHJvdWdoIHRoZSB0eXBlcyBhbmQgc3ViLXR5cGVzIG9mIGEgbm9kZSwgbG9va2luZyBmb3IgYVxuICogdHlwZSB0aGF0IGhhcyB0aGUgc2FtZSBuYW1lIGFzIG9uZSBvZiB0aGUgcGFzc2VkLWluIG9uZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNPbmVPZlR5cGVzKFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuTm9kZSwgdHlwZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihub2RlKTtcbiAgY29uc3QgdHlwZU5vZGUgPVxuICAgICAgdHlwZSA/IHR5cGVDaGVja2VyLnR5cGVUb1R5cGVOb2RlKHR5cGUsIHVuZGVmaW5lZCwgdHMuTm9kZUJ1aWxkZXJGbGFncy5Ob25lKSA6IHVuZGVmaW5lZDtcbiAgbGV0IGhhc01hdGNoID0gZmFsc2U7XG4gIGlmICh0eXBlTm9kZSkge1xuICAgIChmdW5jdGlvbiB3YWxrKGN1cnJlbnQ6IHRzLk5vZGUpIHtcbiAgICAgIGlmICh0cy5pc0lkZW50aWZpZXIoY3VycmVudCkgJiYgdHlwZXMuaW5jbHVkZXMoY3VycmVudC50ZXh0KSkge1xuICAgICAgICBoYXNNYXRjaCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKCFoYXNNYXRjaCAmJiAhdHMuaXNUeXBlTGl0ZXJhbE5vZGUoY3VycmVudCkpIHtcbiAgICAgICAgY3VycmVudC5mb3JFYWNoQ2hpbGQod2Fsayk7XG4gICAgICB9XG4gICAgfSkodHlwZU5vZGUpO1xuICB9XG4gIHJldHVybiBoYXNNYXRjaDtcbn1cbiJdfQ==