@angular/compiler-cli 9.0.0-rc.6 → 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.
Files changed (255) hide show
  1. package/ngcc/src/analysis/decoration_analyzer.d.ts +13 -26
  2. package/ngcc/src/analysis/decoration_analyzer.js +100 -134
  3. package/ngcc/src/analysis/migration_host.d.ts +5 -16
  4. package/ngcc/src/analysis/migration_host.js +20 -91
  5. package/ngcc/src/analysis/module_with_providers_analyzer.js +2 -2
  6. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +42 -0
  7. package/ngcc/src/analysis/ngcc_trait_compiler.js +107 -0
  8. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +0 -1
  9. package/ngcc/src/analysis/private_declarations_analyzer.js +4 -35
  10. package/ngcc/src/analysis/types.d.ts +6 -21
  11. package/ngcc/src/analysis/types.js +1 -1
  12. package/ngcc/src/analysis/util.d.ts +2 -5
  13. package/ngcc/src/analysis/util.js +11 -94
  14. package/ngcc/src/dependencies/commonjs_dependency_host.d.ts +1 -1
  15. package/ngcc/src/dependencies/commonjs_dependency_host.js +90 -39
  16. package/ngcc/src/dependencies/dependency_host.d.ts +7 -5
  17. package/ngcc/src/dependencies/dependency_host.js +12 -10
  18. package/ngcc/src/dependencies/dependency_resolver.d.ts +2 -1
  19. package/ngcc/src/dependencies/dependency_resolver.js +9 -4
  20. package/ngcc/src/dependencies/dts_dependency_host.d.ts +21 -0
  21. package/ngcc/src/dependencies/dts_dependency_host.js +34 -0
  22. package/ngcc/src/dependencies/esm_dependency_host.d.ts +8 -1
  23. package/ngcc/src/dependencies/esm_dependency_host.js +30 -22
  24. package/ngcc/src/dependencies/module_resolver.d.ts +1 -1
  25. package/ngcc/src/dependencies/module_resolver.js +1 -1
  26. package/ngcc/src/dependencies/umd_dependency_host.d.ts +1 -1
  27. package/ngcc/src/dependencies/umd_dependency_host.js +3 -3
  28. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.d.ts +2 -0
  29. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +49 -9
  30. package/ngcc/src/execution/cluster/executor.d.ts +3 -1
  31. package/ngcc/src/execution/cluster/executor.js +12 -7
  32. package/ngcc/src/execution/cluster/package_json_updater.js +3 -2
  33. package/ngcc/src/execution/cluster/worker.d.ts +3 -1
  34. package/ngcc/src/execution/cluster/worker.js +10 -7
  35. package/ngcc/src/execution/lock_file.d.ts +43 -0
  36. package/ngcc/src/execution/lock_file.js +129 -0
  37. package/ngcc/src/execution/single_process_executor.d.ts +3 -1
  38. package/ngcc/src/execution/single_process_executor.js +18 -15
  39. package/ngcc/src/execution/task_selection/base_task_queue.d.ts +1 -1
  40. package/ngcc/src/host/commonjs_host.d.ts +6 -18
  41. package/ngcc/src/host/commonjs_host.js +45 -81
  42. package/ngcc/src/host/commonjs_umd_utils.d.ts +73 -0
  43. package/ngcc/src/host/commonjs_umd_utils.js +109 -0
  44. package/ngcc/src/host/esm2015_host.d.ts +46 -14
  45. package/ngcc/src/host/esm2015_host.js +182 -55
  46. package/ngcc/src/host/esm5_host.js +3 -1
  47. package/ngcc/src/host/umd_host.d.ts +12 -5
  48. package/ngcc/src/host/umd_host.js +144 -92
  49. package/ngcc/src/main.js +65 -122
  50. package/ngcc/src/migrations/migration.d.ts +1 -0
  51. package/ngcc/src/migrations/migration.js +1 -1
  52. package/ngcc/src/packages/build_marker.d.ts +17 -8
  53. package/ngcc/src/packages/build_marker.js +61 -32
  54. package/ngcc/src/packages/entry_point_bundle.js +2 -2
  55. package/ngcc/src/packages/transformer.js +5 -6
  56. package/ngcc/src/rendering/commonjs_rendering_formatter.js +9 -5
  57. package/ngcc/src/rendering/dts_renderer.js +8 -5
  58. package/ngcc/src/rendering/esm_rendering_formatter.js +17 -5
  59. package/ngcc/src/rendering/renderer.js +4 -4
  60. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +18 -1
  61. package/ngcc/src/rendering/umd_rendering_formatter.js +69 -16
  62. package/ngcc/src/utils.d.ts +14 -0
  63. package/ngcc/src/utils.js +29 -1
  64. package/ngcc/src/writing/cleaning/cleaning_strategies.d.ts +45 -0
  65. package/ngcc/src/writing/cleaning/cleaning_strategies.js +77 -0
  66. package/ngcc/src/writing/cleaning/package_cleaner.d.ts +39 -0
  67. package/ngcc/src/writing/cleaning/package_cleaner.js +125 -0
  68. package/ngcc/src/writing/cleaning/utils.d.ts +16 -0
  69. package/ngcc/src/writing/cleaning/utils.js +29 -0
  70. package/ngcc/src/writing/in_place_file_writer.d.ts +1 -0
  71. package/ngcc/src/writing/in_place_file_writer.js +3 -2
  72. package/ngcc/src/writing/new_entry_point_file_writer.d.ts +2 -0
  73. package/ngcc/src/writing/new_entry_point_file_writer.js +5 -4
  74. package/ngcc/src/writing/package_json_updater.d.ts +24 -10
  75. package/ngcc/src/writing/package_json_updater.js +53 -10
  76. package/package.json +6 -5
  77. package/src/main.d.ts +2 -2
  78. package/src/metadata/symbols.d.ts +1 -1
  79. package/src/ngtsc/annotations/src/component.d.ts +58 -20
  80. package/src/ngtsc/annotations/src/component.js +149 -97
  81. package/src/ngtsc/annotations/src/diagnostics.d.ts +23 -0
  82. package/src/ngtsc/annotations/src/diagnostics.js +123 -0
  83. package/src/ngtsc/annotations/src/directive.d.ts +19 -8
  84. package/src/ngtsc/annotations/src/directive.js +41 -18
  85. package/src/ngtsc/annotations/src/injectable.d.ts +8 -4
  86. package/src/ngtsc/annotations/src/injectable.js +7 -3
  87. package/src/ngtsc/annotations/src/ng_module.d.ts +22 -7
  88. package/src/ngtsc/annotations/src/ng_module.js +115 -52
  89. package/src/ngtsc/annotations/src/pipe.d.ts +12 -6
  90. package/src/ngtsc/annotations/src/pipe.js +22 -5
  91. package/src/ngtsc/annotations/src/util.d.ts +22 -0
  92. package/src/ngtsc/annotations/src/util.js +92 -3
  93. package/src/ngtsc/core/api.d.ts +368 -0
  94. package/src/ngtsc/core/api.js +20 -0
  95. package/src/ngtsc/core/index.d.ts +10 -0
  96. package/src/ngtsc/core/index.js +24 -0
  97. package/src/ngtsc/core/src/compiler.d.ts +120 -0
  98. package/src/ngtsc/core/src/compiler.js +769 -0
  99. package/src/ngtsc/core/src/host.d.ts +85 -0
  100. package/src/ngtsc/core/src/host.js +208 -0
  101. package/src/ngtsc/cycles/src/imports.js +2 -2
  102. package/src/ngtsc/diagnostics/index.d.ts +1 -1
  103. package/src/ngtsc/diagnostics/index.js +5 -5
  104. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  105. package/src/ngtsc/diagnostics/src/error.js +1 -1
  106. package/src/ngtsc/diagnostics/src/{code.d.ts → error_code.d.ts} +27 -4
  107. package/src/ngtsc/diagnostics/src/error_code.js +128 -0
  108. package/src/ngtsc/file_system/src/cached_file_system.d.ts +3 -1
  109. package/src/ngtsc/file_system/src/cached_file_system.js +48 -4
  110. package/src/ngtsc/file_system/src/invalid_file_system.d.ts +3 -1
  111. package/src/ngtsc/file_system/src/invalid_file_system.js +4 -2
  112. package/src/ngtsc/file_system/src/node_js_file_system.d.ts +3 -1
  113. package/src/ngtsc/file_system/src/node_js_file_system.js +8 -4
  114. package/src/ngtsc/file_system/src/types.d.ts +3 -1
  115. package/src/ngtsc/file_system/src/types.js +1 -1
  116. package/src/ngtsc/imports/index.d.ts +3 -3
  117. package/src/ngtsc/imports/index.js +4 -4
  118. package/src/ngtsc/imports/src/alias.d.ts +12 -11
  119. package/src/ngtsc/imports/src/alias.js +21 -16
  120. package/src/ngtsc/imports/src/emitter.d.ts +40 -19
  121. package/src/ngtsc/imports/src/emitter.js +54 -26
  122. package/src/ngtsc/imports/src/references.d.ts +30 -8
  123. package/src/ngtsc/imports/src/references.js +41 -6
  124. package/src/ngtsc/imports/src/resolver.d.ts +3 -6
  125. package/src/ngtsc/imports/src/resolver.js +5 -4
  126. package/src/ngtsc/incremental/api.d.ts +51 -0
  127. package/src/ngtsc/incremental/api.js +20 -0
  128. package/src/ngtsc/incremental/index.d.ts +1 -0
  129. package/src/ngtsc/incremental/index.js +4 -2
  130. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +56 -0
  131. package/src/ngtsc/incremental/src/dependency_tracking.js +186 -0
  132. package/src/ngtsc/incremental/src/noop.d.ts +10 -0
  133. package/src/ngtsc/incremental/src/noop.js +23 -0
  134. package/src/ngtsc/incremental/src/state.d.ts +8 -14
  135. package/src/ngtsc/incremental/src/state.js +83 -80
  136. package/src/ngtsc/indexer/index.d.ts +1 -0
  137. package/src/ngtsc/indexer/index.js +4 -2
  138. package/src/ngtsc/metadata/index.d.ts +1 -1
  139. package/src/ngtsc/metadata/index.js +2 -1
  140. package/src/ngtsc/metadata/src/api.d.ts +8 -0
  141. package/src/ngtsc/metadata/src/api.js +1 -1
  142. package/src/ngtsc/metadata/src/dts.js +2 -1
  143. package/src/ngtsc/metadata/src/registry.d.ts +12 -1
  144. package/src/ngtsc/metadata/src/registry.js +22 -2
  145. package/src/ngtsc/metadata/src/util.d.ts +2 -0
  146. package/src/ngtsc/metadata/src/util.js +10 -1
  147. package/src/ngtsc/modulewithproviders/src/scanner.js +2 -2
  148. package/src/ngtsc/partial_evaluator/index.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/index.js +1 -1
  150. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +7 -6
  151. package/src/ngtsc/partial_evaluator/src/builtin.js +54 -9
  152. package/src/ngtsc/partial_evaluator/src/interface.d.ts +3 -9
  153. package/src/ngtsc/partial_evaluator/src/interface.js +4 -3
  154. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +4 -3
  155. package/src/ngtsc/partial_evaluator/src/interpreter.js +11 -7
  156. package/src/ngtsc/partial_evaluator/src/known_declaration.d.ts +19 -0
  157. package/src/ngtsc/partial_evaluator/src/known_declaration.js +38 -0
  158. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  159. package/src/ngtsc/partial_evaluator/src/result.js +1 -1
  160. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  161. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +13 -3
  162. package/src/ngtsc/program.d.ts +46 -57
  163. package/src/ngtsc/program.js +68 -574
  164. package/src/ngtsc/reflection/src/host.d.ts +19 -2
  165. package/src/ngtsc/reflection/src/host.js +17 -3
  166. package/src/ngtsc/reflection/src/typescript.js +11 -7
  167. package/src/ngtsc/resource/index.d.ts +9 -0
  168. package/src/ngtsc/resource/index.js +22 -0
  169. package/src/ngtsc/{resource_loader.d.ts → resource/src/loader.d.ts} +4 -4
  170. package/src/ngtsc/resource/src/loader.js +193 -0
  171. package/src/ngtsc/routing/src/route.js +2 -2
  172. package/src/ngtsc/scope/index.d.ts +1 -1
  173. package/src/ngtsc/scope/index.js +1 -1
  174. package/src/ngtsc/scope/src/component_scope.d.ts +2 -2
  175. package/src/ngtsc/scope/src/component_scope.js +1 -1
  176. package/src/ngtsc/scope/src/dependency.js +10 -8
  177. package/src/ngtsc/scope/src/local.d.ts +31 -4
  178. package/src/ngtsc/scope/src/local.js +83 -15
  179. package/src/ngtsc/shims/index.d.ts +2 -1
  180. package/src/ngtsc/shims/index.js +4 -5
  181. package/src/ngtsc/shims/src/api.d.ts +25 -0
  182. package/src/ngtsc/shims/src/api.js +13 -0
  183. package/src/ngtsc/shims/src/factory_generator.d.ts +2 -2
  184. package/src/ngtsc/shims/src/factory_generator.js +1 -1
  185. package/src/ngtsc/shims/src/factory_tracker.d.ts +24 -0
  186. package/src/ngtsc/shims/src/factory_tracker.js +47 -0
  187. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  188. package/src/ngtsc/shims/src/summary_generator.js +1 -1
  189. package/src/ngtsc/shims/src/typecheck_shim.d.ts +1 -1
  190. package/src/ngtsc/shims/src/typecheck_shim.js +1 -1
  191. package/src/ngtsc/synthetic_files_compiler_host.d.ts +1 -1
  192. package/src/ngtsc/transform/index.d.ts +3 -1
  193. package/src/ngtsc/transform/index.js +8 -3
  194. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  195. package/src/ngtsc/transform/src/alias.js +1 -1
  196. package/src/ngtsc/transform/src/api.d.ts +52 -17
  197. package/src/ngtsc/transform/src/api.js +1 -1
  198. package/src/ngtsc/transform/src/compilation.d.ts +68 -47
  199. package/src/ngtsc/transform/src/compilation.js +498 -313
  200. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  201. package/src/ngtsc/transform/src/declaration.js +6 -1
  202. package/src/ngtsc/transform/src/trait.d.ts +169 -0
  203. package/src/ngtsc/transform/src/trait.js +114 -0
  204. package/src/ngtsc/transform/src/transform.d.ts +2 -2
  205. package/src/ngtsc/transform/src/transform.js +4 -4
  206. package/src/ngtsc/translator/src/translator.d.ts +11 -9
  207. package/src/ngtsc/translator/src/translator.js +51 -18
  208. package/src/ngtsc/typecheck/index.d.ts +1 -0
  209. package/src/ngtsc/typecheck/index.js +4 -2
  210. package/src/ngtsc/typecheck/src/api.d.ts +12 -1
  211. package/src/ngtsc/typecheck/src/api.js +1 -1
  212. package/src/ngtsc/typecheck/src/context.d.ts +3 -2
  213. package/src/ngtsc/typecheck/src/context.js +10 -8
  214. package/src/ngtsc/typecheck/src/diagnostics.d.ts +30 -31
  215. package/src/ngtsc/typecheck/src/diagnostics.js +108 -70
  216. package/src/ngtsc/typecheck/src/dom.d.ts +6 -5
  217. package/src/ngtsc/typecheck/src/dom.js +3 -3
  218. package/src/ngtsc/typecheck/src/environment.d.ts +5 -3
  219. package/src/ngtsc/typecheck/src/environment.js +20 -8
  220. package/src/ngtsc/typecheck/src/expression.d.ts +2 -3
  221. package/src/ngtsc/typecheck/src/expression.js +26 -23
  222. package/src/ngtsc/typecheck/src/host.d.ts +1 -0
  223. package/src/ngtsc/typecheck/src/host.js +4 -1
  224. package/src/ngtsc/typecheck/src/oob.d.ts +11 -11
  225. package/src/ngtsc/typecheck/src/oob.js +15 -4
  226. package/src/ngtsc/typecheck/src/source.d.ts +9 -9
  227. package/src/ngtsc/typecheck/src/source.js +15 -15
  228. package/src/ngtsc/typecheck/src/template_semantics.d.ts +22 -0
  229. package/src/ngtsc/typecheck/src/template_semantics.js +51 -0
  230. package/src/ngtsc/typecheck/src/ts_util.js +36 -1
  231. package/src/ngtsc/typecheck/src/type_check_block.d.ts +3 -3
  232. package/src/ngtsc/typecheck/src/type_check_block.js +70 -43
  233. package/src/ngtsc/typecheck/src/type_check_file.d.ts +2 -2
  234. package/src/ngtsc/typecheck/src/type_check_file.js +3 -3
  235. package/src/ngtsc/typecheck/src/type_constructor.d.ts +4 -4
  236. package/src/ngtsc/typecheck/src/type_constructor.js +15 -10
  237. package/src/ngtsc/typecheck/src/type_emitter.d.ts +72 -0
  238. package/src/ngtsc/typecheck/src/type_emitter.js +150 -0
  239. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +31 -0
  240. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +96 -0
  241. package/src/ngtsc/util/src/typescript.d.ts +7 -1
  242. package/src/ngtsc/util/src/typescript.js +15 -5
  243. package/src/perform_watch.js +6 -5
  244. package/src/transformers/api.d.ts +3 -204
  245. package/src/transformers/api.js +1 -1
  246. package/src/transformers/compiler_host.js +2 -2
  247. package/src/transformers/program.js +1 -1
  248. package/src/typescript_support.js +2 -2
  249. package/src/version.js +1 -1
  250. package/src/ngtsc/diagnostics/src/code.js +0 -101
  251. package/src/ngtsc/resource_loader.js +0 -193
  252. package/src/ngtsc/shims/src/host.d.ts +0 -46
  253. package/src/ngtsc/shims/src/host.js +0 -82
  254. package/src/ngtsc/util/src/resource_recorder.d.ts +0 -18
  255. package/src/ngtsc/util/src/resource_recorder.js +0 -20
