@angular/cdk 20.0.0-next.1 → 20.0.0-next.10

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 (445) hide show
  1. package/_adev_assets/cdk_testing.json +1 -0
  2. package/_adev_assets/cdk_testing_protractor.json +1 -0
  3. package/_adev_assets/cdk_testing_selenium_webdriver.json +1 -0
  4. package/_adev_assets/cdk_testing_testbed.json +1 -0
  5. package/a11y/index.d.ts +11 -11
  6. package/{a11y-module.d-7d03e079.d.ts → a11y-module.d-DBHGyKoh.d.ts} +4 -3
  7. package/a11y-prebuilt.css +1 -1
  8. package/accordion/index.d.ts +1 -1
  9. package/{activedescendant-key-manager.d-11921e3a.d.ts → activedescendant-key-manager.d-Bjic5obv.d.ts} +3 -2
  10. package/bidi/index.d.ts +1 -1
  11. package/{bidi-module.d-f8648621.d.ts → bidi-module.d-IN1Vp56w.d.ts} +8 -4
  12. package/clipboard/index.d.ts +2 -1
  13. package/coercion/index.d.ts +3 -2
  14. package/collections/index.d.ts +9 -8
  15. package/{data-source.d-7cab2c9d.d.ts → data-source.d-Bblv7Zvh.d.ts} +2 -1
  16. package/dialog/index.d.ts +26 -19
  17. package/drag-drop/index.d.ts +14 -6
  18. package/fesm2022/{a11y-module-e6996d20.mjs → a11y-module-DpEjWNCj.mjs} +32 -33
  19. package/fesm2022/a11y-module-DpEjWNCj.mjs.map +1 -0
  20. package/fesm2022/a11y.mjs +35 -36
  21. package/fesm2022/a11y.mjs.map +1 -1
  22. package/fesm2022/accordion.mjs +12 -12
  23. package/fesm2022/accordion.mjs.map +1 -1
  24. package/fesm2022/{activedescendant-key-manager-1351a9d3.mjs → activedescendant-key-manager-DC3-fwQI.mjs} +2 -2
  25. package/fesm2022/activedescendant-key-manager-DC3-fwQI.mjs.map +1 -0
  26. package/fesm2022/{array-ee3b4bab.mjs → array-I1yfCXUO.mjs} +1 -1
  27. package/fesm2022/array-I1yfCXUO.mjs.map +1 -0
  28. package/fesm2022/bidi.mjs +77 -4
  29. package/fesm2022/bidi.mjs.map +1 -1
  30. package/fesm2022/{breakpoints-observer-d4584b66.mjs → breakpoints-observer-DpQzdtrE.mjs} +9 -9
  31. package/fesm2022/breakpoints-observer-DpQzdtrE.mjs.map +1 -0
  32. package/fesm2022/cdk.mjs +1 -1
  33. package/fesm2022/cdk.mjs.map +1 -1
  34. package/fesm2022/clipboard.mjs +11 -12
  35. package/fesm2022/clipboard.mjs.map +1 -1
  36. package/fesm2022/coercion/private.mjs +14 -2
  37. package/fesm2022/coercion/private.mjs.map +1 -1
  38. package/fesm2022/coercion.mjs +3 -3
  39. package/fesm2022/coercion.mjs.map +1 -1
  40. package/fesm2022/collections.mjs +5 -5
  41. package/fesm2022/{css-pixel-value-286c9a60.mjs → css-pixel-value-C_HEqLhI.mjs} +1 -1
  42. package/fesm2022/css-pixel-value-C_HEqLhI.mjs.map +1 -0
  43. package/fesm2022/{data-source-5320b6fd.mjs → data-source-D34wiQZj.mjs} +1 -1
  44. package/fesm2022/data-source-D34wiQZj.mjs.map +1 -0
  45. package/fesm2022/dialog.mjs +88 -71
  46. package/fesm2022/dialog.mjs.map +1 -1
  47. package/fesm2022/{directionality-7ea26429.mjs → directionality-Ck5Uc9Se.mjs} +13 -8
  48. package/fesm2022/directionality-Ck5Uc9Se.mjs.map +1 -0
  49. package/fesm2022/{dispose-view-repeater-strategy-b11b87ea.mjs → dispose-view-repeater-strategy-D_JReLI1.mjs} +2 -2
  50. package/fesm2022/dispose-view-repeater-strategy-D_JReLI1.mjs.map +1 -0
  51. package/fesm2022/drag-drop.mjs +125 -60
  52. package/fesm2022/drag-drop.mjs.map +1 -1
  53. package/fesm2022/{element-705567fe.mjs → element-x4z00URv.mjs} +2 -2
  54. package/fesm2022/element-x4z00URv.mjs.map +1 -0
  55. package/fesm2022/{fake-event-detection-7055b1bd.mjs → fake-event-detection-DWOdFTFz.mjs} +1 -1
  56. package/fesm2022/fake-event-detection-DWOdFTFz.mjs.map +1 -0
  57. package/fesm2022/{focus-key-manager-58d29acd.mjs → focus-key-manager-C1rAQJ5z.mjs} +2 -2
  58. package/fesm2022/focus-key-manager-C1rAQJ5z.mjs.map +1 -0
  59. package/fesm2022/{focus-monitor-cebaa0d1.mjs → focus-monitor-DKFfep8Q.mjs} +21 -23
  60. package/fesm2022/focus-monitor-DKFfep8Q.mjs.map +1 -0
  61. package/fesm2022/{id-generator-fba495fb.mjs → id-generator-BwB8lolC.mjs} +4 -4
  62. package/fesm2022/id-generator-BwB8lolC.mjs.map +1 -0
  63. package/fesm2022/{keycodes-107cd3e4.mjs → keycodes-CpHkExLC.mjs} +2 -2
  64. package/fesm2022/keycodes-CpHkExLC.mjs.map +1 -0
  65. package/fesm2022/keycodes.mjs +14 -2
  66. package/fesm2022/keycodes.mjs.map +1 -1
  67. package/fesm2022/layout.mjs +7 -7
  68. package/fesm2022/layout.mjs.map +1 -1
  69. package/fesm2022/{list-key-manager-c7b5cefb.mjs → list-key-manager-CyOIXo8P.mjs} +4 -4
  70. package/fesm2022/list-key-manager-CyOIXo8P.mjs.map +1 -0
  71. package/fesm2022/listbox.mjs +20 -20
  72. package/fesm2022/listbox.mjs.map +1 -1
  73. package/fesm2022/menu.mjs +85 -90
  74. package/fesm2022/menu.mjs.map +1 -1
  75. package/fesm2022/observers/private.mjs +3 -3
  76. package/fesm2022/observers/private.mjs.map +1 -1
  77. package/fesm2022/observers.mjs +209 -5
  78. package/fesm2022/observers.mjs.map +1 -1
  79. package/fesm2022/{overlay-module-863b82c9.mjs → overlay-module-BaGhSGqO.mjs} +204 -171
  80. package/fesm2022/overlay-module-BaGhSGqO.mjs.map +1 -0
  81. package/fesm2022/overlay.mjs +23 -24
  82. package/fesm2022/overlay.mjs.map +1 -1
  83. package/fesm2022/{passive-listeners-c0bdc49f.mjs → passive-listeners-esHZRgIN.mjs} +1 -1
  84. package/fesm2022/passive-listeners-esHZRgIN.mjs.map +1 -0
  85. package/fesm2022/{platform-1be098b0.mjs → platform-CPg0IbDW.mjs} +4 -4
  86. package/fesm2022/platform-CPg0IbDW.mjs.map +1 -0
  87. package/fesm2022/platform.mjs +9 -10
  88. package/fesm2022/platform.mjs.map +1 -1
  89. package/fesm2022/portal.mjs +613 -3
  90. package/fesm2022/portal.mjs.map +1 -1
  91. package/fesm2022/private.mjs +18 -3
  92. package/fesm2022/private.mjs.map +1 -1
  93. package/fesm2022/{recycle-view-repeater-strategy-c1712813.mjs → recycle-view-repeater-strategy-DoWdPqVw.mjs} +2 -2
  94. package/fesm2022/recycle-view-repeater-strategy-DoWdPqVw.mjs.map +1 -0
  95. package/fesm2022/{scrolling-61955dd1.mjs → scrolling-BkvA05C8.mjs} +1 -1
  96. package/fesm2022/scrolling-BkvA05C8.mjs.map +1 -0
  97. package/fesm2022/scrolling.mjs +1462 -11
  98. package/fesm2022/scrolling.mjs.map +1 -1
  99. package/fesm2022/{selection-model-30243dba.mjs → selection-model-BCgC8uEN.mjs} +1 -1
  100. package/fesm2022/selection-model-BCgC8uEN.mjs.map +1 -0
  101. package/fesm2022/{shadow-dom-9f403d00.mjs → shadow-dom-B0oHn41l.mjs} +2 -2
  102. package/fesm2022/shadow-dom-B0oHn41l.mjs.map +1 -0
  103. package/fesm2022/stepper.mjs +43 -38
  104. package/fesm2022/stepper.mjs.map +1 -1
  105. package/fesm2022/{style-loader-e14dc585.mjs → style-loader-BDEAZOey.mjs} +4 -4
  106. package/fesm2022/style-loader-BDEAZOey.mjs.map +1 -0
  107. package/fesm2022/table.mjs +170 -226
  108. package/fesm2022/table.mjs.map +1 -1
  109. package/fesm2022/{test-environment-34eef1ee.mjs → test-environment-CT0XxPyp.mjs} +1 -1
  110. package/fesm2022/test-environment-CT0XxPyp.mjs.map +1 -0
  111. package/fesm2022/testing/selenium-webdriver.mjs +1 -1
  112. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  113. package/fesm2022/testing/testbed.mjs +2 -2
  114. package/fesm2022/testing/testbed.mjs.map +1 -1
  115. package/fesm2022/testing.mjs +697 -2
  116. package/fesm2022/testing.mjs.map +1 -1
  117. package/fesm2022/text-field.mjs +27 -24
  118. package/fesm2022/text-field.mjs.map +1 -1
  119. package/fesm2022/{tree-key-manager-2f20c79c.mjs → tree-key-manager-KnCoIkIC.mjs} +3 -3
  120. package/fesm2022/tree-key-manager-KnCoIkIC.mjs.map +1 -0
  121. package/fesm2022/tree.mjs +47 -35
  122. package/fesm2022/tree.mjs.map +1 -1
  123. package/fesm2022/{typeahead-11ae39bd.mjs → typeahead-9ZW4Dtsf.mjs} +2 -2
  124. package/fesm2022/typeahead-9ZW4Dtsf.mjs.map +1 -0
  125. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs → unique-selection-dispatcher-Cag6cZJ2.mjs} +4 -4
  126. package/fesm2022/unique-selection-dispatcher-Cag6cZJ2.mjs.map +1 -0
  127. package/{focus-key-manager.d-415a6958.d.ts → focus-key-manager.d-BIKDy8oD.d.ts} +4 -3
  128. package/{focus-monitor.d-810a02e6.d.ts → focus-monitor.d-CvvJeQRc.d.ts} +2 -1
  129. package/{harness-environment.d-4d615248.d.ts → harness-environment.d-BatBdODN.d.ts} +2 -1
  130. package/keycodes/index.d.ts +2 -1
  131. package/layout/index.d.ts +2 -1
  132. package/{list-key-manager.d-72e9a2e7.d.ts → list-key-manager.d-BlK3jyRn.d.ts} +2 -1
  133. package/listbox/index.d.ts +5 -4
  134. package/menu/index.d.ts +16 -18
  135. package/{number-property.d-ce316715.d.ts → number-property.d-CJVxXUcb.d.ts} +2 -1
  136. package/observers/index.d.ts +84 -4
  137. package/overlay/_index.scss +7 -1
  138. package/overlay/index.d.ts +77 -80
  139. package/{overlay-module.d-5d06db8a.d.ts → overlay-module.d-BiAhhk6g.d.ts} +23 -12
  140. package/overlay-prebuilt.css +1 -1
  141. package/package.json +2 -4
  142. package/platform/index.d.ts +2 -17
  143. package/portal/index.d.ts +3 -3
  144. package/{portal-directives.d-d345bd53.d.ts → portal-directives.d-DbeNrI5D.d.ts} +2 -1
  145. package/private/index.d.ts +1 -1
  146. package/schematics/index.js +1 -1
  147. package/schematics/index.js.map +1 -0
  148. package/schematics/ng-add/index.js +11 -19
  149. package/schematics/ng-add/index.js.map +1 -0
  150. package/schematics/ng-add/schema.js +1 -1
  151. package/schematics/ng-add/schema.js.map +1 -0
  152. package/schematics/ng-generate/drag-drop/index.js +15 -6
  153. package/schematics/ng-generate/drag-drop/index.js.map +1 -0
  154. package/schematics/ng-generate/drag-drop/schema.js +1 -1
  155. package/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  156. package/schematics/ng-update/data/attribute-selectors.js +1 -1
  157. package/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  158. package/schematics/ng-update/data/class-names.js +1 -1
  159. package/schematics/ng-update/data/class-names.js.map +1 -0
  160. package/schematics/ng-update/data/constructor-checks.js +1 -1
  161. package/schematics/ng-update/data/constructor-checks.js.map +1 -0
  162. package/schematics/ng-update/data/css-selectors.js +1 -1
  163. package/schematics/ng-update/data/css-selectors.js.map +1 -0
  164. package/schematics/ng-update/data/css-tokens.js +1 -1
  165. package/schematics/ng-update/data/css-tokens.js.map +1 -0
  166. package/schematics/ng-update/data/element-selectors.js +1 -1
  167. package/schematics/ng-update/data/element-selectors.js.map +1 -0
  168. package/schematics/ng-update/data/index.js +1 -1
  169. package/schematics/ng-update/data/index.js.map +1 -0
  170. package/schematics/ng-update/data/input-names.js +1 -1
  171. package/schematics/ng-update/data/input-names.js.map +1 -0
  172. package/schematics/ng-update/data/method-call-checks.js +1 -1
  173. package/schematics/ng-update/data/method-call-checks.js.map +1 -0
  174. package/schematics/ng-update/data/output-names.js +1 -1
  175. package/schematics/ng-update/data/output-names.js.map +1 -0
  176. package/schematics/ng-update/data/property-names.js +1 -1
  177. package/schematics/ng-update/data/property-names.js.map +1 -0
  178. package/schematics/ng-update/data/symbol-removal.js +1 -1
  179. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  180. package/schematics/ng-update/devkit-file-system.js +2 -3
  181. package/schematics/ng-update/devkit-file-system.js.map +1 -0
  182. package/schematics/ng-update/devkit-migration-rule.js +13 -4
  183. package/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  184. package/schematics/ng-update/devkit-migration.d.ts +2 -2
  185. package/schematics/ng-update/devkit-migration.js +1 -1
  186. package/schematics/ng-update/devkit-migration.js.map +1 -0
  187. package/schematics/ng-update/find-stylesheets.js +1 -1
  188. package/schematics/ng-update/find-stylesheets.js.map +1 -0
  189. package/schematics/ng-update/html-parsing/angular.js +2 -2
  190. package/schematics/ng-update/html-parsing/angular.js.map +1 -0
  191. package/schematics/ng-update/html-parsing/elements.js +3 -2
  192. package/schematics/ng-update/html-parsing/elements.js.map +1 -0
  193. package/schematics/ng-update/index.js +1 -1
  194. package/schematics/ng-update/index.js.map +1 -0
  195. package/schematics/ng-update/migrations/attribute-selectors.js +8 -5
  196. package/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  197. package/schematics/ng-update/migrations/class-inheritance.js +11 -8
  198. package/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  199. package/schematics/ng-update/migrations/class-names.js +15 -12
  200. package/schematics/ng-update/migrations/class-names.js.map +1 -0
  201. package/schematics/ng-update/migrations/constructor-signature.js +10 -7
  202. package/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  203. package/schematics/ng-update/migrations/css-selectors.js +8 -5
  204. package/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  205. package/schematics/ng-update/migrations/css-tokens.js +8 -5
  206. package/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  207. package/schematics/ng-update/migrations/element-selectors.js +8 -5
  208. package/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  209. package/schematics/ng-update/migrations/input-names.js +8 -5
  210. package/schematics/ng-update/migrations/input-names.js.map +1 -0
  211. package/schematics/ng-update/migrations/method-call-arguments.js +8 -5
  212. package/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  213. package/schematics/ng-update/migrations/misc-template.js +6 -3
  214. package/schematics/ng-update/migrations/misc-template.js.map +1 -0
  215. package/schematics/ng-update/migrations/output-names.js +8 -5
  216. package/schematics/ng-update/migrations/output-names.js.map +1 -0
  217. package/schematics/ng-update/migrations/property-names.js +8 -5
  218. package/schematics/ng-update/migrations/property-names.js.map +1 -0
  219. package/schematics/ng-update/migrations/symbol-removal.js +10 -6
  220. package/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  221. package/schematics/ng-update/public-api.js +1 -1
  222. package/schematics/ng-update/public-api.js.map +1 -0
  223. package/schematics/ng-update/typescript/base-types.js +1 -1
  224. package/schematics/ng-update/typescript/base-types.js.map +1 -0
  225. package/schematics/ng-update/typescript/imports.js +1 -1
  226. package/schematics/ng-update/typescript/imports.js.map +1 -0
  227. package/schematics/ng-update/typescript/literal.js +1 -1
  228. package/schematics/ng-update/typescript/literal.js.map +1 -0
  229. package/schematics/ng-update/typescript/module-specifiers.js +1 -1
  230. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  231. package/schematics/ng-update/upgrade-data.js +1 -1
  232. package/schematics/ng-update/upgrade-data.js.map +1 -0
  233. package/schematics/paths.js +1 -1
  234. package/schematics/paths.js.map +1 -0
  235. package/schematics/update-tool/component-resource-collector.js +3 -5
  236. package/schematics/update-tool/component-resource-collector.js.map +1 -0
  237. package/schematics/update-tool/file-system.js +1 -1
  238. package/schematics/update-tool/file-system.js.map +1 -0
  239. package/schematics/update-tool/index.js +2 -8
  240. package/schematics/update-tool/index.js.map +1 -0
  241. package/schematics/update-tool/logger.js +1 -1
  242. package/schematics/update-tool/logger.js.map +1 -0
  243. package/schematics/update-tool/migration.js +3 -10
  244. package/schematics/update-tool/migration.js.map +1 -0
  245. package/schematics/update-tool/public-api.js +1 -1
  246. package/schematics/update-tool/public-api.js.map +1 -0
  247. package/schematics/update-tool/target-version.js +1 -1
  248. package/schematics/update-tool/target-version.js.map +1 -0
  249. package/schematics/update-tool/update-recorder.js +1 -1
  250. package/schematics/update-tool/update-recorder.js.map +1 -0
  251. package/schematics/update-tool/utils/decorators.js +1 -1
  252. package/schematics/update-tool/utils/decorators.js.map +1 -0
  253. package/schematics/update-tool/utils/diagnostics.js +1 -1
  254. package/schematics/update-tool/utils/diagnostics.js.map +1 -0
  255. package/schematics/update-tool/utils/functions.js +1 -1
  256. package/schematics/update-tool/utils/functions.js.map +1 -0
  257. package/schematics/update-tool/utils/imports.js +1 -1
  258. package/schematics/update-tool/utils/imports.js.map +1 -0
  259. package/schematics/update-tool/utils/line-mappings.js +1 -1
  260. package/schematics/update-tool/utils/line-mappings.js.map +1 -0
  261. package/schematics/update-tool/utils/parse-tsconfig.js +1 -1
  262. package/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  263. package/schematics/update-tool/utils/property-name.js +1 -1
  264. package/schematics/update-tool/utils/property-name.js.map +1 -0
  265. package/schematics/update-tool/utils/virtual-host.js +2 -3
  266. package/schematics/update-tool/utils/virtual-host.js.map +1 -0
  267. package/schematics/update-tool/version-changes.js +1 -1
  268. package/schematics/update-tool/version-changes.js.map +1 -0
  269. package/schematics/utils/ast/ng-module-imports.js +1 -1
  270. package/schematics/utils/ast/ng-module-imports.js.map +1 -0
  271. package/schematics/utils/ast.d.ts +2 -2
  272. package/schematics/utils/ast.js +23 -12
  273. package/schematics/utils/ast.js.map +1 -0
  274. package/schematics/utils/build-component.js +22 -17
  275. package/schematics/utils/build-component.js.map +1 -0
  276. package/schematics/utils/get-project.d.ts +2 -2
  277. package/schematics/utils/get-project.js +1 -1
  278. package/schematics/utils/get-project.js.map +1 -0
  279. package/schematics/utils/html-manipulation.js +1 -1
  280. package/schematics/utils/html-manipulation.js.map +1 -0
  281. package/schematics/utils/index.js +1 -1
  282. package/schematics/utils/index.js.map +1 -0
  283. package/schematics/utils/parse5-element.js +1 -1
  284. package/schematics/utils/parse5-element.js.map +1 -0
  285. package/schematics/utils/project-index-file.d.ts +6 -3
  286. package/schematics/utils/project-index-file.js +30 -7
  287. package/schematics/utils/project-index-file.js.map +1 -0
  288. package/schematics/utils/project-main-file.d.ts +3 -2
  289. package/schematics/utils/project-main-file.js +1 -1
  290. package/schematics/utils/project-main-file.js.map +1 -0
  291. package/schematics/utils/project-style-file.d.ts +2 -2
  292. package/schematics/utils/project-style-file.js +1 -1
  293. package/schematics/utils/project-style-file.js.map +1 -0
  294. package/schematics/utils/project-targets.d.ts +5 -4
  295. package/schematics/utils/project-targets.js +15 -8
  296. package/schematics/utils/project-targets.js.map +1 -0
  297. package/schematics/utils/project-tsconfig-paths.d.ts +3 -3
  298. package/schematics/utils/project-tsconfig-paths.js +26 -14
  299. package/schematics/utils/project-tsconfig-paths.js.map +1 -0
  300. package/schematics/utils/schematic-options.d.ts +2 -2
  301. package/schematics/utils/schematic-options.js +27 -15
  302. package/schematics/utils/schematic-options.js.map +1 -0
  303. package/scrolling/index.d.ts +62 -7
  304. package/{scrolling-module.d-a08a462d.d.ts → scrolling-module.d-DP0Qb7T9.d.ts} +5 -4
  305. package/{selection-model.d-1a70542c.d.ts → selection-model.d-DNgOONDg.d.ts} +2 -1
  306. package/stepper/index.d.ts +6 -5
  307. package/table/index.d.ts +9 -197
  308. package/testing/index.d.ts +3 -2
  309. package/testing/selenium-webdriver/index.d.ts +3 -2
  310. package/testing/testbed/index.d.ts +3 -2
  311. package/text-field/index.d.ts +5 -2
  312. package/text-field-prebuilt.css +1 -1
  313. package/tree/index.d.ts +7 -4
  314. package/{tree-key-manager-strategy.d-603161dd.d.ts → tree-key-manager-strategy.d-XB6M79l-.d.ts} +1 -1
  315. package/{unique-selection-dispatcher.d-7993b9f5.d.ts → unique-selection-dispatcher.d-DSFqf1MM.d.ts} +2 -1
  316. package/{view-repeater.d-79039e1f.d.ts → view-repeater.d-BKljR8u8.d.ts} +2 -1
  317. package/fesm2022/a11y-module-e6996d20.mjs.map +0 -1
  318. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs.map +0 -1
  319. package/fesm2022/array-ee3b4bab.mjs.map +0 -1
  320. package/fesm2022/backwards-compatibility-bcbe473e.mjs +0 -25
  321. package/fesm2022/backwards-compatibility-bcbe473e.mjs.map +0 -1
  322. package/fesm2022/bidi-module-0726b65c.mjs +0 -78
  323. package/fesm2022/bidi-module-0726b65c.mjs.map +0 -1
  324. package/fesm2022/breakpoints-observer-d4584b66.mjs.map +0 -1
  325. package/fesm2022/css-pixel-value-286c9a60.mjs.map +0 -1
  326. package/fesm2022/data-source-5320b6fd.mjs.map +0 -1
  327. package/fesm2022/directionality-7ea26429.mjs.map +0 -1
  328. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs.map +0 -1
  329. package/fesm2022/element-705567fe.mjs.map +0 -1
  330. package/fesm2022/fake-event-detection-7055b1bd.mjs.map +0 -1
  331. package/fesm2022/focus-key-manager-58d29acd.mjs.map +0 -1
  332. package/fesm2022/focus-monitor-cebaa0d1.mjs.map +0 -1
  333. package/fesm2022/id-generator-fba495fb.mjs.map +0 -1
  334. package/fesm2022/keycodes-107cd3e4.mjs.map +0 -1
  335. package/fesm2022/list-key-manager-c7b5cefb.mjs.map +0 -1
  336. package/fesm2022/modifiers-33a5859e.mjs +0 -13
  337. package/fesm2022/modifiers-33a5859e.mjs.map +0 -1
  338. package/fesm2022/observable-97c0792c.mjs +0 -15
  339. package/fesm2022/observable-97c0792c.mjs.map +0 -1
  340. package/fesm2022/observe-content-d2a6b5a0.mjs +0 -210
  341. package/fesm2022/observe-content-d2a6b5a0.mjs.map +0 -1
  342. package/fesm2022/overlay-module-863b82c9.mjs.map +0 -1
  343. package/fesm2022/passive-listeners-c0bdc49f.mjs.map +0 -1
  344. package/fesm2022/platform-1be098b0.mjs.map +0 -1
  345. package/fesm2022/portal-directives-c88fea11.mjs +0 -615
  346. package/fesm2022/portal-directives-c88fea11.mjs.map +0 -1
  347. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs.map +0 -1
  348. package/fesm2022/scrolling-61955dd1.mjs.map +0 -1
  349. package/fesm2022/scrolling-module-aa9eeac5.mjs +0 -1463
  350. package/fesm2022/scrolling-module-aa9eeac5.mjs.map +0 -1
  351. package/fesm2022/selection-model-30243dba.mjs.map +0 -1
  352. package/fesm2022/shadow-dom-9f403d00.mjs.map +0 -1
  353. package/fesm2022/style-loader-e14dc585.mjs.map +0 -1
  354. package/fesm2022/test-environment-34eef1ee.mjs.map +0 -1
  355. package/fesm2022/text-filtering-b60ba8a2.mjs +0 -698
  356. package/fesm2022/text-filtering-b60ba8a2.mjs.map +0 -1
  357. package/fesm2022/tree-key-manager-2f20c79c.mjs.map +0 -1
  358. package/fesm2022/typeahead-11ae39bd.mjs.map +0 -1
  359. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs.map +0 -1
  360. package/fesm2022/visually-hidden-83aea4a0.mjs +0 -18
  361. package/fesm2022/visually-hidden-83aea4a0.mjs.map +0 -1
  362. package/observe-content.d-c08bc882.d.ts +0 -84
  363. package/schematics/index.mjs +0 -37
  364. package/schematics/ng-add/index.mjs +0 -39
  365. package/schematics/ng-add/package-config.d.ts +0 -12
  366. package/schematics/ng-add/package-config.js +0 -51
  367. package/schematics/ng-add/package-config.mjs +0 -51
  368. package/schematics/ng-add/schema.mjs +0 -10
  369. package/schematics/ng-generate/drag-drop/index.mjs +0 -33
  370. package/schematics/ng-generate/drag-drop/schema.mjs +0 -10
  371. package/schematics/ng-update/data/attribute-selectors.mjs +0 -12
  372. package/schematics/ng-update/data/class-names.mjs +0 -12
  373. package/schematics/ng-update/data/constructor-checks.mjs +0 -17
  374. package/schematics/ng-update/data/css-selectors.mjs +0 -12
  375. package/schematics/ng-update/data/css-tokens.mjs +0 -12
  376. package/schematics/ng-update/data/element-selectors.mjs +0 -12
  377. package/schematics/ng-update/data/index.mjs +0 -35
  378. package/schematics/ng-update/data/input-names.mjs +0 -12
  379. package/schematics/ng-update/data/method-call-checks.mjs +0 -12
  380. package/schematics/ng-update/data/output-names.mjs +0 -12
  381. package/schematics/ng-update/data/property-names.mjs +0 -12
  382. package/schematics/ng-update/data/symbol-removal.mjs +0 -12
  383. package/schematics/ng-update/devkit-file-system.mjs +0 -84
  384. package/schematics/ng-update/devkit-migration-rule.mjs +0 -133
  385. package/schematics/ng-update/devkit-migration.mjs +0 -20
  386. package/schematics/ng-update/find-stylesheets.mjs +0 -41
  387. package/schematics/ng-update/html-parsing/angular.mjs +0 -51
  388. package/schematics/ng-update/html-parsing/elements.mjs +0 -62
  389. package/schematics/ng-update/index.mjs +0 -29
  390. package/schematics/ng-update/migrations/attribute-selectors.mjs +0 -68
  391. package/schematics/ng-update/migrations/class-inheritance.mjs +0 -55
  392. package/schematics/ng-update/migrations/class-names.mjs +0 -88
  393. package/schematics/ng-update/migrations/constructor-signature.mjs +0 -136
  394. package/schematics/ng-update/migrations/css-selectors.mjs +0 -72
  395. package/schematics/ng-update/migrations/css-tokens.mjs +0 -80
  396. package/schematics/ng-update/migrations/element-selectors.mjs +0 -63
  397. package/schematics/ng-update/migrations/input-names.mjs +0 -56
  398. package/schematics/ng-update/migrations/method-call-arguments.mjs +0 -59
  399. package/schematics/ng-update/migrations/misc-template.mjs +0 -22
  400. package/schematics/ng-update/migrations/output-names.mjs +0 -43
  401. package/schematics/ng-update/migrations/property-names.mjs +0 -57
  402. package/schematics/ng-update/migrations/symbol-removal.mjs +0 -43
  403. package/schematics/ng-update/public-api.mjs +0 -36
  404. package/schematics/ng-update/typescript/base-types.mjs +0 -23
  405. package/schematics/ng-update/typescript/imports.mjs +0 -53
  406. package/schematics/ng-update/typescript/literal.mjs +0 -32
  407. package/schematics/ng-update/typescript/module-specifiers.mjs +0 -35
  408. package/schematics/ng-update/upgrade-data.mjs +0 -40
  409. package/schematics/paths.mjs +0 -16
  410. package/schematics/schematics.externs.js +0 -0
  411. package/schematics/tsconfig.json +0 -29
  412. package/schematics/update-tool/component-resource-collector.mjs +0 -166
  413. package/schematics/update-tool/file-system.mjs +0 -18
  414. package/schematics/update-tool/index.mjs +0 -178
  415. package/schematics/update-tool/logger.mjs +0 -18
  416. package/schematics/update-tool/migration.mjs +0 -77
  417. package/schematics/update-tool/public-api.mjs +0 -33
  418. package/schematics/update-tool/target-version.mjs +0 -27
  419. package/schematics/update-tool/update-recorder.mjs +0 -10
  420. package/schematics/update-tool/update-tool.externs.js +0 -0
  421. package/schematics/update-tool/utils/decorators.mjs +0 -41
  422. package/schematics/update-tool/utils/diagnostics.mjs +0 -18
  423. package/schematics/update-tool/utils/functions.mjs +0 -20
  424. package/schematics/update-tool/utils/imports.mjs +0 -110
  425. package/schematics/update-tool/utils/line-mappings.mjs +0 -75
  426. package/schematics/update-tool/utils/parse-tsconfig.mjs +0 -45
  427. package/schematics/update-tool/utils/property-name.mjs +0 -27
  428. package/schematics/update-tool/utils/virtual-host.mjs +0 -72
  429. package/schematics/update-tool/version-changes.mjs +0 -38
  430. package/schematics/utils/ast/ng-module-imports.mjs +0 -82
  431. package/schematics/utils/ast.mjs +0 -68
  432. package/schematics/utils/build-component.mjs +0 -183
  433. package/schematics/utils/get-project.mjs +0 -28
  434. package/schematics/utils/html-manipulation.mjs +0 -91
  435. package/schematics/utils/index.mjs +0 -36
  436. package/schematics/utils/parse5-element.mjs +0 -30
  437. package/schematics/utils/project-index-file.mjs +0 -20
  438. package/schematics/utils/project-main-file.mjs +0 -25
  439. package/schematics/utils/project-style-file.mjs +0 -42
  440. package/schematics/utils/project-targets.mjs +0 -39
  441. package/schematics/utils/project-tsconfig-paths.mjs +0 -34
  442. package/schematics/utils/schematic-options.mjs +0 -77
  443. package/viewport-ruler.d-f3d3e82f.d.ts +0 -57
  444. /package/{platform.d-0a5b4792.d.ts → platform.d-B3vREl3q.d.ts} +0 -0
  445. /package/{style-loader.d-19baab84.d.ts → style-loader.d-BXZfQZTF.d.ts} +0 -0
