@angular/cdk 20.0.0-next.2 → 20.0.0-next.4

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 (315) hide show
  1. package/dialog/index.d.ts +8 -3
  2. package/drag-drop/index.d.ts +2 -1
  3. package/fesm2022/{a11y-module-e6996d20.mjs → a11y-module-b228dc71.mjs} +29 -29
  4. package/fesm2022/{a11y-module-e6996d20.mjs.map → a11y-module-b228dc71.mjs.map} +1 -1
  5. package/fesm2022/a11y.mjs +20 -20
  6. package/fesm2022/accordion.mjs +12 -12
  7. package/fesm2022/{array-ee3b4bab.mjs → array-88e1bec3.mjs} +1 -1
  8. package/fesm2022/array-88e1bec3.mjs.map +1 -0
  9. package/fesm2022/{bidi-module-0726b65c.mjs → bidi-module-e73b8776.mjs} +9 -9
  10. package/fesm2022/{bidi-module-0726b65c.mjs.map → bidi-module-e73b8776.mjs.map} +1 -1
  11. package/fesm2022/bidi.mjs +2 -2
  12. package/fesm2022/{breakpoints-observer-d4584b66.mjs → breakpoints-observer-9432a91b.mjs} +9 -9
  13. package/fesm2022/{breakpoints-observer-d4584b66.mjs.map → breakpoints-observer-9432a91b.mjs.map} +1 -1
  14. package/fesm2022/cdk.mjs +1 -1
  15. package/fesm2022/cdk.mjs.map +1 -1
  16. package/fesm2022/clipboard.mjs +10 -10
  17. package/fesm2022/coercion.mjs +3 -3
  18. package/fesm2022/coercion.mjs.map +1 -1
  19. package/fesm2022/collections.mjs +1 -1
  20. package/fesm2022/{css-pixel-value-286c9a60.mjs → css-pixel-value-447bbfe8.mjs} +1 -1
  21. package/fesm2022/css-pixel-value-447bbfe8.mjs.map +1 -0
  22. package/fesm2022/dialog.mjs +32 -26
  23. package/fesm2022/dialog.mjs.map +1 -1
  24. package/fesm2022/{directionality-7ea26429.mjs → directionality-ea6ab987.mjs} +4 -4
  25. package/fesm2022/{directionality-7ea26429.mjs.map → directionality-ea6ab987.mjs.map} +1 -1
  26. package/fesm2022/drag-drop.mjs +40 -39
  27. package/fesm2022/drag-drop.mjs.map +1 -1
  28. package/fesm2022/{element-705567fe.mjs → element-08c51fcd.mjs} +1 -1
  29. package/fesm2022/element-08c51fcd.mjs.map +1 -0
  30. package/fesm2022/{focus-monitor-cebaa0d1.mjs → focus-monitor-69f9c0f9.mjs} +12 -12
  31. package/fesm2022/{focus-monitor-cebaa0d1.mjs.map → focus-monitor-69f9c0f9.mjs.map} +1 -1
  32. package/fesm2022/{id-generator-fba495fb.mjs → id-generator-ec45a122.mjs} +4 -4
  33. package/fesm2022/{id-generator-fba495fb.mjs.map → id-generator-ec45a122.mjs.map} +1 -1
  34. package/fesm2022/layout.mjs +7 -7
  35. package/fesm2022/listbox.mjs +14 -14
  36. package/fesm2022/menu.mjs +64 -62
  37. package/fesm2022/menu.mjs.map +1 -1
  38. package/fesm2022/{observe-content-d2a6b5a0.mjs → observe-content-459e1d12.mjs} +15 -15
  39. package/fesm2022/{observe-content-d2a6b5a0.mjs.map → observe-content-459e1d12.mjs.map} +1 -1
  40. package/fesm2022/observers/private.mjs +3 -3
  41. package/fesm2022/observers.mjs +2 -2
  42. package/fesm2022/{overlay-module-863b82c9.mjs → overlay-module-6e7b742f.mjs} +47 -45
  43. package/fesm2022/overlay-module-6e7b742f.mjs.map +1 -0
  44. package/fesm2022/overlay.mjs +15 -15
  45. package/fesm2022/{platform-1be098b0.mjs → platform-2be6a529.mjs} +4 -4
  46. package/fesm2022/{platform-1be098b0.mjs.map → platform-2be6a529.mjs.map} +1 -1
  47. package/fesm2022/platform.mjs +5 -5
  48. package/fesm2022/{portal-directives-c88fea11.mjs → portal-directives-9cd98881.mjs} +18 -18
  49. package/fesm2022/{portal-directives-c88fea11.mjs.map → portal-directives-9cd98881.mjs.map} +1 -1
  50. package/fesm2022/portal.mjs +1 -1
  51. package/fesm2022/private.mjs +2 -2
  52. package/fesm2022/{scrolling-module-aa9eeac5.mjs → scrolling-module-72941c9f.mjs} +41 -41
  53. package/fesm2022/{scrolling-module-aa9eeac5.mjs.map → scrolling-module-72941c9f.mjs.map} +1 -1
  54. package/fesm2022/scrolling.mjs +5 -5
  55. package/fesm2022/stepper.mjs +25 -25
  56. package/fesm2022/{style-loader-e14dc585.mjs → style-loader-9fc0a4d2.mjs} +4 -4
  57. package/fesm2022/{style-loader-e14dc585.mjs.map → style-loader-9fc0a4d2.mjs.map} +1 -1
  58. package/fesm2022/table.mjs +81 -81
  59. package/fesm2022/testing/selenium-webdriver.mjs +1 -1
  60. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  61. package/fesm2022/testing/testbed.mjs +1 -1
  62. package/fesm2022/testing/testbed.mjs.map +1 -1
  63. package/fesm2022/testing.mjs +1 -1
  64. package/fesm2022/text-field.mjs +19 -19
  65. package/fesm2022/{text-filtering-b60ba8a2.mjs → text-filtering-0c6de6d6.mjs} +1 -1
  66. package/fesm2022/text-filtering-0c6de6d6.mjs.map +1 -0
  67. package/fesm2022/tree.mjs +41 -28
  68. package/fesm2022/tree.mjs.map +1 -1
  69. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs → unique-selection-dispatcher-d0d5176e.mjs} +4 -4
  70. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs.map → unique-selection-dispatcher-d0d5176e.mjs.map} +1 -1
  71. package/fesm2022/{visually-hidden-83aea4a0.mjs → visually-hidden-a6df546a.mjs} +4 -4
  72. package/fesm2022/{visually-hidden-83aea4a0.mjs.map → visually-hidden-a6df546a.mjs.map} +1 -1
  73. package/menu/index.d.ts +3 -3
  74. package/overlay/index.d.ts +6 -6
  75. package/{overlay-module.d-5d06db8a.d.ts → overlay-module.d-46197115.d.ts} +4 -2
  76. package/package.json +2 -4
  77. package/portal/index.d.ts +2 -2
  78. package/{portal-directives.d-d345bd53.d.ts → portal-directives.d-fefec9d6.d.ts} +1 -1
  79. package/schematics/index.js +1 -1
  80. package/schematics/index.js.map +1 -0
  81. package/schematics/ng-add/index.js +2 -2
  82. package/schematics/ng-add/index.js.map +1 -0
  83. package/schematics/ng-add/package-config.js +1 -1
  84. package/schematics/ng-add/package-config.js.map +1 -0
  85. package/schematics/ng-add/schema.js +1 -1
  86. package/schematics/ng-add/schema.js.map +1 -0
  87. package/schematics/ng-generate/drag-drop/index.js +15 -6
  88. package/schematics/ng-generate/drag-drop/index.js.map +1 -0
  89. package/schematics/ng-generate/drag-drop/schema.js +1 -1
  90. package/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  91. package/schematics/ng-update/data/attribute-selectors.js +1 -1
  92. package/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  93. package/schematics/ng-update/data/class-names.js +1 -1
  94. package/schematics/ng-update/data/class-names.js.map +1 -0
  95. package/schematics/ng-update/data/constructor-checks.js +1 -1
  96. package/schematics/ng-update/data/constructor-checks.js.map +1 -0
  97. package/schematics/ng-update/data/css-selectors.js +1 -1
  98. package/schematics/ng-update/data/css-selectors.js.map +1 -0
  99. package/schematics/ng-update/data/css-tokens.js +1 -1
  100. package/schematics/ng-update/data/css-tokens.js.map +1 -0
  101. package/schematics/ng-update/data/element-selectors.js +1 -1
  102. package/schematics/ng-update/data/element-selectors.js.map +1 -0
  103. package/schematics/ng-update/data/index.js +1 -1
  104. package/schematics/ng-update/data/index.js.map +1 -0
  105. package/schematics/ng-update/data/input-names.js +1 -1
  106. package/schematics/ng-update/data/input-names.js.map +1 -0
  107. package/schematics/ng-update/data/method-call-checks.js +1 -1
  108. package/schematics/ng-update/data/method-call-checks.js.map +1 -0
  109. package/schematics/ng-update/data/output-names.js +1 -1
  110. package/schematics/ng-update/data/output-names.js.map +1 -0
  111. package/schematics/ng-update/data/property-names.js +1 -1
  112. package/schematics/ng-update/data/property-names.js.map +1 -0
  113. package/schematics/ng-update/data/symbol-removal.js +1 -1
  114. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  115. package/schematics/ng-update/devkit-file-system.js +2 -3
  116. package/schematics/ng-update/devkit-file-system.js.map +1 -0
  117. package/schematics/ng-update/devkit-migration-rule.js +13 -4
  118. package/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  119. package/schematics/ng-update/devkit-migration.js +1 -1
  120. package/schematics/ng-update/devkit-migration.js.map +1 -0
  121. package/schematics/ng-update/find-stylesheets.js +1 -1
  122. package/schematics/ng-update/find-stylesheets.js.map +1 -0
  123. package/schematics/ng-update/html-parsing/angular.js +1 -1
  124. package/schematics/ng-update/html-parsing/angular.js.map +1 -0
  125. package/schematics/ng-update/html-parsing/elements.js +3 -2
  126. package/schematics/ng-update/html-parsing/elements.js.map +1 -0
  127. package/schematics/ng-update/index.js +1 -1
  128. package/schematics/ng-update/index.js.map +1 -0
  129. package/schematics/ng-update/migrations/attribute-selectors.js +8 -5
  130. package/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  131. package/schematics/ng-update/migrations/class-inheritance.js +11 -8
  132. package/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  133. package/schematics/ng-update/migrations/class-names.js +15 -12
  134. package/schematics/ng-update/migrations/class-names.js.map +1 -0
  135. package/schematics/ng-update/migrations/constructor-signature.js +10 -7
  136. package/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  137. package/schematics/ng-update/migrations/css-selectors.js +8 -5
  138. package/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  139. package/schematics/ng-update/migrations/css-tokens.js +8 -5
  140. package/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  141. package/schematics/ng-update/migrations/element-selectors.js +8 -5
  142. package/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  143. package/schematics/ng-update/migrations/input-names.js +8 -5
  144. package/schematics/ng-update/migrations/input-names.js.map +1 -0
  145. package/schematics/ng-update/migrations/method-call-arguments.js +8 -5
  146. package/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  147. package/schematics/ng-update/migrations/misc-template.js +6 -3
  148. package/schematics/ng-update/migrations/misc-template.js.map +1 -0
  149. package/schematics/ng-update/migrations/output-names.js +8 -5
  150. package/schematics/ng-update/migrations/output-names.js.map +1 -0
  151. package/schematics/ng-update/migrations/property-names.js +8 -5
  152. package/schematics/ng-update/migrations/property-names.js.map +1 -0
  153. package/schematics/ng-update/migrations/symbol-removal.js +10 -6
  154. package/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  155. package/schematics/ng-update/public-api.js +1 -1
  156. package/schematics/ng-update/public-api.js.map +1 -0
  157. package/schematics/ng-update/typescript/base-types.js +1 -1
  158. package/schematics/ng-update/typescript/base-types.js.map +1 -0
  159. package/schematics/ng-update/typescript/imports.js +1 -1
  160. package/schematics/ng-update/typescript/imports.js.map +1 -0
  161. package/schematics/ng-update/typescript/literal.js +1 -1
  162. package/schematics/ng-update/typescript/literal.js.map +1 -0
  163. package/schematics/ng-update/typescript/module-specifiers.js +1 -1
  164. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  165. package/schematics/ng-update/upgrade-data.js +1 -1
  166. package/schematics/ng-update/upgrade-data.js.map +1 -0
  167. package/schematics/paths.js +1 -1
  168. package/schematics/paths.js.map +1 -0
  169. package/schematics/update-tool/component-resource-collector.js +3 -5
  170. package/schematics/update-tool/component-resource-collector.js.map +1 -0
  171. package/schematics/update-tool/file-system.js +1 -1
  172. package/schematics/update-tool/file-system.js.map +1 -0
  173. package/schematics/update-tool/index.js +2 -8
  174. package/schematics/update-tool/index.js.map +1 -0
  175. package/schematics/update-tool/logger.js +1 -1
  176. package/schematics/update-tool/logger.js.map +1 -0
  177. package/schematics/update-tool/migration.js +3 -10
  178. package/schematics/update-tool/migration.js.map +1 -0
  179. package/schematics/update-tool/public-api.js +1 -1
  180. package/schematics/update-tool/public-api.js.map +1 -0
  181. package/schematics/update-tool/target-version.js +1 -1
  182. package/schematics/update-tool/target-version.js.map +1 -0
  183. package/schematics/update-tool/update-recorder.js +1 -1
  184. package/schematics/update-tool/update-recorder.js.map +1 -0
  185. package/schematics/update-tool/utils/decorators.js +1 -1
  186. package/schematics/update-tool/utils/decorators.js.map +1 -0
  187. package/schematics/update-tool/utils/diagnostics.js +1 -1
  188. package/schematics/update-tool/utils/diagnostics.js.map +1 -0
  189. package/schematics/update-tool/utils/functions.js +1 -1
  190. package/schematics/update-tool/utils/functions.js.map +1 -0
  191. package/schematics/update-tool/utils/imports.js +1 -1
  192. package/schematics/update-tool/utils/imports.js.map +1 -0
  193. package/schematics/update-tool/utils/line-mappings.js +1 -1
  194. package/schematics/update-tool/utils/line-mappings.js.map +1 -0
  195. package/schematics/update-tool/utils/parse-tsconfig.js +1 -1
  196. package/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  197. package/schematics/update-tool/utils/property-name.js +1 -1
  198. package/schematics/update-tool/utils/property-name.js.map +1 -0
  199. package/schematics/update-tool/utils/virtual-host.js +2 -3
  200. package/schematics/update-tool/utils/virtual-host.js.map +1 -0
  201. package/schematics/update-tool/version-changes.js +1 -1
  202. package/schematics/update-tool/version-changes.js.map +1 -0
  203. package/schematics/utils/ast/ng-module-imports.js +1 -1
  204. package/schematics/utils/ast/ng-module-imports.js.map +1 -0
  205. package/schematics/utils/ast.js +22 -11
  206. package/schematics/utils/ast.js.map +1 -0
  207. package/schematics/utils/build-component.js +16 -11
  208. package/schematics/utils/build-component.js.map +1 -0
  209. package/schematics/utils/get-project.js +1 -1
  210. package/schematics/utils/get-project.js.map +1 -0
  211. package/schematics/utils/html-manipulation.js +1 -1
  212. package/schematics/utils/html-manipulation.js.map +1 -0
  213. package/schematics/utils/index.js +1 -1
  214. package/schematics/utils/index.js.map +1 -0
  215. package/schematics/utils/parse5-element.js +1 -1
  216. package/schematics/utils/parse5-element.js.map +1 -0
  217. package/schematics/utils/project-index-file.js +2 -2
  218. package/schematics/utils/project-index-file.js.map +1 -0
  219. package/schematics/utils/project-main-file.js +1 -1
  220. package/schematics/utils/project-main-file.js.map +1 -0
  221. package/schematics/utils/project-style-file.js +1 -1
  222. package/schematics/utils/project-style-file.js.map +1 -0
  223. package/schematics/utils/project-targets.js +4 -3
  224. package/schematics/utils/project-targets.js.map +1 -0
  225. package/schematics/utils/project-tsconfig-paths.js +25 -13
  226. package/schematics/utils/project-tsconfig-paths.js.map +1 -0
  227. package/schematics/utils/schematic-options.js +26 -14
  228. package/schematics/utils/schematic-options.js.map +1 -0
  229. package/scrolling/index.d.ts +2 -2
  230. package/{scrolling-module.d-a08a462d.d.ts → scrolling-module.d-e4f8e471.d.ts} +1 -1
  231. package/table/index.d.ts +1 -1
  232. package/tree/index.d.ts +2 -0
  233. package/fesm2022/array-ee3b4bab.mjs.map +0 -1
  234. package/fesm2022/css-pixel-value-286c9a60.mjs.map +0 -1
  235. package/fesm2022/element-705567fe.mjs.map +0 -1
  236. package/fesm2022/overlay-module-863b82c9.mjs.map +0 -1
  237. package/fesm2022/text-filtering-b60ba8a2.mjs.map +0 -1
  238. package/schematics/index.mjs +0 -37
  239. package/schematics/ng-add/index.mjs +0 -39
  240. package/schematics/ng-add/package-config.mjs +0 -51
  241. package/schematics/ng-add/schema.mjs +0 -10
  242. package/schematics/ng-generate/drag-drop/index.mjs +0 -33
  243. package/schematics/ng-generate/drag-drop/schema.mjs +0 -10
  244. package/schematics/ng-update/data/attribute-selectors.mjs +0 -12
  245. package/schematics/ng-update/data/class-names.mjs +0 -12
  246. package/schematics/ng-update/data/constructor-checks.mjs +0 -17
  247. package/schematics/ng-update/data/css-selectors.mjs +0 -12
  248. package/schematics/ng-update/data/css-tokens.mjs +0 -12
  249. package/schematics/ng-update/data/element-selectors.mjs +0 -12
  250. package/schematics/ng-update/data/index.mjs +0 -35
  251. package/schematics/ng-update/data/input-names.mjs +0 -12
  252. package/schematics/ng-update/data/method-call-checks.mjs +0 -12
  253. package/schematics/ng-update/data/output-names.mjs +0 -12
  254. package/schematics/ng-update/data/property-names.mjs +0 -12
  255. package/schematics/ng-update/data/symbol-removal.mjs +0 -12
  256. package/schematics/ng-update/devkit-file-system.mjs +0 -84
  257. package/schematics/ng-update/devkit-migration-rule.mjs +0 -133
  258. package/schematics/ng-update/devkit-migration.mjs +0 -20
  259. package/schematics/ng-update/find-stylesheets.mjs +0 -41
  260. package/schematics/ng-update/html-parsing/angular.mjs +0 -51
  261. package/schematics/ng-update/html-parsing/elements.mjs +0 -62
  262. package/schematics/ng-update/index.mjs +0 -29
  263. package/schematics/ng-update/migrations/attribute-selectors.mjs +0 -68
  264. package/schematics/ng-update/migrations/class-inheritance.mjs +0 -55
  265. package/schematics/ng-update/migrations/class-names.mjs +0 -88
  266. package/schematics/ng-update/migrations/constructor-signature.mjs +0 -136
  267. package/schematics/ng-update/migrations/css-selectors.mjs +0 -72
  268. package/schematics/ng-update/migrations/css-tokens.mjs +0 -80
  269. package/schematics/ng-update/migrations/element-selectors.mjs +0 -63
  270. package/schematics/ng-update/migrations/input-names.mjs +0 -56
  271. package/schematics/ng-update/migrations/method-call-arguments.mjs +0 -59
  272. package/schematics/ng-update/migrations/misc-template.mjs +0 -22
  273. package/schematics/ng-update/migrations/output-names.mjs +0 -43
  274. package/schematics/ng-update/migrations/property-names.mjs +0 -57
  275. package/schematics/ng-update/migrations/symbol-removal.mjs +0 -43
  276. package/schematics/ng-update/public-api.mjs +0 -36
  277. package/schematics/ng-update/typescript/base-types.mjs +0 -23
  278. package/schematics/ng-update/typescript/imports.mjs +0 -53
  279. package/schematics/ng-update/typescript/literal.mjs +0 -32
  280. package/schematics/ng-update/typescript/module-specifiers.mjs +0 -35
  281. package/schematics/ng-update/upgrade-data.mjs +0 -40
  282. package/schematics/paths.mjs +0 -16
  283. package/schematics/schematics.externs.js +0 -0
  284. package/schematics/tsconfig.json +0 -29
  285. package/schematics/update-tool/component-resource-collector.mjs +0 -166
  286. package/schematics/update-tool/file-system.mjs +0 -18
  287. package/schematics/update-tool/index.mjs +0 -178
  288. package/schematics/update-tool/logger.mjs +0 -18
  289. package/schematics/update-tool/migration.mjs +0 -77
  290. package/schematics/update-tool/public-api.mjs +0 -33
  291. package/schematics/update-tool/target-version.mjs +0 -27
  292. package/schematics/update-tool/update-recorder.mjs +0 -10
  293. package/schematics/update-tool/update-tool.externs.js +0 -0
  294. package/schematics/update-tool/utils/decorators.mjs +0 -41
  295. package/schematics/update-tool/utils/diagnostics.mjs +0 -18
  296. package/schematics/update-tool/utils/functions.mjs +0 -20
  297. package/schematics/update-tool/utils/imports.mjs +0 -110
  298. package/schematics/update-tool/utils/line-mappings.mjs +0 -75
  299. package/schematics/update-tool/utils/parse-tsconfig.mjs +0 -45
  300. package/schematics/update-tool/utils/property-name.mjs +0 -27
  301. package/schematics/update-tool/utils/virtual-host.mjs +0 -72
  302. package/schematics/update-tool/version-changes.mjs +0 -38
  303. package/schematics/utils/ast/ng-module-imports.mjs +0 -82
  304. package/schematics/utils/ast.mjs +0 -68
  305. package/schematics/utils/build-component.mjs +0 -183
  306. package/schematics/utils/get-project.mjs +0 -28
  307. package/schematics/utils/html-manipulation.mjs +0 -91
  308. package/schematics/utils/index.mjs +0 -36
  309. package/schematics/utils/parse5-element.mjs +0 -30
  310. package/schematics/utils/project-index-file.mjs +0 -20
  311. package/schematics/utils/project-main-file.mjs +0 -25
  312. package/schematics/utils/project-style-file.mjs +0 -42
  313. package/schematics/utils/project-targets.mjs +0 -39
  314. package/schematics/utils/project-tsconfig-paths.mjs +0 -34
  315. package/schematics/utils/schematic-options.mjs +0 -77