@@ -8,10 +8,6 @@
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/imports/src/references" />
9
9
  import { Expression } from '@angular/compiler';
10
10
  import * as ts from 'typescript';
11
- export declare enum ImportMode {
12
- UseExistingImport = 0,
13
- ForceNewImport = 1
14
- }
15
11
  export interface OwningModule {
16
12
  specifier: string;
17
13
  resolutionContext: string;
@@ -56,21 +52,21 @@ export declare class Reference<T extends ts.Node = ts.Node> {
56
52
  * The best guess at which module specifier owns this particular reference, or `null` if there
57
53
  * isn't one.
58
54
  */
59
- readonly ownedByModuleGuess: string | null;
55
+ get ownedByModuleGuess(): string | null;
60
56
  /**
61
57
  * Whether this reference has a potential owning module or not.
62
58
  *
63
59
  * See `bestGuessOwningModule`.
64
60
  */
65
- readonly hasOwningModuleGuess: boolean;
61
+ get hasOwningModuleGuess(): boolean;
66
62
  /**
67
63
  * A name for the node, if one is available.
68
64
  *
69
65
  * This is only suited for debugging. Any actual references to this node should be made with
70
66
  * `ts.Identifier`s (see `getIdentityIn`).
71
67
  */
72
- readonly debugName: string | null;
73
- readonly alias: Expression | null;
68
+ get debugName(): string | null;
69
+ get alias(): Expression | null;
74
70
  /**
75
71
  * Record a `ts.Identifier` by which it's valid to refer to this node, within the context of this
76
72
  * `Reference`.
@@ -81,6 +77,32 @@ export declare class Reference<T extends ts.Node = ts.Node> {
81
77
  * given `ts.SourceFile`, if any.
82
78
  */
83
79
  getIdentityIn(context: ts.SourceFile): ts.Identifier | null;
80
+ /**
81
+ * Get a `ts.Identifier` for this `Reference` that exists within the given expression.
82
+ *
83
+ * This is very useful for producing `ts.Diagnostic`s that reference `Reference`s that were
84
+ * extracted from some larger expression, as it can be used to pinpoint the `ts.Identifier` within
85
+ * the expression from which the `Reference` originated.
86
+ */
87
+ getIdentityInExpression(expr: ts.Expression): ts.Identifier | null;
88
+ /**
89
+ * Given the 'container' expression from which this `Reference` was extracted, produce a
90
+ * `ts.Expression` to use in a diagnostic which best indicates the position within the container
91
+ * expression that generated the `Reference`.
92
+ *
93
+ * For example, given a `Reference` to the class 'Bar' and the containing expression:
94
+ * `[Foo, Bar, Baz]`, this function would attempt to return the `ts.Identifier` for `Bar` within
95
+ * the array. This could be used to produce a nice diagnostic context:
96
+ *
97
+ * ```text
98
+ * [Foo, Bar, Baz]
99
+ * ~~~
100
+ * ```
101
+ *
102
+ * If no specific node can be found, then the `fallback` expression is used, which defaults to the
103
+ * entire containing expression.
104
+ */
105
+ getOriginForDiagnostics(container: ts.Expression, fallback?: ts.Expression): ts.Expression;
84
106
  cloneWithAlias(alias: Expression): Reference<T>;
85
107
  cloneWithNoIdentifiers(): Reference<T>;
86
108
  }
@@ -18,11 +18,6 @@
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  var tslib_1 = require("tslib");
20
20
  var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
21
- var ImportMode;
22
- (function (ImportMode) {
23
- ImportMode[ImportMode["UseExistingImport"] = 0] = "UseExistingImport";
24
- ImportMode[ImportMode["ForceNewImport"] = 1] = "ForceNewImport";
25
- })(ImportMode = exports.ImportMode || (exports.ImportMode = {}));
26
21
  /**
27
22
  * A `ts.Node` plus the context in which it was discovered.
28
23
  *
@@ -110,6 +105,46 @@
110
105
  Reference.prototype.getIdentityIn = function (context) {
111
106
  return this.identifiers.find(function (id) { return id.getSourceFile() === context; }) || null;
112
107
  };
108
+ /**
109
+ * Get a `ts.Identifier` for this `Reference` that exists within the given expression.
110
+ *
111
+ * This is very useful for producing `ts.Diagnostic`s that reference `Reference`s that were
112
+ * extracted from some larger expression, as it can be used to pinpoint the `ts.Identifier` within
113
+ * the expression from which the `Reference` originated.
114
+ */
115
+ Reference.prototype.getIdentityInExpression = function (expr) {
116
+ var sf = expr.getSourceFile();
117
+ return this.identifiers.find(function (id) {
118
+ if (id.getSourceFile() !== sf) {
119
+ return false;
120
+ }
121
+ // This identifier is a match if its position lies within the given expression.
122
+ return id.pos >= expr.pos && id.end <= expr.end;
123
+ }) ||
124
+ null;
125
+ };
126
+ /**
127
+ * Given the 'container' expression from which this `Reference` was extracted, produce a
128
+ * `ts.Expression` to use in a diagnostic which best indicates the position within the container
129
+ * expression that generated the `Reference`.
130
+ *
131
+ * For example, given a `Reference` to the class 'Bar' and the containing expression:
132
+ * `[Foo, Bar, Baz]`, this function would attempt to return the `ts.Identifier` for `Bar` within
133
+ * the array. This could be used to produce a nice diagnostic context:
134
+ *
135
+ * ```text
136
+ * [Foo, Bar, Baz]
137
+ * ~~~
138
+ * ```
139
+ *
140
+ * If no specific node can be found, then the `fallback` expression is used, which defaults to the
141
+ * entire containing expression.
142
+ */
143
+ Reference.prototype.getOriginForDiagnostics = function (container, fallback) {
144
+ if (fallback === void 0) { fallback = container; }
145
+ var id = this.getIdentityInExpression(container);
146
+ return id !== null ? id : fallback;
147
+ };
113
148
  Reference.prototype.cloneWithAlias = function (alias) {
114
149
  var ref = new Reference(this.node, this.bestGuessOwningModule);
115
150
  ref.identifiers = tslib_1.__spread(this.identifiers);
@@ -126,4 +161,4 @@
126
161
  }());