@@ -1,178 +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.UpdateProject = void 0;
11
- const ts = require("typescript");
12
- const component_resource_collector_1 = require("./component-resource-collector");
13
- const logger_1 = require("./logger");
14
- const parse_tsconfig_1 = require("./utils/parse-tsconfig");
15
- const virtual_host_1 = require("./utils/virtual-host");
16
- /**
17
- * An update project that can be run against individual migrations. An update project
18
- * accepts a TypeScript program and a context that is provided to all migrations. The
19
- * context is usually not used by migrations, but in some cases migrations rely on
20
- * specifics from the tool that performs the update (e.g. the Angular CLI). In those cases,
21
- * the context can provide the necessary specifics to the migrations in a type-safe way.
22
- */
23
- class UpdateProject {
24
- _context;
25
- _program;
26
- _fileSystem;
27
- _analyzedFiles;
28
- _logger;
29
- _typeChecker;
30
- constructor(
31
- /** Context provided to all migrations. */
32
- _context,
33
- /** TypeScript program using workspace paths. */
34
- _program,
35
- /** File system used for reading, writing and editing files. */
36
- _fileSystem,
37
- /**
38
- * Set of analyzed files. Used for avoiding multiple migration runs if
39
- * files overlap between targets.
40
- */
41
- _analyzedFiles = new Set(),
42
- /** Logger used for printing messages. */
43
- _logger = logger_1.defaultLogger) {
44
- this._context = _context;
45
- this._program = _program;
46
- this._fileSystem = _fileSystem;
47
- this._analyzedFiles = _analyzedFiles;
48
- this._logger = _logger;
49
- this._typeChecker = this._program.getTypeChecker();
50
- }
51
- /**
52
- * Migrates the project to the specified target version.
53
- * @param migrationTypes Migrations that should be run.
54
- * @param target Version the project should be updated to. Can be `null` if the set of
55
- * specified migrations runs regardless of a target version.
56
- * @param data Upgrade data that is passed to all migration rules.
57
- * @param additionalStylesheetPaths Additional stylesheets that should be migrated, if not
58
- * referenced in an Angular component. This is helpful for global stylesheets in a project.
59
- * @param limitToDirectory If specified, changes will be limited to the given directory.
60
- */
61
- migrate(migrationTypes, target, data, additionalStylesheetPaths, limitToDirectory) {
62
- limitToDirectory &&= this._fileSystem.resolve(limitToDirectory);
63
- // Create instances of the specified migrations.
64
- const migrations = this._createMigrations(migrationTypes, target, data);
65
- // Creates the component resource collector. The collector can visit arbitrary
66
- // TypeScript nodes and will find Angular component resources. Resources include
67
- // templates and stylesheets. It also captures inline stylesheets and templates.
68
- const resourceCollector = new component_resource_collector_1.ComponentResourceCollector(this._typeChecker, this._fileSystem);
69
- // Collect all of the TypeScript source files we want to migrate. We don't
70
- // migrate type definition files, or source files from external libraries.
71
- const sourceFiles = this._program.getSourceFiles().filter(f => {
72
- return (!f.isDeclarationFile &&
73
- (limitToDirectory == null ||
74
- this._fileSystem.resolve(f.fileName).startsWith(limitToDirectory)) &&
75
- !this._program.isSourceFileFromExternalLibrary(f));
76
- });
77
- // Helper function that visits a given TypeScript node and collects all referenced
78
- // component resources (i.e. stylesheets or templates). Additionally, the helper
79
- // visits the node in each instantiated migration.
80
- const visitNodeAndCollectResources = (node) => {
81
- migrations.forEach(r => r.visitNode(node));
82
- ts.forEachChild(node, visitNodeAndCollectResources);
83
- resourceCollector.visitNode(node);
84
- };
85
- // Walk through all source file, if it has not been visited before, and
86
- // visit found nodes while collecting potential resources.
87
- sourceFiles.forEach(sourceFile => {
88
- const resolvedPath = this._fileSystem.resolve(sourceFile.fileName);
89
- // Do not visit source files which have been checked as part of a
90
- // previously migrated TypeScript project.
91
- if (!this._analyzedFiles.has(resolvedPath)) {
92
- visitNodeAndCollectResources(sourceFile);
93
- this._analyzedFiles.add(resolvedPath);
94
- }
95
- });
96
- // Walk through all resolved templates and visit them in each instantiated
97
- // migration. Note that this can only happen after source files have been
98
- // visited because we find templates through the TypeScript source files.
99
- resourceCollector.resolvedTemplates.forEach(template => {
100
- // Do not visit the template if it has been checked before. Inline
101
- // templates cannot be referenced multiple times.
102
- if (template.inline || !this._analyzedFiles.has(template.filePath)) {
103
- migrations.forEach(m => m.visitTemplate(template));
104
- this._analyzedFiles.add(template.filePath);
105
- }
106
- });
107
- // Walk through all resolved stylesheets and visit them in each instantiated
108
- // migration. Note that this can only happen after source files have been
109
- // visited because we find stylesheets through the TypeScript source files.
110
- resourceCollector.resolvedStylesheets.forEach(stylesheet => {
111
- // Do not visit the stylesheet if it has been checked before. Inline
112
- // stylesheets cannot be referenced multiple times.
113
- if (stylesheet.inline || !this._analyzedFiles.has(stylesheet.filePath)) {
114
- migrations.forEach(r => r.visitStylesheet(stylesheet));
115
- this._analyzedFiles.add(stylesheet.filePath);
116
- }
117
- });
118
- // In some applications, developers will have global stylesheets which are not
119
- // specified in any Angular component. Therefore we allow for additional stylesheets
120
- // being specified. We visit them in each migration unless they have been already
121
- // discovered before as actual component resource.
122
- if (additionalStylesheetPaths) {
123
- additionalStylesheetPaths.forEach(filePath => {
124
- const resolvedPath = this._fileSystem.resolve(filePath);
125
- if (limitToDirectory == null || resolvedPath.startsWith(limitToDirectory)) {
126
- const stylesheet = resourceCollector.resolveExternalStylesheet(resolvedPath, null);
127
- // Do not visit stylesheets which have been referenced from a component.
128
- if (!this._analyzedFiles.has(resolvedPath) && stylesheet) {
129
- migrations.forEach(r => r.visitStylesheet(stylesheet));
130
- this._analyzedFiles.add(resolvedPath);
131
- }
132
- }
133
- });
134
- }
135
- // Call the "postAnalysis" method for each migration.
136
- migrations.forEach(r => r.postAnalysis());
137
- // Collect all failures reported by individual migrations.
138
- const failures = migrations.reduce((res, m) => res.concat(m.failures), []);
139
- // In case there are failures, print these to the CLI logger as warnings.
140
- if (failures.length) {
141
- failures.forEach(({ filePath, message, position }) => {
142
- const lineAndCharacter = position ? `@${position.line + 1}:${position.character + 1}` : '';
143
- this._logger.warn(`${filePath}${lineAndCharacter} - ${message}`);
144
- });
145
- }
146
- return {
147
- hasFailures: !!failures.length,
148
- };
149
- }
150
- /**
151
- * Creates instances of the given migrations with the specified target
152
- * version and data.
153
- */
154
- _createMigrations(types, target, data) {
155
- const result = [];
156
- for (const ctor of types) {
157
- const instance = new ctor(this._program, this._typeChecker, target, this._context, data, this._fileSystem, this._logger);
158
- instance.init();
159
- if (instance.enabled) {
160
- result.push(instance);
161
- }
162
- }
163
- return result;
164
- }
165
- /**
166
- * Creates a program from the specified tsconfig and patches the host
167
- * to read files and directories through the given file system.
168
- *
169
- * @throws {TsconfigParseError} If the tsconfig could not be parsed.
170
- */
171
- static createProgramFromTsconfig(tsconfigPath, fs) {
172
- const parsed = (0, parse_tsconfig_1.parseTsconfigFile)(fs.resolve(tsconfigPath), fs);
173
- const host = (0, virtual_host_1.createFileSystemCompilerHost)(parsed.options, fs);
174
- return ts.createProgram(parsed.fileNames, parsed.options, host);
175
- }
176
- }
177
- exports.UpdateProject = UpdateProject;
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFLZDtJQUVBO0lBRUE7SUFLQTtJQUVBO0lBZk8sWUFBWSxDQUFpQjtJQUU5QztJQUNFLDBDQUEwQztJQUNsQyxRQUFpQjtJQUN6QixnREFBZ0Q7SUFDeEMsUUFBb0I7SUFDNUIsK0RBQStEO0lBQ3ZELFdBQXVCO0lBQy9COzs7T0FHRztJQUNLLGlCQUFxQyxJQUFJLEdBQUcsRUFBRTtJQUN0RCx5Q0FBeUM7SUFDakMsVUFBd0Isc0JBQWE7UUFYckMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBS3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUU5QyxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUU3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLGdEQUFnRDtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztR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Q3hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUFDLFlBQTJCLEVBQUUsRUFBYztRQUMxRSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFpQixFQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBckxELHNDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Q29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3J9IGZyb20gJy4vY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge0ZpbGVTeXN0ZW0sIFdvcmtzcGFjZVBhdGh9IGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtkZWZhdWx0TG9nZ2VyLCBVcGRhdGVMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7TWlncmF0aW9uLCBNaWdyYXRpb25DdG9yLCBNaWdyYXRpb25GYWlsdXJlfSBmcm9tICcuL21pZ3JhdGlvbic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4vdGFyZ2V0LXZlcnNpb24nO1xuaW1wb3J0IHtwYXJzZVRzY29uZmlnRmlsZX0gZnJvbSAnLi91dGlscy9wYXJzZS10c2NvbmZpZyc7XG5pbXBvcnQge2NyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3R9IGZyb20gJy4vdXRpbHMvdmlydHVhbC1ob3N0JztcblxuLyoqXG4gKiBBbiB1cGRhdGUgcHJvamVjdCB0aGF0IGNhbiBiZSBydW4gYWdhaW5zdCBpbmRpdmlkdWFsIG1pZ3JhdGlvbnMuIEFuIHVwZGF0ZSBwcm9qZWN0XG4gKiBhY2NlcHRzIGEgVHlwZVNjcmlwdCBwcm9ncmFtIGFuZCBhIGNvbnRleHQgdGhhdCBpcyBwcm92aWRlZCB0byBhbGwgbWlncmF0aW9ucy4gVGhlXG4gKiBjb250ZXh0IGlzIHVzdWFsbHkgbm90IHVzZWQgYnkgbWlncmF0aW9ucywgYnV0IGluIHNvbWUgY2FzZXMgbWlncmF0aW9ucyByZWx5IG9uXG4gKiBzcGVjaWZpY3MgZnJvbSB0aGUgdG9vbCB0aGF0IHBlcmZvcm1zIHRoZSB1cGRhdGUgKGUuZy4gdGhlIEFuZ3VsYXIgQ0xJKS4gSW4gdGhvc2UgY2FzZXMsXG4gKiB0aGUgY29udGV4dCBjYW4gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IHNwZWNpZmljcyB0byB0aGUgbWlncmF0aW9ucyBpbiBhIHR5cGUtc2FmZSB3YXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVQcm9qZWN0PENvbnRleHQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBDb250ZXh0IHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiAqL1xuICAgIHByaXZhdGUgX2NvbnRleHQ6IENvbnRleHQsXG4gICAgLyoqIFR5cGVTY3JpcHQgcHJvZ3JhbSB1c2luZyB3b3Jrc3BhY2UgcGF0aHMuICovXG4gICAgcHJpdmF0ZSBfcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAvKiogRmlsZSBzeXN0ZW0gdXNlZCBmb3IgcmVhZGluZywgd3JpdGluZyBhbmQgZWRpdGluZyBmaWxlcy4gKi9cbiAgICBwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuICAgIC8qKlxuICAgICAqIFNldCBvZiBhbmFseXplZCBmaWxlcy4gVXNlZCBmb3IgYXZvaWRpbmcgbXVsdGlwbGUgbWlncmF0aW9uIHJ1bnMgaWZcbiAgICAgKiBmaWxlcyBvdmVybGFwIGJldHdlZW4gdGFyZ2V0cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9hbmFseXplZEZpbGVzOiBTZXQ8V29ya3NwYWNlUGF0aD4gPSBuZXcgU2V0KCksXG4gICAgLyoqIExvZ2dlciB1c2VkIGZvciBwcmludGluZyBtZXNzYWdlcy4gKi9cbiAgICBwcml2YXRlIF9sb2dnZXI6IFVwZGF0ZUxvZ2dlciA9IGRlZmF1bHRMb2dnZXIsXG4gICkge1xuICAgIHRoaXMuX3R5cGVDaGVja2VyID0gdGhpcy5fcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pZ3JhdGVzIHRoZSBwcm9qZWN0IHRvIHRoZSBzcGVjaWZpZWQgdGFyZ2V0IHZlcnNpb24uXG4gICAqIEBwYXJhbSBtaWdyYXRpb25UeXBlcyBNaWdyYXRpb25zIHRoYXQgc2hvdWxkIGJlIHJ1bi5cbiAgICogQHBhcmFtIHRhcmdldCBWZXJzaW9uIHRoZSBwcm9qZWN0IHNob3VsZCBiZSB1cGRhdGVkIHRvLiBDYW4gYmUgYG51bGxgIGlmIHRoZSBzZXQgb2ZcbiAgICogICBzcGVjaWZpZWQgbWlncmF0aW9ucyBydW5zIHJlZ2FyZGxlc3Mgb2YgYSB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIGRhdGEgVXBncmFkZSBkYXRhIHRoYXQgaXMgcGFzc2VkIHRvIGFsbCBtaWdyYXRpb24gcnVsZXMuXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzIEFkZGl0aW9uYWwgc3R5bGVzaGVldHMgdGhhdCBzaG91bGQgYmUgbWlncmF0ZWQsIGlmIG5vdFxuICAgKiAgIHJlZmVyZW5jZWQgaW4gYW4gQW5ndWxhciBjb21wb25lbnQuIFRoaXMgaXMgaGVscGZ1bCBmb3IgZ2xvYmFsIHN0eWxlc2hlZXRzIGluIGEgcHJvamVjdC5cbiAgICogQHBhcmFtIGxpbWl0VG9EaXJlY3RvcnkgSWYgc3BlY2lmaWVkLCBjaGFuZ2VzIHdpbGwgYmUgbGltaXRlZCB0byB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICAgKi9cbiAgbWlncmF0ZTxEYXRhPihcbiAgICBtaWdyYXRpb25UeXBlczogTWlncmF0aW9uQ3RvcjxEYXRhLCBDb250ZXh0PltdLFxuICAgIHRhcmdldDogVGFyZ2V0VmVyc2lvbiB8IG51bGwsXG4gICAgZGF0YTogRGF0YSxcbiAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzPzogc3RyaW5nW10sXG4gICAgbGltaXRUb0RpcmVjdG9yeT86IHN0cmluZyxcbiAgKToge2hhc0ZhaWx1cmVzOiBib29sZWFufSB7XG4gICAgbGltaXRUb0RpcmVjdG9yeSAmJj0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGxpbWl0VG9EaXJlY3RvcnkpO1xuXG4gICAgLy8gQ3JlYXRlIGluc3RhbmNlcyBvZiB0aGUgc3BlY2lmaWVkIG1pZ3JhdGlvbnMuXG4gICAgY29uc3QgbWlncmF0aW9ucyA9IHRoaXMuX2NyZWF0ZU1pZ3JhdGlvbnMobWlncmF0aW9uVHlwZXMsIHRhcmdldCwgZGF0YSk7XG4gICAgLy8gQ3JlYXRlcyB0aGUgY29tcG9uZW50IHJlc291cmNlIGNvbGxlY3Rvci4gVGhlIGNvbGxlY3RvciBjYW4gdmlzaXQgYXJiaXRyYXJ5XG4gICAgLy8gVHlwZVNjcmlwdCBub2RlcyBhbmQgd2lsbCBmaW5kIEFuZ3VsYXIgY29tcG9uZW50IHJlc291cmNlcy4gUmVzb3VyY2VzIGluY2x1ZGVcbiAgICAvLyB0ZW1wbGF0ZXMgYW5kIHN0eWxlc2hlZXRzLiBJdCBhbHNvIGNhcHR1cmVzIGlubGluZSBzdHlsZXNoZWV0cyBhbmQgdGVtcGxhdGVzLlxuICAgIGNvbnN0IHJlc291cmNlQ29sbGVjdG9yID0gbmV3IENvbXBvbmVudFJlc291cmNlQ29sbGVjdG9yKHRoaXMuX3R5cGVDaGVja2VyLCB0aGlzLl9maWxlU3lzdGVtKTtcbiAgICAvLyBDb2xsZWN0IGFsbCBvZiB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMgd2Ugd2FudCB0byBtaWdyYXRlLiBXZSBkb24ndFxuICAgIC8vIG1pZ3JhdGUgdHlwZSBkZWZpbml0aW9uIGZpbGVzLCBvciBzb3VyY2UgZmlsZXMgZnJvbSBleHRlcm5hbCBsaWJyYXJpZXMuXG4gICAgY29uc3Qgc291cmNlRmlsZXMgPSB0aGlzLl9wcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZmlsdGVyKGYgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIWYuaXNEZWNsYXJhdGlvbkZpbGUgJiZcbiAgICAgICAgKGxpbWl0VG9EaXJlY3RvcnkgPT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShmLmZpbGVOYW1lKS5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSAmJlxuICAgICAgICAhdGhpcy5fcHJvZ3JhbS5pc1NvdXJjZUZpbGVGcm9tRXh0ZXJuYWxMaWJyYXJ5KGYpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRoYXQgdmlzaXRzIGEgZ2l2ZW4gVHlwZVNjcmlwdCBub2RlIGFuZCBjb2xsZWN0cyBhbGwgcmVmZXJlbmNlZFxuICAgIC8vIGNvbXBvbmVudCByZXNvdXJjZXMgKGkuZS4gc3R5bGVzaGVldHMgb3IgdGVtcGxhdGVzKS4gQWRkaXRpb25hbGx5LCB0aGUgaGVscGVyXG4gICAgLy8gdmlzaXRzIHRoZSBub2RlIGluIGVhY2ggaW5zdGFudGlhdGVkIG1pZ3JhdGlvbi5cbiAgICBjb25zdCB2aXNpdE5vZGVBbmRDb2xsZWN0UmVzb3VyY2VzID0gKG5vZGU6IHRzLk5vZGUpID0+IHtcbiAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXROb2RlKG5vZGUpKTtcbiAgICAgIHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdE5vZGVBbmRDb2xsZWN0UmVzb3VyY2VzKTtcbiAgICAgIHJlc291cmNlQ29sbGVjdG9yLnZpc2l0Tm9kZShub2RlKTtcbiAgICB9O1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCBzb3VyY2UgZmlsZSwgaWYgaXQgaGFzIG5vdCBiZWVuIHZpc2l0ZWQgYmVmb3JlLCBhbmRcbiAgICAvLyB2aXNpdCBmb3VuZCBub2RlcyB3aGlsZSBjb2xsZWN0aW5nIHBvdGVudGlhbCByZXNvdXJjZXMuXG4gICAgc291cmNlRmlsZXMuZm9yRWFjaChzb3VyY2VGaWxlID0+IHtcbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcbiAgICAgIC8vIERvIG5vdCB2aXNpdCBzb3VyY2UgZmlsZXMgd2hpY2ggaGF2ZSBiZWVuIGNoZWNrZWQgYXMgcGFydCBvZiBhXG4gICAgICAvLyBwcmV2aW91c2x5IG1pZ3JhdGVkIFR5cGVTY3JpcHQgcHJvamVjdC5cbiAgICAgIGlmICghdGhpcy5fYW5hbHl6ZWRGaWxlcy5oYXMocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICB2aXNpdE5vZGVBbmRDb2xsZWN0UmVzb3VyY2VzKHNvdXJjZUZpbGUpO1xuICAgICAgICB0aGlzLl9hbmFseXplZEZpbGVzLmFkZChyZXNvbHZlZFBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCB0ZW1wbGF0ZXMgYW5kIHZpc2l0IHRoZW0gaW4gZWFjaCBpbnN0YW50aWF0ZWRcbiAgICAvLyBtaWdyYXRpb24uIE5vdGUgdGhhdCB0aGlzIGNhbiBvbmx5IGhhcHBlbiBhZnRlciBzb3VyY2UgZmlsZXMgaGF2ZSBiZWVuXG4gICAgLy8gdmlzaXRlZCBiZWNhdXNlIHdlIGZpbmQgdGVtcGxhdGVzIHRocm91Z2ggdGhlIFR5cGVTY3JpcHQgc291cmNlIGZpbGVzLlxuICAgIHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVkVGVtcGxhdGVzLmZvckVhY2godGVtcGxhdGUgPT4ge1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHRoZSB0ZW1wbGF0ZSBpZiBpdCBoYXMgYmVlbiBjaGVja2VkIGJlZm9yZS4gSW5saW5lXG4gICAgICAvLyB0ZW1wbGF0ZXMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAodGVtcGxhdGUuaW5saW5lIHx8ICF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyh0ZW1wbGF0ZS5maWxlUGF0aCkpIHtcbiAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKG0gPT4gbS52aXNpdFRlbXBsYXRlKHRlbXBsYXRlKSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHRlbXBsYXRlLmZpbGVQYXRoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFdhbGsgdGhyb3VnaCBhbGwgcmVzb2x2ZWQgc3R5bGVzaGVldHMgYW5kIHZpc2l0IHRoZW0gaW4gZWFjaCBpbnN0YW50aWF0ZWRcbiAgICAvLyBtaWdyYXRpb24uIE5vdGUgdGhhdCB0aGlzIGNhbiBvbmx5IGhhcHBlbiBhZnRlciBzb3VyY2UgZmlsZXMgaGF2ZSBiZWVuXG4gICAgLy8gdmlzaXRlZCBiZWNhdXNlIHdlIGZpbmQgc3R5bGVzaGVldHMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRTdHlsZXNoZWV0cy5mb3JFYWNoKHN0eWxlc2hlZXQgPT4ge1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHRoZSBzdHlsZXNoZWV0IGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHN0eWxlc2hlZXRzIGNhbm5vdCBiZSByZWZlcmVuY2VkIG11bHRpcGxlIHRpbWVzLlxuICAgICAgaWYgKHN0eWxlc2hlZXQuaW5saW5lIHx8ICF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhzdHlsZXNoZWV0LmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnZpc2l0U3R5bGVzaGVldChzdHlsZXNoZWV0KSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHN0eWxlc2hlZXQuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gSW4gc29tZSBhcHBsaWNhdGlvbnMsIGRldmVsb3BlcnMgd2lsbCBoYXZlIGdsb2JhbCBzdHlsZXNoZWV0cyB3aGljaCBhcmUgbm90XG4gICAgLy8gc3BlY2lmaWVkIGluIGFueSBBbmd1bGFyIGNvbXBvbmVudC4gVGhlcmVmb3JlIHdlIGFsbG93IGZvciBhZGRpdGlvbmFsIHN0eWxlc2hlZXRzXG4gICAgLy8gYmVpbmcgc3BlY2lmaWVkLiBXZSB2aXNpdCB0aGVtIGluIGVhY2ggbWlncmF0aW9uIHVubGVzcyB0aGV5IGhhdmUgYmVlbiBhbHJlYWR5XG4gICAgLy8gZGlzY292ZXJlZCBiZWZvcmUgYXMgYWN0dWFsIGNvbXBvbmVudCByZXNvdXJjZS5cbiAgICBpZiAoYWRkaXRpb25hbFN0eWxlc2hlZXRQYXRocykge1xuICAgICAgYWRkaXRpb25hbFN0eWxlc2hlZXRQYXRocy5mb3JFYWNoKGZpbGVQYXRoID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGxpbWl0VG9EaXJlY3RvcnkgPT0gbnVsbCB8fCByZXNvbHZlZFBhdGguc3RhcnRzV2l0aChsaW1pdFRvRGlyZWN0b3J5KSkge1xuICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlRXh0ZXJuYWxTdHlsZXNoZWV0KHJlc29sdmVkUGF0aCwgbnVsbCk7XG4gICAgICAgICAgLy8gRG8gbm90IHZpc2l0IHN0eWxlc2hlZXRzIHdoaWNoIGhhdmUgYmVlbiByZWZlcmVuY2VkIGZyb20gYSBjb21wb25lbnQuXG4gICAgICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpICYmIHN0eWxlc2hlZXQpIHtcbiAgICAgICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBDYWxsIHRoZSBcInBvc3RBbmFseXNpc1wiIG1ldGhvZCBmb3IgZWFjaCBtaWdyYXRpb24uXG4gICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci5wb3N0QW5hbHlzaXMoKSk7XG5cbiAgICAvLyBDb2xsZWN0IGFsbCBmYWlsdXJlcyByZXBvcnRlZCBieSBpbmRpdmlkdWFsIG1pZ3JhdGlvbnMuXG4gICAgY29uc3QgZmFpbHVyZXMgPSBtaWdyYXRpb25zLnJlZHVjZShcbiAgICAgIChyZXMsIG0pID0+IHJlcy5jb25jYXQobS5mYWlsdXJlcyksXG4gICAgICBbXSBhcyBNaWdyYXRpb25GYWlsdXJlW10sXG4gICAgKTtcblxuICAgIC8vIEluIGNhc2UgdGhlcmUgYXJlIGZhaWx1cmVzLCBwcmludCB0aGVzZSB0byB0aGUgQ0xJIGxvZ2dlciBhcyB3YXJuaW5ncy5cbiAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKSB7XG4gICAgICBmYWlsdXJlcy5mb3JFYWNoKCh7ZmlsZVBhdGgsIG1lc3NhZ2UsIHBvc2l0aW9ufSkgPT4ge1xuICAgICAgICBjb25zdCBsaW5lQW5kQ2hhcmFjdGVyID0gcG9zaXRpb24gPyBgQCR7cG9zaXRpb24ubGluZSArIDF9OiR7cG9zaXRpb24uY2hhcmFjdGVyICsgMX1gIDogJyc7XG4gICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKGAke2ZpbGVQYXRofSR7bGluZUFuZENoYXJhY3Rlcn0gLSAke21lc3NhZ2V9YCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaGFzRmFpbHVyZXM6ICEhZmFpbHVyZXMubGVuZ3RoLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBpbnN0YW5jZXMgb2YgdGhlIGdpdmVuIG1pZ3JhdGlvbnMgd2l0aCB0aGUgc3BlY2lmaWVkIHRhcmdldFxuICAgKiB2ZXJzaW9uIGFuZCBkYXRhLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlTWlncmF0aW9uczxEYXRhPihcbiAgICB0eXBlczogTWlncmF0aW9uQ3RvcjxEYXRhLCBDb250ZXh0PltdLFxuICAgIHRhcmdldDogVGFyZ2V0VmVyc2lvbiB8IG51bGwsXG4gICAgZGF0YTogRGF0YSxcbiAgKTogTWlncmF0aW9uPERhdGEsIENvbnRleHQ+W10ge1xuICAgIGNvbnN0IHJlc3VsdDogTWlncmF0aW9uPERhdGEsIENvbnRleHQ+W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGN0b3Igb2YgdHlwZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGN0b3IoXG4gICAgICAgIHRoaXMuX3Byb2dyYW0sXG4gICAgICAgIHRoaXMuX3R5cGVDaGVja2VyLFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHRoaXMuX2NvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW0sXG4gICAgICAgIHRoaXMuX2xvZ2dlcixcbiAgICAgICk7XG4gICAgICBpbnN0YW5jZS5pbml0KCk7XG4gICAgICBpZiAoaW5zdGFuY2UuZW5hYmxlZCkge1xuICAgICAgICByZXN1bHQucHVzaChpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHByb2dyYW0gZnJvbSB0aGUgc3BlY2lmaWVkIHRzY29uZmlnIGFuZCBwYXRjaGVzIHRoZSBob3N0XG4gICAqIHRvIHJlYWQgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRocm91Z2ggdGhlIGdpdmVuIGZpbGUgc3lzdGVtLlxuICAgKlxuICAgKiBAdGhyb3dzIHtUc2NvbmZpZ1BhcnNlRXJyb3J9IElmIHRoZSB0c2NvbmZpZyBjb3VsZCBub3QgYmUgcGFyc2VkLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVByb2dyYW1Gcm9tVHNjb25maWcodHNjb25maWdQYXRoOiBXb3Jrc3BhY2VQYXRoLCBmczogRmlsZVN5c3RlbSk6IHRzLlByb2dyYW0ge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlVHNjb25maWdGaWxlKGZzLnJlc29sdmUodHNjb25maWdQYXRoKSwgZnMpO1xuICAgIGNvbnN0IGhvc3QgPSBjcmVhdGVGaWxlU3lzdGVtQ29tcGlsZXJIb3N0KHBhcnNlZC5vcHRpb25zLCBmcyk7XG4gICAgcmV0dXJuIHRzLmNyZWF0ZVByb2dyYW0ocGFyc2VkLmZpbGVOYW1lcywgcGFyc2VkLm9wdGlvbnMsIGhvc3QpO1xuICB9XG59XG4iXX0=
@@ -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.defaultLogger = void 0;
11
- exports.defaultLogger = {
12
- debug: m => console.debug(m),
13
- error: m => console.error(m),
14
- fatal: m => console.error(m),
15
- info: m => console.info(m),
16
- warn: m => console.warn(m),
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFVVSxRQUFBLGFBQWEsR0FBaUI7SUFDekMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVMb2dnZXIge1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuICBmYXRhbChtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG4gIHdhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2dnZXI6IFVwZGF0ZUxvZ2dlciA9IHtcbiAgZGVidWc6IG0gPT4gY29uc29sZS5kZWJ1ZyhtKSxcbiAgZXJyb3I6IG0gPT4gY29uc29sZS5lcnJvcihtKSxcbiAgZmF0YWw6IG0gPT4gY29uc29sZS5lcnJvcihtKSxcbiAgaW5mbzogbSA9PiBjb25zb2xlLmluZm8obSksXG4gIHdhcm46IG0gPT4gY29uc29sZS53YXJuKG0pLFxufTtcbiJdfQ==
@@ -1,77 +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.Migration = void 0;
11
- const ts = require("typescript");
12
- class Migration {
13
- program;
14
- typeChecker;
15
- targetVersion;
16
- context;
17
- upgradeData;
18
- fileSystem;
19
- logger;
20
- /** List of migration failures that need to be reported. */
21
- failures = [];
22
- constructor(
23
- /** TypeScript program for the migration. */
24
- program,
25
- /** TypeChecker instance for the analysis program. */
26
- typeChecker,
27
- /**
28
- * Version for which the migration rule should run. Null if the migration
29
- * is invoked manually.
30
- */
31
- targetVersion,
32
- /** Context data for the migration. */
33
- context,
34
- /** Upgrade data passed to the migration. */
35
- upgradeData,
36
- /** File system that can be used for modifying files. */
37
- fileSystem,
38
- /** Logger that can be used to print messages as part of the migration. */
39
- logger) {
40
- this.program = program;
41
- this.typeChecker = typeChecker;
42
- this.targetVersion = targetVersion;
43
- this.context = context;
44
- this.upgradeData = upgradeData;
45
- this.fileSystem = fileSystem;
46
- this.logger = logger;
47
- }
48
- /** Method can be used to perform global analysis of the program. */
49
- init() { }
50
- /**
51
- * Method that will be called once all nodes, templates and stylesheets
52
- * have been visited.
53
- */
54
- postAnalysis() { }
55
- /**
56
- * Method that will be called for each node in a given source file. Unlike tslint, this
57
- * function will only retrieve TypeScript nodes that need to be casted manually. This
58
- * allows us to only walk the program source files once per program and not per
59
- * migration rule (significant performance boost).
60
- */
61
- visitNode(node) { }
62
- /** Method that will be called for each Angular template in the program. */
63
- visitTemplate(template) { }
64
- /** Method that will be called for each stylesheet in the program. */
65
- visitStylesheet(stylesheet) { }
66
- /** Creates a failure with a specified message at the given node location. */
67
- createFailureAtNode(node, message) {
68
- const sourceFile = node.getSourceFile();
69
- this.failures.push({
70
- filePath: this.fileSystem.resolve(sourceFile.fileName),
71
- position: ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()),
72
- message: message,
73
- });
74
- }
75
- }
76
- exports.Migration = Migration;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUF1QmpDLE1BQXNCLFNBQVM7SUFTcEI7SUFFQTtJQUtBO0lBRUE7SUFFQTtJQUVBO0lBRUE7SUF2QlQsMkRBQTJEO0lBQzNELFFBQVEsR0FBdUIsRUFBRSxDQUFDO0lBS2xDO0lBQ0UsNENBQTRDO0lBQ3JDLE9BQW1CO0lBQzFCLHFEQUFxRDtJQUM5QyxXQUEyQjtJQUNsQzs7O09BR0c7SUFDSSxhQUFtQztJQUMxQyxzQ0FBc0M7SUFDL0IsT0FBZ0I7SUFDdkIsNENBQTRDO0lBQ3JDLFdBQWlCO0lBQ3hCLHdEQUF3RDtJQUNqRCxVQUFzQjtJQUM3QiwwRUFBMEU7SUFDbkUsTUFBb0I7UUFmcEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUVuQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFLM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBRW5DLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFaEIsZ0JBQVcsR0FBWCxXQUFXLENBQU07UUFFakIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBQzFCLENBQUM7SUFFSixvRUFBb0U7SUFDcEUsSUFBSSxLQUFVLENBQUM7SUFFZjs7O09BR0c7SUFDSCxZQUFZLEtBQVUsQ0FBQztJQUV2Qjs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxJQUFhLElBQVMsQ0FBQztJQUVqQywyRUFBMkU7SUFDM0UsYUFBYSxDQUFDLFFBQTBCLElBQVMsQ0FBQztJQUVsRCxxRUFBcUU7SUFDckUsZUFBZSxDQUFDLFVBQTRCLElBQVMsQ0FBQztJQUV0RCw2RUFBNkU7SUFDbkUsbUJBQW1CLENBQUMsSUFBYSxFQUFFLE9BQWU7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RELFFBQVEsRUFBRSxFQUFFLENBQUMsNkJBQTZCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2RSxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsOEJBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7UmVzb2x2ZWRSZXNvdXJjZX0gZnJvbSAnLi9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge1VwZGF0ZUxvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuL3RhcmdldC12ZXJzaW9uJztcbmltcG9ydCB7TGluZUFuZENoYXJhY3Rlcn0gZnJvbSAnLi91dGlscy9saW5lLW1hcHBpbmdzJztcblxuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRpb25GYWlsdXJlIHtcbiAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGg7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcG9zaXRpb24/OiBMaW5lQW5kQ2hhcmFjdGVyO1xufVxuXG5leHBvcnQgdHlwZSBQb3N0TWlncmF0aW9uQWN0aW9uID0gdm9pZCB8IHtcbiAgLyoqIFdoZXRoZXIgdGhlIHBhY2thZ2UgbWFuYWdlciBzaG91bGQgcnVuIHVwb24gbWlncmF0aW9uIGNvbXBsZXRpb24uICovXG4gIHJ1blBhY2thZ2VNYW5hZ2VyOiBib29sZWFuO1xufTtcblxuLyoqIENyZWF0ZXMgYSBjb25zdHJ1Y3RvciB0eXBlIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUuICovXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RvcjxUPiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4vKiogR2V0cyBhIGNvbnN0cnVjdG9yIHR5cGUgZm9yIHRoZSBwYXNzZWQgbWlncmF0aW9uIGRhdGEuICovXG5leHBvcnQgdHlwZSBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQgPSBhbnk+ID0gQ29uc3RydWN0b3I8TWlncmF0aW9uPERhdGEsIENvbnRleHQ+PjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1pZ3JhdGlvbjxEYXRhLCBDb250ZXh0ID0gYW55PiB7XG4gIC8qKiBMaXN0IG9mIG1pZ3JhdGlvbiBmYWlsdXJlcyB0aGF0IG5lZWQgdG8gYmUgcmVwb3J0ZWQuICovXG4gIGZhaWx1cmVzOiBNaWdyYXRpb25GYWlsdXJlW10gPSBbXTtcblxuICAvKiogV2hldGhlciB0aGUgbWlncmF0aW9uIGlzIGVuYWJsZWQgb3Igbm90LiAqL1xuICBhYnN0cmFjdCBlbmFibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBUeXBlU2NyaXB0IHByb2dyYW0gZm9yIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIHByb2dyYW06IHRzLlByb2dyYW0sXG4gICAgLyoqIFR5cGVDaGVja2VyIGluc3RhbmNlIGZvciB0aGUgYW5hbHlzaXMgcHJvZ3JhbS4gKi9cbiAgICBwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICAgIC8qKlxuICAgICAqIFZlcnNpb24gZm9yIHdoaWNoIHRoZSBtaWdyYXRpb24gcnVsZSBzaG91bGQgcnVuLiBOdWxsIGlmIHRoZSBtaWdyYXRpb25cbiAgICAgKiBpcyBpbnZva2VkIG1hbnVhbGx5LlxuICAgICAqL1xuICAgIHB1YmxpYyB0YXJnZXRWZXJzaW9uOiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICAvKiogQ29udGV4dCBkYXRhIGZvciB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyBjb250ZXh0OiBDb250ZXh0LFxuICAgIC8qKiBVcGdyYWRlIGRhdGEgcGFzc2VkIHRvIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIHVwZ3JhZGVEYXRhOiBEYXRhLFxuICAgIC8qKiBGaWxlIHN5c3RlbSB0aGF0IGNhbiBiZSB1c2VkIGZvciBtb2RpZnlpbmcgZmlsZXMuICovXG4gICAgcHVibGljIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4gICAgLyoqIExvZ2dlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHByaW50IG1lc3NhZ2VzIGFzIHBhcnQgb2YgdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgbG9nZ2VyOiBVcGRhdGVMb2dnZXIsXG4gICkge31cblxuICAvKiogTWV0aG9kIGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gZ2xvYmFsIGFuYWx5c2lzIG9mIHRoZSBwcm9ncmFtLiAqL1xuICBpbml0KCk6IHZvaWQge31cblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25jZSBhbGwgbm9kZXMsIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHNcbiAgICogaGF2ZSBiZWVuIHZpc2l0ZWQuXG4gICAqL1xuICBwb3N0QW5hbHlzaXMoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBub2RlIGluIGEgZ2l2ZW4gc291cmNlIGZpbGUuIFVubGlrZSB0c2xpbnQsIHRoaXNcbiAgICogZnVuY3Rpb24gd2lsbCBvbmx5IHJldHJpZXZlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBuZWVkIHRvIGJlIGNhc3RlZCBtYW51YWxseS4gVGhpc1xuICAgKiBhbGxvd3MgdXMgdG8gb25seSB3YWxrIHRoZSBwcm9ncmFtIHNvdXJjZSBmaWxlcyBvbmNlIHBlciBwcm9ncmFtIGFuZCBub3QgcGVyXG4gICAqIG1pZ3JhdGlvbiBydWxlIChzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBib29zdCkuXG4gICAqL1xuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSk6IHZvaWQge31cblxuICAvKiogTWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggQW5ndWxhciB0ZW1wbGF0ZSBpbiB0aGUgcHJvZ3JhbS4gKi9cbiAgdmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZTogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge31cblxuICAvKiogTWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggc3R5bGVzaGVldCBpbiB0aGUgcHJvZ3JhbS4gKi9cbiAgdmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQ6IFJlc29sdmVkUmVzb3VyY2UpOiB2b2lkIHt9XG5cbiAgLyoqIENyZWF0ZXMgYSBmYWlsdXJlIHdpdGggYSBzcGVjaWZpZWQgbWVzc2FnZSBhdCB0aGUgZ2l2ZW4gbm9kZSBsb2NhdGlvbi4gKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUZhaWx1cmVBdE5vZGUobm9kZTogdHMuTm9kZSwgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc291cmNlRmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIHRoaXMuZmFpbHVyZXMucHVzaCh7XG4gICAgICBmaWxlUGF0aDogdGhpcy5maWxlU3lzdGVtLnJlc29sdmUoc291cmNlRmlsZS5maWxlTmFtZSksXG4gICAgICBwb3NpdGlvbjogdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oc291cmNlRmlsZSwgbm9kZS5nZXRTdGFydCgpKSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,33 +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
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
- };
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- __exportStar(require("./component-resource-collector"), exports);
25
- __exportStar(require("./file-system"), exports);
26
- __exportStar(require("./index"), exports);
27
- __exportStar(require("./migration"), exports);
28
- __exportStar(require("./target-version"), exports);
29
- __exportStar(require("./utils/decorators"), exports);
30
- __exportStar(require("./utils/imports"), exports);
31
- __exportStar(require("./utils/property-name"), exports);
32
- __exportStar(require("./version-changes"), exports);
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxpRUFBK0M7QUFDL0MsZ0RBQThCO0FBQzlCLDBDQUF3QjtBQUN4Qiw4Q0FBNEI7QUFDNUIsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyxrREFBZ0M7QUFDaEMsd0RBQXNDO0FBQ3RDLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL21pZ3JhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldC12ZXJzaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvZGVjb3JhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2ltcG9ydHMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9wcm9wZXJ0eS1uYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vdmVyc2lvbi1jaGFuZ2VzJztcbiJdfQ==
@@ -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==