@@ -1,27 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TargetVersion = void 0;
11
- exports.getAllVersionNames = getAllVersionNames;
12
- /** Possible versions that can be automatically migrated by `ng update`. */
13
- // tslint:disable-next-line:prefer-const-enum
14
- var TargetVersion;
15
- (function (TargetVersion) {
16
- TargetVersion["V20"] = "version 20";
17
- })(TargetVersion || (exports.TargetVersion = TargetVersion = {}));
18
- /**
19
- * Returns all versions that are supported by "ng update". The versions are determined
20
- * based on the "TargetVersion" enum.
21
- */
22
- function getAllVersionNames() {
23
- return Object.keys(TargetVersion).filter(enumValue => {
24
- return typeof TargetVersion[enumValue] === 'string';
25
- });
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvdGFyZ2V0LXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBYUgsZ0RBSUM7QUFmRCwyRUFBMkU7QUFFM0UsNkNBQTZDO0FBQzdDLElBQVksYUFFWDtBQUZELFdBQVksYUFBYTtJQUN2QixtQ0FBa0IsQ0FBQTtBQUNwQixDQUFDLEVBRlcsYUFBYSw2QkFBYixhQUFhLFFBRXhCO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCO0lBQ2hDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDbkQsT0FBTyxPQUFRLGFBQW9ELENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQzlGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuLyoqIFBvc3NpYmxlIHZlcnNpb25zIHRoYXQgY2FuIGJlIGF1dG9tYXRpY2FsbHkgbWlncmF0ZWQgYnkgYG5nIHVwZGF0ZWAuICovXG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItY29uc3QtZW51bVxuZXhwb3J0IGVudW0gVGFyZ2V0VmVyc2lvbiB7XG4gIFYyMCA9ICd2ZXJzaW9uIDIwJyxcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCB2ZXJzaW9ucyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgXCJuZyB1cGRhdGVcIi4gVGhlIHZlcnNpb25zIGFyZSBkZXRlcm1pbmVkXG4gKiBiYXNlZCBvbiB0aGUgXCJUYXJnZXRWZXJzaW9uXCIgZW51bS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFZlcnNpb25OYW1lcygpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhUYXJnZXRWZXJzaW9uKS5maWx0ZXIoZW51bVZhbHVlID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIChUYXJnZXRWZXJzaW9uIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pW2VudW1WYWx1ZV0gPT09ICdzdHJpbmcnO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXJlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3VwZGF0ZS1yZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG4vKiogVXBkYXRlIHJlY29yZGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgY2hhbmdlcyB0byBhIHNvdXJjZSBmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVSZWNvcmRlciB7XG4gIGluc2VydExlZnQoaW5kZXg6IG51bWJlciwgY29udGVudDogc3RyaW5nKTogVXBkYXRlUmVjb3JkZXI7XG4gIGluc2VydFJpZ2h0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyO1xuICByZW1vdmUoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBVcGRhdGVSZWNvcmRlcjtcbn1cbiJdfQ==
File without changes
@@ -1,41 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getAngularDecorators = getAngularDecorators;
11
- exports.getCallDecoratorImport = getCallDecoratorImport;
12
- const ts = require("typescript");
13
- const imports_1 = require("./imports");
14
- /**
15
- * Gets all decorators which are imported from an Angular package
16
- * (e.g. "@angular/core") from a list of decorators.
17
- */
18
- function getAngularDecorators(typeChecker, decorators) {
19
- return decorators
20
- .map(node => ({ node, importData: getCallDecoratorImport(typeChecker, node) }))
21
- .filter(({ importData }) => importData && importData.moduleName.startsWith('@angular/'))
22
- .map(({ node, importData }) => ({
23
- node: node,
24
- name: importData.symbolName,
25
- }));
26
- }
27
- function getCallDecoratorImport(typeChecker, decorator) {
28
- if (!ts.isCallExpression(decorator.expression)) {
29
- return null;
30
- }
31
- const valueExpr = decorator.expression.expression;
32
- let identifier = null;
33
- if (ts.isIdentifier(valueExpr)) {
34
- identifier = valueExpr;
35
- }
36
- else if (ts.isPropertyAccessExpression(valueExpr) && ts.isIdentifier(valueExpr.name)) {
37
- identifier = valueExpr.name;
38
- }
39
- return identifier ? (0, imports_1.getImportOfIdentifier)(identifier, typeChecker) : null;
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBbUJILG9EQVdDO0FBRUQsd0RBZUM7QUE3Q0QsaUNBQWlDO0FBRWpDLHVDQUF3RDtBQVd4RDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsV0FBMkIsRUFDM0IsVUFBbUM7SUFFbkMsT0FBTyxVQUFVO1NBQ2QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztTQUM1RSxNQUFNLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckYsR0FBRyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxFQUFFLElBQStCO1FBQ3JDLElBQUksRUFBRSxVQUFXLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FDcEMsV0FBMkIsRUFDM0IsU0FBdUI7SUFFdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNsRCxJQUFJLFVBQVUsR0FBeUIsSUFBSSxDQUFDO0lBQzVDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQy9CLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDekIsQ0FBQztTQUFNLElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkYsVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFBLCtCQUFxQixFQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2dldEltcG9ydE9mSWRlbnRpZmllciwgSW1wb3J0fSBmcm9tICcuL2ltcG9ydHMnO1xuXG5leHBvcnQgdHlwZSBDYWxsRXhwcmVzc2lvbkRlY29yYXRvciA9IHRzLkRlY29yYXRvciAmIHtcbiAgZXhwcmVzc2lvbjogdHMuQ2FsbEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5nRGVjb3JhdG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICBub2RlOiBDYWxsRXhwcmVzc2lvbkRlY29yYXRvcjtcbn1cblxuLyoqXG4gKiBHZXRzIGFsbCBkZWNvcmF0b3JzIHdoaWNoIGFyZSBpbXBvcnRlZCBmcm9tIGFuIEFuZ3VsYXIgcGFja2FnZVxuICogKGUuZy4gXCJAYW5ndWxhci9jb3JlXCIpIGZyb20gYSBsaXN0IG9mIGRlY29yYXRvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmd1bGFyRGVjb3JhdG9ycyhcbiAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICBkZWNvcmF0b3JzOiByZWFkb25seSB0cy5EZWNvcmF0b3JbXSxcbik6IHJlYWRvbmx5IE5nRGVjb3JhdG9yW10ge1xuICByZXR1cm4gZGVjb3JhdG9yc1xuICAgIC5tYXAobm9kZSA9PiAoe25vZGUsIGltcG9ydERhdGE6IGdldENhbGxEZWNvcmF0b3JJbXBvcnQodHlwZUNoZWNrZXIsIG5vZGUpfSkpXG4gICAgLmZpbHRlcigoe2ltcG9ydERhdGF9KSA9PiBpbXBvcnREYXRhICYmIGltcG9ydERhdGEubW9kdWxlTmFtZS5zdGFydHNXaXRoKCdAYW5ndWxhci8nKSlcbiAgICAubWFwKCh7bm9kZSwgaW1wb3J0RGF0YX0pID0+ICh7XG4gICAgICBub2RlOiBub2RlIGFzIENhbGxFeHByZXNzaW9uRGVjb3JhdG9yLFxuICAgICAgbmFtZTogaW1wb3J0RGF0YSEuc3ltYm9sTmFtZSxcbiAgICB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWxsRGVjb3JhdG9ySW1wb3J0KFxuICB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gIGRlY29yYXRvcjogdHMuRGVjb3JhdG9yLFxuKTogSW1wb3J0IHwgbnVsbCB7XG4gIGlmICghdHMuaXNDYWxsRXhwcmVzc2lvbihkZWNvcmF0b3IuZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCB2YWx1ZUV4cHIgPSBkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uO1xuICBsZXQgaWRlbnRpZmllcjogdHMuSWRlbnRpZmllciB8IG51bGwgPSBudWxsO1xuICBpZiAodHMuaXNJZGVudGlmaWVyKHZhbHVlRXhwcikpIHtcbiAgICBpZGVudGlmaWVyID0gdmFsdWVFeHByO1xuICB9IGVsc2UgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKHZhbHVlRXhwcikgJiYgdHMuaXNJZGVudGlmaWVyKHZhbHVlRXhwci5uYW1lKSkge1xuICAgIGlkZW50aWZpZXIgPSB2YWx1ZUV4cHIubmFtZTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllciA/IGdldEltcG9ydE9mSWRlbnRpZmllcihpZGVudGlmaWVyLCB0eXBlQ2hlY2tlcikgOiBudWxsO1xufVxuIl19
@@ -1,18 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.formatDiagnostics = formatDiagnostics;
11
- const ts = require("typescript");
12
- const virtual_host_1 = require("./virtual-host");
13
- /** Formats the specified diagnostics with respect to the given file system. */
14
- function formatDiagnostics(diagnostics, fileSystem) {
15
- const formatHost = (0, virtual_host_1.createFormatDiagnosticHost)(fileSystem);
16
- return ts.formatDiagnosticsWithColorAndContext(diagnostics, formatHost);
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvdXRpbHMvZGlhZ25vc3RpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFPSCw4Q0FHQztBQVJELGlDQUFpQztBQUVqQyxpREFBMEQ7QUFFMUQsK0VBQStFO0FBQy9FLFNBQWdCLGlCQUFpQixDQUFDLFdBQTRCLEVBQUUsVUFBc0I7SUFDcEYsTUFBTSxVQUFVLEdBQUcsSUFBQSx5Q0FBMEIsRUFBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge0ZpbGVTeXN0ZW19IGZyb20gJy4uL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7Y3JlYXRlRm9ybWF0RGlhZ25vc3RpY0hvc3R9IGZyb20gJy4vdmlydHVhbC1ob3N0JztcblxuLyoqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBkaWFnbm9zdGljcyB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGZpbGUgc3lzdGVtLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERpYWdub3N0aWNzKGRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW10sIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0pOiBzdHJpbmcge1xuICBjb25zdCBmb3JtYXRIb3N0ID0gY3JlYXRlRm9ybWF0RGlhZ25vc3RpY0hvc3QoZmlsZVN5c3RlbSk7XG4gIHJldHVybiB0cy5mb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQoZGlhZ25vc3RpY3MsIGZvcm1hdEhvc3QpO1xufVxuIl19
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.unwrapExpression = unwrapExpression;
11
- const ts = require("typescript");
12
- /**
13
- * Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple
14
- * parentheses. e.g. "(((({exp}))))()". The function should return the TypeScript node
15
- * referring to the inner expression. e.g "exp".
16
- */
17
- function unwrapExpression(node) {
18
- return ts.isParenthesizedExpression(node) ? unwrapExpression(node.expression) : node;
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3V0aWxzL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQVNILDRDQUVDO0FBVEQsaUNBQWlDO0FBRWpDOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFnRDtJQUMvRSxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKlxuICogVW53cmFwcyBhIGdpdmVuIGV4cHJlc3Npb24gVHlwZVNjcmlwdCBub2RlLiBFeHByZXNzaW9ucyBjYW4gYmUgd3JhcHBlZCB3aXRoaW4gbXVsdGlwbGVcbiAqIHBhcmVudGhlc2VzLiBlLmcuIFwiKCgoKHtleHB9KSkpKSgpXCIuIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBUeXBlU2NyaXB0IG5vZGVcbiAqIHJlZmVycmluZyB0byB0aGUgaW5uZXIgZXhwcmVzc2lvbi4gZS5nIFwiZXhwXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFeHByZXNzaW9uKG5vZGU6IHRzLkV4cHJlc3Npb24gfCB0cy5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICByZXR1cm4gdHMuaXNQYXJlbnRoZXNpemVkRXhwcmVzc2lvbihub2RlKSA/IHVud3JhcEV4cHJlc3Npb24obm9kZS5leHByZXNzaW9uKSA6IG5vZGU7XG59XG4iXX0=
@@ -1,110 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getImportOfIdentifier = getImportOfIdentifier;
11
- const ts = require("typescript");
12
- /** Resolves the import of the specified identifier. */
13
- function getImportOfIdentifier(node, typeChecker) {
14
- // Free standing identifiers which resolve to an import will be handled
15
- // as direct imports. e.g. "@Component()" where "Component" is an identifier
16
- // referring to an import specifier.
17
- const directImport = getSpecificImportOfIdentifier(node, typeChecker);
18
- if (directImport !== null) {
19
- return directImport;
20
- }
21
- else if (ts.isQualifiedName(node.parent) && node.parent.right === node) {
22
- // Determines the import of a qualified name. e.g. "let t: core.Component". In that
23
- // case, the import of the most left identifier will be determined ("core").
24
- const qualifierRoot = getQualifiedNameRoot(node.parent);
25
- if (qualifierRoot) {
26
- const moduleName = getImportOfNamespacedIdentifier(qualifierRoot, typeChecker);
27
- if (moduleName) {
28
- return { moduleName, symbolName: node.text };
29
- }
30
- }
31
- }
32
- else if (ts.isPropertyAccessExpression(node.parent) && node.parent.name === node) {
33
- // Determines the import of a property expression. e.g. "@core.Component". In that
34
- // case, the import of the most left identifier will be determined ("core").
35
- const rootIdentifier = getPropertyAccessRoot(node.parent);
36
- if (rootIdentifier) {
37
- const moduleName = getImportOfNamespacedIdentifier(rootIdentifier, typeChecker);
38
- if (moduleName) {
39
- return { moduleName, symbolName: node.text };
40
- }
41
- }
42
- }
43
- return null;
44
- }
45
- /**
46
- * Resolves the import of the specified identifier. Expects the identifier to resolve
47
- * to a fine-grained import declaration with import specifiers.
48
- */
49
- function getSpecificImportOfIdentifier(node, typeChecker) {
50
- const symbol = typeChecker.getSymbolAtLocation(node);
51
- if (!symbol || !symbol.declarations || !symbol.declarations.length) {
52
- return null;
53
- }
54
- const declaration = symbol.declarations[0];
55
- if (!ts.isImportSpecifier(declaration)) {
56
- return null;
57
- }
58
- // Since the declaration is an import specifier, we can walk up three times to get a reference
59
- // to the import declaration node (NamedImports -> ImportClause -> ImportDeclaration).
60
- const importDecl = declaration.parent.parent.parent;
61
- if (!ts.isStringLiteral(importDecl.moduleSpecifier)) {
62
- return null;
63
- }
64
- return {
65
- moduleName: importDecl.moduleSpecifier.text,
66
- symbolName: declaration.propertyName ? declaration.propertyName.text : declaration.name.text,
67
- };
68
- }
69
- /**
70
- * Resolves the import of the specified identifier. Expects the identifier to
71
- * resolve to a namespaced import declaration. e.g. "import * as core from ...".
72
- */
73
- function getImportOfNamespacedIdentifier(node, typeChecker) {
74
- const symbol = typeChecker.getSymbolAtLocation(node);
75
- if (!symbol || !symbol.declarations || !symbol.declarations.length) {
76
- return null;
77
- }
78
- const declaration = symbol.declarations[0];
79
- if (!ts.isNamespaceImport(declaration)) {
80
- return null;
81
- }
82
- // Since the declaration is a namespace import, we can walk up three times to get a reference
83
- // to the import declaration node (NamespaceImport -> ImportClause -> ImportDeclaration).
84
- const importDecl = declaration.parent.parent;
85
- if (!ts.isStringLiteral(importDecl.moduleSpecifier)) {
86
- return null;
87
- }
88
- return importDecl.moduleSpecifier.text;
89
- }
90
- /**
91
- * Gets the root identifier of a qualified type chain. For example: "core.GestureConfig"
92
- * will return the "core" identifier. Allowing us to find the import of "core".
93
- */
94
- function getQualifiedNameRoot(name) {
95
- while (ts.isQualifiedName(name.left)) {
96
- name = name.left;
97
- }
98
- return ts.isIdentifier(name.left) ? name.left : null;
99
- }
100
- /**
101
- * Gets the root identifier of a property access chain. For example: "core.GestureConfig"
102
- * will return the "core" identifier. Allowing us to find the import of "core".
103
- */
104
- function getPropertyAccessRoot(node) {
105
- while (ts.isPropertyAccessExpression(node.expression)) {
106
- node = node.expression;
107
- }
108
- return ts.isIdentifier(node.expression) ? node.expression : null;
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBYUgsc0RBZ0NDO0FBM0NELGlDQUFpQztBQVVqQyx1REFBdUQ7QUFDdkQsU0FBZ0IscUJBQXFCLENBQ25DLElBQW1CLEVBQ25CLFdBQTJCO0lBRTNCLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsb0NBQW9DO0lBQ3BDLE1BQU0sWUFBWSxHQUFHLDZCQUE2QixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RSxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO1NBQU0sSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6RSxtRkFBbUY7UUFDbkYsNEVBQTRFO1FBQzVFLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sVUFBVSxHQUFHLCtCQUErQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMvRSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7U0FBTSxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbkYsa0ZBQWtGO1FBQ2xGLDRFQUE0RTtRQUM1RSxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUQsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixNQUFNLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDaEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FDcEMsSUFBbUIsRUFDbkIsV0FBMkI7SUFFM0IsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCw4RkFBOEY7SUFDOUYsc0ZBQXNGO0lBQ3RGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSTtRQUMzQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUM3RixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsK0JBQStCLENBQ3RDLElBQW1CLEVBQ25CLFdBQTJCO0lBRTNCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsNkZBQTZGO0lBQzdGLHlGQUF5RjtJQUN6RixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG9CQUFvQixDQUFDLElBQXNCO0lBQ2xELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHFCQUFxQixDQUFDLElBQWlDO0lBQzlELE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKiBJbnRlcmZhY2UgZGVzY3JpYmluZyBhIHJlc29sdmVkIGltcG9ydC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0IHtcbiAgLyoqIE5hbWUgb2YgdGhlIGltcG9ydGVkIHN5bWJvbC4gKi9cbiAgc3ltYm9sTmFtZTogc3RyaW5nO1xuICAvKiogTW9kdWxlIG5hbWUgZnJvbSB3aGljaCB0aGUgc3ltYm9sIGhhcyBiZWVuIGltcG9ydGVkLiAqL1xuICBtb2R1bGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBSZXNvbHZlcyB0aGUgaW1wb3J0IG9mIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRPZklkZW50aWZpZXIoXG4gIG5vZGU6IHRzLklkZW50aWZpZXIsXG4gIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbik6IEltcG9ydCB8IG51bGwge1xuICAvLyBGcmVlIHN0YW5kaW5nIGlkZW50aWZpZXJzIHdoaWNoIHJlc29sdmUgdG8gYW4gaW1wb3J0IHdpbGwgYmUgaGFuZGxlZFxuICAvLyBhcyBkaXJlY3QgaW1wb3J0cy4gZS5nLiBcIkBDb21wb25lbnQoKVwiIHdoZXJlIFwiQ29tcG9uZW50XCIgaXMgYW4gaWRlbnRpZmllclxuICAvLyByZWZlcnJpbmcgdG8gYW4gaW1wb3J0IHNwZWNpZmllci5cbiAgY29uc3QgZGlyZWN0SW1wb3J0ID0gZ2V0U3BlY2lmaWNJbXBvcnRPZklkZW50aWZpZXIobm9kZSwgdHlwZUNoZWNrZXIpO1xuICBpZiAoZGlyZWN0SW1wb3J0ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGRpcmVjdEltcG9ydDtcbiAgfSBlbHNlIGlmICh0cy5pc1F1YWxpZmllZE5hbWUobm9kZS5wYXJlbnQpICYmIG5vZGUucGFyZW50LnJpZ2h0ID09PSBub2RlKSB7XG4gICAgLy8gRGV0ZXJtaW5lcyB0aGUgaW1wb3J0IG9mIGEgcXVhbGlmaWVkIG5hbWUuIGUuZy4gXCJsZXQgdDogY29yZS5Db21wb25lbnRcIi4gSW4gdGhhdFxuICAgIC8vIGNhc2UsIHRoZSBpbXBvcnQgb2YgdGhlIG1vc3QgbGVmdCBpZGVudGlmaWVyIHdpbGwgYmUgZGV0ZXJtaW5lZCAoXCJjb3JlXCIpLlxuICAgIGNvbnN0IHF1YWxpZmllclJvb3QgPSBnZXRRdWFsaWZpZWROYW1lUm9vdChub2RlLnBhcmVudCk7XG4gICAgaWYgKHF1YWxpZmllclJvb3QpIHtcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBnZXRJbXBvcnRPZk5hbWVzcGFjZWRJZGVudGlmaWVyKHF1YWxpZmllclJvb3QsIHR5cGVDaGVja2VyKTtcbiAgICAgIGlmIChtb2R1bGVOYW1lKSB7XG4gICAgICAgIHJldHVybiB7bW9kdWxlTmFtZSwgc3ltYm9sTmFtZTogbm9kZS50ZXh0fTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obm9kZS5wYXJlbnQpICYmIG5vZGUucGFyZW50Lm5hbWUgPT09IG5vZGUpIHtcbiAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbXBvcnQgb2YgYSBwcm9wZXJ0eSBleHByZXNzaW9uLiBlLmcuIFwiQGNvcmUuQ29tcG9uZW50XCIuIEluIHRoYXRcbiAgICAvLyBjYXNlLCB0aGUgaW1wb3J0IG9mIHRoZSBtb3N0IGxlZnQgaWRlbnRpZmllciB3aWxsIGJlIGRldGVybWluZWQgKFwiY29yZVwiKS5cbiAgICBjb25zdCByb290SWRlbnRpZmllciA9IGdldFByb3BlcnR5QWNjZXNzUm9vdChub2RlLnBhcmVudCk7XG4gICAgaWYgKHJvb3RJZGVudGlmaWVyKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gZ2V0SW1wb3J0T2ZOYW1lc3BhY2VkSWRlbnRpZmllcihyb290SWRlbnRpZmllciwgdHlwZUNoZWNrZXIpO1xuICAgICAgaWYgKG1vZHVsZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHttb2R1bGVOYW1lLCBzeW1ib2xOYW1lOiBub2RlLnRleHR9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgaW1wb3J0IG9mIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllci4gRXhwZWN0cyB0aGUgaWRlbnRpZmllciB0byByZXNvbHZlXG4gKiB0byBhIGZpbmUtZ3JhaW5lZCBpbXBvcnQgZGVjbGFyYXRpb24gd2l0aCBpbXBvcnQgc3BlY2lmaWVycy5cbiAqL1xuZnVuY3Rpb24gZ2V0U3BlY2lmaWNJbXBvcnRPZklkZW50aWZpZXIoXG4gIG5vZGU6IHRzLklkZW50aWZpZXIsXG4gIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbik6IEltcG9ydCB8IG51bGwge1xuICBjb25zdCBzeW1ib2wgPSB0eXBlQ2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKG5vZGUpO1xuICBpZiAoIXN5bWJvbCB8fCAhc3ltYm9sLmRlY2xhcmF0aW9ucyB8fCAhc3ltYm9sLmRlY2xhcmF0aW9ucy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHN5bWJvbC5kZWNsYXJhdGlvbnNbMF07XG4gIGlmICghdHMuaXNJbXBvcnRTcGVjaWZpZXIoZGVjbGFyYXRpb24pKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gU2luY2UgdGhlIGRlY2xhcmF0aW9uIGlzIGFuIGltcG9ydCBzcGVjaWZpZXIsIHdlIGNhbiB3YWxrIHVwIHRocmVlIHRpbWVzIHRvIGdldCBhIHJlZmVyZW5jZVxuICAvLyB0byB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIG5vZGUgKE5hbWVkSW1wb3J0cyAtPiBJbXBvcnRDbGF1c2UgLT4gSW1wb3J0RGVjbGFyYXRpb24pLlxuICBjb25zdCBpbXBvcnREZWNsID0gZGVjbGFyYXRpb24ucGFyZW50LnBhcmVudC5wYXJlbnQ7XG4gIGlmICghdHMuaXNTdHJpbmdMaXRlcmFsKGltcG9ydERlY2wubW9kdWxlU3BlY2lmaWVyKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiB7XG4gICAgbW9kdWxlTmFtZTogaW1wb3J0RGVjbC5tb2R1bGVTcGVjaWZpZXIudGV4dCxcbiAgICBzeW1ib2xOYW1lOiBkZWNsYXJhdGlvbi5wcm9wZXJ0eU5hbWUgPyBkZWNsYXJhdGlvbi5wcm9wZXJ0eU5hbWUudGV4dCA6IGRlY2xhcmF0aW9uLm5hbWUudGV4dCxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgaW1wb3J0IG9mIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllci4gRXhwZWN0cyB0aGUgaWRlbnRpZmllciB0b1xuICogcmVzb2x2ZSB0byBhIG5hbWVzcGFjZWQgaW1wb3J0IGRlY2xhcmF0aW9uLiBlLmcuIFwiaW1wb3J0ICogYXMgY29yZSBmcm9tIC4uLlwiLlxuICovXG5mdW5jdGlvbiBnZXRJbXBvcnRPZk5hbWVzcGFjZWRJZGVudGlmaWVyKFxuICBub2RlOiB0cy5JZGVudGlmaWVyLFxuICB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgc3ltYm9sID0gdHlwZUNoZWNrZXIuZ2V0U3ltYm9sQXRMb2NhdGlvbihub2RlKTtcbiAgaWYgKCFzeW1ib2wgfHwgIXN5bWJvbC5kZWNsYXJhdGlvbnMgfHwgIXN5bWJvbC5kZWNsYXJhdGlvbnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgZGVjbGFyYXRpb24gPSBzeW1ib2wuZGVjbGFyYXRpb25zWzBdO1xuICBpZiAoIXRzLmlzTmFtZXNwYWNlSW1wb3J0KGRlY2xhcmF0aW9uKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIFNpbmNlIHRoZSBkZWNsYXJhdGlvbiBpcyBhIG5hbWVzcGFjZSBpbXBvcnQsIHdlIGNhbiB3YWxrIHVwIHRocmVlIHRpbWVzIHRvIGdldCBhIHJlZmVyZW5jZVxuICAvLyB0byB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIG5vZGUgKE5hbWVzcGFjZUltcG9ydCAtPiBJbXBvcnRDbGF1c2UgLT4gSW1wb3J0RGVjbGFyYXRpb24pLlxuICBjb25zdCBpbXBvcnREZWNsID0gZGVjbGFyYXRpb24ucGFyZW50LnBhcmVudDtcbiAgaWYgKCF0cy5pc1N0cmluZ0xpdGVyYWwoaW1wb3J0RGVjbC5tb2R1bGVTcGVjaWZpZXIpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gaW1wb3J0RGVjbC5tb2R1bGVTcGVjaWZpZXIudGV4dDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSByb290IGlkZW50aWZpZXIgb2YgYSBxdWFsaWZpZWQgdHlwZSBjaGFpbi4gRm9yIGV4YW1wbGU6IFwiY29yZS5HZXN0dXJlQ29uZmlnXCJcbiAqIHdpbGwgcmV0dXJuIHRoZSBcImNvcmVcIiBpZGVudGlmaWVyLiBBbGxvd2luZyB1cyB0byBmaW5kIHRoZSBpbXBvcnQgb2YgXCJjb3JlXCIuXG4gKi9cbmZ1bmN0aW9uIGdldFF1YWxpZmllZE5hbWVSb290KG5hbWU6IHRzLlF1YWxpZmllZE5hbWUpOiB0cy5JZGVudGlmaWVyIHwgbnVsbCB7XG4gIHdoaWxlICh0cy5pc1F1YWxpZmllZE5hbWUobmFtZS5sZWZ0KSkge1xuICAgIG5hbWUgPSBuYW1lLmxlZnQ7XG4gIH1cbiAgcmV0dXJuIHRzLmlzSWRlbnRpZmllcihuYW1lLmxlZnQpID8gbmFtZS5sZWZ0IDogbnVsbDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSByb290IGlkZW50aWZpZXIgb2YgYSBwcm9wZXJ0eSBhY2Nlc3MgY2hhaW4uIEZvciBleGFtcGxlOiBcImNvcmUuR2VzdHVyZUNvbmZpZ1wiXG4gKiB3aWxsIHJldHVybiB0aGUgXCJjb3JlXCIgaWRlbnRpZmllci4gQWxsb3dpbmcgdXMgdG8gZmluZCB0aGUgaW1wb3J0IG9mIFwiY29yZVwiLlxuICovXG5mdW5jdGlvbiBnZXRQcm9wZXJ0eUFjY2Vzc1Jvb3Qobm9kZTogdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKTogdHMuSWRlbnRpZmllciB8IG51bGwge1xuICB3aGlsZSAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obm9kZS5leHByZXNzaW9uKSkge1xuICAgIG5vZGUgPSBub2RlLmV4cHJlc3Npb247XG4gIH1cbiAgcmV0dXJuIHRzLmlzSWRlbnRpZmllcihub2RlLmV4cHJlc3Npb24pID8gbm9kZS5leHByZXNzaW9uIDogbnVsbDtcbn1cbiJdfQ==
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getLineAndCharacterFromPosition = getLineAndCharacterFromPosition;
11
- exports.computeLineStartsMap = computeLineStartsMap;
12
- /*
13
- * Line mapping utilities which can be used to retrieve line and character based
14
- * on an absolute character position in a given file. This functionality is similar
15
- * to TypeScript's "ts.getLineAndCharacterFromPosition" utility, but we cannot leverage
16
- * their logic for line mappings as it's internal and we need to generate line mappings
17
- * for non-TypeScript files such as HTML templates or stylesheets.
18
- *
19
- * Line and character can be retrieved by splitting a given source text based on
20
- * line breaks into line start entries. Later when a specific position is requested,
21
- * the closest line-start position is determined based on the given position.
22
- */
23
- const LF_CHAR = 10;
24
- const CR_CHAR = 13;
25
- const LINE_SEP_CHAR = 8232;
26
- const PARAGRAPH_CHAR = 8233;
27
- /** Gets the line and character for the given position from the line starts map. */
28
- function getLineAndCharacterFromPosition(lineStartsMap, position) {
29
- const lineIndex = findClosestLineStartPosition(lineStartsMap, position);
30
- return { character: position - lineStartsMap[lineIndex], line: lineIndex };
31
- }
32
- /**
33
- * Computes the line start map of the given text. This can be used in order to
34
- * retrieve the line and character of a given text position index.
35
- */
36
- function computeLineStartsMap(text) {
37
- const result = [0];
38
- let pos = 0;
39
- while (pos < text.length) {
40
- const char = text.charCodeAt(pos++);
41
- // Handles the "CRLF" line break. In that case we peek the character
42
- // after the "CR" and check if it is a line feed.
43
- if (char === CR_CHAR) {
44
- if (text.charCodeAt(pos) === LF_CHAR) {
45
- pos++;
46
- }
47
- result.push(pos);
48
- }
49
- else if (char === LF_CHAR || char === LINE_SEP_CHAR || char === PARAGRAPH_CHAR) {
50
- result.push(pos);
51
- }
52
- }
53
- result.push(pos);
54
- return result;
55
- }
56
- /** Finds the closest line start for the given position. */
57
- function findClosestLineStartPosition(linesMap, position, low = 0, high = linesMap.length - 1) {
58
- while (low <= high) {
59
- const pivotIndex = Math.floor((low + high) / 2);
60
- const pivotEl = linesMap[pivotIndex];
61
- if (pivotEl === position) {
62
- return pivotIndex;
63
- }
64
- else if (position > pivotEl) {
65
- low = pivotIndex + 1;
66
- }
67
- else {
68
- high = pivotIndex - 1;
69
- }
70
- }
71
- // In case there was no exact match, return the closest "lower" line index. We also
72
- // subtract the index by one because want the index of the previous line start.
73
- return low - 1;
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1tYXBwaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9saW5lLW1hcHBpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBeUJILDBFQUdDO0FBTUQsb0RBa0JDO0FBbEREOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFPNUIsbUZBQW1GO0FBQ25GLFNBQWdCLCtCQUErQixDQUFDLGFBQXVCLEVBQUUsUUFBZ0I7SUFDdkYsTUFBTSxTQUFTLEdBQUcsNEJBQTRCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsTUFBTSxNQUFNLEdBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDWixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLG9FQUFvRTtRQUNwRSxpREFBaUQ7UUFDakQsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEVBQUUsQ0FBQztZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxTQUFTLDRCQUE0QixDQUNuQyxRQUFhLEVBQ2IsUUFBVyxFQUNYLEdBQUcsR0FBRyxDQUFDLEVBQ1AsSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUUxQixPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyQyxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO2FBQU0sSUFBSSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUIsR0FBRyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELG1GQUFtRjtJQUNuRiwrRUFBK0U7SUFDL0UsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbi8qXG4gKiBMaW5lIG1hcHBpbmcgdXRpbGl0aWVzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJldHJpZXZlIGxpbmUgYW5kIGNoYXJhY3RlciBiYXNlZFxuICogb24gYW4gYWJzb2x1dGUgY2hhcmFjdGVyIHBvc2l0aW9uIGluIGEgZ2l2ZW4gZmlsZS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHNpbWlsYXJcbiAqIHRvIFR5cGVTY3JpcHQncyBcInRzLmdldExpbmVBbmRDaGFyYWN0ZXJGcm9tUG9zaXRpb25cIiB1dGlsaXR5LCBidXQgd2UgY2Fubm90IGxldmVyYWdlXG4gKiB0aGVpciBsb2dpYyBmb3IgbGluZSBtYXBwaW5ncyBhcyBpdCdzIGludGVybmFsIGFuZCB3ZSBuZWVkIHRvIGdlbmVyYXRlIGxpbmUgbWFwcGluZ3NcbiAqIGZvciBub24tVHlwZVNjcmlwdCBmaWxlcyBzdWNoIGFzIEhUTUwgdGVtcGxhdGVzIG9yIHN0eWxlc2hlZXRzLlxuICpcbiAqIExpbmUgYW5kIGNoYXJhY3RlciBjYW4gYmUgcmV0cmlldmVkIGJ5IHNwbGl0dGluZyBhIGdpdmVuIHNvdXJjZSB0ZXh0IGJhc2VkIG9uXG4gKiBsaW5lIGJyZWFrcyBpbnRvIGxpbmUgc3RhcnQgZW50cmllcy4gTGF0ZXIgd2hlbiBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIHJlcXVlc3RlZCxcbiAqIHRoZSBjbG9zZXN0IGxpbmUtc3RhcnQgcG9zaXRpb24gaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcG9zaXRpb24uXG4gKi9cblxuY29uc3QgTEZfQ0hBUiA9IDEwO1xuY29uc3QgQ1JfQ0hBUiA9IDEzO1xuY29uc3QgTElORV9TRVBfQ0hBUiA9IDgyMzI7XG5jb25zdCBQQVJBR1JBUEhfQ0hBUiA9IDgyMzM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGluZUFuZENoYXJhY3RlciB7XG4gIGNoYXJhY3RlcjogbnVtYmVyO1xuICBsaW5lOiBudW1iZXI7XG59XG5cbi8qKiBHZXRzIHRoZSBsaW5lIGFuZCBjaGFyYWN0ZXIgZm9yIHRoZSBnaXZlbiBwb3NpdGlvbiBmcm9tIHRoZSBsaW5lIHN0YXJ0cyBtYXAuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwOiBudW1iZXJbXSwgcG9zaXRpb246IG51bWJlcikge1xuICBjb25zdCBsaW5lSW5kZXggPSBmaW5kQ2xvc2VzdExpbmVTdGFydFBvc2l0aW9uKGxpbmVTdGFydHNNYXAsIHBvc2l0aW9uKTtcbiAgcmV0dXJuIHtjaGFyYWN0ZXI6IHBvc2l0aW9uIC0gbGluZVN0YXJ0c01hcFtsaW5lSW5kZXhdLCBsaW5lOiBsaW5lSW5kZXh9O1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBsaW5lIHN0YXJ0IG1hcCBvZiB0aGUgZ2l2ZW4gdGV4dC4gVGhpcyBjYW4gYmUgdXNlZCBpbiBvcmRlciB0b1xuICogcmV0cmlldmUgdGhlIGxpbmUgYW5kIGNoYXJhY3RlciBvZiBhIGdpdmVuIHRleHQgcG9zaXRpb24gaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTGluZVN0YXJ0c01hcCh0ZXh0OiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyW10gPSBbMF07XG4gIGxldCBwb3MgPSAwO1xuICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGFyID0gdGV4dC5jaGFyQ29kZUF0KHBvcysrKTtcbiAgICAvLyBIYW5kbGVzIHRoZSBcIkNSTEZcIiBsaW5lIGJyZWFrLiBJbiB0aGF0IGNhc2Ugd2UgcGVlayB0aGUgY2hhcmFjdGVyXG4gICAgLy8gYWZ0ZXIgdGhlIFwiQ1JcIiBhbmQgY2hlY2sgaWYgaXQgaXMgYSBsaW5lIGZlZWQuXG4gICAgaWYgKGNoYXIgPT09IENSX0NIQVIpIHtcbiAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gTEZfQ0hBUikge1xuICAgICAgICBwb3MrKztcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHBvcyk7XG4gICAgfSBlbHNlIGlmIChjaGFyID09PSBMRl9DSEFSIHx8IGNoYXIgPT09IExJTkVfU0VQX0NIQVIgfHwgY2hhciA9PT0gUEFSQUdSQVBIX0NIQVIpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHBvcyk7XG4gICAgfVxuICB9XG4gIHJlc3VsdC5wdXNoKHBvcyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBGaW5kcyB0aGUgY2xvc2VzdCBsaW5lIHN0YXJ0IGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24uICovXG5mdW5jdGlvbiBmaW5kQ2xvc2VzdExpbmVTdGFydFBvc2l0aW9uPFQ+KFxuICBsaW5lc01hcDogVFtdLFxuICBwb3NpdGlvbjogVCxcbiAgbG93ID0gMCxcbiAgaGlnaCA9IGxpbmVzTWFwLmxlbmd0aCAtIDEsXG4pIHtcbiAgd2hpbGUgKGxvdyA8PSBoaWdoKSB7XG4gICAgY29uc3QgcGl2b3RJbmRleCA9IE1hdGguZmxvb3IoKGxvdyArIGhpZ2gpIC8gMik7XG4gICAgY29uc3QgcGl2b3RFbCA9IGxpbmVzTWFwW3Bpdm90SW5kZXhdO1xuXG4gICAgaWYgKHBpdm90RWwgPT09IHBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gcGl2b3RJbmRleDtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID4gcGl2b3RFbCkge1xuICAgICAgbG93ID0gcGl2b3RJbmRleCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2ggPSBwaXZvdEluZGV4IC0gMTtcbiAgICB9XG4gIH1cblxuICAvLyBJbiBjYXNlIHRoZXJlIHdhcyBubyBleGFjdCBtYXRjaCwgcmV0dXJuIHRoZSBjbG9zZXN0IFwibG93ZXJcIiBsaW5lIGluZGV4LiBXZSBhbHNvXG4gIC8vIHN1YnRyYWN0IHRoZSBpbmRleCBieSBvbmUgYmVjYXVzZSB3YW50IHRoZSBpbmRleCBvZiB0aGUgcHJldmlvdXMgbGluZSBzdGFydC5cbiAgcmV0dXJuIGxvdyAtIDE7XG59XG4iXX0=
@@ -1,45 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TsconfigParseError = void 0;
11
- exports.parseTsconfigFile = parseTsconfigFile;
12
- const ts = require("typescript");
13
- const virtual_host_1 = require("./virtual-host");
14
- const path_1 = require("path");
15
- const diagnostics_1 = require("./diagnostics");
16
- /** Code of the error raised by TypeScript when a tsconfig doesn't match any files. */
17
- const NO_INPUTS_ERROR_CODE = 18003;
18
- /** Class capturing a tsconfig parse error. */
19
- class TsconfigParseError extends Error {
20
- }
21
- exports.TsconfigParseError = TsconfigParseError;
22
- /**
23
- * Attempts to parse the specified tsconfig file.
24
- *
25
- * @throws {TsconfigParseError} If the tsconfig could not be read or parsed.
26
- */
27
- function parseTsconfigFile(tsconfigPath, fileSystem) {
28
- if (!fileSystem.fileExists(tsconfigPath)) {
29
- throw new TsconfigParseError(`Tsconfig cannot not be read: ${tsconfigPath}`);
30
- }
31
- const { config, error } = ts.readConfigFile(tsconfigPath, p => fileSystem.read(fileSystem.resolve(p)));
32
- // If there is a config reading error, we never attempt to parse the config.
33
- if (error) {
34
- throw new TsconfigParseError((0, diagnostics_1.formatDiagnostics)([error], fileSystem));
35
- }
36
- const parsed = ts.parseJsonConfigFileContent(config, new virtual_host_1.FileSystemHost(fileSystem), (0, path_1.dirname)(tsconfigPath), {});
37
- // Skip the "No inputs found..." error since we don't want to interrupt the migration if a
38
- // tsconfig doesn't match a file. This will result in an empty `Program` which is still valid.
39
- const errors = parsed.errors.filter(diag => diag.code !== NO_INPUTS_ERROR_CODE);
40
- if (errors.length) {
41
- throw new TsconfigParseError((0, diagnostics_1.formatDiagnostics)(errors, fileSystem));
42
- }
43
- return parsed;
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdHNjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvdXRpbHMvcGFyc2UtdHNjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBbUJILDhDQWtDQztBQW5ERCxpQ0FBaUM7QUFFakMsaURBQThDO0FBQzlDLCtCQUE2QjtBQUM3QiwrQ0FBZ0Q7QUFFaEQsc0ZBQXNGO0FBQ3RGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBRW5DLDhDQUE4QztBQUM5QyxNQUFhLGtCQUFtQixTQUFRLEtBQUs7Q0FBRztBQUFoRCxnREFBZ0Q7QUFFaEQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixZQUEyQixFQUMzQixVQUFzQjtJQUV0QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxnQ0FBZ0MsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUN2QyxZQUFZLEVBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FDN0MsQ0FBQztJQUVGLDRFQUE0RTtJQUM1RSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLGtCQUFrQixDQUFDLElBQUEsK0JBQWlCLEVBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQzFDLE1BQU0sRUFDTixJQUFJLDZCQUFjLENBQUMsVUFBVSxDQUFDLEVBQzlCLElBQUEsY0FBTyxFQUFDLFlBQVksQ0FBQyxFQUNyQixFQUFFLENBQ0gsQ0FBQztJQUVGLDBGQUEwRjtJQUMxRiw4RkFBOEY7SUFDOUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLENBQUM7SUFFaEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLGtCQUFrQixDQUFDLElBQUEsK0JBQWlCLEVBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge0ZpbGVTeXN0ZW1Ib3N0fSBmcm9tICcuL3ZpcnR1YWwtaG9zdCc7XG5pbXBvcnQge2Rpcm5hbWV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtmb3JtYXREaWFnbm9zdGljc30gZnJvbSAnLi9kaWFnbm9zdGljcyc7XG5cbi8qKiBDb2RlIG9mIHRoZSBlcnJvciByYWlzZWQgYnkgVHlwZVNjcmlwdCB3aGVuIGEgdHNjb25maWcgZG9lc24ndCBtYXRjaCBhbnkgZmlsZXMuICovXG5jb25zdCBOT19JTlBVVFNfRVJST1JfQ09ERSA9IDE4MDAzO1xuXG4vKiogQ2xhc3MgY2FwdHVyaW5nIGEgdHNjb25maWcgcGFyc2UgZXJyb3IuICovXG5leHBvcnQgY2xhc3MgVHNjb25maWdQYXJzZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBwYXJzZSB0aGUgc3BlY2lmaWVkIHRzY29uZmlnIGZpbGUuXG4gKlxuICogQHRocm93cyB7VHNjb25maWdQYXJzZUVycm9yfSBJZiB0aGUgdHNjb25maWcgY291bGQgbm90IGJlIHJlYWQgb3IgcGFyc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUc2NvbmZpZ0ZpbGUoXG4gIHRzY29uZmlnUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgZmlsZVN5c3RlbTogRmlsZVN5c3RlbSxcbik6IHRzLlBhcnNlZENvbW1hbmRMaW5lIHtcbiAgaWYgKCFmaWxlU3lzdGVtLmZpbGVFeGlzdHModHNjb25maWdQYXRoKSkge1xuICAgIHRocm93IG5ldyBUc2NvbmZpZ1BhcnNlRXJyb3IoYFRzY29uZmlnIGNhbm5vdCBub3QgYmUgcmVhZDogJHt0c2NvbmZpZ1BhdGh9YCk7XG4gIH1cblxuICBjb25zdCB7Y29uZmlnLCBlcnJvcn0gPSB0cy5yZWFkQ29uZmlnRmlsZShcbiAgICB0c2NvbmZpZ1BhdGgsXG4gICAgcCA9PiBmaWxlU3lzdGVtLnJlYWQoZmlsZVN5c3RlbS5yZXNvbHZlKHApKSEsXG4gICk7XG5cbiAgLy8gSWYgdGhlcmUgaXMgYSBjb25maWcgcmVhZGluZyBlcnJvciwgd2UgbmV2ZXIgYXR0ZW1wdCB0byBwYXJzZSB0aGUgY29uZmlnLlxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgVHNjb25maWdQYXJzZUVycm9yKGZvcm1hdERpYWdub3N0aWNzKFtlcnJvcl0sIGZpbGVTeXN0ZW0pKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZCA9IHRzLnBhcnNlSnNvbkNvbmZpZ0ZpbGVDb250ZW50KFxuICAgIGNvbmZpZyxcbiAgICBuZXcgRmlsZVN5c3RlbUhvc3QoZmlsZVN5c3RlbSksXG4gICAgZGlybmFtZSh0c2NvbmZpZ1BhdGgpLFxuICAgIHt9LFxuICApO1xuXG4gIC8vIFNraXAgdGhlIFwiTm8gaW5wdXRzIGZvdW5kLi4uXCIgZXJyb3Igc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBpbnRlcnJ1cHQgdGhlIG1pZ3JhdGlvbiBpZiBhXG4gIC8vIHRzY29uZmlnIGRvZXNuJ3QgbWF0Y2ggYSBmaWxlLiBUaGlzIHdpbGwgcmVzdWx0IGluIGFuIGVtcHR5IGBQcm9ncmFtYCB3aGljaCBpcyBzdGlsbCB2YWxpZC5cbiAgY29uc3QgZXJyb3JzID0gcGFyc2VkLmVycm9ycy5maWx0ZXIoZGlhZyA9PiBkaWFnLmNvZGUgIT09IE5PX0lOUFVUU19FUlJPUl9DT0RFKTtcblxuICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUc2NvbmZpZ1BhcnNlRXJyb3IoZm9ybWF0RGlhZ25vc3RpY3MoZXJyb3JzLCBmaWxlU3lzdGVtKSk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VkO1xufVxuIl19
@@ -1,27 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getPropertyNameText = getPropertyNameText;
11
- exports.hasPropertyNameText = hasPropertyNameText;
12
- const ts = require("typescript");
13
- /**
14
- * Gets the text of the given property name. Returns null if the property
15
- * name couldn't be determined statically.
16
- */
17
- function getPropertyNameText(node) {
18
- if (ts.isIdentifier(node) || ts.isStringLiteralLike(node)) {
19
- return node.text;
20
- }
21
- return null;
22
- }
23
- /** Checks whether the given property name has a text. */
24
- function hasPropertyNameText(node) {
25
- return ts.isStringLiteral(node) || ts.isNumericLiteral(node) || ts.isIdentifier(node);
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9wcm9wZXJ0eS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBV0gsa0RBS0M7QUFHRCxrREFFQztBQW5CRCxpQ0FBaUM7QUFLakM7OztHQUdHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsSUFBcUI7SUFDdkQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQseURBQXlEO0FBQ3pELFNBQWdCLG1CQUFtQixDQUFDLElBQXFCO0lBQ3ZELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqIFR5cGUgdGhhdCBkZXNjcmliZXMgYSBwcm9wZXJ0eSBuYW1lIHdpdGggYW4gb2J0YWluYWJsZSB0ZXh0LiAqL1xudHlwZSBQcm9wZXJ0eU5hbWVXaXRoVGV4dCA9IEV4Y2x1ZGU8dHMuUHJvcGVydHlOYW1lLCB0cy5Db21wdXRlZFByb3BlcnR5TmFtZT47XG5cbi8qKlxuICogR2V0cyB0aGUgdGV4dCBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZS4gUmV0dXJucyBudWxsIGlmIHRoZSBwcm9wZXJ0eVxuICogbmFtZSBjb3VsZG4ndCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWVUZXh0KG5vZGU6IHRzLlByb3BlcnR5TmFtZSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAodHMuaXNJZGVudGlmaWVyKG5vZGUpIHx8IHRzLmlzU3RyaW5nTGl0ZXJhbExpa2Uobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS50ZXh0O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUgaGFzIGEgdGV4dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eU5hbWVUZXh0KG5vZGU6IHRzLlByb3BlcnR5TmFtZSk6IG5vZGUgaXMgUHJvcGVydHlOYW1lV2l0aFRleHQge1xuICByZXR1cm4gdHMuaXNTdHJpbmdMaXRlcmFsKG5vZGUpIHx8IHRzLmlzTnVtZXJpY0xpdGVyYWwobm9kZSkgfHwgdHMuaXNJZGVudGlmaWVyKG5vZGUpO1xufVxuIl19
@@ -1,72 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.FileSystemHost = void 0;
11
- exports.createFileSystemCompilerHost = createFileSystemCompilerHost;
12
- exports.createFormatDiagnosticHost = createFormatDiagnosticHost;
13
- const ts = require("typescript");
14
- /**
15
- * Implementation of a TypeScript parse config host that relies fully on
16
- * a given virtual file system.
17
- */
18
- class FileSystemHost {
19
- _fileSystem;
20
- useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
21
- constructor(_fileSystem) {
22
- this._fileSystem = _fileSystem;
23
- }
24
- fileExists(path) {
25
- return this._fileSystem.fileExists(this._fileSystem.resolve(path));
26
- }
27
- readFile(path) {
28
- const content = this._fileSystem.read(this._fileSystem.resolve(path));
29
- if (content === null) {
30
- return undefined;
31
- }
32
- // Strip BOM as otherwise TSC methods (e.g. "getWidth") will return an offset which
33
- // which breaks the CLI UpdateRecorder. https://github.com/angular/angular/pull/30719
34
- return content.replace(/^\uFEFF/, '');
35
- }
36
- readDirectory(rootDir, extensions, excludes, includes, depth) {
37
- if (ts.matchFiles === undefined) {
38
- throw Error('Unable to read directory in virtual file system host. This means that ' +
39
- 'TypeScript changed its file matching internals.\n\nPlease consider downgrading your ' +
40
- 'TypeScript version, and report an issue in the Angular Components repository.');
41
- }
42
- return ts.matchFiles(rootDir, extensions, extensions, includes, this.useCaseSensitiveFileNames, '/', depth, p => this._getFileSystemEntries(p), p => this._fileSystem.resolve(p), p => this._fileSystem.directoryExists(this._fileSystem.resolve(p)));
43
- }
44
- _getFileSystemEntries(path) {
45
- return this._fileSystem.readDirectory(this._fileSystem.resolve(path));
46
- }
47
- }
48
- exports.FileSystemHost = FileSystemHost;
49
- /**
50
- * Creates a TypeScript compiler host that fully relies fully on the given
51
- * virtual file system. i.e. no interactions with the working directory.
52
- */
53
- function createFileSystemCompilerHost(options, fileSystem) {
54
- const host = ts.createCompilerHost(options, true);
55
- const virtualHost = new FileSystemHost(fileSystem);
56
- host.readFile = virtualHost.readFile.bind(virtualHost);
57
- host.readDirectory = virtualHost.readDirectory.bind(virtualHost);
58
- host.fileExists = virtualHost.fileExists.bind(virtualHost);
59
- host.directoryExists = dirPath => fileSystem.directoryExists(fileSystem.resolve(dirPath));
60
- host.getCurrentDirectory = () => '/';
61
- host.getCanonicalFileName = p => fileSystem.resolve(p);
62
- return host;
63
- }
64
- /** Creates a format diagnostic host that works with the given file system. */
65
- function createFormatDiagnosticHost(fileSystem) {
66
- return {
67
- getCanonicalFileName: p => fileSystem.resolve(p),
68
- getCurrentDirectory: () => '/',
69
- getNewLine: () => '\n',
70
- };
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3V0aWxzL3ZpcnR1YWwtaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUE4Rkgsb0VBZUM7QUFHRCxnRUFNQztBQXBIRCxpQ0FBaUM7QUFnQ2pDOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUdMO0lBRnBCLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7SUFFN0QsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBRyxDQUFDO0lBRS9DLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQ1gsT0FBZSxFQUNmLFVBQW9CLEVBQ3BCLFFBQThCLEVBQzlCLFFBQWtCLEVBQ2xCLEtBQWM7UUFFZCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsTUFBTSxLQUFLLENBQ1Qsd0VBQXdFO2dCQUN0RSxzRkFBc0Y7Z0JBQ3RGLCtFQUErRSxDQUNsRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsR0FBRyxFQUNILEtBQUssRUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQWxERCx3Q0FrREM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsT0FBMkIsRUFDM0IsVUFBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxVQUFzQjtJQUMvRCxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRCxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHO1FBQzlCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0tBQ3ZCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7RmlsZVN5c3RlbX0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0nO1xuXG4vLyBXZSB1c2UgVHlwZVNjcmlwdCdzIG5hdGl2ZSBgdHMubWF0Y2hGaWxlc2AgdXRpbGl0eSBmb3IgdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW1cbi8vIGhvc3RzLCBhcyB0aGF0IGZ1bmN0aW9uIGltcGxlbWVudHMgY29tcGxleCBsb2dpYyBmb3IgbWF0Y2hpbmcgZmlsZXMgd2l0aCByZXNwZWN0XG4vLyB0byByb290IGRpcmVjdG9yeSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGluY2x1ZGVzIGV0Yy4gVGhlIGZ1bmN0aW9uIGlzIGN1cnJlbnRseVxuLy8gaW50ZXJuYWwgYnV0IHdlIGNhbiB1c2UgaXQgYXMgdGhlIEFQSSBtb3N0IGxpa2VseSB3aWxsIG5vdCBjaGFuZ2UgYW55IHRpbWUgc29vbixcbi8vIG5vciBkb2VzIGl0IHNlZW0gbGlrZSB0aGlzIGlzIGJlaW5nIG1hZGUgcHVibGljIGFueSB0aW1lIHNvb24uXG4vLyBSZWxhdGVkIGlzc3VlIGZvciB0cmFja2luZzogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xMzc5My5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9ibG9iL2IzOTdkMWZkNGFiZDBlZGVmODVhZGYwYWZkOTFjMDMwYmIwYjQ5NTUvc3JjL2NvbXBpbGVyL3V0aWxpdGllcy50cyNMNjE5MlxuZGVjbGFyZSBtb2R1bGUgJ3R5cGVzY3JpcHQnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBGaWxlU3lzdGVtRW50cmllcyB7XG4gICAgcmVhZG9ubHkgZmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRpcmVjdG9yaWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBtYXRjaEZpbGVzOlxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGV4dGVuc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgICAgICBleGNsdWRlczogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgICAgIGluY2x1ZGVzOiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczogYm9vbGVhbixcbiAgICAgICAgY3VycmVudERpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBkZXB0aDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgICAgICBnZXRGaWxlU3lzdGVtRW50cmllczogKHBhdGg6IHN0cmluZykgPT4gRmlsZVN5c3RlbUVudHJpZXMsXG4gICAgICAgIHJlYWxwYXRoOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGRpcmVjdG9yeUV4aXN0czogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgICAgICkgPT4gc3RyaW5nW10pO1xufVxuXG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIGEgVHlwZVNjcmlwdCBwYXJzZSBjb25maWcgaG9zdCB0aGF0IHJlbGllcyBmdWxseSBvblxuICogYSBnaXZlbiB2aXJ0dWFsIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZVN5c3RlbUhvc3QgaW1wbGVtZW50cyB0cy5QYXJzZUNvbmZpZ0hvc3Qge1xuICB1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzID0gdHMuc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmlsZVN5c3RlbTogRmlsZVN5c3RlbSkge31cblxuICBmaWxlRXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9maWxlU3lzdGVtLmZpbGVFeGlzdHModGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHBhdGgpKTtcbiAgfVxuXG4gIHJlYWRGaWxlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZCh0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocGF0aCkpO1xuICAgIGlmIChjb250ZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBTdHJpcCBCT00gYXMgb3RoZXJ3aXNlIFRTQyBtZXRob2RzIChlLmcuIFwiZ2V0V2lkdGhcIikgd2lsbCByZXR1cm4gYW4gb2Zmc2V0IHdoaWNoXG4gICAgLy8gd2hpY2ggYnJlYWtzIHRoZSBDTEkgVXBkYXRlUmVjb3JkZXIuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvcHVsbC8zMDcxOVxuICAgIHJldHVybiBjb250ZW50LnJlcGxhY2UoL15cXHVGRUZGLywgJycpO1xuICB9XG5cbiAgcmVhZERpcmVjdG9yeShcbiAgICByb290RGlyOiBzdHJpbmcsXG4gICAgZXh0ZW5zaW9uczogc3RyaW5nW10sXG4gICAgZXhjbHVkZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSxcbiAgICBkZXB0aD86IG51bWJlcixcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmICh0cy5tYXRjaEZpbGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJlYWQgZGlyZWN0b3J5IGluIHZpcnR1YWwgZmlsZSBzeXN0ZW0gaG9zdC4gVGhpcyBtZWFucyB0aGF0ICcgK1xuICAgICAgICAgICdUeXBlU2NyaXB0IGNoYW5nZWQgaXRzIGZpbGUgbWF0Y2hpbmcgaW50ZXJuYWxzLlxcblxcblBsZWFzZSBjb25zaWRlciBkb3duZ3JhZGluZyB5b3VyICcgK1xuICAgICAgICAgICdUeXBlU2NyaXB0IHZlcnNpb24sIGFuZCByZXBvcnQgYW4gaXNzdWUgaW4gdGhlIEFuZ3VsYXIgQ29tcG9uZW50cyByZXBvc2l0b3J5LicsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHMubWF0Y2hGaWxlcyhcbiAgICAgIHJvb3REaXIsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGluY2x1ZGVzLFxuICAgICAgdGhpcy51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzLFxuICAgICAgJy8nLFxuICAgICAgZGVwdGgsXG4gICAgICBwID0+IHRoaXMuX2dldEZpbGVTeXN0ZW1FbnRyaWVzKHApLFxuICAgICAgcCA9PiB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocCksXG4gICAgICBwID0+IHRoaXMuX2ZpbGVTeXN0ZW0uZGlyZWN0b3J5RXhpc3RzKHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVTeXN0ZW1FbnRyaWVzKHBhdGg6IHN0cmluZyk6IHRzLkZpbGVTeXN0ZW1FbnRyaWVzIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZVN5c3RlbS5yZWFkRGlyZWN0b3J5KHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwYXRoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgVHlwZVNjcmlwdCBjb21waWxlciBob3N0IHRoYXQgZnVsbHkgcmVsaWVzIGZ1bGx5IG9uIHRoZSBnaXZlblxuICogdmlydHVhbCBmaWxlIHN5c3RlbS4gaS5lLiBubyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWxlU3lzdGVtQ29tcGlsZXJIb3N0KFxuICBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG4gIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4pOiB0cy5Db21waWxlckhvc3Qge1xuICBjb25zdCBob3N0ID0gdHMuY3JlYXRlQ29tcGlsZXJIb3N0KG9wdGlvbnMsIHRydWUpO1xuICBjb25zdCB2aXJ0dWFsSG9zdCA9IG5ldyBGaWxlU3lzdGVtSG9zdChmaWxlU3lzdGVtKTtcblxuICBob3N0LnJlYWRGaWxlID0gdmlydHVhbEhvc3QucmVhZEZpbGUuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QucmVhZERpcmVjdG9yeSA9IHZpcnR1YWxIb3N0LnJlYWREaXJlY3RvcnkuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QuZmlsZUV4aXN0cyA9IHZpcnR1YWxIb3N0LmZpbGVFeGlzdHMuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QuZGlyZWN0b3J5RXhpc3RzID0gZGlyUGF0aCA9PiBmaWxlU3lzdGVtLmRpcmVjdG9yeUV4aXN0cyhmaWxlU3lzdGVtLnJlc29sdmUoZGlyUGF0aCkpO1xuICBob3N0LmdldEN1cnJlbnREaXJlY3RvcnkgPSAoKSA9PiAnLyc7XG4gIGhvc3QuZ2V0Q2Fub25pY2FsRmlsZU5hbWUgPSBwID0+IGZpbGVTeXN0ZW0ucmVzb2x2ZShwKTtcblxuICByZXR1cm4gaG9zdDtcbn1cblxuLyoqIENyZWF0ZXMgYSBmb3JtYXQgZGlhZ25vc3RpYyBob3N0IHRoYXQgd29ya3Mgd2l0aCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWF0RGlhZ25vc3RpY0hvc3QoZmlsZVN5c3RlbTogRmlsZVN5c3RlbSk6IHRzLkZvcm1hdERpYWdub3N0aWNzSG9zdCB7XG4gIHJldHVybiB7XG4gICAgZ2V0Q2Fub25pY2FsRmlsZU5hbWU6IHAgPT4gZmlsZVN5c3RlbS5yZXNvbHZlKHApLFxuICAgIGdldEN1cnJlbnREaXJlY3Rvcnk6ICgpID0+ICcvJyxcbiAgICBnZXROZXdMaW5lOiAoKSA9PiAnXFxuJyxcbiAgfTtcbn1cbiJdfQ==
@@ -1,38 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getChangesForTarget = getChangesForTarget;
11
- exports.getAllChanges = getAllChanges;
12
- const target_version_1 = require("./target-version");
13
- /**
14
- * Gets the changes for a given target version from the specified version changes object.
15
- *
16
- * For readability and a good overview of breaking changes, the version change data always
17
- * includes the related Pull Request link. Since this data is not needed when performing the
18
- * upgrade, this unused data can be removed and the changes data can be flattened into an
19
- * easy iterable array.
20
- */
21
- function getChangesForTarget(target, data) {
22
- if (!data) {
23
- const version = target_version_1.TargetVersion[target];
24
- throw new Error(`No data could be found for target version: ${version}`);
25
- }
26
- return (data[target] || []).reduce((result, prData) => result.concat(prData.changes), []);
27
- }
28
- /**
29
- * Gets all changes from the specified version changes object. This is helpful in case a migration
30
- * rule does not distinguish data based on the target version, but for readability the
31
- * upgrade data is separated for each target version.
32
- */
33
- function getAllChanges(data) {
34
- return Object.keys(data)
35
- .map(targetVersion => getChangesForTarget(targetVersion, data))
36
- .reduce((result, versionData) => result.concat(versionData), []);
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jaGFuZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3ZlcnNpb24tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQXdCSCxrREFPQztBQU9ELHNDQUlDO0FBeENELHFEQUErQztBQWMvQzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUksTUFBcUIsRUFBRSxJQUF1QjtJQUNuRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLE9BQU8sR0FBSSw4QkFBd0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFJLElBQXVCO0lBQ3RELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDckIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMvRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5cbmV4cG9ydCB0eXBlIFZlcnNpb25DaGFuZ2VzPFQ+ID0ge1xuICBbdGFyZ2V0IGluIFRhcmdldFZlcnNpb25dPzogUmVhZGFibGVDaGFuZ2U8VD5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlYWRhYmxlQ2hhbmdlPFQ+ID0ge1xuICBwcjogc3RyaW5nO1xuICBjaGFuZ2VzOiBUW107XG59O1xuXG4vKiogQ29uZGl0aW9uYWwgdHlwZSB0aGF0IHVud3JhcHMgdGhlIHZhbHVlIG9mIGEgdmVyc2lvbiBjaGFuZ2VzIHR5cGUuICovXG5leHBvcnQgdHlwZSBWYWx1ZU9mQ2hhbmdlczxUPiA9IFQgZXh0ZW5kcyBWZXJzaW9uQ2hhbmdlczxpbmZlciBYPiA/IFggOiBudWxsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNoYW5nZXMgZm9yIGEgZ2l2ZW4gdGFyZ2V0IHZlcnNpb24gZnJvbSB0aGUgc3BlY2lmaWVkIHZlcnNpb24gY2hhbmdlcyBvYmplY3QuXG4gKlxuICogRm9yIHJlYWRhYmlsaXR5IGFuZCBhIGdvb2Qgb3ZlcnZpZXcgb2YgYnJlYWtpbmcgY2hhbmdlcywgdGhlIHZlcnNpb24gY2hhbmdlIGRhdGEgYWx3YXlzXG4gKiBpbmNsdWRlcyB0aGUgcmVsYXRlZCBQdWxsIFJlcXVlc3QgbGluay4gU2luY2UgdGhpcyBkYXRhIGlzIG5vdCBuZWVkZWQgd2hlbiBwZXJmb3JtaW5nIHRoZVxuICogdXBncmFkZSwgdGhpcyB1bnVzZWQgZGF0YSBjYW4gYmUgcmVtb3ZlZCBhbmQgdGhlIGNoYW5nZXMgZGF0YSBjYW4gYmUgZmxhdHRlbmVkIGludG8gYW5cbiAqIGVhc3kgaXRlcmFibGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGFuZ2VzRm9yVGFyZ2V0PFQ+KHRhcmdldDogVGFyZ2V0VmVyc2lvbiwgZGF0YTogVmVyc2lvbkNoYW5nZXM8VD4pOiBUW10ge1xuICBpZiAoIWRhdGEpIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gKFRhcmdldFZlcnNpb24gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPilbdGFyZ2V0XTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGRhdGEgY291bGQgYmUgZm91bmQgZm9yIHRhcmdldCB2ZXJzaW9uOiAke3ZlcnNpb259YCk7XG4gIH1cblxuICByZXR1cm4gKGRhdGFbdGFyZ2V0XSB8fCBbXSkucmVkdWNlKChyZXN1bHQsIHByRGF0YSkgPT4gcmVzdWx0LmNvbmNhdChwckRhdGEuY2hhbmdlcyksIFtdIGFzIFRbXSk7XG59XG5cbi8qKlxuICogR2V0cyBhbGwgY2hhbmdlcyBmcm9tIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBjaGFuZ2VzIG9iamVjdC4gVGhpcyBpcyBoZWxwZnVsIGluIGNhc2UgYSBtaWdyYXRpb25cbiAqIHJ1bGUgZG9lcyBub3QgZGlzdGluZ3Vpc2ggZGF0YSBiYXNlZCBvbiB0aGUgdGFyZ2V0IHZlcnNpb24sIGJ1dCBmb3IgcmVhZGFiaWxpdHkgdGhlXG4gKiB1cGdyYWRlIGRhdGEgaXMgc2VwYXJhdGVkIGZvciBlYWNoIHRhcmdldCB2ZXJzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ2hhbmdlczxUPihkYXRhOiBWZXJzaW9uQ2hhbmdlczxUPik6IFRbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhkYXRhKVxuICAgIC5tYXAodGFyZ2V0VmVyc2lvbiA9PiBnZXRDaGFuZ2VzRm9yVGFyZ2V0KHRhcmdldFZlcnNpb24gYXMgVGFyZ2V0VmVyc2lvbiwgZGF0YSkpXG4gICAgLnJlZHVjZSgocmVzdWx0LCB2ZXJzaW9uRGF0YSkgPT4gcmVzdWx0LmNvbmNhdCh2ZXJzaW9uRGF0YSksIFtdKTtcbn1cbiJdfQ==