127
162
  exports.Reference = Reference;
128
163
  });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvcmVmZXJlbmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFLSCxrRkFBMkQ7SUFFM0QsSUFBWSxVQUdYO0lBSEQsV0FBWSxVQUFVO1FBQ3BCLHFFQUFpQixDQUFBO1FBQ2pCLCtEQUFjLENBQUE7SUFDaEIsQ0FBQyxFQUhXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBR3JCO0lBT0Q7Ozs7Ozs7Ozs7T0FVRztJQUNIO1FBMkJFLG1CQUFxQixJQUFPLEVBQUUscUJBQStDO1lBQS9DLHNDQUFBLEVBQUEsNEJBQStDO1lBQXhELFNBQUksR0FBSixJQUFJLENBQUc7WUFacEIsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1lBRTFDOzs7OztlQUtHO1lBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQztZQUVWLFdBQU0sR0FBb0IsSUFBSSxDQUFDO1lBR3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztZQUVuRCxJQUFNLEVBQUUsR0FBRyw2QkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDO1FBTUQsc0JBQUkseUNBQWtCO1lBSnRCOzs7ZUFHRztpQkFDSDtnQkFDRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLEVBQUU7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztpQkFDN0M7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7WUFDSCxDQUFDOzs7V0FBQTtRQU9ELHNCQUFJLDJDQUFvQjtZQUx4Qjs7OztlQUlHO2lCQUNILGNBQXNDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7OztXQUFBO1FBUW5GLHNCQUFJLGdDQUFTO1lBTmI7Ozs7O2VBS0c7aUJBQ0g7Z0JBQ0UsSUFBTSxFQUFFLEdBQUcsNkJBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0QyxDQUFDOzs7V0FBQTtRQUVELHNCQUFJLDRCQUFLO2lCQUFULGNBQStCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7OztXQUFBO1FBR3BEOzs7V0FHRztRQUNILGlDQUFhLEdBQWIsVUFBYyxVQUF5QixJQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyRjs7O1dBR0c7UUFDSCxpQ0FBYSxHQUFiLFVBQWMsT0FBc0I7WUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxPQUFPLEVBQTlCLENBQThCLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDN0UsQ0FBQztRQUVELGtDQUFjLEdBQWQsVUFBZSxLQUFpQjtZQUM5QixJQUFNLEdBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxXQUFXLG9CQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QyxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNuQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCwwQ0FBc0IsR0FBdEI7WUFDRSxJQUFNLEdBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN6QixHQUFHLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDSCxnQkFBQztJQUFELENBQUMsQUFoR0QsSUFnR0M7SUFoR1ksOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RXhwcmVzc2lvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7aWRlbnRpZmllck9mTm9kZX0gZnJvbSAnLi4vLi4vdXRpbC9zcmMvdHlwZXNjcmlwdCc7XG5cbmV4cG9ydCBlbnVtIEltcG9ydE1vZGUge1xuICBVc2VFeGlzdGluZ0ltcG9ydCxcbiAgRm9yY2VOZXdJbXBvcnQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3duaW5nTW9kdWxlIHtcbiAgc3BlY2lmaWVyOiBzdHJpbmc7XG4gIHJlc29sdXRpb25Db250ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBgdHMuTm9kZWAgcGx1cyB0aGUgY29udGV4dCBpbiB3aGljaCBpdCB3YXMgZGlzY292ZXJlZC5cbiAqXG4gKiBBIGBSZWZlcmVuY2VgIGlzIGEgcG9pbnRlciB0byBhIGB0cy5Ob2RlYCB0aGF0IHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHJvZ3JhbSBzb21laG93LiBJdFxuICogY29udGFpbnMgbm90IG9ubHkgdGhlIG5vZGUgaXRzZWxmLCBidXQgdGhlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBob3cgdGhlIG5vZGUgd2FzIGxvY2F0ZWQuIEluXG4gKiBwYXJ0aWN1bGFyLCBpdCBtaWdodCB0cmFjayBkaWZmZXJlbnQgaWRlbnRpZmllcnMgYnkgd2hpY2ggdGhlIG5vZGUgaXMgZXhwb3NlZCwgYXMgd2VsbCBhc1xuICogcG90ZW50aWFsbHkgYSBtb2R1bGUgc3BlY2lmaWVyIHdoaWNoIG1pZ2h0IGV4cG9zZSB0aGUgbm9kZS5cbiAqXG4gKiBUaGUgQW5ndWxhciBjb21waWxlciB1c2VzIGBSZWZlcmVuY2VgcyBpbnN0ZWFkIG9mIGB0cy5Ob2RlYHMgd2hlbiB0cmFja2luZyBjbGFzc2VzIG9yIGdlbmVyYXRpbmdcbiAqIGltcG9ydHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWZlcmVuY2U8VCBleHRlbmRzIHRzLk5vZGUgPSB0cy5Ob2RlPiB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGlsZXIncyBiZXN0IGd1ZXNzIGF0IGFuIGFic29sdXRlIG1vZHVsZSBzcGVjaWZpZXIgd2hpY2ggb3ducyB0aGlzIGBSZWZlcmVuY2VgLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzdWFsbHkgZGV0ZXJtaW5lZCBieSB0cmFja2luZyB0aGUgaW1wb3J0IHN0YXRlbWVudHMgd2hpY2ggbGVkIHRoZSBjb21waWxlciB0byBhIGdpdmVuXG4gICAqIG5vZGUuIElmIGFueSBvZiB0aGVzZSBpbXBvcnRzIGFyZSBhYnNvbHV0ZSwgaXQncyBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlIG5vZGUgYmVpbmcgaW1wb3J0ZWRcbiAgICogbWlnaHQgY29tZSBmcm9tIHRoYXQgbW9kdWxlLlxuICAgKlxuICAgKiBJdCBpcyBub3QgX2d1YXJhbnRlZWRfIHRoYXQgdGhlIG5vZGUgaW4gcXVlc3Rpb24gaXMgZXhwb3J0ZWQgZnJvbSBpdHMgYGJlc3RHdWVzc093bmluZ01vZHVsZWAgLVxuICAgKiB0aGF0IGlzIG1vc3RseSBhIGNvbnZlbnRpb24gdGhhdCBhcHBsaWVzIGluIGNlcnRhaW4gcGFja2FnZSBmb3JtYXRzLlxuICAgKlxuICAgKiBJZiBgYmVzdEd1ZXNzT3duaW5nTW9kdWxlYCBpcyBgbnVsbGAsIHRoZW4gaXQncyBsaWtlbHkgdGhlIG5vZGUgY2FtZSBmcm9tIHRoZSBjdXJyZW50IHByb2dyYW0uXG4gICAqL1xuICByZWFkb25seSBiZXN0R3Vlc3NPd25pbmdNb2R1bGU6IE93bmluZ01vZHVsZXxudWxsO1xuXG4gIHByaXZhdGUgaWRlbnRpZmllcnM6IHRzLklkZW50aWZpZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgUmVmZXJlbmNlIHdhcyBjcmVhdGVkIHN5bnRoZXRpY2FsbHksIG5vdCBhcyBhIHJlc3VsdCBvZiBuYXR1cmFsIHZhbHVlXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZCB0byBhdm9pZCBtaXNpbnRlcnByZXRpbmcgdGhlIFJlZmVyZW5jZSBpbiBjZXJ0YWluIGNvbnRleHRzLlxuICAgKi9cbiAgc3ludGhldGljID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYWxpYXM6IEV4cHJlc3Npb258bnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbm9kZTogVCwgYmVzdEd1ZXNzT3duaW5nTW9kdWxlOiBPd25pbmdNb2R1bGV8bnVsbCA9IG51bGwpIHtcbiAgICB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSA9IGJlc3RHdWVzc093bmluZ01vZHVsZTtcblxuICAgIGNvbnN0IGlkID0gaWRlbnRpZmllck9mTm9kZShub2RlKTtcbiAgICBpZiAoaWQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuaWRlbnRpZmllcnMucHVzaChpZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiZXN0IGd1ZXNzIGF0IHdoaWNoIG1vZHVsZSBzcGVjaWZpZXIgb3ducyB0aGlzIHBhcnRpY3VsYXIgcmVmZXJlbmNlLCBvciBgbnVsbGAgaWYgdGhlcmVcbiAgICogaXNuJ3Qgb25lLlxuICAgKi9cbiAgZ2V0IG93bmVkQnlNb2R1bGVHdWVzcygpOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5iZXN0R3Vlc3NPd25pbmdNb2R1bGUuc3BlY2lmaWVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHJlZmVyZW5jZSBoYXMgYSBwb3RlbnRpYWwgb3duaW5nIG1vZHVsZSBvciBub3QuXG4gICAqXG4gICAqIFNlZSBgYmVzdEd1ZXNzT3duaW5nTW9kdWxlYC5cbiAgICovXG4gIGdldCBoYXNPd25pbmdNb2R1bGVHdWVzcygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlICE9PSBudWxsOyB9XG5cbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIG5vZGUsIGlmIG9uZSBpcyBhdmFpbGFibGUuXG4gICAqXG4gICAqIFRoaXMgaXMgb25seSBzdWl0ZWQgZm9yIGRlYnVnZ2luZy4gQW55IGFjdHVhbCByZWZlcmVuY2VzIHRvIHRoaXMgbm9kZSBzaG91bGQgYmUgbWFkZSB3aXRoXG4gICAqIGB0cy5JZGVudGlmaWVyYHMgKHNlZSBgZ2V0SWRlbnRpdHlJbmApLlxuICAgKi9cbiAgZ2V0IGRlYnVnTmFtZSgpOiBzdHJpbmd8bnVsbCB7XG4gICAgY29uc3QgaWQgPSBpZGVudGlmaWVyT2ZOb2RlKHRoaXMubm9kZSk7XG4gICAgcmV0dXJuIGlkICE9PSBudWxsID8gaWQudGV4dCA6IG51bGw7XG4gIH1cblxuICBnZXQgYWxpYXMoKTogRXhwcmVzc2lvbnxudWxsIHsgcmV0dXJuIHRoaXMuX2FsaWFzOyB9XG5cblxuICAvKipcbiAgICogUmVjb3JkIGEgYHRzLklkZW50aWZpZXJgIGJ5IHdoaWNoIGl0J3MgdmFsaWQgdG8gcmVmZXIgdG8gdGhpcyBub2RlLCB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhpc1xuICAgKiBgUmVmZXJlbmNlYC5cbiAgICovXG4gIGFkZElkZW50aWZpZXIoaWRlbnRpZmllcjogdHMuSWRlbnRpZmllcik6IHZvaWQgeyB0aGlzLmlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7IH1cblxuICAvKipcbiAgICogR2V0IGEgYHRzLklkZW50aWZpZXJgIHdpdGhpbiB0aGlzIGBSZWZlcmVuY2VgIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVmZXIgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFcbiAgICogZ2l2ZW4gYHRzLlNvdXJjZUZpbGVgLCBpZiBhbnkuXG4gICAqL1xuICBnZXRJZGVudGl0eUluKGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUpOiB0cy5JZGVudGlmaWVyfG51bGwge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXJzLmZpbmQoaWQgPT4gaWQuZ2V0U291cmNlRmlsZSgpID09PSBjb250ZXh0KSB8fCBudWxsO1xuICB9XG5cbiAgY2xvbmVXaXRoQWxpYXMoYWxpYXM6IEV4cHJlc3Npb24pOiBSZWZlcmVuY2U8VD4ge1xuICAgIGNvbnN0IHJlZiA9IG5ldyBSZWZlcmVuY2UodGhpcy5ub2RlLCB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSk7XG4gICAgcmVmLmlkZW50aWZpZXJzID0gWy4uLnRoaXMuaWRlbnRpZmllcnNdO1xuICAgIHJlZi5fYWxpYXMgPSBhbGlhcztcbiAgICByZXR1cm4gcmVmO1xuICB9XG5cbiAgY2xvbmVXaXRoTm9JZGVudGlmaWVycygpOiBSZWZlcmVuY2U8VD4ge1xuICAgIGNvbnN0IHJlZiA9IG5ldyBSZWZlcmVuY2UodGhpcy5ub2RlLCB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSk7XG4gICAgcmVmLl9hbGlhcyA9IHRoaXMuX2FsaWFzO1xuICAgIHJlZi5pZGVudGlmaWVycyA9IFtdO1xuICAgIHJldHVybiByZWY7XG4gIH1cbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvcmVmZXJlbmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFLSCxrRkFBMkQ7SUFPM0Q7Ozs7Ozs7Ozs7T0FVRztJQUNIO1FBMkJFLG1CQUFxQixJQUFPLEVBQUUscUJBQStDO1lBQS9DLHNDQUFBLEVBQUEsNEJBQStDO1lBQXhELFNBQUksR0FBSixJQUFJLENBQUc7WUFacEIsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1lBRTFDOzs7OztlQUtHO1lBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQztZQUVWLFdBQU0sR0FBb0IsSUFBSSxDQUFDO1lBR3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztZQUVuRCxJQUFNLEVBQUUsR0FBRyw2QkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDO1FBTUQsc0JBQUkseUNBQWtCO1lBSnRCOzs7ZUFHRztpQkFDSDtnQkFDRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLEVBQUU7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztpQkFDN0M7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7WUFDSCxDQUFDOzs7V0FBQTtRQU9ELHNCQUFJLDJDQUFvQjtZQUx4Qjs7OztlQUlHO2lCQUNILGNBQXNDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7OztXQUFBO1FBUW5GLHNCQUFJLGdDQUFTO1lBTmI7Ozs7O2VBS0c7aUJBQ0g7Z0JBQ0UsSUFBTSxFQUFFLEdBQUcsNkJBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0QyxDQUFDOzs7V0FBQTtRQUVELHNCQUFJLDRCQUFLO2lCQUFULGNBQStCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7OztXQUFBO1FBR3BEOzs7V0FHRztRQUNILGlDQUFhLEdBQWIsVUFBYyxVQUF5QixJQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyRjs7O1dBR0c7UUFDSCxpQ0FBYSxHQUFiLFVBQWMsT0FBc0I7WUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxPQUFPLEVBQTlCLENBQThCLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDN0UsQ0FBQztRQUVEOzs7Ozs7V0FNRztRQUNILDJDQUF1QixHQUF2QixVQUF3QixJQUFtQjtZQUN6QyxJQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUU7Z0JBQzdCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDN0IsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7Z0JBRUQsK0VBQStFO2dCQUMvRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbEQsQ0FBQyxDQUFDO2dCQUNFLElBQUksQ0FBQztRQUNYLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7OztXQWdCRztRQUNILDJDQUF1QixHQUF2QixVQUF3QixTQUF3QixFQUFFLFFBQW1DO1lBQW5DLHlCQUFBLEVBQUEsb0JBQW1DO1lBRW5GLElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuRCxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3JDLENBQUM7UUFFRCxrQ0FBYyxHQUFkLFVBQWUsS0FBaUI7WUFDOUIsSUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNqRSxHQUFHLENBQUMsV0FBVyxvQkFBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDbkIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsMENBQXNCLEdBQXRCO1lBQ0UsSUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNqRSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDekIsR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0gsZ0JBQUM7SUFBRCxDQUFDLEFBM0lELElBMklDO0lBM0lZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2lkZW50aWZpZXJPZk5vZGV9IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE93bmluZ01vZHVsZSB7XG4gIHNwZWNpZmllcjogc3RyaW5nO1xuICByZXNvbHV0aW9uQ29udGV4dDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgYHRzLk5vZGVgIHBsdXMgdGhlIGNvbnRleHQgaW4gd2hpY2ggaXQgd2FzIGRpc2NvdmVyZWQuXG4gKlxuICogQSBgUmVmZXJlbmNlYCBpcyBhIHBvaW50ZXIgdG8gYSBgdHMuTm9kZWAgdGhhdCB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIHByb2dyYW0gc29tZWhvdy4gSXRcbiAqIGNvbnRhaW5zIG5vdCBvbmx5IHRoZSBub2RlIGl0c2VsZiwgYnV0IHRoZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgaG93IHRoZSBub2RlIHdhcyBsb2NhdGVkLiBJblxuICogcGFydGljdWxhciwgaXQgbWlnaHQgdHJhY2sgZGlmZmVyZW50IGlkZW50aWZpZXJzIGJ5IHdoaWNoIHRoZSBub2RlIGlzIGV4cG9zZWQsIGFzIHdlbGwgYXNcbiAqIHBvdGVudGlhbGx5IGEgbW9kdWxlIHNwZWNpZmllciB3aGljaCBtaWdodCBleHBvc2UgdGhlIG5vZGUuXG4gKlxuICogVGhlIEFuZ3VsYXIgY29tcGlsZXIgdXNlcyBgUmVmZXJlbmNlYHMgaW5zdGVhZCBvZiBgdHMuTm9kZWBzIHdoZW4gdHJhY2tpbmcgY2xhc3NlcyBvciBnZW5lcmF0aW5nXG4gKiBpbXBvcnRzLlxuICovXG5leHBvcnQgY2xhc3MgUmVmZXJlbmNlPFQgZXh0ZW5kcyB0cy5Ob2RlID0gdHMuTm9kZT4ge1xuICAvKipcbiAgICogVGhlIGNvbXBpbGVyJ3MgYmVzdCBndWVzcyBhdCBhbiBhYnNvbHV0ZSBtb2R1bGUgc3BlY2lmaWVyIHdoaWNoIG93bnMgdGhpcyBgUmVmZXJlbmNlYC5cbiAgICpcbiAgICogVGhpcyBpcyB1c3VhbGx5IGRldGVybWluZWQgYnkgdHJhY2tpbmcgdGhlIGltcG9ydCBzdGF0ZW1lbnRzIHdoaWNoIGxlZCB0aGUgY29tcGlsZXIgdG8gYSBnaXZlblxuICAgKiBub2RlLiBJZiBhbnkgb2YgdGhlc2UgaW1wb3J0cyBhcmUgYWJzb2x1dGUsIGl0J3MgYW4gaW5kaWNhdGlvbiB0aGF0IHRoZSBub2RlIGJlaW5nIGltcG9ydGVkXG4gICAqIG1pZ2h0IGNvbWUgZnJvbSB0aGF0IG1vZHVsZS5cbiAgICpcbiAgICogSXQgaXMgbm90IF9ndWFyYW50ZWVkXyB0aGF0IHRoZSBub2RlIGluIHF1ZXN0aW9uIGlzIGV4cG9ydGVkIGZyb20gaXRzIGBiZXN0R3Vlc3NPd25pbmdNb2R1bGVgIC1cbiAgICogdGhhdCBpcyBtb3N0bHkgYSBjb252ZW50aW9uIHRoYXQgYXBwbGllcyBpbiBjZXJ0YWluIHBhY2thZ2UgZm9ybWF0cy5cbiAgICpcbiAgICogSWYgYGJlc3RHdWVzc093bmluZ01vZHVsZWAgaXMgYG51bGxgLCB0aGVuIGl0J3MgbGlrZWx5IHRoZSBub2RlIGNhbWUgZnJvbSB0aGUgY3VycmVudCBwcm9ncmFtLlxuICAgKi9cbiAgcmVhZG9ubHkgYmVzdEd1ZXNzT3duaW5nTW9kdWxlOiBPd25pbmdNb2R1bGV8bnVsbDtcblxuICBwcml2YXRlIGlkZW50aWZpZXJzOiB0cy5JZGVudGlmaWVyW10gPSBbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIFJlZmVyZW5jZSB3YXMgY3JlYXRlZCBzeW50aGV0aWNhbGx5LCBub3QgYXMgYSByZXN1bHQgb2YgbmF0dXJhbCB2YWx1ZVxuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gYXZvaWQgbWlzaW50ZXJwcmV0aW5nIHRoZSBSZWZlcmVuY2UgaW4gY2VydGFpbiBjb250ZXh0cy5cbiAgICovXG4gIHN5bnRoZXRpYyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2FsaWFzOiBFeHByZXNzaW9ufG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG5vZGU6IFQsIGJlc3RHdWVzc093bmluZ01vZHVsZTogT3duaW5nTW9kdWxlfG51bGwgPSBudWxsKSB7XG4gICAgdGhpcy5iZXN0R3Vlc3NPd25pbmdNb2R1bGUgPSBiZXN0R3Vlc3NPd25pbmdNb2R1bGU7XG5cbiAgICBjb25zdCBpZCA9IGlkZW50aWZpZXJPZk5vZGUobm9kZSk7XG4gICAgaWYgKGlkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmlkZW50aWZpZXJzLnB1c2goaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmVzdCBndWVzcyBhdCB3aGljaCBtb2R1bGUgc3BlY2lmaWVyIG93bnMgdGhpcyBwYXJ0aWN1bGFyIHJlZmVyZW5jZSwgb3IgYG51bGxgIGlmIHRoZXJlXG4gICAqIGlzbid0IG9uZS5cbiAgICovXG4gIGdldCBvd25lZEJ5TW9kdWxlR3Vlc3MoKTogc3RyaW5nfG51bGwge1xuICAgIGlmICh0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlLnNwZWNpZmllcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZWZlcmVuY2UgaGFzIGEgcG90ZW50aWFsIG93bmluZyBtb2R1bGUgb3Igbm90LlxuICAgKlxuICAgKiBTZWUgYGJlc3RHdWVzc093bmluZ01vZHVsZWAuXG4gICAqL1xuICBnZXQgaGFzT3duaW5nTW9kdWxlR3Vlc3MoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSAhPT0gbnVsbDsgfVxuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBub2RlLCBpZiBvbmUgaXMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgc3VpdGVkIGZvciBkZWJ1Z2dpbmcuIEFueSBhY3R1YWwgcmVmZXJlbmNlcyB0byB0aGlzIG5vZGUgc2hvdWxkIGJlIG1hZGUgd2l0aFxuICAgKiBgdHMuSWRlbnRpZmllcmBzIChzZWUgYGdldElkZW50aXR5SW5gKS5cbiAgICovXG4gIGdldCBkZWJ1Z05hbWUoKTogc3RyaW5nfG51bGwge1xuICAgIGNvbnN0IGlkID0gaWRlbnRpZmllck9mTm9kZSh0aGlzLm5vZGUpO1xuICAgIHJldHVybiBpZCAhPT0gbnVsbCA/IGlkLnRleHQgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGFsaWFzKCk6IEV4cHJlc3Npb258bnVsbCB7IHJldHVybiB0aGlzLl9hbGlhczsgfVxuXG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIGB0cy5JZGVudGlmaWVyYCBieSB3aGljaCBpdCdzIHZhbGlkIHRvIHJlZmVyIHRvIHRoaXMgbm9kZSwgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoaXNcbiAgICogYFJlZmVyZW5jZWAuXG4gICAqL1xuICBhZGRJZGVudGlmaWVyKGlkZW50aWZpZXI6IHRzLklkZW50aWZpZXIpOiB2b2lkIHsgdGhpcy5pZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpOyB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGB0cy5JZGVudGlmaWVyYCB3aXRoaW4gdGhpcyBgUmVmZXJlbmNlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhXG4gICAqIGdpdmVuIGB0cy5Tb3VyY2VGaWxlYCwgaWYgYW55LlxuICAgKi9cbiAgZ2V0SWRlbnRpdHlJbihjb250ZXh0OiB0cy5Tb3VyY2VGaWxlKTogdHMuSWRlbnRpZmllcnxudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVycy5maW5kKGlkID0+IGlkLmdldFNvdXJjZUZpbGUoKSA9PT0gY29udGV4dCkgfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBgdHMuSWRlbnRpZmllcmAgZm9yIHRoaXMgYFJlZmVyZW5jZWAgdGhhdCBleGlzdHMgd2l0aGluIHRoZSBnaXZlbiBleHByZXNzaW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHZlcnkgdXNlZnVsIGZvciBwcm9kdWNpbmcgYHRzLkRpYWdub3N0aWNgcyB0aGF0IHJlZmVyZW5jZSBgUmVmZXJlbmNlYHMgdGhhdCB3ZXJlXG4gICAqIGV4dHJhY3RlZCBmcm9tIHNvbWUgbGFyZ2VyIGV4cHJlc3Npb24sIGFzIGl0IGNhbiBiZSB1c2VkIHRvIHBpbnBvaW50IHRoZSBgdHMuSWRlbnRpZmllcmAgd2l0aGluXG4gICAqIHRoZSBleHByZXNzaW9uIGZyb20gd2hpY2ggdGhlIGBSZWZlcmVuY2VgIG9yaWdpbmF0ZWQuXG4gICAqL1xuICBnZXRJZGVudGl0eUluRXhwcmVzc2lvbihleHByOiB0cy5FeHByZXNzaW9uKTogdHMuSWRlbnRpZmllcnxudWxsIHtcbiAgICBjb25zdCBzZiA9IGV4cHIuZ2V0U291cmNlRmlsZSgpO1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXJzLmZpbmQoaWQgPT4ge1xuICAgICAgaWYgKGlkLmdldFNvdXJjZUZpbGUoKSAhPT0gc2YpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGlzIGlkZW50aWZpZXIgaXMgYSBtYXRjaCBpZiBpdHMgcG9zaXRpb24gbGllcyB3aXRoaW4gdGhlIGdpdmVuIGV4cHJlc3Npb24uXG4gICAgICByZXR1cm4gaWQucG9zID49IGV4cHIucG9zICYmIGlkLmVuZCA8PSBleHByLmVuZDtcbiAgICB9KSB8fFxuICAgICAgICBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIHRoZSAnY29udGFpbmVyJyBleHByZXNzaW9uIGZyb20gd2hpY2ggdGhpcyBgUmVmZXJlbmNlYCB3YXMgZXh0cmFjdGVkLCBwcm9kdWNlIGFcbiAgICogYHRzLkV4cHJlc3Npb25gIHRvIHVzZSBpbiBhIGRpYWdub3N0aWMgd2hpY2ggYmVzdCBpbmRpY2F0ZXMgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgY29udGFpbmVyXG4gICAqIGV4cHJlc3Npb24gdGhhdCBnZW5lcmF0ZWQgdGhlIGBSZWZlcmVuY2VgLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgZ2l2ZW4gYSBgUmVmZXJlbmNlYCB0byB0aGUgY2xhc3MgJ0JhcicgYW5kIHRoZSBjb250YWluaW5nIGV4cHJlc3Npb246XG4gICAqIGBbRm9vLCBCYXIsIEJhel1gLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIGF0dGVtcHQgdG8gcmV0dXJuIHRoZSBgdHMuSWRlbnRpZmllcmAgZm9yIGBCYXJgIHdpdGhpblxuICAgKiB0aGUgYXJyYXkuIFRoaXMgY291bGQgYmUgdXNlZCB0byBwcm9kdWNlIGEgbmljZSBkaWFnbm9zdGljIGNvbnRleHQ6XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogW0ZvbywgQmFyLCBCYXpdXG4gICAqICAgICAgIH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogSWYgbm8gc3BlY2lmaWMgbm9kZSBjYW4gYmUgZm91bmQsIHRoZW4gdGhlIGBmYWxsYmFja2AgZXhwcmVzc2lvbiBpcyB1c2VkLCB3aGljaCBkZWZhdWx0cyB0byB0aGVcbiAgICogZW50aXJlIGNvbnRhaW5pbmcgZXhwcmVzc2lvbi5cbiAgICovXG4gIGdldE9yaWdpbkZvckRpYWdub3N0aWNzKGNvbnRhaW5lcjogdHMuRXhwcmVzc2lvbiwgZmFsbGJhY2s6IHRzLkV4cHJlc3Npb24gPSBjb250YWluZXIpOlxuICAgICAgdHMuRXhwcmVzc2lvbiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkZW50aXR5SW5FeHByZXNzaW9uKGNvbnRhaW5lcik7XG4gICAgcmV0dXJuIGlkICE9PSBudWxsID8gaWQgOiBmYWxsYmFjaztcbiAgfVxuXG4gIGNsb25lV2l0aEFsaWFzKGFsaWFzOiBFeHByZXNzaW9uKTogUmVmZXJlbmNlPFQ+IHtcbiAgICBjb25zdCByZWYgPSBuZXcgUmVmZXJlbmNlKHRoaXMubm9kZSwgdGhpcy5iZXN0R3Vlc3NPd25pbmdNb2R1bGUpO1xuICAgIHJlZi5pZGVudGlmaWVycyA9IFsuLi50aGlzLmlkZW50aWZpZXJzXTtcbiAgICByZWYuX2FsaWFzID0gYWxpYXM7XG4gICAgcmV0dXJuIHJlZjtcbiAgfVxuXG4gIGNsb25lV2l0aE5vSWRlbnRpZmllcnMoKTogUmVmZXJlbmNlPFQ+IHtcbiAgICBjb25zdCByZWYgPSBuZXcgUmVmZXJlbmNlKHRoaXMubm9kZSwgdGhpcy5iZXN0R3Vlc3NPd25pbmdNb2R1bGUpO1xuICAgIHJlZi5fYWxpYXMgPSB0aGlzLl9hbGlhcztcbiAgICByZWYuaWRlbnRpZmllcnMgPSBbXTtcbiAgICByZXR1cm4gcmVmO1xuICB9XG59XG4iXX0=
@@ -7,10 +7,6 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  import * as ts from 'typescript';
10
- import { Reference } from './references';
11
- export interface ReferenceResolver {
12
- resolve(decl: ts.Declaration, importFromHint: string | null, fromFile: string): Reference<ts.Declaration>;
13
- }
14
10
  /**
15
11
  * Used by `RouterEntryPointManager` and `NgModuleRouteAnalyzer` (which is in turn is used by
16
12
  * `NgModuleDecoratorHandler`) for resolving the module source-files references in lazy-loaded
@@ -21,6 +17,7 @@ export declare class ModuleResolver {
21
17
  private program;
22
18
  private compilerOptions;
23
19
  private host;
24
- constructor(program: ts.Program, compilerOptions: ts.CompilerOptions, host: ts.CompilerHost);
25
- resolveModuleName(module: string, containingFile: ts.SourceFile): ts.SourceFile | null;
20
+ private moduleResolutionCache;
21
+ constructor(program: ts.Program, compilerOptions: ts.CompilerOptions, host: ts.CompilerHost, moduleResolutionCache: ts.ModuleResolutionCache | null);
22
+ resolveModule(moduleName: string, containingFile: string): ts.SourceFile | null;
26
23
  }
@@ -18,13 +18,14 @@
18
18
  * definitions).
19
19
  */
20
20
  var ModuleResolver = /** @class */ (function () {
21
- function ModuleResolver(program, compilerOptions, host) {
21
+ function ModuleResolver(program, compilerOptions, host, moduleResolutionCache) {
22
22
  this.program = program;
23
23
  this.compilerOptions = compilerOptions;
24
24
  this.host = host;
25
+ this.moduleResolutionCache = moduleResolutionCache;
25
26
  }
26
- ModuleResolver.prototype.resolveModuleName = function (module, containingFile) {
27
- var resolved = typescript_1.resolveModuleName(module, containingFile.fileName, this.compilerOptions, this.host);
27
+ ModuleResolver.prototype.resolveModule = function (moduleName, containingFile) {
28
+ var resolved = typescript_1.resolveModuleName(moduleName, containingFile, this.compilerOptions, this.host, this.moduleResolutionCache);
28
29
  if (resolved === undefined) {
29
30
  return null;
30
31
  }
@@ -34,4 +35,4 @@
34
35
  }());
35
36
  exports.ModuleResolver = ModuleResolver;
36
37
  });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL3Jlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBUUEsMkVBQStDO0lBQy9DLGtGQUFpRjtJQVFqRjs7Ozs7T0FLRztJQUNIO1FBQ0Usd0JBQ1ksT0FBbUIsRUFBVSxlQUFtQyxFQUNoRSxJQUFxQjtZQURyQixZQUFPLEdBQVAsT0FBTyxDQUFZO1lBQVUsb0JBQWUsR0FBZixlQUFlLENBQW9CO1lBQ2hFLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQUcsQ0FBQztRQUVyQywwQ0FBaUIsR0FBakIsVUFBa0IsTUFBYyxFQUFFLGNBQTZCO1lBQzdELElBQU0sUUFBUSxHQUNWLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hGLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDMUIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE9BQU8sZ0NBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQkFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNILHFCQUFDO0lBQUQsQ0FBQyxBQWJELElBYUM7SUFiWSx3Q0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHthYnNvbHV0ZUZyb219IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Z2V0U291cmNlRmlsZU9yTnVsbCwgcmVzb2x2ZU1vZHVsZU5hbWV9IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4vcmVmZXJlbmNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlUmVzb2x2ZXIge1xuICByZXNvbHZlKGRlY2w6IHRzLkRlY2xhcmF0aW9uLCBpbXBvcnRGcm9tSGludDogc3RyaW5nfG51bGwsIGZyb21GaWxlOiBzdHJpbmcpOlxuICAgICAgUmVmZXJlbmNlPHRzLkRlY2xhcmF0aW9uPjtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGBSb3V0ZXJFbnRyeVBvaW50TWFuYWdlcmAgYW5kIGBOZ01vZHVsZVJvdXRlQW5hbHl6ZXJgICh3aGljaCBpcyBpbiB0dXJuIGlzIHVzZWQgYnlcbiAqIGBOZ01vZHVsZURlY29yYXRvckhhbmRsZXJgKSBmb3IgcmVzb2x2aW5nIHRoZSBtb2R1bGUgc291cmNlLWZpbGVzIHJlZmVyZW5jZXMgaW4gbGF6eS1sb2FkZWRcbiAqIHJvdXRlcyAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZS1maWxlIGNvbnRhaW5pbmcgdGhlIGBOZ01vZHVsZWAgdGhhdCBwcm92aWRlcyB0aGUgcm91dGVcbiAqIGRlZmluaXRpb25zKS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vZHVsZVJlc29sdmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHByb2dyYW06IHRzLlByb2dyYW0sIHByaXZhdGUgY29tcGlsZXJPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG4gICAgICBwcml2YXRlIGhvc3Q6IHRzLkNvbXBpbGVySG9zdCkge31cblxuICByZXNvbHZlTW9kdWxlTmFtZShtb2R1bGU6IHN0cmluZywgY29udGFpbmluZ0ZpbGU6IHRzLlNvdXJjZUZpbGUpOiB0cy5Tb3VyY2VGaWxlfG51bGwge1xuICAgIGNvbnN0IHJlc29sdmVkID1cbiAgICAgICAgcmVzb2x2ZU1vZHVsZU5hbWUobW9kdWxlLCBjb250YWluaW5nRmlsZS5maWxlTmFtZSwgdGhpcy5jb21waWxlck9wdGlvbnMsIHRoaXMuaG9zdCk7XG4gICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0U291cmNlRmlsZU9yTnVsbCh0aGlzLnByb2dyYW0sIGFic29sdXRlRnJvbShyZXNvbHZlZC5yZXNvbHZlZEZpbGVOYW1lKSk7XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL3Jlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBUUEsMkVBQStDO0lBQy9DLGtGQUFpRjtJQUVqRjs7Ozs7T0FLRztJQUNIO1FBQ0Usd0JBQ1ksT0FBbUIsRUFBVSxlQUFtQyxFQUNoRSxJQUFxQixFQUFVLHFCQUFvRDtZQURuRixZQUFPLEdBQVAsT0FBTyxDQUFZO1lBQVUsb0JBQWUsR0FBZixlQUFlLENBQW9CO1lBQ2hFLFNBQUksR0FBSixJQUFJLENBQWlCO1lBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUErQjtRQUMvRixDQUFDO1FBRUQsc0NBQWEsR0FBYixVQUFjLFVBQWtCLEVBQUUsY0FBc0I7WUFDdEQsSUFBTSxRQUFRLEdBQUcsOEJBQWlCLENBQzlCLFVBQVUsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdGLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDMUIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE9BQU8sZ0NBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQkFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNILHFCQUFDO0lBQUQsQ0FBQyxBQWRELElBY0M7SUFkWSx3Q0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHthYnNvbHV0ZUZyb219IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Z2V0U291cmNlRmlsZU9yTnVsbCwgcmVzb2x2ZU1vZHVsZU5hbWV9IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIFVzZWQgYnkgYFJvdXRlckVudHJ5UG9pbnRNYW5hZ2VyYCBhbmQgYE5nTW9kdWxlUm91dGVBbmFseXplcmAgKHdoaWNoIGlzIGluIHR1cm4gaXMgdXNlZCBieVxuICogYE5nTW9kdWxlRGVjb3JhdG9ySGFuZGxlcmApIGZvciByZXNvbHZpbmcgdGhlIG1vZHVsZSBzb3VyY2UtZmlsZXMgcmVmZXJlbmNlcyBpbiBsYXp5LWxvYWRlZFxuICogcm91dGVzIChyZWxhdGl2ZSB0byB0aGUgc291cmNlLWZpbGUgY29udGFpbmluZyB0aGUgYE5nTW9kdWxlYCB0aGF0IHByb3ZpZGVzIHRoZSByb3V0ZVxuICogZGVmaW5pdGlvbnMpLlxuICovXG5leHBvcnQgY2xhc3MgTW9kdWxlUmVzb2x2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcHJvZ3JhbTogdHMuUHJvZ3JhbSwgcHJpdmF0ZSBjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcbiAgICAgIHByaXZhdGUgaG9zdDogdHMuQ29tcGlsZXJIb3N0LCBwcml2YXRlIG1vZHVsZVJlc29sdXRpb25DYWNoZTogdHMuTW9kdWxlUmVzb2x1dGlvbkNhY2hlfG51bGwpIHtcbiAgfVxuXG4gIHJlc29sdmVNb2R1bGUobW9kdWxlTmFtZTogc3RyaW5nLCBjb250YWluaW5nRmlsZTogc3RyaW5nKTogdHMuU291cmNlRmlsZXxudWxsIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNb2R1bGVOYW1lKFxuICAgICAgICBtb2R1bGVOYW1lLCBjb250YWluaW5nRmlsZSwgdGhpcy5jb21waWxlck9wdGlvbnMsIHRoaXMuaG9zdCwgdGhpcy5tb2R1bGVSZXNvbHV0aW9uQ2FjaGUpO1xuICAgIGlmIChyZXNvbHZlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGdldFNvdXJjZUZpbGVPck51bGwodGhpcy5wcm9ncmFtLCBhYnNvbHV0ZUZyb20ocmVzb2x2ZWQucmVzb2x2ZWRGaWxlTmFtZSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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/compiler-cli/src/ngtsc/incremental/api" />
9
+ import * as ts from 'typescript';
10
+ import { AbsoluteFsPath } from '../file_system';
11
+ /**
12
+ * Interface of the incremental build engine.
13
+ *
14
+ * `W` is a generic type representing a unit of work. This is generic to avoid a cyclic dependency
15
+ * between the incremental engine API definition and its consumer(s).
16
+ */
17
+ export interface IncrementalBuild<W> {
18
+ /**
19
+ * Retrieve the prior analysis work, if any, done for the given source file.
20
+ */
21
+ priorWorkFor(sf: ts.SourceFile): W[] | null;
22
+ }
23
+ /**
24
+ * Tracks dependencies between source files or resources in the application.
25
+ */
26
+ export interface DependencyTracker<T extends {
27
+ fileName: string;
28
+ } = ts.SourceFile> {
29
+ /**
30
+ * Record that the file `from` depends on the file `on`.
31
+ */
32
+ addDependency(from: T, on: T): void;
33
+ /**
34
+ * Record that the file `from` depends on the resource file `on`.
35
+ */
36
+ addResourceDependency(from: T, on: AbsoluteFsPath): void;
37
+ /**
38
+ * Record that the file `from` depends on the file `on` as well as `on`'s direct dependencies.
39
+ *
40
+ * This operation is reified immediately, so if future dependencies are added to `on` they will
41
+ * not automatically be added to `from`.
42
+ */
43
+ addTransitiveDependency(from: T, on: T): void;
44
+ /**
45
+ * Record that the file `from` depends on the resource dependencies of `resourcesOf`.
46
+ *
47
+ * This operation is reified immediately, so if future resource dependencies are added to
48
+ * `resourcesOf` they will not automatically be added to `from`.
49
+ */
50
+ addTransitiveResources(from: T, resourcesOf: T): void;
51
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/incremental/api", ["require", "exports"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9pbmNyZW1lbnRhbC9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uL2ZpbGVfc3lzdGVtJztcblxuLyoqXG4gKiBJbnRlcmZhY2Ugb2YgdGhlIGluY3JlbWVudGFsIGJ1aWxkIGVuZ2luZS5cbiAqXG4gKiBgV2AgaXMgYSBnZW5lcmljIHR5cGUgcmVwcmVzZW50aW5nIGEgdW5pdCBvZiB3b3JrLiBUaGlzIGlzIGdlbmVyaWMgdG8gYXZvaWQgYSBjeWNsaWMgZGVwZW5kZW5jeVxuICogYmV0d2VlbiB0aGUgaW5jcmVtZW50YWwgZW5naW5lIEFQSSBkZWZpbml0aW9uIGFuZCBpdHMgY29uc3VtZXIocykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxCdWlsZDxXPiB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgcHJpb3IgYW5hbHlzaXMgd29yaywgaWYgYW55LCBkb25lIGZvciB0aGUgZ2l2ZW4gc291cmNlIGZpbGUuXG4gICAqL1xuICBwcmlvcldvcmtGb3Ioc2Y6IHRzLlNvdXJjZUZpbGUpOiBXW118bnVsbDtcbn1cblxuLyoqXG4gKiBUcmFja3MgZGVwZW5kZW5jaWVzIGJldHdlZW4gc291cmNlIGZpbGVzIG9yIHJlc291cmNlcyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwZW5kZW5jeVRyYWNrZXI8VCBleHRlbmRze2ZpbGVOYW1lOiBzdHJpbmd9ID0gdHMuU291cmNlRmlsZT4ge1xuICAvKipcbiAgICogUmVjb3JkIHRoYXQgdGhlIGZpbGUgYGZyb21gIGRlcGVuZHMgb24gdGhlIGZpbGUgYG9uYC5cbiAgICovXG4gIGFkZERlcGVuZGVuY3koZnJvbTogVCwgb246IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhhdCB0aGUgZmlsZSBgZnJvbWAgZGVwZW5kcyBvbiB0aGUgcmVzb3VyY2UgZmlsZSBgb25gLlxuICAgKi9cbiAgYWRkUmVzb3VyY2VEZXBlbmRlbmN5KGZyb206IFQsIG9uOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlY29yZCB0aGF0IHRoZSBmaWxlIGBmcm9tYCBkZXBlbmRzIG9uIHRoZSBmaWxlIGBvbmAgYXMgd2VsbCBhcyBgb25gJ3MgZGlyZWN0IGRlcGVuZGVuY2llcy5cbiAgICpcbiAgICogVGhpcyBvcGVyYXRpb24gaXMgcmVpZmllZCBpbW1lZGlhdGVseSwgc28gaWYgZnV0dXJlIGRlcGVuZGVuY2llcyBhcmUgYWRkZWQgdG8gYG9uYCB0aGV5IHdpbGxcbiAgICogbm90IGF1dG9tYXRpY2FsbHkgYmUgYWRkZWQgdG8gYGZyb21gLlxuICAgKi9cbiAgYWRkVHJhbnNpdGl2ZURlcGVuZGVuY3koZnJvbTogVCwgb246IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhhdCB0aGUgZmlsZSBgZnJvbWAgZGVwZW5kcyBvbiB0aGUgcmVzb3VyY2UgZGVwZW5kZW5jaWVzIG9mIGByZXNvdXJjZXNPZmAuXG4gICAqXG4gICAqIFRoaXMgb3BlcmF0aW9uIGlzIHJlaWZpZWQgaW1tZWRpYXRlbHksIHNvIGlmIGZ1dHVyZSByZXNvdXJjZSBkZXBlbmRlbmNpZXMgYXJlIGFkZGVkIHRvXG4gICAqIGByZXNvdXJjZXNPZmAgdGhleSB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGJlIGFkZGVkIHRvIGBmcm9tYC5cbiAgICovXG4gIGFkZFRyYW5zaXRpdmVSZXNvdXJjZXMoZnJvbTogVCwgcmVzb3VyY2VzT2Y6IFQpOiB2b2lkO1xufVxuIl19
@@ -6,4 +6,5 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/incremental" />
9
+ export { NOOP_INCREMENTAL_BUILD } from './src/noop';
9
10
  export { IncrementalDriver } from './src/state';
@@ -11,12 +11,14 @@
11
11
  if (v !== undefined) module.exports = v;
12
12
  }
13
13
  else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/incremental", ["require", "exports", "@angular/compiler-cli/src/ngtsc/incremental/src/state"], factory);
14
+ define("@angular/compiler-cli/src/ngtsc/incremental", ["require", "exports", "@angular/compiler-cli/src/ngtsc/incremental/src/noop", "@angular/compiler-cli/src/ngtsc/incremental/src/state"], factory);
15
15
  }
16
16
  })(function (require, exports) {
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
+ var noop_1 = require("@angular/compiler-cli/src/ngtsc/incremental/src/noop");
20
+ exports.NOOP_INCREMENTAL_BUILD = noop_1.NOOP_INCREMENTAL_BUILD;
19
21
  var state_1 = require("@angular/compiler-cli/src/ngtsc/incremental/src/state");
20
22
  exports.IncrementalDriver = state_1.IncrementalDriver;
21
23
  });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0lBRUgsK0VBQThDO0lBQXRDLG9DQUFBLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQge0luY3JlbWVudGFsRHJpdmVyfSBmcm9tICcuL3NyYy9zdGF0ZSc7XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0lBRUgsNkVBQWtEO0lBQTFDLHdDQUFBLHNCQUFzQixDQUFBO0lBQzlCLCtFQUE4QztJQUF0QyxvQ0FBQSxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtOT09QX0lOQ1JFTUVOVEFMX0JVSUxEfSBmcm9tICcuL3NyYy9ub29wJztcbmV4cG9ydCB7SW5jcmVtZW50YWxEcml2ZXJ9IGZyb20gJy4vc3JjL3N0YXRlJztcbiJdfQ==
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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/compiler-cli/src/ngtsc/incremental/src/dependency_tracking" />
9
+ import * as ts from 'typescript';
10
+ import { AbsoluteFsPath } from '../../file_system';
11
+ import { DependencyTracker } from '../api';
12
+ /**
13
+ * An implementation of the `DependencyTracker` dependency graph API.
14
+ *
15
+ * The `FileDependencyGraph`'s primary job is to determine whether a given file has "logically"
16
+ * changed, given the set of physical changes (direct changes to files on disk).
17
+ *
18
+ * A file is logically changed if at least one of three conditions is met:
19
+ *
20
+ * 1. The file itself has physically changed.
21
+ * 2. One of its dependencies has physically changed.
22
+ * 3. One of its resource dependencies has physically changed.
23
+ */
24
+ export declare class FileDependencyGraph<T extends {
25
+ fileName: string;
26
+ } = ts.SourceFile> implements DependencyTracker<T> {
27
+ private nodes;
28
+ addDependency(from: T, on: T): void;
29
+ addResourceDependency(from: T, resource: AbsoluteFsPath): void;
30
+ addTransitiveDependency(from: T, on: T): void;
31
+ addTransitiveResources(from: T, resourcesOf: T): void;
32
+ isStale(sf: T, changedTsPaths: Set<string>, changedResources: Set<AbsoluteFsPath>): boolean;
33
+ /**
34
+ * Update the current dependency graph from a previous one, incorporating a set of physical
35
+ * changes.
36
+ *
37
+ * This method performs two tasks:
38
+ *
39
+ * 1. For files which have not logically changed, their dependencies from `previous` are added to
40
+ * `this` graph.
41
+ * 2. For files which have logically changed, they're added to a set of logically changed files
42
+ * which is eventually returned.
43
+ *
44
+ * In essence, for build `n`, this method performs:
45
+ *
46
+ * G(n) + L(n) = G(n - 1) + P(n)
47
+ *
48
+ * where:
49
+ *
50
+ * G(n) = the dependency graph of build `n`
51
+ * L(n) = the logically changed files from build n - 1 to build n.
52
+ * P(n) = the physically changed files from build n - 1 to build n.
53
+ */
54
+ updateWithPhysicalChanges(previous: FileDependencyGraph<T>, changedTsPaths: Set<string>, deletedTsPaths: Set<string>, changedResources: Set<AbsoluteFsPath>): Set<string>;
55
+ private nodeFor;
56
+ }
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/incremental/src/dependency_tracking", ["require", "exports", "tslib"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ var tslib_1 = require("tslib");
20
+ /**
21
+ * An implementation of the `DependencyTracker` dependency graph API.
22
+ *
23
+ * The `FileDependencyGraph`'s primary job is to determine whether a given file has "logically"
24
+ * changed, given the set of physical changes (direct changes to files on disk).
25
+ *
26
+ * A file is logically changed if at least one of three conditions is met:
27
+ *
28
+ * 1. The file itself has physically changed.
29
+ * 2. One of its dependencies has physically changed.
30
+ * 3. One of its resource dependencies has physically changed.
31
+ */
32
+ var FileDependencyGraph = /** @class */ (function () {
33
+ function FileDependencyGraph() {
34
+ this.nodes = new Map();
35
+ }
36
+ FileDependencyGraph.prototype.addDependency = function (from, on) { this.nodeFor(from).dependsOn.add(on.fileName); };
37
+ FileDependencyGraph.prototype.addResourceDependency = function (from, resource) {
38
+ this.nodeFor(from).usesResources.add(resource);
39
+ };
40
+ FileDependencyGraph.prototype.addTransitiveDependency = function (from, on) {
41
+ var e_1, _a;
42
+ var nodeFrom = this.nodeFor(from);
43
+ nodeFrom.dependsOn.add(on.fileName);
44
+ var nodeOn = this.nodeFor(on);
45
+ try {
46
+ for (var _b = tslib_1.__values(nodeOn.dependsOn), _c = _b.next(); !_c.done; _c = _b.next()) {
47
+ var dep = _c.value;
48
+ nodeFrom.dependsOn.add(dep);
49
+ }
50
+ }
51
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
52
+ finally {
53
+ try {
54
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
55
+ }
56
+ finally { if (e_1) throw e_1.error; }
57
+ }
58
+ };
59
+ FileDependencyGraph.prototype.addTransitiveResources = function (from, resourcesOf) {
60
+ var e_2, _a;
61
+ var nodeFrom = this.nodeFor(from);
62
+ var nodeOn = this.nodeFor(resourcesOf);
63
+ try {
64
+ for (var _b = tslib_1.__values(nodeOn.usesResources), _c = _b.next(); !_c.done; _c = _b.next()) {
65
+ var dep = _c.value;
66
+ nodeFrom.usesResources.add(dep);
67
+ }
68
+ }
69
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
70
+ finally {
71
+ try {
72
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
73
+ }
74
+ finally { if (e_2) throw e_2.error; }
75
+ }
76
+ };
77
+ FileDependencyGraph.prototype.isStale = function (sf, changedTsPaths, changedResources) {
78
+ return isLogicallyChanged(sf, this.nodeFor(sf), changedTsPaths, EMPTY_SET, changedResources);
79
+ };
80
+ /**
81
+ * Update the current dependency graph from a previous one, incorporating a set of physical
82
+ * changes.
83
+ *
84
+ * This method performs two tasks:
85
+ *
86
+ * 1. For files which have not logically changed, their dependencies from `previous` are added to
87
+ * `this` graph.
88
+ * 2. For files which have logically changed, they're added to a set of logically changed files
89
+ * which is eventually returned.
90
+ *
91
+ * In essence, for build `n`, this method performs:
92
+ *
93
+ * G(n) + L(n) = G(n - 1) + P(n)
94
+ *
95
+ * where:
96
+ *
97
+ * G(n) = the dependency graph of build `n`
98
+ * L(n) = the logically changed files from build n - 1 to build n.
99
+ * P(n) = the physically changed files from build n - 1 to build n.
100
+ */
101
+ FileDependencyGraph.prototype.updateWithPhysicalChanges = function (previous, changedTsPaths, deletedTsPaths, changedResources) {
102
+ var e_3, _a;
103
+ var logicallyChanged = new Set();
104
+ try {
105
+ for (var _b = tslib_1.__values(previous.nodes.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
106
+ var sf = _c.value;
107
+ var node = previous.nodeFor(sf);
108
+ if (isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedResources)) {
109
+ logicallyChanged.add(sf.fileName);
110
+ }
111
+ else if (!deletedTsPaths.has(sf.fileName)) {
112
+ this.nodes.set(sf, {
113
+ dependsOn: new Set(node.dependsOn),
114
+ usesResources: new Set(node.usesResources),
115
+ });
116
+ }
117
+ }
118
+ }
119
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
120
+ finally {
121
+ try {
122
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
123
+ }
124
+ finally { if (e_3) throw e_3.error; }
125
+ }
126
+ return logicallyChanged;
127
+ };
128
+ FileDependencyGraph.prototype.nodeFor = function (sf) {
129
+ if (!this.nodes.has(sf)) {
130
+ this.nodes.set(sf, {
131
+ dependsOn: new Set(),
132
+ usesResources: new Set(),
133
+ });
134
+ }
135
+ return this.nodes.get(sf);
136
+ };
137
+ return FileDependencyGraph;
138
+ }());
139
+ exports.FileDependencyGraph = FileDependencyGraph;
140
+ /**
141
+ * Determine whether `sf` has logically changed, given its dependencies and the set of physically
142
+ * changed files and resources.
143
+ */
144
+ function isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedResources) {
145
+ var e_4, _a, e_5, _b;
146
+ // A file is logically changed if it has physically changed itself (including being deleted).
147
+ if (changedTsPaths.has(sf.fileName) || deletedTsPaths.has(sf.fileName)) {
148
+ return true;
149
+ }
150
+ try {
151
+ // A file is logically changed if one of its dependencies has physically changed.
152
+ for (var _c = tslib_1.__values(node.dependsOn), _d = _c.next(); !_d.done; _d = _c.next()) {
153
+ var dep = _d.value;
154
+ if (changedTsPaths.has(dep) || deletedTsPaths.has(dep)) {
155
+ return true;
156
+ }
157
+ }
158
+ }
159
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
160
+ finally {
161
+ try {
162
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
163
+ }
164
+ finally { if (e_4) throw e_4.error; }
165
+ }
166
+ try {
167
+ // A file is logically changed if one of its resources has physically changed.
168
+ for (var _e = tslib_1.__values(node.usesResources), _f = _e.next(); !_f.done; _f = _e.next()) {
169
+ var dep = _f.value;
170
+ if (changedResources.has(dep)) {
171
+ return true;
172
+ }
173
+ }
174
+ }
175
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
176
+ finally {
177
+ try {
178
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
179
+ }
180
+ finally { if (e_5) throw e_5.error; }
181
+ }
182
+ return false;
183
+ }
184
+ var EMPTY_SET = new Set();
185
+ });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeV90cmFja2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW5jcmVtZW50YWwvc3JjL2RlcGVuZGVuY3lfdHJhY2tpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBT0g7Ozs7Ozs7Ozs7O09BV0c7SUFDSDtRQUFBO1lBRVUsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFnRnpDLENBQUM7UUE5RUMsMkNBQWEsR0FBYixVQUFjLElBQU8sRUFBRSxFQUFLLElBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEYsbURBQXFCLEdBQXJCLFVBQXNCLElBQU8sRUFBRSxRQUF3QjtZQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELHFEQUF1QixHQUF2QixVQUF3QixJQUFPLEVBQUUsRUFBSzs7WUFDcEMsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFcEMsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzs7Z0JBQ2hDLEtBQWtCLElBQUEsS0FBQSxpQkFBQSxNQUFNLENBQUMsU0FBUyxDQUFBLGdCQUFBLDRCQUFFO29CQUEvQixJQUFNLEdBQUcsV0FBQTtvQkFDWixRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDN0I7Ozs7Ozs7OztRQUNILENBQUM7UUFFRCxvREFBc0IsR0FBdEIsVUFBdUIsSUFBTyxFQUFFLFdBQWM7O1lBQzVDLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQzs7Z0JBQ3pDLEtBQWtCLElBQUEsS0FBQSxpQkFBQSxNQUFNLENBQUMsYUFBYSxDQUFBLGdCQUFBLDRCQUFFO29CQUFuQyxJQUFNLEdBQUcsV0FBQTtvQkFDWixRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDakM7Ozs7Ozs7OztRQUNILENBQUM7UUFFRCxxQ0FBTyxHQUFQLFVBQVEsRUFBSyxFQUFFLGNBQTJCLEVBQUUsZ0JBQXFDO1lBQy9FLE9BQU8sa0JBQWtCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FvQkc7UUFDSCx1REFBeUIsR0FBekIsVUFDSSxRQUFnQyxFQUFFLGNBQTJCLEVBQUUsY0FBMkIsRUFDMUYsZ0JBQXFDOztZQUN2QyxJQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7O2dCQUUzQyxLQUFpQixJQUFBLEtBQUEsaUJBQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBbkMsSUFBTSxFQUFFLFdBQUE7b0JBQ1gsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbEMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTt3QkFDbEYsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbkM7eUJBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7NEJBQ2pCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzRCQUNsQyxhQUFhLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzt5QkFDM0MsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGOzs7Ozs7Ozs7WUFFRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7UUFFTyxxQ0FBTyxHQUFmLFVBQWdCLEVBQUs7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7b0JBQ2pCLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBVTtvQkFDNUIsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFrQjtpQkFDekMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRyxDQUFDO1FBQzlCLENBQUM7UUFDSCwwQkFBQztJQUFELENBQUMsQUFsRkQsSUFrRkM7SUFsRlksa0RBQW1CO0lBb0ZoQzs7O09BR0c7SUFDSCxTQUFTLGtCQUFrQixDQUN2QixFQUFLLEVBQUUsSUFBYyxFQUFFLGNBQW1DLEVBQUUsY0FBbUMsRUFDL0YsZ0JBQTZDOztRQUMvQyw2RkFBNkY7UUFDN0YsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0RSxPQUFPLElBQUksQ0FBQztTQUNiOztZQUVELGlGQUFpRjtZQUNqRixLQUFrQixJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBN0IsSUFBTSxHQUFHLFdBQUE7Z0JBQ1osSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RELE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7Ozs7Ozs7Ozs7WUFFRCw4RUFBOEU7WUFDOUUsS0FBa0IsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxhQUFhLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQWpDLElBQU0sR0FBRyxXQUFBO2dCQUNaLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM3QixPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGOzs7Ozs7Ozs7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFPRCxJQUFNLFNBQVMsR0FBcUIsSUFBSSxHQUFHLEVBQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7RGVwZW5kZW5jeVRyYWNrZXJ9IGZyb20gJy4uL2FwaSc7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGBEZXBlbmRlbmN5VHJhY2tlcmAgZGVwZW5kZW5jeSBncmFwaCBBUEkuXG4gKlxuICogVGhlIGBGaWxlRGVwZW5kZW5jeUdyYXBoYCdzIHByaW1hcnkgam9iIGlzIHRvIGRldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gZmlsZSBoYXMgXCJsb2dpY2FsbHlcIlxuICogY2hhbmdlZCwgZ2l2ZW4gdGhlIHNldCBvZiBwaHlzaWNhbCBjaGFuZ2VzIChkaXJlY3QgY2hhbmdlcyB0byBmaWxlcyBvbiBkaXNrKS5cbiAqXG4gKiBBIGZpbGUgaXMgbG9naWNhbGx5IGNoYW5nZWQgaWYgYXQgbGVhc3Qgb25lIG9mIHRocmVlIGNvbmRpdGlvbnMgaXMgbWV0OlxuICpcbiAqIDEuIFRoZSBmaWxlIGl0c2VsZiBoYXMgcGh5c2ljYWxseSBjaGFuZ2VkLlxuICogMi4gT25lIG9mIGl0cyBkZXBlbmRlbmNpZXMgaGFzIHBoeXNpY2FsbHkgY2hhbmdlZC5cbiAqIDMuIE9uZSBvZiBpdHMgcmVzb3VyY2UgZGVwZW5kZW5jaWVzIGhhcyBwaHlzaWNhbGx5IGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlRGVwZW5kZW5jeUdyYXBoPFQgZXh0ZW5kc3tmaWxlTmFtZTogc3RyaW5nfSA9IHRzLlNvdXJjZUZpbGU+IGltcGxlbWVudHNcbiAgICBEZXBlbmRlbmN5VHJhY2tlcjxUPiB7XG4gIHByaXZhdGUgbm9kZXMgPSBuZXcgTWFwPFQsIEZpbGVOb2RlPigpO1xuXG4gIGFkZERlcGVuZGVuY3koZnJvbTogVCwgb246IFQpOiB2b2lkIHsgdGhpcy5ub2RlRm9yKGZyb20pLmRlcGVuZHNPbi5hZGQob24uZmlsZU5hbWUpOyB9XG5cbiAgYWRkUmVzb3VyY2VEZXBlbmRlbmN5KGZyb206IFQsIHJlc291cmNlOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQge1xuICAgIHRoaXMubm9kZUZvcihmcm9tKS51c2VzUmVzb3VyY2VzLmFkZChyZXNvdXJjZSk7XG4gIH1cblxuICBhZGRUcmFuc2l0aXZlRGVwZW5kZW5jeShmcm9tOiBULCBvbjogVCk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVGcm9tID0gdGhpcy5ub2RlRm9yKGZyb20pO1xuICAgIG5vZGVGcm9tLmRlcGVuZHNPbi5hZGQob24uZmlsZU5hbWUpO1xuXG4gICAgY29uc3Qgbm9kZU9uID0gdGhpcy5ub2RlRm9yKG9uKTtcbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlT24uZGVwZW5kc09uKSB7XG4gICAgICBub2RlRnJvbS5kZXBlbmRzT24uYWRkKGRlcCk7XG4gICAgfVxuICB9XG5cbiAgYWRkVHJhbnNpdGl2ZVJlc291cmNlcyhmcm9tOiBULCByZXNvdXJjZXNPZjogVCk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVGcm9tID0gdGhpcy5ub2RlRm9yKGZyb20pO1xuICAgIGNvbnN0IG5vZGVPbiA9IHRoaXMubm9kZUZvcihyZXNvdXJjZXNPZik7XG4gICAgZm9yIChjb25zdCBkZXAgb2Ygbm9kZU9uLnVzZXNSZXNvdXJjZXMpIHtcbiAgICAgIG5vZGVGcm9tLnVzZXNSZXNvdXJjZXMuYWRkKGRlcCk7XG4gICAgfVxuICB9XG5cbiAgaXNTdGFsZShzZjogVCwgY2hhbmdlZFRzUGF0aHM6IFNldDxzdHJpbmc+LCBjaGFuZ2VkUmVzb3VyY2VzOiBTZXQ8QWJzb2x1dGVGc1BhdGg+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTG9naWNhbGx5Q2hhbmdlZChzZiwgdGhpcy5ub2RlRm9yKHNmKSwgY2hhbmdlZFRzUGF0aHMsIEVNUFRZX1NFVCwgY2hhbmdlZFJlc291cmNlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBjdXJyZW50IGRlcGVuZGVuY3kgZ3JhcGggZnJvbSBhIHByZXZpb3VzIG9uZSwgaW5jb3Jwb3JhdGluZyBhIHNldCBvZiBwaHlzaWNhbFxuICAgKiBjaGFuZ2VzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB0d28gdGFza3M6XG4gICAqXG4gICAqIDEuIEZvciBmaWxlcyB3aGljaCBoYXZlIG5vdCBsb2dpY2FsbHkgY2hhbmdlZCwgdGhlaXIgZGVwZW5kZW5jaWVzIGZyb20gYHByZXZpb3VzYCBhcmUgYWRkZWQgdG9cbiAgICogICAgYHRoaXNgIGdyYXBoLlxuICAgKiAyLiBGb3IgZmlsZXMgd2hpY2ggaGF2ZSBsb2dpY2FsbHkgY2hhbmdlZCwgdGhleSdyZSBhZGRlZCB0byBhIHNldCBvZiBsb2dpY2FsbHkgY2hhbmdlZCBmaWxlc1xuICAgKiAgICB3aGljaCBpcyBldmVudHVhbGx5IHJldHVybmVkLlxuICAgKlxuICAgKiBJbiBlc3NlbmNlLCBmb3IgYnVpbGQgYG5gLCB0aGlzIG1ldGhvZCBwZXJmb3JtczpcbiAgICpcbiAgICogRyhuKSArIEwobikgPSBHKG4gLSAxKSArIFAobilcbiAgICpcbiAgICogd2hlcmU6XG4gICAqXG4gICAqIEcobikgPSB0aGUgZGVwZW5kZW5jeSBncmFwaCBvZiBidWlsZCBgbmBcbiAgICogTChuKSA9IHRoZSBsb2dpY2FsbHkgY2hhbmdlZCBmaWxlcyBmcm9tIGJ1aWxkIG4gLSAxIHRvIGJ1aWxkIG4uXG4gICAqIFAobikgPSB0aGUgcGh5c2ljYWxseSBjaGFuZ2VkIGZpbGVzIGZyb20gYnVpbGQgbiAtIDEgdG8gYnVpbGQgbi5cbiAgICovXG4gIHVwZGF0ZVdpdGhQaHlzaWNhbENoYW5nZXMoXG4gICAgICBwcmV2aW91czogRmlsZURlcGVuZGVuY3lHcmFwaDxUPiwgY2hhbmdlZFRzUGF0aHM6IFNldDxzdHJpbmc+LCBkZWxldGVkVHNQYXRoczogU2V0PHN0cmluZz4sXG4gICAgICBjaGFuZ2VkUmVzb3VyY2VzOiBTZXQ8QWJzb2x1dGVGc1BhdGg+KTogU2V0PHN0cmluZz4ge1xuICAgIGNvbnN0IGxvZ2ljYWxseUNoYW5nZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGZvciAoY29uc3Qgc2Ygb2YgcHJldmlvdXMubm9kZXMua2V5cygpKSB7XG4gICAgICBjb25zdCBub2RlID0gcHJldmlvdXMubm9kZUZvcihzZik7XG4gICAgICBpZiAoaXNMb2dpY2FsbHlDaGFuZ2VkKHNmLCBub2RlLCBjaGFuZ2VkVHNQYXRocywgZGVsZXRlZFRzUGF0aHMsIGNoYW5nZWRSZXNvdXJjZXMpKSB7XG4gICAgICAgIGxvZ2ljYWxseUNoYW5nZWQuYWRkKHNmLmZpbGVOYW1lKTtcbiAgICAgIH0gZWxzZSBpZiAoIWRlbGV0ZWRUc1BhdGhzLmhhcyhzZi5maWxlTmFtZSkpIHtcbiAgICAgICAgdGhpcy5ub2Rlcy5zZXQoc2YsIHtcbiAgICAgICAgICBkZXBlbmRzT246IG5ldyBTZXQobm9kZS5kZXBlbmRzT24pLFxuICAgICAgICAgIHVzZXNSZXNvdXJjZXM6IG5ldyBTZXQobm9kZS51c2VzUmVzb3VyY2VzKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ2ljYWxseUNoYW5nZWQ7XG4gIH1cblxuICBwcml2YXRlIG5vZGVGb3Ioc2Y6IFQpOiBGaWxlTm9kZSB7XG4gICAgaWYgKCF0aGlzLm5vZGVzLmhhcyhzZikpIHtcbiAgICAgIHRoaXMubm9kZXMuc2V0KHNmLCB7XG4gICAgICAgIGRlcGVuZHNPbjogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICAgIHVzZXNSZXNvdXJjZXM6IG5ldyBTZXQ8QWJzb2x1dGVGc1BhdGg+KCksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubm9kZXMuZ2V0KHNmKSAhO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgYHNmYCBoYXMgbG9naWNhbGx5IGNoYW5nZWQsIGdpdmVuIGl0cyBkZXBlbmRlbmNpZXMgYW5kIHRoZSBzZXQgb2YgcGh5c2ljYWxseVxuICogY2hhbmdlZCBmaWxlcyBhbmQgcmVzb3VyY2VzLlxuICovXG5mdW5jdGlvbiBpc0xvZ2ljYWxseUNoYW5nZWQ8VCBleHRlbmRze2ZpbGVOYW1lOiBzdHJpbmd9PihcbiAgICBzZjogVCwgbm9kZTogRmlsZU5vZGUsIGNoYW5nZWRUc1BhdGhzOiBSZWFkb25seVNldDxzdHJpbmc+LCBkZWxldGVkVHNQYXRoczogUmVhZG9ubHlTZXQ8c3RyaW5nPixcbiAgICBjaGFuZ2VkUmVzb3VyY2VzOiBSZWFkb25seVNldDxBYnNvbHV0ZUZzUGF0aD4pOiBib29sZWFuIHtcbiAgLy8gQSBmaWxlIGlzIGxvZ2ljYWxseSBjaGFuZ2VkIGlmIGl0IGhhcyBwaHlzaWNhbGx5IGNoYW5nZWQgaXRzZWxmIChpbmNsdWRpbmcgYmVpbmcgZGVsZXRlZCkuXG4gIGlmIChjaGFuZ2VkVHNQYXRocy5oYXMoc2YuZmlsZU5hbWUpIHx8IGRlbGV0ZWRUc1BhdGhzLmhhcyhzZi5maWxlTmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIEEgZmlsZSBpcyBsb2dpY2FsbHkgY2hhbmdlZCBpZiBvbmUgb2YgaXRzIGRlcGVuZGVuY2llcyBoYXMgcGh5c2ljYWxseSBjaGFuZ2VkLlxuICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZHNPbikge1xuICAgIGlmIChjaGFuZ2VkVHNQYXRocy5oYXMoZGVwKSB8fCBkZWxldGVkVHNQYXRocy5oYXMoZGVwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQSBmaWxlIGlzIGxvZ2ljYWxseSBjaGFuZ2VkIGlmIG9uZSBvZiBpdHMgcmVzb3VyY2VzIGhhcyBwaHlzaWNhbGx5IGNoYW5nZWQuXG4gIGZvciAoY29uc3QgZGVwIG9mIG5vZGUudXNlc1Jlc291cmNlcykge1xuICAgIGlmIChjaGFuZ2VkUmVzb3VyY2VzLmhhcyhkZXApKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5pbnRlcmZhY2UgRmlsZU5vZGUge1xuICBkZXBlbmRzT246IFNldDxzdHJpbmc+O1xuICB1c2VzUmVzb3VyY2VzOiBTZXQ8QWJzb2x1dGVGc1BhdGg+O1xufVxuXG5jb25zdCBFTVBUWV9TRVQ6IFJlYWRvbmx5U2V0PGFueT4gPSBuZXcgU2V0PGFueT4oKTtcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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/compiler-cli/src/ngtsc/incremental/src/noop" />
9
+ import { IncrementalBuild } from '../api';
10
+ export declare const NOOP_INCREMENTAL_BUILD: IncrementalBuild<any>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/incremental/src/noop", ["require", "exports"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.NOOP_INCREMENTAL_BUILD = {
20
+ priorWorkFor: function () { return null; }
21
+ };
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW5jcmVtZW50YWwvc3JjL25vb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7SUFJVSxRQUFBLHNCQUFzQixHQUEwQjtRQUMzRCxZQUFZLEVBQUUsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJO0tBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5jcmVtZW50YWxCdWlsZH0gZnJvbSAnLi4vYXBpJztcblxuZXhwb3J0IGNvbnN0IE5PT1BfSU5DUkVNRU5UQUxfQlVJTEQ6IEluY3JlbWVudGFsQnVpbGQ8YW55PiA9IHtcbiAgcHJpb3JXb3JrRm9yOiAoKSA9PiBudWxsXG59O1xuIl19