jqwidgets-ng 23.0.7 → 23.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/jqwidgets/jqx-all.js +17 -9
  2. package/jqwidgets/jqxangular.js +1 -1
  3. package/jqwidgets/jqxbarcode.js +3 -1
  4. package/jqwidgets/jqxbargauge.js +1 -1
  5. package/jqwidgets/jqxbulletchart.js +1 -1
  6. package/jqwidgets/jqxbuttongroup.js +1 -1
  7. package/jqwidgets/jqxbuttons.js +1 -1
  8. package/jqwidgets/jqxcalendar.js +1 -1
  9. package/jqwidgets/jqxchart.annotations.js +1 -1
  10. package/jqwidgets/jqxchart.api.js +1 -1
  11. package/jqwidgets/jqxchart.core.js +2 -2
  12. package/jqwidgets/jqxchart.js +2 -2
  13. package/jqwidgets/jqxchart.rangeselector.js +1 -1
  14. package/jqwidgets/jqxchart.waterfall.js +1 -1
  15. package/jqwidgets/jqxcheckbox.js +1 -1
  16. package/jqwidgets/jqxcheckboxgroup.js +3 -1
  17. package/jqwidgets/jqxcolorpicker.js +1 -1
  18. package/jqwidgets/jqxcombobox.js +1 -1
  19. package/jqwidgets/jqxcomplexinput.js +1 -1
  20. package/jqwidgets/jqxcore.js +1 -1
  21. package/jqwidgets/jqxdata.export.js +1 -1
  22. package/jqwidgets/jqxdata.js +1 -1
  23. package/jqwidgets/jqxdatatable.js +2 -2
  24. package/jqwidgets/jqxdate.js +1 -1
  25. package/jqwidgets/jqxdatetimeinput.js +1 -1
  26. package/jqwidgets/jqxdocking.js +1 -1
  27. package/jqwidgets/jqxdockinglayout.js +1 -1
  28. package/jqwidgets/jqxdockpanel.js +1 -1
  29. package/jqwidgets/jqxdragdrop.js +1 -1
  30. package/jqwidgets/jqxdraw.js +1 -1
  31. package/jqwidgets/jqxdropdownbutton.js +1 -1
  32. package/jqwidgets/jqxdropdownlist.js +1 -1
  33. package/jqwidgets/jqxeditor.js +1 -1
  34. package/jqwidgets/jqxexpander.js +1 -1
  35. package/jqwidgets/jqxfileupload.js +1 -1
  36. package/jqwidgets/jqxform.js +1 -1
  37. package/jqwidgets/jqxformattedinput.js +1 -1
  38. package/jqwidgets/jqxgantt.js +1 -1
  39. package/jqwidgets/jqxgauge.js +1 -1
  40. package/jqwidgets/jqxgrid.aggregates.js +1 -1
  41. package/jqwidgets/jqxgrid.columnsreorder.js +1 -1
  42. package/jqwidgets/jqxgrid.columnsresize.js +2 -2
  43. package/jqwidgets/jqxgrid.edit.js +1 -1
  44. package/jqwidgets/jqxgrid.export.js +1 -1
  45. package/jqwidgets/jqxgrid.filter.js +2 -2
  46. package/jqwidgets/jqxgrid.grouping.js +1 -1
  47. package/jqwidgets/jqxgrid.js +2 -2
  48. package/jqwidgets/jqxgrid.pager.js +1 -1
  49. package/jqwidgets/jqxgrid.selection.js +1 -1
  50. package/jqwidgets/jqxgrid.sort.js +1 -1
  51. package/jqwidgets/jqxgrid.storage.js +2 -2
  52. package/jqwidgets/jqxheatmap.js +1 -1
  53. package/jqwidgets/jqxinput.js +1 -1
  54. package/jqwidgets/jqxkanban.js +1 -1
  55. package/jqwidgets/jqxknob.js +1 -1
  56. package/jqwidgets/jqxknockout.js +1 -1
  57. package/jqwidgets/jqxlayout.js +1 -1
  58. package/jqwidgets/jqxlistbox.js +1 -1
  59. package/jqwidgets/jqxlistmenu.js +1 -1
  60. package/jqwidgets/jqxloader.js +1 -1
  61. package/jqwidgets/jqxmaskedinput.js +1 -1
  62. package/jqwidgets/jqxmenu.js +1 -1
  63. package/jqwidgets/jqxnavbar.js +1 -1
  64. package/jqwidgets/jqxnavigationbar.js +1 -1
  65. package/jqwidgets/jqxnotification.js +1 -1
  66. package/jqwidgets/jqxnumberinput.js +1 -1
  67. package/jqwidgets/jqxpanel.js +1 -1
  68. package/jqwidgets/jqxpasswordinput.js +1 -1
  69. package/jqwidgets/jqxpivot.js +1 -1
  70. package/jqwidgets/jqxpivotdesigner.js +1 -1
  71. package/jqwidgets/jqxpivotgrid.js +1 -1
  72. package/jqwidgets/jqxpopover.js +1 -1
  73. package/jqwidgets/jqxprogressbar.js +1 -1
  74. package/jqwidgets/jqxqrcode.js +3 -1
  75. package/jqwidgets/jqxradiobutton.js +1 -1
  76. package/jqwidgets/jqxradiobuttongroup.js +3 -1
  77. package/jqwidgets/jqxrangeselector.js +1 -1
  78. package/jqwidgets/jqxrating.js +1 -1
  79. package/jqwidgets/jqxresponsivepanel.js +1 -1
  80. package/jqwidgets/jqxribbon.js +1 -1
  81. package/jqwidgets/jqxscheduler.api.js +1 -1
  82. package/jqwidgets/jqxscheduler.js +2 -2
  83. package/jqwidgets/jqxscrollbar.js +1 -1
  84. package/jqwidgets/jqxscrollview.js +1 -1
  85. package/jqwidgets/jqxslider.js +1 -1
  86. package/jqwidgets/jqxsortable.js +1 -1
  87. package/jqwidgets/jqxsplitlayout.js +1 -1
  88. package/jqwidgets/jqxsplitter.js +1 -1
  89. package/jqwidgets/jqxswitchbutton.js +1 -1
  90. package/jqwidgets/jqxtabs.js +1 -1
  91. package/jqwidgets/jqxtagcloud.js +1 -1
  92. package/jqwidgets/jqxtextarea.js +1 -1
  93. package/jqwidgets/jqxtimeline.js +1 -1
  94. package/jqwidgets/jqxtimepicker.js +1 -1
  95. package/jqwidgets/jqxtoolbar.js +1 -1
  96. package/jqwidgets/jqxtooltip.js +1 -1
  97. package/jqwidgets/jqxtouch.js +1 -1
  98. package/jqwidgets/jqxtree.js +1 -1
  99. package/jqwidgets/jqxtreegrid.js +1 -1
  100. package/jqwidgets/jqxtreemap.js +1 -1
  101. package/jqwidgets/jqxvalidator.js +1 -1
  102. package/jqwidgets/jqxwindow.js +2 -2
  103. package/jqwidgets/modules/jqxbarcode.js +6 -2
  104. package/jqwidgets/modules/jqxbargauge.js +8 -2
  105. package/jqwidgets/modules/jqxbulletchart.js +11 -3
  106. package/jqwidgets/modules/jqxbuttongroup.js +9 -3
  107. package/jqwidgets/modules/jqxbuttons.js +6 -2
  108. package/jqwidgets/modules/jqxcalendar.js +11 -3
  109. package/jqwidgets/modules/jqxchart.js +35 -5
  110. package/jqwidgets/modules/jqxcheckbox.js +12 -4
  111. package/jqwidgets/modules/jqxcheckboxgroup.js +12 -4
  112. package/jqwidgets/modules/jqxcolorpicker.js +15 -5
  113. package/jqwidgets/modules/jqxcombobox.js +20 -6
  114. package/jqwidgets/modules/jqxcomplexinput.js +9 -3
  115. package/jqwidgets/modules/jqxdatatable.js +70 -14
  116. package/jqwidgets/modules/jqxdatetimeinput.js +36 -10
  117. package/jqwidgets/modules/jqxdocking.js +19 -5
  118. package/jqwidgets/modules/jqxdockinglayout.js +30 -8
  119. package/jqwidgets/modules/jqxdockpanel.js +9 -3
  120. package/jqwidgets/modules/jqxdragdrop.js +10 -2
  121. package/jqwidgets/modules/jqxdraw.js +5 -1
  122. package/jqwidgets/modules/jqxdropdownbutton.js +9 -3
  123. package/jqwidgets/modules/jqxdropdownlist.js +34 -10
  124. package/jqwidgets/modules/jqxeditor.js +57 -15
  125. package/jqwidgets/modules/jqxexpander.js +15 -5
  126. package/jqwidgets/modules/jqxfileupload.js +12 -4
  127. package/jqwidgets/modules/jqxform.js +45 -13
  128. package/jqwidgets/modules/jqxformattedinput.js +35 -11
  129. package/jqwidgets/modules/jqxgantt.js +6 -2
  130. package/jqwidgets/modules/jqxgauge.js +14 -4
  131. package/jqwidgets/modules/jqxgrid.js +652 -571
  132. package/jqwidgets/modules/jqxheatmap.js +9 -3
  133. package/jqwidgets/modules/jqxinput.js +11 -3
  134. package/jqwidgets/modules/jqxkanban.js +47 -13
  135. package/jqwidgets/modules/jqxknob.js +11 -3
  136. package/jqwidgets/modules/jqxlayout.js +30 -8
  137. package/jqwidgets/modules/jqxlineargauge.js +14 -4
  138. package/jqwidgets/modules/jqxlinkbutton.js +6 -2
  139. package/jqwidgets/modules/jqxlistbox.js +22 -6
  140. package/jqwidgets/modules/jqxlistmenu.js +43 -13
  141. package/jqwidgets/modules/jqxloader.js +6 -2
  142. package/jqwidgets/modules/jqxmaskedinput.js +6 -2
  143. package/jqwidgets/modules/jqxmenu.js +20 -6
  144. package/jqwidgets/modules/jqxnavbar.js +15 -5
  145. package/jqwidgets/modules/jqxnavigationbar.js +26 -8
  146. package/jqwidgets/modules/jqxnotification.js +17 -5
  147. package/jqwidgets/modules/jqxnumberinput.js +26 -8
  148. package/jqwidgets/modules/jqxpanel.js +14 -4
  149. package/jqwidgets/modules/jqxpasswordinput.js +16 -4
  150. package/jqwidgets/modules/jqxpivotdesigner.js +60 -16
  151. package/jqwidgets/modules/jqxpivotgrid.js +60 -16
  152. package/jqwidgets/modules/jqxpopover.js +9 -3
  153. package/jqwidgets/modules/jqxprogressbar.js +6 -2
  154. package/jqwidgets/modules/jqxqrcode.js +14 -4
  155. package/jqwidgets/modules/jqxradiobutongroup.js +12 -4
  156. package/jqwidgets/modules/jqxradiobutton.js +9 -3
  157. package/jqwidgets/modules/jqxrangeselector.js +11 -3
  158. package/jqwidgets/modules/jqxrating.js +9 -3
  159. package/jqwidgets/modules/jqxrepeatbutton.js +6 -2
  160. package/jqwidgets/modules/jqxresponsivepanel.js +9 -3
  161. package/jqwidgets/modules/jqxribbon.js +12 -4
  162. package/jqwidgets/modules/jqxscheduler.js +94 -20
  163. package/jqwidgets/modules/jqxscrollbar.js +8 -2
  164. package/jqwidgets/modules/jqxscrollview.js +8 -2
  165. package/jqwidgets/modules/jqxslider.js +8 -2
  166. package/jqwidgets/modules/jqxsortable.js +8 -2
  167. package/jqwidgets/modules/jqxsplitlayout.js +7 -1
  168. package/jqwidgets/modules/jqxsplitter.js +8 -2
  169. package/jqwidgets/modules/jqxswitchbutton.js +13 -3
  170. package/jqwidgets/modules/jqxtabs.js +22 -6
  171. package/jqwidgets/modules/jqxtagcloud.js +16 -4
  172. package/jqwidgets/modules/jqxtextarea.js +16 -4
  173. package/jqwidgets/modules/jqxtimeline.js +6 -2
  174. package/jqwidgets/modules/jqxtimepicker.js +7 -1
  175. package/jqwidgets/modules/jqxtogglebutton.js +6 -2
  176. package/jqwidgets/modules/jqxtoolbar.js +45 -13
  177. package/jqwidgets/modules/jqxtooltip.js +5 -1
  178. package/jqwidgets/modules/jqxtree.js +21 -5
  179. package/jqwidgets/modules/jqxtreegrid.js +72 -14
  180. package/jqwidgets/modules/jqxtreemap.js +10 -2
  181. package/jqwidgets/modules/jqxvalidator.js +13 -3
  182. package/jqwidgets/modules/jqxwindow.js +16 -4
  183. package/jqwidgets/styles/jqx.base.css +5 -1
  184. package/package.json +1 -1
  185. package/schematics/cdk/schematics/index.d.ts +1 -1
  186. package/schematics/cdk/schematics/index.js +2 -2
  187. package/schematics/cdk/schematics/index.js.map +1 -0
  188. package/schematics/cdk/schematics/migration.json +4 -4
  189. package/schematics/cdk/schematics/ng-add/index.d.ts +1 -1
  190. package/schematics/cdk/schematics/ng-add/index.js +13 -21
  191. package/schematics/cdk/schematics/ng-add/index.js.map +1 -0
  192. package/schematics/cdk/schematics/ng-add/schema.d.ts +1 -1
  193. package/schematics/cdk/schematics/ng-add/schema.js +2 -2
  194. package/schematics/cdk/schematics/ng-add/schema.js.map +1 -0
  195. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +6 -2
  196. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +1 -1
  197. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +5 -5
  198. package/schematics/cdk/schematics/ng-generate/drag-drop/index.d.ts +1 -1
  199. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js +17 -8
  200. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js.map +1 -0
  201. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.d.ts +1 -1
  202. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js +2 -2
  203. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  204. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.d.ts +1 -1
  205. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js +2 -2
  206. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  207. package/schematics/cdk/schematics/ng-update/data/class-names.d.ts +1 -1
  208. package/schematics/cdk/schematics/ng-update/data/class-names.js +2 -2
  209. package/schematics/cdk/schematics/ng-update/data/class-names.js.map +1 -0
  210. package/schematics/cdk/schematics/ng-update/data/constructor-checks.d.ts +1 -1
  211. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js +2 -2
  212. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js.map +1 -0
  213. package/schematics/cdk/schematics/ng-update/data/css-selectors.d.ts +1 -1
  214. package/schematics/cdk/schematics/ng-update/data/css-selectors.js +2 -2
  215. package/schematics/cdk/schematics/ng-update/data/css-selectors.js.map +1 -0
  216. package/schematics/cdk/schematics/ng-update/data/css-tokens.d.ts +27 -0
  217. package/schematics/cdk/schematics/ng-update/data/css-tokens.js +12 -0
  218. package/schematics/cdk/schematics/ng-update/data/css-tokens.js.map +1 -0
  219. package/schematics/cdk/schematics/ng-update/data/element-selectors.d.ts +1 -1
  220. package/schematics/cdk/schematics/ng-update/data/element-selectors.js +2 -2
  221. package/schematics/cdk/schematics/ng-update/data/element-selectors.js.map +1 -0
  222. package/schematics/cdk/schematics/ng-update/data/index.d.ts +2 -1
  223. package/schematics/cdk/schematics/ng-update/data/index.js +3 -2
  224. package/schematics/cdk/schematics/ng-update/data/index.js.map +1 -0
  225. package/schematics/cdk/schematics/ng-update/data/input-names.d.ts +1 -1
  226. package/schematics/cdk/schematics/ng-update/data/input-names.js +2 -2
  227. package/schematics/cdk/schematics/ng-update/data/input-names.js.map +1 -0
  228. package/schematics/cdk/schematics/ng-update/data/method-call-checks.d.ts +1 -1
  229. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js +2 -2
  230. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js.map +1 -0
  231. package/schematics/cdk/schematics/ng-update/data/output-names.d.ts +1 -1
  232. package/schematics/cdk/schematics/ng-update/data/output-names.js +2 -2
  233. package/schematics/cdk/schematics/ng-update/data/output-names.js.map +1 -0
  234. package/schematics/cdk/schematics/ng-update/data/property-names.d.ts +1 -1
  235. package/schematics/cdk/schematics/ng-update/data/property-names.js +2 -2
  236. package/schematics/cdk/schematics/ng-update/data/property-names.js.map +1 -0
  237. package/schematics/cdk/schematics/ng-update/data/symbol-removal.d.ts +1 -1
  238. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js +2 -2
  239. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js.map +1 -0
  240. package/schematics/cdk/schematics/ng-update/devkit-file-system.d.ts +1 -1
  241. package/schematics/cdk/schematics/ng-update/devkit-file-system.js +3 -4
  242. package/schematics/cdk/schematics/ng-update/devkit-file-system.js.map +1 -0
  243. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.d.ts +1 -1
  244. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js +19 -8
  245. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  246. package/schematics/cdk/schematics/ng-update/devkit-migration.d.ts +3 -3
  247. package/schematics/cdk/schematics/ng-update/devkit-migration.js +2 -2
  248. package/schematics/cdk/schematics/ng-update/devkit-migration.js.map +1 -0
  249. package/schematics/cdk/schematics/ng-update/find-stylesheets.d.ts +1 -1
  250. package/schematics/cdk/schematics/ng-update/find-stylesheets.js +3 -4
  251. package/schematics/cdk/schematics/ng-update/find-stylesheets.js.map +1 -0
  252. package/schematics/cdk/schematics/ng-update/html-parsing/angular.d.ts +1 -1
  253. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js +7 -8
  254. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js.map +1 -0
  255. package/schematics/cdk/schematics/ng-update/html-parsing/elements.d.ts +1 -1
  256. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js +8 -8
  257. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js.map +1 -0
  258. package/schematics/cdk/schematics/ng-update/index.d.ts +3 -3
  259. package/schematics/cdk/schematics/ng-update/index.js +6 -7
  260. package/schematics/cdk/schematics/ng-update/index.js.map +1 -0
  261. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.d.ts +1 -1
  262. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js +9 -6
  263. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  264. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.d.ts +1 -1
  265. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js +12 -9
  266. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  267. package/schematics/cdk/schematics/ng-update/migrations/class-names.d.ts +1 -1
  268. package/schematics/cdk/schematics/ng-update/migrations/class-names.js +16 -13
  269. package/schematics/cdk/schematics/ng-update/migrations/class-names.js.map +1 -0
  270. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.d.ts +1 -1
  271. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js +11 -8
  272. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  273. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.d.ts +1 -1
  274. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js +9 -6
  275. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  276. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.d.ts +26 -0
  277. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js +83 -0
  278. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  279. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.d.ts +1 -1
  280. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js +9 -6
  281. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  282. package/schematics/cdk/schematics/ng-update/migrations/input-names.d.ts +1 -1
  283. package/schematics/cdk/schematics/ng-update/migrations/input-names.js +9 -6
  284. package/schematics/cdk/schematics/ng-update/migrations/input-names.js.map +1 -0
  285. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.d.ts +1 -1
  286. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js +9 -6
  287. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  288. package/schematics/cdk/schematics/ng-update/migrations/misc-template.d.ts +1 -1
  289. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js +7 -4
  290. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js.map +1 -0
  291. package/schematics/cdk/schematics/ng-update/migrations/output-names.d.ts +1 -1
  292. package/schematics/cdk/schematics/ng-update/migrations/output-names.js +9 -6
  293. package/schematics/cdk/schematics/ng-update/migrations/output-names.js.map +1 -0
  294. package/schematics/cdk/schematics/ng-update/migrations/property-names.d.ts +1 -1
  295. package/schematics/cdk/schematics/ng-update/migrations/property-names.js +9 -6
  296. package/schematics/cdk/schematics/ng-update/migrations/property-names.js.map +1 -0
  297. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.d.ts +1 -1
  298. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js +11 -7
  299. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  300. package/schematics/cdk/schematics/ng-update/public-api.d.ts +1 -1
  301. package/schematics/cdk/schematics/ng-update/public-api.js +2 -2
  302. package/schematics/cdk/schematics/ng-update/public-api.js.map +1 -0
  303. package/schematics/cdk/schematics/ng-update/typescript/base-types.d.ts +1 -1
  304. package/schematics/cdk/schematics/ng-update/typescript/base-types.js +3 -4
  305. package/schematics/cdk/schematics/ng-update/typescript/base-types.js.map +1 -0
  306. package/schematics/cdk/schematics/ng-update/typescript/imports.d.ts +1 -1
  307. package/schematics/cdk/schematics/ng-update/typescript/imports.js +7 -8
  308. package/schematics/cdk/schematics/ng-update/typescript/imports.js.map +1 -0
  309. package/schematics/cdk/schematics/ng-update/typescript/literal.d.ts +1 -1
  310. package/schematics/cdk/schematics/ng-update/typescript/literal.js +4 -5
  311. package/schematics/cdk/schematics/ng-update/typescript/literal.js.map +1 -0
  312. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.d.ts +1 -1
  313. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js +5 -5
  314. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  315. package/schematics/cdk/schematics/ng-update/upgrade-data.d.ts +3 -2
  316. package/schematics/cdk/schematics/ng-update/upgrade-data.js +5 -4
  317. package/schematics/cdk/schematics/ng-update/upgrade-data.js.map +1 -0
  318. package/schematics/cdk/schematics/paths.d.ts +1 -1
  319. package/schematics/cdk/schematics/paths.js +2 -2
  320. package/schematics/cdk/schematics/paths.js.map +1 -0
  321. package/schematics/cdk/schematics/update-tool/component-resource-collector.d.ts +1 -1
  322. package/schematics/cdk/schematics/update-tool/component-resource-collector.js +4 -6
  323. package/schematics/cdk/schematics/update-tool/component-resource-collector.js.map +1 -0
  324. package/schematics/cdk/schematics/update-tool/file-system.d.ts +1 -1
  325. package/schematics/cdk/schematics/update-tool/file-system.js +2 -2
  326. package/schematics/cdk/schematics/update-tool/file-system.js.map +1 -0
  327. package/schematics/cdk/schematics/update-tool/index.d.ts +2 -2
  328. package/schematics/cdk/schematics/update-tool/index.js +4 -10
  329. package/schematics/cdk/schematics/update-tool/index.js.map +1 -0
  330. package/schematics/cdk/schematics/update-tool/logger.d.ts +1 -1
  331. package/schematics/cdk/schematics/update-tool/logger.js +2 -2
  332. package/schematics/cdk/schematics/update-tool/logger.js.map +1 -0
  333. package/schematics/cdk/schematics/update-tool/migration.d.ts +1 -1
  334. package/schematics/cdk/schematics/update-tool/migration.js +4 -11
  335. package/schematics/cdk/schematics/update-tool/migration.js.map +1 -0
  336. package/schematics/cdk/schematics/update-tool/public-api.d.ts +1 -1
  337. package/schematics/cdk/schematics/update-tool/public-api.js +2 -2
  338. package/schematics/cdk/schematics/update-tool/public-api.js.map +1 -0
  339. package/schematics/cdk/schematics/update-tool/target-version.d.ts +2 -2
  340. package/schematics/cdk/schematics/update-tool/target-version.js +5 -6
  341. package/schematics/cdk/schematics/update-tool/target-version.js.map +1 -0
  342. package/schematics/cdk/schematics/update-tool/update-recorder.d.ts +1 -1
  343. package/schematics/cdk/schematics/update-tool/update-recorder.js +2 -2
  344. package/schematics/cdk/schematics/update-tool/update-recorder.js.map +1 -0
  345. package/schematics/cdk/schematics/update-tool/utils/decorators.d.ts +1 -1
  346. package/schematics/cdk/schematics/update-tool/utils/decorators.js +4 -5
  347. package/schematics/cdk/schematics/update-tool/utils/decorators.js.map +1 -0
  348. package/schematics/cdk/schematics/update-tool/utils/diagnostics.d.ts +1 -1
  349. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js +3 -4
  350. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js.map +1 -0
  351. package/schematics/cdk/schematics/update-tool/utils/functions.d.ts +1 -1
  352. package/schematics/cdk/schematics/update-tool/utils/functions.js +3 -4
  353. package/schematics/cdk/schematics/update-tool/utils/functions.js.map +1 -0
  354. package/schematics/cdk/schematics/update-tool/utils/imports.d.ts +1 -1
  355. package/schematics/cdk/schematics/update-tool/utils/imports.js +3 -4
  356. package/schematics/cdk/schematics/update-tool/utils/imports.js.map +1 -0
  357. package/schematics/cdk/schematics/update-tool/utils/line-mappings.d.ts +1 -1
  358. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js +4 -5
  359. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js.map +1 -0
  360. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts +1 -1
  361. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js +4 -4
  362. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  363. package/schematics/cdk/schematics/update-tool/utils/property-name.d.ts +1 -1
  364. package/schematics/cdk/schematics/update-tool/utils/property-name.js +4 -5
  365. package/schematics/cdk/schematics/update-tool/utils/property-name.js.map +1 -0
  366. package/schematics/cdk/schematics/update-tool/utils/virtual-host.d.ts +1 -1
  367. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js +6 -7
  368. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js.map +1 -0
  369. package/schematics/cdk/schematics/update-tool/version-changes.d.ts +1 -1
  370. package/schematics/cdk/schematics/update-tool/version-changes.js +4 -5
  371. package/schematics/cdk/schematics/update-tool/version-changes.js.map +1 -0
  372. package/schematics/cdk/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  373. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js +3 -4
  374. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js.map +1 -0
  375. package/schematics/cdk/schematics/utils/ast.d.ts +3 -3
  376. package/schematics/cdk/schematics/utils/ast.js +28 -18
  377. package/schematics/cdk/schematics/utils/ast.js.map +1 -0
  378. package/schematics/cdk/schematics/utils/build-component.d.ts +1 -1
  379. package/schematics/cdk/schematics/utils/build-component.js +24 -20
  380. package/schematics/cdk/schematics/utils/build-component.js.map +1 -0
  381. package/schematics/cdk/schematics/utils/get-project.d.ts +3 -3
  382. package/schematics/cdk/schematics/utils/get-project.js +3 -4
  383. package/schematics/cdk/schematics/utils/get-project.js.map +1 -0
  384. package/schematics/cdk/schematics/utils/html-manipulation.d.ts +1 -1
  385. package/schematics/cdk/schematics/utils/html-manipulation.js +5 -6
  386. package/schematics/cdk/schematics/utils/html-manipulation.js.map +1 -0
  387. package/schematics/cdk/schematics/utils/index.d.ts +1 -1
  388. package/schematics/cdk/schematics/utils/index.js +2 -2
  389. package/schematics/cdk/schematics/utils/index.js.map +1 -0
  390. package/schematics/cdk/schematics/utils/parse5-element.d.ts +1 -1
  391. package/schematics/cdk/schematics/utils/parse5-element.js +3 -4
  392. package/schematics/cdk/schematics/utils/parse5-element.js.map +1 -0
  393. package/schematics/cdk/schematics/utils/project-index-file.d.ts +7 -4
  394. package/schematics/cdk/schematics/utils/project-index-file.js +32 -10
  395. package/schematics/cdk/schematics/utils/project-index-file.js.map +1 -0
  396. package/schematics/cdk/schematics/utils/project-main-file.d.ts +4 -3
  397. package/schematics/cdk/schematics/utils/project-main-file.js +3 -4
  398. package/schematics/cdk/schematics/utils/project-main-file.js.map +1 -0
  399. package/schematics/cdk/schematics/utils/project-style-file.d.ts +3 -3
  400. package/schematics/cdk/schematics/utils/project-style-file.js +3 -4
  401. package/schematics/cdk/schematics/utils/project-style-file.js.map +1 -0
  402. package/schematics/cdk/schematics/utils/project-targets.d.ts +6 -5
  403. package/schematics/cdk/schematics/utils/project-targets.js +19 -12
  404. package/schematics/cdk/schematics/utils/project-targets.js.map +1 -0
  405. package/schematics/cdk/schematics/utils/project-tsconfig-paths.d.ts +4 -4
  406. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js +29 -18
  407. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js.map +1 -0
  408. package/schematics/cdk/schematics/utils/schematic-options.d.ts +3 -3
  409. package/schematics/cdk/schematics/utils/schematic-options.js +30 -19
  410. package/schematics/cdk/schematics/utils/schematic-options.js.map +1 -0
  411. package/schematics/cdk2/schematics/collection.json +18 -0
  412. package/schematics/cdk2/schematics/index.d.ts +14 -0
  413. package/schematics/cdk2/schematics/index.mjs +37 -0
  414. package/schematics/cdk2/schematics/migration.json +15 -0
  415. package/schematics/cdk2/schematics/ng-add/index.d.ts +17 -0
  416. package/schematics/cdk2/schematics/ng-add/index.mjs +39 -0
  417. package/schematics/cdk2/schematics/ng-add/schema.d.ts +11 -0
  418. package/schematics/cdk2/schematics/ng-add/schema.json +16 -0
  419. package/schematics/cdk2/schematics/ng-add/schema.mjs +10 -0
  420. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +53 -0
  421. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +17 -0
  422. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +25 -0
  423. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +45 -0
  424. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.d.ts +11 -0
  425. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.mjs +33 -0
  426. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.d.ts +10 -0
  427. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.json +100 -0
  428. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.mjs +10 -0
  429. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.d.ts +15 -0
  430. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.mjs +12 -0
  431. package/schematics/cdk2/schematics/ng-update/data/class-names.d.ts +15 -0
  432. package/schematics/cdk2/schematics/ng-update/data/class-names.mjs +12 -0
  433. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.d.ts +15 -0
  434. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.mjs +17 -0
  435. package/schematics/cdk2/schematics/ng-update/data/css-selectors.d.ts +27 -0
  436. package/schematics/cdk2/schematics/ng-update/data/css-selectors.mjs +12 -0
  437. package/schematics/cdk2/schematics/ng-update/data/element-selectors.d.ts +15 -0
  438. package/schematics/cdk2/schematics/ng-update/data/element-selectors.mjs +12 -0
  439. package/schematics/cdk2/schematics/ng-update/data/index.d.ts +17 -0
  440. package/schematics/cdk2/schematics/ng-update/data/index.mjs +34 -0
  441. package/schematics/cdk2/schematics/ng-update/data/input-names.d.ts +22 -0
  442. package/schematics/cdk2/schematics/ng-update/data/input-names.mjs +12 -0
  443. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.d.ts +17 -0
  444. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.mjs +12 -0
  445. package/schematics/cdk2/schematics/ng-update/data/output-names.d.ts +22 -0
  446. package/schematics/cdk2/schematics/ng-update/data/output-names.mjs +12 -0
  447. package/schematics/cdk2/schematics/ng-update/data/property-names.d.ts +20 -0
  448. package/schematics/cdk2/schematics/ng-update/data/property-names.mjs +12 -0
  449. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.d.ts +17 -0
  450. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.mjs +12 -0
  451. package/schematics/cdk2/schematics/ng-update/devkit-file-system.d.ts +30 -0
  452. package/schematics/cdk2/schematics/ng-update/devkit-file-system.mjs +84 -0
  453. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.d.ts +24 -0
  454. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.mjs +131 -0
  455. package/schematics/cdk2/schematics/ng-update/devkit-migration.d.ts +35 -0
  456. package/schematics/cdk2/schematics/ng-update/devkit-migration.mjs +20 -0
  457. package/schematics/cdk2/schematics/ng-update/find-stylesheets.d.ts +16 -0
  458. package/schematics/cdk2/schematics/ng-update/find-stylesheets.mjs +42 -0
  459. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.d.ts +15 -0
  460. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.mjs +52 -0
  461. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.d.ts +24 -0
  462. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.mjs +63 -0
  463. package/schematics/cdk2/schematics/ng-update/index.d.ts +10 -0
  464. package/schematics/cdk2/schematics/ng-update/index.mjs +30 -0
  465. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.d.ts +26 -0
  466. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.mjs +68 -0
  467. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.d.ts +26 -0
  468. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.mjs +55 -0
  469. package/schematics/cdk2/schematics/ng-update/migrations/class-names.d.ts +32 -0
  470. package/schematics/cdk2/schematics/ng-update/migrations/class-names.mjs +88 -0
  471. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.d.ts +29 -0
  472. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.mjs +136 -0
  473. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.d.ts +26 -0
  474. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.mjs +72 -0
  475. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.d.ts +26 -0
  476. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.mjs +63 -0
  477. package/schematics/cdk2/schematics/ng-update/migrations/input-names.d.ts +26 -0
  478. package/schematics/cdk2/schematics/ng-update/migrations/input-names.mjs +56 -0
  479. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.d.ts +22 -0
  480. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.mjs +59 -0
  481. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.d.ts +18 -0
  482. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.mjs +22 -0
  483. package/schematics/cdk2/schematics/ng-update/migrations/output-names.d.ts +22 -0
  484. package/schematics/cdk2/schematics/ng-update/migrations/output-names.mjs +43 -0
  485. package/schematics/cdk2/schematics/ng-update/migrations/property-names.d.ts +22 -0
  486. package/schematics/cdk2/schematics/ng-update/migrations/property-names.mjs +57 -0
  487. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.d.ts +18 -0
  488. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.mjs +43 -0
  489. package/schematics/cdk2/schematics/ng-update/public-api.d.ts +19 -0
  490. package/schematics/cdk2/schematics/ng-update/public-api.mjs +36 -0
  491. package/schematics/cdk2/schematics/ng-update/typescript/base-types.d.ts +10 -0
  492. package/schematics/cdk2/schematics/ng-update/typescript/base-types.mjs +24 -0
  493. package/schematics/cdk2/schematics/ng-update/typescript/imports.d.ts +18 -0
  494. package/schematics/cdk2/schematics/ng-update/typescript/imports.mjs +54 -0
  495. package/schematics/cdk2/schematics/ng-update/typescript/literal.d.ts +18 -0
  496. package/schematics/cdk2/schematics/ng-update/typescript/literal.mjs +33 -0
  497. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.d.ts +16 -0
  498. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  499. package/schematics/cdk2/schematics/ng-update/upgrade-data.d.ts +34 -0
  500. package/schematics/cdk2/schematics/ng-update/upgrade-data.mjs +39 -0
  501. package/schematics/cdk2/schematics/package.json +3 -0
  502. package/schematics/cdk2/schematics/paths.d.ts +11 -0
  503. package/schematics/cdk2/schematics/paths.mjs +16 -0
  504. package/schematics/cdk2/schematics/update-tool/component-resource-collector.d.ts +44 -0
  505. package/schematics/cdk2/schematics/update-tool/component-resource-collector.mjs +166 -0
  506. package/schematics/cdk2/schematics/update-tool/file-system.d.ts +72 -0
  507. package/schematics/cdk2/schematics/update-tool/file-system.mjs +18 -0
  508. package/schematics/cdk2/schematics/update-tool/index.d.ts +74 -0
  509. package/schematics/cdk2/schematics/update-tool/index.mjs +178 -0
  510. package/schematics/cdk2/schematics/update-tool/logger.d.ts +15 -0
  511. package/schematics/cdk2/schematics/update-tool/logger.mjs +18 -0
  512. package/schematics/cdk2/schematics/update-tool/migration.d.ts +87 -0
  513. package/schematics/cdk2/schematics/update-tool/migration.mjs +77 -0
  514. package/schematics/cdk2/schematics/update-tool/public-api.d.ts +16 -0
  515. package/schematics/cdk2/schematics/update-tool/public-api.mjs +33 -0
  516. package/schematics/cdk2/schematics/update-tool/target-version.d.ts +16 -0
  517. package/schematics/cdk2/schematics/update-tool/target-version.mjs +28 -0
  518. package/schematics/cdk2/schematics/update-tool/update-recorder.d.ts +13 -0
  519. package/schematics/cdk2/schematics/update-tool/update-recorder.mjs +10 -0
  520. package/schematics/cdk2/schematics/update-tool/utils/decorators.d.ts +22 -0
  521. package/schematics/cdk2/schematics/update-tool/utils/decorators.mjs +42 -0
  522. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.d.ts +11 -0
  523. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.mjs +19 -0
  524. package/schematics/cdk2/schematics/update-tool/utils/functions.d.ts +14 -0
  525. package/schematics/cdk2/schematics/update-tool/utils/functions.mjs +21 -0
  526. package/schematics/cdk2/schematics/update-tool/utils/imports.d.ts +17 -0
  527. package/schematics/cdk2/schematics/update-tool/utils/imports.mjs +111 -0
  528. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.d.ts +21 -0
  529. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.mjs +76 -0
  530. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.d.ts +18 -0
  531. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.mjs +45 -0
  532. package/schematics/cdk2/schematics/update-tool/utils/property-name.d.ts +18 -0
  533. package/schematics/cdk2/schematics/update-tool/utils/property-name.mjs +28 -0
  534. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.d.ts +36 -0
  535. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.mjs +72 -0
  536. package/schematics/cdk2/schematics/update-tool/version-changes.d.ts +32 -0
  537. package/schematics/cdk2/schematics/update-tool/version-changes.mjs +39 -0
  538. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.d.ts +12 -0
  539. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.mjs +83 -0
  540. package/schematics/cdk2/schematics/utils/ast.d.ts +25 -0
  541. package/schematics/cdk2/schematics/utils/ast.mjs +69 -0
  542. package/schematics/cdk2/schematics/utils/build-component.d.ts +20 -0
  543. package/schematics/cdk2/schematics/utils/build-component.mjs +184 -0
  544. package/schematics/cdk2/schematics/utils/get-project.d.ts +13 -0
  545. package/schematics/cdk2/schematics/utils/get-project.mjs +29 -0
  546. package/schematics/cdk2/schematics/utils/html-manipulation.d.ts +15 -0
  547. package/schematics/cdk2/schematics/utils/html-manipulation.mjs +92 -0
  548. package/schematics/cdk2/schematics/utils/index.d.ts +19 -0
  549. package/schematics/cdk2/schematics/utils/index.mjs +36 -0
  550. package/schematics/cdk2/schematics/utils/parse5-element.d.ts +12 -0
  551. package/schematics/cdk2/schematics/utils/parse5-element.mjs +31 -0
  552. package/schematics/cdk2/schematics/utils/project-index-file.d.ts +10 -0
  553. package/schematics/cdk2/schematics/utils/project-index-file.mjs +21 -0
  554. package/schematics/cdk2/schematics/utils/project-main-file.d.ts +10 -0
  555. package/schematics/cdk2/schematics/utils/project-main-file.mjs +26 -0
  556. package/schematics/cdk2/schematics/utils/project-style-file.d.ts +13 -0
  557. package/schematics/cdk2/schematics/utils/project-style-file.mjs +43 -0
  558. package/schematics/cdk2/schematics/utils/project-targets.d.ts +14 -0
  559. package/schematics/cdk2/schematics/utils/project-targets.mjs +39 -0
  560. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.d.ts +14 -0
  561. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.mjs +35 -0
  562. package/schematics/cdk2/schematics/utils/schematic-options.d.ts +20 -0
  563. package/schematics/cdk2/schematics/utils/schematic-options.mjs +78 -0
  564. /package/schematics/{cdk/schematics/index.mjs → cdk2/schematics/index.js} +0 -0
  565. /package/schematics/{cdk/schematics/ng-add/index.mjs → cdk2/schematics/ng-add/index.js} +0 -0
  566. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.d.ts +0 -0
  567. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.js +0 -0
  568. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.mjs +0 -0
  569. /package/schematics/{cdk/schematics/ng-add/schema.mjs → cdk2/schematics/ng-add/schema.js} +0 -0
  570. /package/schematics/{cdk/schematics/ng-generate/drag-drop/index.mjs → cdk2/schematics/ng-generate/drag-drop/index.js} +0 -0
  571. /package/schematics/{cdk/schematics/ng-generate/drag-drop/schema.mjs → cdk2/schematics/ng-generate/drag-drop/schema.js} +0 -0
  572. /package/schematics/{cdk/schematics/ng-update/data/attribute-selectors.mjs → cdk2/schematics/ng-update/data/attribute-selectors.js} +0 -0
  573. /package/schematics/{cdk/schematics/ng-update/data/class-names.mjs → cdk2/schematics/ng-update/data/class-names.js} +0 -0
  574. /package/schematics/{cdk/schematics/ng-update/data/constructor-checks.mjs → cdk2/schematics/ng-update/data/constructor-checks.js} +0 -0
  575. /package/schematics/{cdk/schematics/ng-update/data/css-selectors.mjs → cdk2/schematics/ng-update/data/css-selectors.js} +0 -0
  576. /package/schematics/{cdk/schematics/ng-update/data/element-selectors.mjs → cdk2/schematics/ng-update/data/element-selectors.js} +0 -0
  577. /package/schematics/{cdk/schematics/ng-update/data/index.mjs → cdk2/schematics/ng-update/data/index.js} +0 -0
  578. /package/schematics/{cdk/schematics/ng-update/data/input-names.mjs → cdk2/schematics/ng-update/data/input-names.js} +0 -0
  579. /package/schematics/{cdk/schematics/ng-update/data/method-call-checks.mjs → cdk2/schematics/ng-update/data/method-call-checks.js} +0 -0
  580. /package/schematics/{cdk/schematics/ng-update/data/output-names.mjs → cdk2/schematics/ng-update/data/output-names.js} +0 -0
  581. /package/schematics/{cdk/schematics/ng-update/data/property-names.mjs → cdk2/schematics/ng-update/data/property-names.js} +0 -0
  582. /package/schematics/{cdk/schematics/ng-update/data/symbol-removal.mjs → cdk2/schematics/ng-update/data/symbol-removal.js} +0 -0
  583. /package/schematics/{cdk/schematics/ng-update/devkit-file-system.mjs → cdk2/schematics/ng-update/devkit-file-system.js} +0 -0
  584. /package/schematics/{cdk/schematics/ng-update/devkit-migration-rule.mjs → cdk2/schematics/ng-update/devkit-migration-rule.js} +0 -0
  585. /package/schematics/{cdk/schematics/ng-update/devkit-migration.mjs → cdk2/schematics/ng-update/devkit-migration.js} +0 -0
  586. /package/schematics/{cdk/schematics/ng-update/find-stylesheets.mjs → cdk2/schematics/ng-update/find-stylesheets.js} +0 -0
  587. /package/schematics/{cdk/schematics/ng-update/html-parsing/angular.mjs → cdk2/schematics/ng-update/html-parsing/angular.js} +0 -0
  588. /package/schematics/{cdk/schematics/ng-update/html-parsing/elements.mjs → cdk2/schematics/ng-update/html-parsing/elements.js} +0 -0
  589. /package/schematics/{cdk/schematics/ng-update/index.mjs → cdk2/schematics/ng-update/index.js} +0 -0
  590. /package/schematics/{cdk/schematics/ng-update/migrations/attribute-selectors.mjs → cdk2/schematics/ng-update/migrations/attribute-selectors.js} +0 -0
  591. /package/schematics/{cdk/schematics/ng-update/migrations/class-inheritance.mjs → cdk2/schematics/ng-update/migrations/class-inheritance.js} +0 -0
  592. /package/schematics/{cdk/schematics/ng-update/migrations/class-names.mjs → cdk2/schematics/ng-update/migrations/class-names.js} +0 -0
  593. /package/schematics/{cdk/schematics/ng-update/migrations/constructor-signature.mjs → cdk2/schematics/ng-update/migrations/constructor-signature.js} +0 -0
  594. /package/schematics/{cdk/schematics/ng-update/migrations/css-selectors.mjs → cdk2/schematics/ng-update/migrations/css-selectors.js} +0 -0
  595. /package/schematics/{cdk/schematics/ng-update/migrations/element-selectors.mjs → cdk2/schematics/ng-update/migrations/element-selectors.js} +0 -0
  596. /package/schematics/{cdk/schematics/ng-update/migrations/input-names.mjs → cdk2/schematics/ng-update/migrations/input-names.js} +0 -0
  597. /package/schematics/{cdk/schematics/ng-update/migrations/method-call-arguments.mjs → cdk2/schematics/ng-update/migrations/method-call-arguments.js} +0 -0
  598. /package/schematics/{cdk/schematics/ng-update/migrations/misc-template.mjs → cdk2/schematics/ng-update/migrations/misc-template.js} +0 -0
  599. /package/schematics/{cdk/schematics/ng-update/migrations/output-names.mjs → cdk2/schematics/ng-update/migrations/output-names.js} +0 -0
  600. /package/schematics/{cdk/schematics/ng-update/migrations/property-names.mjs → cdk2/schematics/ng-update/migrations/property-names.js} +0 -0
  601. /package/schematics/{cdk/schematics/ng-update/migrations/symbol-removal.mjs → cdk2/schematics/ng-update/migrations/symbol-removal.js} +0 -0
  602. /package/schematics/{cdk/schematics/ng-update/public-api.mjs → cdk2/schematics/ng-update/public-api.js} +0 -0
  603. /package/schematics/{cdk/schematics/ng-update/typescript/base-types.mjs → cdk2/schematics/ng-update/typescript/base-types.js} +0 -0
  604. /package/schematics/{cdk/schematics/ng-update/typescript/imports.mjs → cdk2/schematics/ng-update/typescript/imports.js} +0 -0
  605. /package/schematics/{cdk/schematics/ng-update/typescript/literal.mjs → cdk2/schematics/ng-update/typescript/literal.js} +0 -0
  606. /package/schematics/{cdk/schematics/ng-update/typescript/module-specifiers.mjs → cdk2/schematics/ng-update/typescript/module-specifiers.js} +0 -0
  607. /package/schematics/{cdk/schematics/ng-update/upgrade-data.mjs → cdk2/schematics/ng-update/upgrade-data.js} +0 -0
  608. /package/schematics/{cdk/schematics/paths.mjs → cdk2/schematics/paths.js} +0 -0
  609. /package/schematics/{cdk → cdk2}/schematics/schematics.externs.js +0 -0
  610. /package/schematics/{cdk → cdk2}/schematics/tsconfig.json +0 -0
  611. /package/schematics/{cdk/schematics/update-tool/component-resource-collector.mjs → cdk2/schematics/update-tool/component-resource-collector.js} +0 -0
  612. /package/schematics/{cdk/schematics/update-tool/file-system.mjs → cdk2/schematics/update-tool/file-system.js} +0 -0
  613. /package/schematics/{cdk/schematics/update-tool/index.mjs → cdk2/schematics/update-tool/index.js} +0 -0
  614. /package/schematics/{cdk/schematics/update-tool/logger.mjs → cdk2/schematics/update-tool/logger.js} +0 -0
  615. /package/schematics/{cdk/schematics/update-tool/migration.mjs → cdk2/schematics/update-tool/migration.js} +0 -0
  616. /package/schematics/{cdk/schematics/update-tool/public-api.mjs → cdk2/schematics/update-tool/public-api.js} +0 -0
  617. /package/schematics/{cdk/schematics/update-tool/target-version.mjs → cdk2/schematics/update-tool/target-version.js} +0 -0
  618. /package/schematics/{cdk/schematics/update-tool/update-recorder.mjs → cdk2/schematics/update-tool/update-recorder.js} +0 -0
  619. /package/schematics/{cdk → cdk2}/schematics/update-tool/update-tool.externs.js +0 -0
  620. /package/schematics/{cdk/schematics/update-tool/utils/decorators.mjs → cdk2/schematics/update-tool/utils/decorators.js} +0 -0
  621. /package/schematics/{cdk/schematics/update-tool/utils/diagnostics.mjs → cdk2/schematics/update-tool/utils/diagnostics.js} +0 -0
  622. /package/schematics/{cdk/schematics/update-tool/utils/functions.mjs → cdk2/schematics/update-tool/utils/functions.js} +0 -0
  623. /package/schematics/{cdk/schematics/update-tool/utils/imports.mjs → cdk2/schematics/update-tool/utils/imports.js} +0 -0
  624. /package/schematics/{cdk/schematics/update-tool/utils/line-mappings.mjs → cdk2/schematics/update-tool/utils/line-mappings.js} +0 -0
  625. /package/schematics/{cdk/schematics/update-tool/utils/parse-tsconfig.mjs → cdk2/schematics/update-tool/utils/parse-tsconfig.js} +0 -0
  626. /package/schematics/{cdk/schematics/update-tool/utils/property-name.mjs → cdk2/schematics/update-tool/utils/property-name.js} +0 -0
  627. /package/schematics/{cdk/schematics/update-tool/utils/virtual-host.mjs → cdk2/schematics/update-tool/utils/virtual-host.js} +0 -0
  628. /package/schematics/{cdk/schematics/update-tool/version-changes.mjs → cdk2/schematics/update-tool/version-changes.js} +0 -0
  629. /package/schematics/{cdk/schematics/utils/ast/ng-module-imports.mjs → cdk2/schematics/utils/ast/ng-module-imports.js} +0 -0
  630. /package/schematics/{cdk/schematics/utils/ast.mjs → cdk2/schematics/utils/ast.js} +0 -0
  631. /package/schematics/{cdk/schematics/utils/build-component.mjs → cdk2/schematics/utils/build-component.js} +0 -0
  632. /package/schematics/{cdk/schematics/utils/get-project.mjs → cdk2/schematics/utils/get-project.js} +0 -0
  633. /package/schematics/{cdk/schematics/utils/html-manipulation.mjs → cdk2/schematics/utils/html-manipulation.js} +0 -0
  634. /package/schematics/{cdk/schematics/utils/index.mjs → cdk2/schematics/utils/index.js} +0 -0
  635. /package/schematics/{cdk/schematics/utils/parse5-element.mjs → cdk2/schematics/utils/parse5-element.js} +0 -0
  636. /package/schematics/{cdk/schematics/utils/project-index-file.mjs → cdk2/schematics/utils/project-index-file.js} +0 -0
  637. /package/schematics/{cdk/schematics/utils/project-main-file.mjs → cdk2/schematics/utils/project-main-file.js} +0 -0
  638. /package/schematics/{cdk/schematics/utils/project-style-file.mjs → cdk2/schematics/utils/project-style-file.js} +0 -0
  639. /package/schematics/{cdk/schematics/utils/project-targets.mjs → cdk2/schematics/utils/project-targets.js} +0 -0
  640. /package/schematics/{cdk/schematics/utils/project-tsconfig-paths.mjs → cdk2/schematics/utils/project-tsconfig-paths.js} +0 -0
  641. /package/schematics/{cdk/schematics/utils/schematic-options.mjs → cdk2/schematics/utils/schematic-options.js} +0 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { UpgradeData } from '../upgrade-data';
11
+ /**
12
+ * Migration that visits every TypeScript new expression or super call and checks if
13
+ * the parameter type signature is invalid and needs to be updated manually.
14
+ */
15
+ export declare class ConstructorSignatureMigration extends Migration<UpgradeData> {
16
+ data: string[];
17
+ enabled: boolean;
18
+ visitNode(node: ts.Node): void;
19
+ /**
20
+ * Method that will be called for each source file of the upgrade project. In order to
21
+ * properly determine invalid constructor signatures, we take advantage of the pre-emit
22
+ * diagnostics from TypeScript.
23
+ *
24
+ * By using the diagnostics, the migration can handle type assignability. Not using
25
+ * diagnostics would mean that we need to use simple type equality checking which is
26
+ * too strict. See related issue: https://github.com/Microsoft/TypeScript/issues/9879
27
+ */
28
+ private _visitSourceFile;
29
+ }
@@ -0,0 +1,136 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ConstructorSignatureMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const version_changes_1 = require("../../update-tool/version-changes");
14
+ /**
15
+ * List of diagnostic codes that refer to pre-emit diagnostics which indicate invalid
16
+ * new expression or super call signatures. See the list of diagnostics here:
17
+ *
18
+ * https://github.com/Microsoft/TypeScript/blob/master/src/compiler/diagnosticMessages.json
19
+ */
20
+ const signatureErrorDiagnostics = [
21
+ // Type not assignable error diagnostic.
22
+ 2345,
23
+ // Constructor argument length invalid diagnostics
24
+ 2554, 2555, 2556, 2557,
25
+ ];
26
+ /**
27
+ * Migration that visits every TypeScript new expression or super call and checks if
28
+ * the parameter type signature is invalid and needs to be updated manually.
29
+ */
30
+ class ConstructorSignatureMigration extends migration_1.Migration {
31
+ // Note that the data for this rule is not distinguished based on the target version because
32
+ // we don't keep track of the new signature and don't want to update incrementally.
33
+ // See: https://github.com/angular/components/pull/12970#issuecomment-418337566
34
+ data = (0, version_changes_1.getAllChanges)(this.upgradeData.constructorChecks);
35
+ // Only enable the migration rule if there is upgrade data.
36
+ enabled = this.data.length !== 0;
37
+ visitNode(node) {
38
+ if (ts.isSourceFile(node)) {
39
+ this._visitSourceFile(node);
40
+ }
41
+ }
42
+ /**
43
+ * Method that will be called for each source file of the upgrade project. In order to
44
+ * properly determine invalid constructor signatures, we take advantage of the pre-emit
45
+ * diagnostics from TypeScript.
46
+ *
47
+ * By using the diagnostics, the migration can handle type assignability. Not using
48
+ * diagnostics would mean that we need to use simple type equality checking which is
49
+ * too strict. See related issue: https://github.com/Microsoft/TypeScript/issues/9879
50
+ */
51
+ _visitSourceFile(sourceFile) {
52
+ // List of classes of which the constructor signature has changed.
53
+ const diagnostics = ts
54
+ .getPreEmitDiagnostics(this.program, sourceFile)
55
+ .filter(diagnostic => signatureErrorDiagnostics.includes(diagnostic.code))
56
+ .filter(diagnostic => diagnostic.start !== undefined);
57
+ for (const diagnostic of diagnostics) {
58
+ const node = findConstructorNode(diagnostic, sourceFile);
59
+ if (!node) {
60
+ continue;
61
+ }
62
+ const classType = this.typeChecker.getTypeAtLocation(node.expression);
63
+ const className = classType.symbol && classType.symbol.name;
64
+ const isNewExpression = ts.isNewExpression(node);
65
+ // Determine the class names of the actual construct signatures because we cannot assume that
66
+ // the diagnostic refers to a constructor of the actual expression. In case the constructor
67
+ // is inherited, we need to detect that the owner-class of the constructor is added to the
68
+ // constructor checks upgrade data. e.g. `class CustomCalendar extends MatCalendar {}`.
69
+ const signatureClassNames = classType
70
+ .getConstructSignatures()
71
+ .map(signature => getClassDeclarationOfSignature(signature))
72
+ .map(declaration => (declaration && declaration.name ? declaration.name.text : null))
73
+ .filter(Boolean);
74
+ // Besides checking the signature class names, we need to check the actual class name because
75
+ // there can be classes without an explicit constructor.
76
+ if (!this.data.includes(className) &&
77
+ !signatureClassNames.some(name => this.data.includes(name))) {
78
+ continue;
79
+ }
80
+ const classSignatures = classType
81
+ .getConstructSignatures()
82
+ .map(signature => getParameterTypesFromSignature(signature, this.typeChecker));
83
+ const expressionName = isNewExpression ? `new ${className}` : 'super';
84
+ const signatures = classSignatures
85
+ .map(signature => signature.map(t => (t === null ? 'any' : this.typeChecker.typeToString(t))))
86
+ .map(signature => `${expressionName}(${signature.join(', ')})`)
87
+ .join(' or ');
88
+ this.createFailureAtNode(node, `Found "${className}" constructed with ` +
89
+ `an invalid signature. Please manually update the ${expressionName} expression to ` +
90
+ `match the new signature${classSignatures.length > 1 ? 's' : ''}: ${signatures}`);
91
+ }
92
+ }
93
+ }
94
+ exports.ConstructorSignatureMigration = ConstructorSignatureMigration;
95
+ /** Resolves the type for each parameter in the specified signature. */
96
+ function getParameterTypesFromSignature(signature, typeChecker) {
97
+ return signature
98
+ .getParameters()
99
+ .map(param => param.declarations ? typeChecker.getTypeAtLocation(param.declarations[0]) : null);
100
+ }
101
+ /**
102
+ * Walks through each node of a source file in order to find a new-expression node or super-call
103
+ * expression node that is captured by the specified diagnostic.
104
+ */
105
+ function findConstructorNode(diagnostic, sourceFile) {
106
+ let resolvedNode = null;
107
+ const _visitNode = (node) => {
108
+ // Check whether the current node contains the diagnostic. If the node contains the diagnostic,
109
+ // walk deeper in order to find all constructor expression nodes.
110
+ if (node.getStart() <= diagnostic.start && node.getEnd() >= diagnostic.start) {
111
+ if (ts.isNewExpression(node) ||
112
+ (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.SuperKeyword)) {
113
+ resolvedNode = node;
114
+ }
115
+ ts.forEachChild(node, _visitNode);
116
+ }
117
+ };
118
+ ts.forEachChild(sourceFile, _visitNode);
119
+ return resolvedNode;
120
+ }
121
+ /** Determines the class declaration of the specified construct signature. */
122
+ function getClassDeclarationOfSignature(signature) {
123
+ let node = signature.getDeclaration();
124
+ // Handle signatures which don't have an actual declaration. This happens if a class
125
+ // does not have an explicitly written constructor.
126
+ if (!node) {
127
+ return null;
128
+ }
129
+ while (!ts.isSourceFile((node = node.parent))) {
130
+ if (ts.isClassDeclaration(node)) {
131
+ return node;
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3Itc2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL25nLXVwZGF0ZS9taWdyYXRpb25zL2NvbnN0cnVjdG9yLXNpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUFDakMsMkRBQXNEO0FBQ3RELHVFQUFnRTtBQUdoRTs7Ozs7R0FLRztBQUNILE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsd0NBQXdDO0lBQ3hDLElBQUk7SUFDSixrREFBa0Q7SUFDbEQsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSxxQkFBc0I7SUFDdkUsNEZBQTRGO0lBQzVGLG1GQUFtRjtJQUNuRiwrRUFBK0U7SUFDL0UsSUFBSSxHQUFHLElBQUEsK0JBQWEsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekQsMkRBQTJEO0lBQzNELE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFeEIsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLGdCQUFnQixDQUFDLFVBQXlCO1FBQ2hELGtFQUFrRTtRQUNsRSxNQUFNLFdBQVcsR0FBRyxFQUFFO2FBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO2FBQy9DLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDekUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztRQUV4RCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNwQyxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxTQUFTO2FBQ1Y7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzVELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakQsNkZBQTZGO1lBQzdGLDJGQUEyRjtZQUMzRiwwRkFBMEY7WUFDMUYsdUZBQXVGO1lBQ3ZGLE1BQU0sbUJBQW1CLEdBQUcsU0FBUztpQkFDbEMsc0JBQXNCLEVBQUU7aUJBQ3hCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMzRCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuQiw2RkFBNkY7WUFDN0Ysd0RBQXdEO1lBQ3hELElBQ0UsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQzlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSyxDQUFDLENBQUMsRUFDNUQ7Z0JBQ0EsU0FBUzthQUNWO1lBRUQsTUFBTSxlQUFlLEdBQUcsU0FBUztpQkFDOUIsc0JBQXNCLEVBQUU7aUJBQ3hCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVqRixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN0RSxNQUFNLFVBQVUsR0FBRyxlQUFlO2lCQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDZixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDNUU7aUJBQ0EsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2lCQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEIsSUFBSSxDQUFDLG1CQUFtQixDQUN0QixJQUFJLEVBQ0osVUFBVSxTQUFTLHFCQUFxQjtnQkFDdEMsb0RBQW9ELGNBQWMsaUJBQWlCO2dCQUNuRiwwQkFBMEIsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFBRSxDQUNuRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0Y7QUFqRkQsc0VBaUZDO0FBRUQsdUVBQXVFO0FBQ3ZFLFNBQVMsOEJBQThCLENBQ3JDLFNBQXVCLEVBQ3ZCLFdBQTJCO0lBRTNCLE9BQU8sU0FBUztTQUNiLGFBQWEsRUFBRTtTQUNmLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNYLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixVQUF5QixFQUN6QixVQUF5QjtJQUV6QixJQUFJLFlBQVksR0FBbUIsSUFBSSxDQUFDO0lBRXhDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBYSxFQUFFLEVBQUU7UUFDbkMsK0ZBQStGO1FBQy9GLGlFQUFpRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBTSxFQUFFO1lBQzlFLElBQ0UsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQ2xGO2dCQUNBLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDckI7WUFFRCxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUMsQ0FBQztJQUVGLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsU0FBUyw4QkFBOEIsQ0FBQyxTQUF1QjtJQUM3RCxJQUFJLElBQUksR0FBWSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0Msb0ZBQW9GO0lBQ3BGLG1EQUFtRDtJQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1FBQzdDLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtnZXRBbGxDaGFuZ2VzfSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC92ZXJzaW9uLWNoYW5nZXMnO1xuaW1wb3J0IHtVcGdyYWRlRGF0YX0gZnJvbSAnLi4vdXBncmFkZS1kYXRhJztcblxuLyoqXG4gKiBMaXN0IG9mIGRpYWdub3N0aWMgY29kZXMgdGhhdCByZWZlciB0byBwcmUtZW1pdCBkaWFnbm9zdGljcyB3aGljaCBpbmRpY2F0ZSBpbnZhbGlkXG4gKiBuZXcgZXhwcmVzc2lvbiBvciBzdXBlciBjYWxsIHNpZ25hdHVyZXMuIFNlZSB0aGUgbGlzdCBvZiBkaWFnbm9zdGljcyBoZXJlOlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9ibG9iL21hc3Rlci9zcmMvY29tcGlsZXIvZGlhZ25vc3RpY01lc3NhZ2VzLmpzb25cbiAqL1xuY29uc3Qgc2lnbmF0dXJlRXJyb3JEaWFnbm9zdGljcyA9IFtcbiAgLy8gVHlwZSBub3QgYXNzaWduYWJsZSBlcnJvciBkaWFnbm9zdGljLlxuICAyMzQ1LFxuICAvLyBDb25zdHJ1Y3RvciBhcmd1bWVudCBsZW5ndGggaW52YWxpZCBkaWFnbm9zdGljc1xuICAyNTU0LCAyNTU1LCAyNTU2LCAyNTU3LFxuXTtcblxuLyoqXG4gKiBNaWdyYXRpb24gdGhhdCB2aXNpdHMgZXZlcnkgVHlwZVNjcmlwdCBuZXcgZXhwcmVzc2lvbiBvciBzdXBlciBjYWxsIGFuZCBjaGVja3MgaWZcbiAqIHRoZSBwYXJhbWV0ZXIgdHlwZSBzaWduYXR1cmUgaXMgaW52YWxpZCBhbmQgbmVlZHMgdG8gYmUgdXBkYXRlZCBtYW51YWxseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yU2lnbmF0dXJlTWlncmF0aW9uIGV4dGVuZHMgTWlncmF0aW9uPFVwZ3JhZGVEYXRhPiB7XG4gIC8vIE5vdGUgdGhhdCB0aGUgZGF0YSBmb3IgdGhpcyBydWxlIGlzIG5vdCBkaXN0aW5ndWlzaGVkIGJhc2VkIG9uIHRoZSB0YXJnZXQgdmVyc2lvbiBiZWNhdXNlXG4gIC8vIHdlIGRvbid0IGtlZXAgdHJhY2sgb2YgdGhlIG5ldyBzaWduYXR1cmUgYW5kIGRvbid0IHdhbnQgdG8gdXBkYXRlIGluY3JlbWVudGFsbHkuXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9wdWxsLzEyOTcwI2lzc3VlY29tbWVudC00MTgzMzc1NjZcbiAgZGF0YSA9IGdldEFsbENoYW5nZXModGhpcy51cGdyYWRlRGF0YS5jb25zdHJ1Y3RvckNoZWNrcyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZCA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHtcbiAgICBpZiAodHMuaXNTb3VyY2VGaWxlKG5vZGUpKSB7XG4gICAgICB0aGlzLl92aXNpdFNvdXJjZUZpbGUobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHNvdXJjZSBmaWxlIG9mIHRoZSB1cGdyYWRlIHByb2plY3QuIEluIG9yZGVyIHRvXG4gICAqIHByb3Blcmx5IGRldGVybWluZSBpbnZhbGlkIGNvbnN0cnVjdG9yIHNpZ25hdHVyZXMsIHdlIHRha2UgYWR2YW50YWdlIG9mIHRoZSBwcmUtZW1pdFxuICAgKiBkaWFnbm9zdGljcyBmcm9tIFR5cGVTY3JpcHQuXG4gICAqXG4gICAqIEJ5IHVzaW5nIHRoZSBkaWFnbm9zdGljcywgdGhlIG1pZ3JhdGlvbiBjYW4gaGFuZGxlIHR5cGUgYXNzaWduYWJpbGl0eS4gTm90IHVzaW5nXG4gICAqIGRpYWdub3N0aWNzIHdvdWxkIG1lYW4gdGhhdCB3ZSBuZWVkIHRvIHVzZSBzaW1wbGUgdHlwZSBlcXVhbGl0eSBjaGVja2luZyB3aGljaCBpc1xuICAgKiB0b28gc3RyaWN0LiBTZWUgcmVsYXRlZCBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy85ODc5XG4gICAqL1xuICBwcml2YXRlIF92aXNpdFNvdXJjZUZpbGUoc291cmNlRmlsZTogdHMuU291cmNlRmlsZSkge1xuICAgIC8vIExpc3Qgb2YgY2xhc3NlcyBvZiB3aGljaCB0aGUgY29uc3RydWN0b3Igc2lnbmF0dXJlIGhhcyBjaGFuZ2VkLlxuICAgIGNvbnN0IGRpYWdub3N0aWNzID0gdHNcbiAgICAgIC5nZXRQcmVFbWl0RGlhZ25vc3RpY3ModGhpcy5wcm9ncmFtLCBzb3VyY2VGaWxlKVxuICAgICAgLmZpbHRlcihkaWFnbm9zdGljID0+IHNpZ25hdHVyZUVycm9yRGlhZ25vc3RpY3MuaW5jbHVkZXMoZGlhZ25vc3RpYy5jb2RlKSlcbiAgICAgIC5maWx0ZXIoZGlhZ25vc3RpYyA9PiBkaWFnbm9zdGljLnN0YXJ0ICE9PSB1bmRlZmluZWQpO1xuXG4gICAgZm9yIChjb25zdCBkaWFnbm9zdGljIG9mIGRpYWdub3N0aWNzKSB7XG4gICAgICBjb25zdCBub2RlID0gZmluZENvbnN0cnVjdG9yTm9kZShkaWFnbm9zdGljLCBzb3VyY2VGaWxlKTtcblxuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjbGFzc1R5cGUgPSB0aGlzLnR5cGVDaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKG5vZGUuZXhwcmVzc2lvbik7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBjbGFzc1R5cGUuc3ltYm9sICYmIGNsYXNzVHlwZS5zeW1ib2wubmFtZTtcbiAgICAgIGNvbnN0IGlzTmV3RXhwcmVzc2lvbiA9IHRzLmlzTmV3RXhwcmVzc2lvbihub2RlKTtcblxuICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBjbGFzcyBuYW1lcyBvZiB0aGUgYWN0dWFsIGNvbnN0cnVjdCBzaWduYXR1cmVzIGJlY2F1c2Ugd2UgY2Fubm90IGFzc3VtZSB0aGF0XG4gICAgICAvLyB0aGUgZGlhZ25vc3RpYyByZWZlcnMgdG8gYSBjb25zdHJ1Y3RvciBvZiB0aGUgYWN0dWFsIGV4cHJlc3Npb24uIEluIGNhc2UgdGhlIGNvbnN0cnVjdG9yXG4gICAgICAvLyBpcyBpbmhlcml0ZWQsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoYXQgdGhlIG93bmVyLWNsYXNzIG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBhZGRlZCB0byB0aGVcbiAgICAgIC8vIGNvbnN0cnVjdG9yIGNoZWNrcyB1cGdyYWRlIGRhdGEuIGUuZy4gYGNsYXNzIEN1c3RvbUNhbGVuZGFyIGV4dGVuZHMgTWF0Q2FsZW5kYXIge31gLlxuICAgICAgY29uc3Qgc2lnbmF0dXJlQ2xhc3NOYW1lcyA9IGNsYXNzVHlwZVxuICAgICAgICAuZ2V0Q29uc3RydWN0U2lnbmF0dXJlcygpXG4gICAgICAgIC5tYXAoc2lnbmF0dXJlID0+IGdldENsYXNzRGVjbGFyYXRpb25PZlNpZ25hdHVyZShzaWduYXR1cmUpKVxuICAgICAgICAubWFwKGRlY2xhcmF0aW9uID0+IChkZWNsYXJhdGlvbiAmJiBkZWNsYXJhdGlvbi5uYW1lID8gZGVjbGFyYXRpb24ubmFtZS50ZXh0IDogbnVsbCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgIC8vIEJlc2lkZXMgY2hlY2tpbmcgdGhlIHNpZ25hdHVyZSBjbGFzcyBuYW1lcywgd2UgbmVlZCB0byBjaGVjayB0aGUgYWN0dWFsIGNsYXNzIG5hbWUgYmVjYXVzZVxuICAgICAgLy8gdGhlcmUgY2FuIGJlIGNsYXNzZXMgd2l0aG91dCBhbiBleHBsaWNpdCBjb25zdHJ1Y3Rvci5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZGF0YS5pbmNsdWRlcyhjbGFzc05hbWUpICYmXG4gICAgICAgICFzaWduYXR1cmVDbGFzc05hbWVzLnNvbWUobmFtZSA9PiB0aGlzLmRhdGEuaW5jbHVkZXMobmFtZSEpKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjbGFzc1NpZ25hdHVyZXMgPSBjbGFzc1R5cGVcbiAgICAgICAgLmdldENvbnN0cnVjdFNpZ25hdHVyZXMoKVxuICAgICAgICAubWFwKHNpZ25hdHVyZSA9PiBnZXRQYXJhbWV0ZXJUeXBlc0Zyb21TaWduYXR1cmUoc2lnbmF0dXJlLCB0aGlzLnR5cGVDaGVja2VyKSk7XG5cbiAgICAgIGNvbnN0IGV4cHJlc3Npb25OYW1lID0gaXNOZXdFeHByZXNzaW9uID8gYG5ldyAke2NsYXNzTmFtZX1gIDogJ3N1cGVyJztcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBjbGFzc1NpZ25hdHVyZXNcbiAgICAgICAgLm1hcChzaWduYXR1cmUgPT5cbiAgICAgICAgICBzaWduYXR1cmUubWFwKHQgPT4gKHQgPT09IG51bGwgPyAnYW55JyA6IHRoaXMudHlwZUNoZWNrZXIudHlwZVRvU3RyaW5nKHQpKSksXG4gICAgICAgIClcbiAgICAgICAgLm1hcChzaWduYXR1cmUgPT4gYCR7ZXhwcmVzc2lvbk5hbWV9KCR7c2lnbmF0dXJlLmpvaW4oJywgJyl9KWApXG4gICAgICAgIC5qb2luKCcgb3IgJyk7XG5cbiAgICAgIHRoaXMuY3JlYXRlRmFpbHVyZUF0Tm9kZShcbiAgICAgICAgbm9kZSxcbiAgICAgICAgYEZvdW5kIFwiJHtjbGFzc05hbWV9XCIgY29uc3RydWN0ZWQgd2l0aCBgICtcbiAgICAgICAgICBgYW4gaW52YWxpZCBzaWduYXR1cmUuIFBsZWFzZSBtYW51YWxseSB1cGRhdGUgdGhlICR7ZXhwcmVzc2lvbk5hbWV9IGV4cHJlc3Npb24gdG8gYCArXG4gICAgICAgICAgYG1hdGNoIHRoZSBuZXcgc2lnbmF0dXJlJHtjbGFzc1NpZ25hdHVyZXMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfTogJHtzaWduYXR1cmVzfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vKiogUmVzb2x2ZXMgdGhlIHR5cGUgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHRoZSBzcGVjaWZpZWQgc2lnbmF0dXJlLiAqL1xuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyVHlwZXNGcm9tU2lnbmF0dXJlKFxuICBzaWduYXR1cmU6IHRzLlNpZ25hdHVyZSxcbiAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuKTogKHRzLlR5cGUgfCBudWxsKVtdIHtcbiAgcmV0dXJuIHNpZ25hdHVyZVxuICAgIC5nZXRQYXJhbWV0ZXJzKClcbiAgICAubWFwKHBhcmFtID0+XG4gICAgICBwYXJhbS5kZWNsYXJhdGlvbnMgPyB0eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihwYXJhbS5kZWNsYXJhdGlvbnNbMF0pIDogbnVsbCxcbiAgICApO1xufVxuXG4vKipcbiAqIFdhbGtzIHRocm91Z2ggZWFjaCBub2RlIG9mIGEgc291cmNlIGZpbGUgaW4gb3JkZXIgdG8gZmluZCBhIG5ldy1leHByZXNzaW9uIG5vZGUgb3Igc3VwZXItY2FsbFxuICogZXhwcmVzc2lvbiBub2RlIHRoYXQgaXMgY2FwdHVyZWQgYnkgdGhlIHNwZWNpZmllZCBkaWFnbm9zdGljLlxuICovXG5mdW5jdGlvbiBmaW5kQ29uc3RydWN0b3JOb2RlKFxuICBkaWFnbm9zdGljOiB0cy5EaWFnbm9zdGljLFxuICBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlLFxuKTogdHMuQ2FsbEV4cHJlc3Npb24gfCB0cy5OZXdFeHByZXNzaW9uIHwgbnVsbCB7XG4gIGxldCByZXNvbHZlZE5vZGU6IHRzLk5vZGUgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBfdmlzaXROb2RlID0gKG5vZGU6IHRzLk5vZGUpID0+IHtcbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBjdXJyZW50IG5vZGUgY29udGFpbnMgdGhlIGRpYWdub3N0aWMuIElmIHRoZSBub2RlIGNvbnRhaW5zIHRoZSBkaWFnbm9zdGljLFxuICAgIC8vIHdhbGsgZGVlcGVyIGluIG9yZGVyIHRvIGZpbmQgYWxsIGNvbnN0cnVjdG9yIGV4cHJlc3Npb24gbm9kZXMuXG4gICAgaWYgKG5vZGUuZ2V0U3RhcnQoKSA8PSBkaWFnbm9zdGljLnN0YXJ0ISAmJiBub2RlLmdldEVuZCgpID49IGRpYWdub3N0aWMuc3RhcnQhKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRzLmlzTmV3RXhwcmVzc2lvbihub2RlKSB8fFxuICAgICAgICAodHMuaXNDYWxsRXhwcmVzc2lvbihub2RlKSAmJiBub2RlLmV4cHJlc3Npb24ua2luZCA9PT0gdHMuU3ludGF4S2luZC5TdXBlcktleXdvcmQpXG4gICAgICApIHtcbiAgICAgICAgcmVzb2x2ZWROb2RlID0gbm9kZTtcbiAgICAgIH1cblxuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIF92aXNpdE5vZGUpO1xuICAgIH1cbiAgfTtcblxuICB0cy5mb3JFYWNoQ2hpbGQoc291cmNlRmlsZSwgX3Zpc2l0Tm9kZSk7XG5cbiAgcmV0dXJuIHJlc29sdmVkTm9kZTtcbn1cblxuLyoqIERldGVybWluZXMgdGhlIGNsYXNzIGRlY2xhcmF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgY29uc3RydWN0IHNpZ25hdHVyZS4gKi9cbmZ1bmN0aW9uIGdldENsYXNzRGVjbGFyYXRpb25PZlNpZ25hdHVyZShzaWduYXR1cmU6IHRzLlNpZ25hdHVyZSk6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsIHtcbiAgbGV0IG5vZGU6IHRzLk5vZGUgPSBzaWduYXR1cmUuZ2V0RGVjbGFyYXRpb24oKTtcbiAgLy8gSGFuZGxlIHNpZ25hdHVyZXMgd2hpY2ggZG9uJ3QgaGF2ZSBhbiBhY3R1YWwgZGVjbGFyYXRpb24uIFRoaXMgaGFwcGVucyBpZiBhIGNsYXNzXG4gIC8vIGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXRseSB3cml0dGVuIGNvbnN0cnVjdG9yLlxuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICB3aGlsZSAoIXRzLmlzU291cmNlRmlsZSgobm9kZSA9IG5vZGUucGFyZW50KSkpIHtcbiAgICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
10
+ import { Migration } from '../../update-tool/migration';
11
+ import { CssSelectorUpgradeData } from '../data/css-selectors';
12
+ import { UpgradeData } from '../upgrade-data';
13
+ /**
14
+ * Migration that walks through every string literal, template and stylesheet in
15
+ * order to migrate outdated CSS selectors to the new selector.
16
+ */
17
+ export declare class CssSelectorsMigration extends Migration<UpgradeData> {
18
+ /** Change data that upgrades to the specified target version. */
19
+ data: CssSelectorUpgradeData[];
20
+ enabled: boolean;
21
+ visitNode(node: ts.Node): void;
22
+ visitTemplate(template: ResolvedResource): void;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ private _visitStringLiteralLike;
25
+ private _replaceSelector;
26
+ }
@@ -0,0 +1,72 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CssSelectorsMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const literal_1 = require("../typescript/literal");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that walks through every string literal, template and stylesheet in
17
+ * order to migrate outdated CSS selectors to the new selector.
18
+ */
19
+ class CssSelectorsMigration extends migration_1.Migration {
20
+ /** Change data that upgrades to the specified target version. */
21
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'cssSelectors');
22
+ // Only enable the migration rule if there is upgrade data.
23
+ enabled = this.data.length !== 0;
24
+ visitNode(node) {
25
+ if (ts.isStringLiteralLike(node)) {
26
+ this._visitStringLiteralLike(node);
27
+ }
28
+ }
29
+ visitTemplate(template) {
30
+ this.data.forEach(data => {
31
+ if (data.replaceIn && !data.replaceIn.html) {
32
+ return;
33
+ }
34
+ (0, literal_1.findAllSubstringIndices)(template.content, data.replace)
35
+ .map(offset => template.start + offset)
36
+ .forEach(start => this._replaceSelector(template.filePath, start, data));
37
+ });
38
+ }
39
+ visitStylesheet(stylesheet) {
40
+ this.data.forEach(data => {
41
+ if (data.replaceIn && !data.replaceIn.stylesheet) {
42
+ return;
43
+ }
44
+ (0, literal_1.findAllSubstringIndices)(stylesheet.content, data.replace)
45
+ .map(offset => stylesheet.start + offset)
46
+ .forEach(start => this._replaceSelector(stylesheet.filePath, start, data));
47
+ });
48
+ }
49
+ _visitStringLiteralLike(node) {
50
+ if (node.parent && node.parent.kind !== ts.SyntaxKind.CallExpression) {
51
+ return;
52
+ }
53
+ const textContent = node.getText();
54
+ const filePath = this.fileSystem.resolve(node.getSourceFile().fileName);
55
+ this.data.forEach(data => {
56
+ if (data.replaceIn && !data.replaceIn.tsStringLiterals) {
57
+ return;
58
+ }
59
+ (0, literal_1.findAllSubstringIndices)(textContent, data.replace)
60
+ .map(offset => node.getStart() + offset)
61
+ .forEach(start => this._replaceSelector(filePath, start, data));
62
+ });
63
+ }
64
+ _replaceSelector(filePath, start, data) {
65
+ this.fileSystem
66
+ .edit(filePath)
67
+ .remove(start, data.replace.length)
68
+ .insertRight(start, data.replaceWith);
69
+ }
70
+ }
71
+ exports.CssSelectorsMigration = CssSelectorsMigration;
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvbWlncmF0aW9ucy9jc3Mtc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILGlDQUFpQztBQUdqQywyREFBc0Q7QUFFdEQsbURBQThEO0FBQzlELGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHFCQUFzQjtJQUMvRCxpRUFBaUU7SUFDakUsSUFBSSxHQUE2QixJQUFBLG9DQUFxQixFQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUU3RSwyREFBMkQ7SUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUV4QixTQUFTLENBQUMsSUFBYTtRQUM5QixJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRVEsYUFBYSxDQUFDLFFBQTBCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUMxQyxPQUFPO2FBQ1I7WUFFRCxJQUFBLGlDQUF1QixFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDcEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7aUJBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLGVBQWUsQ0FBQyxVQUE0QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsT0FBTzthQUNSO1lBRUQsSUFBQSxpQ0FBdUIsRUFBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2lCQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxJQUEwQjtRQUN4RCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDcEUsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO2dCQUN0RCxPQUFPO2FBQ1I7WUFFRCxJQUFBLGlDQUF1QixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO2lCQUMvQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO2lCQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXVCLEVBQUUsS0FBYSxFQUFFLElBQTRCO1FBQzNGLElBQUksQ0FBQyxVQUFVO2FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNkLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDbEMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBOURELHNEQThEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7V29ya3NwYWNlUGF0aH0gZnJvbSAnLi4vLi4vdXBkYXRlLXRvb2wvZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtSZXNvbHZlZFJlc291cmNlfSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtDc3NTZWxlY3RvclVwZ3JhZGVEYXRhfSBmcm9tICcuLi9kYXRhL2Nzcy1zZWxlY3RvcnMnO1xuaW1wb3J0IHtmaW5kQWxsU3Vic3RyaW5nSW5kaWNlc30gZnJvbSAnLi4vdHlwZXNjcmlwdC9saXRlcmFsJztcbmltcG9ydCB7Z2V0VmVyc2lvblVwZ3JhZGVEYXRhLCBVcGdyYWRlRGF0YX0gZnJvbSAnLi4vdXBncmFkZS1kYXRhJztcblxuLyoqXG4gKiBNaWdyYXRpb24gdGhhdCB3YWxrcyB0aHJvdWdoIGV2ZXJ5IHN0cmluZyBsaXRlcmFsLCB0ZW1wbGF0ZSBhbmQgc3R5bGVzaGVldCBpblxuICogb3JkZXIgdG8gbWlncmF0ZSBvdXRkYXRlZCBDU1Mgc2VsZWN0b3JzIHRvIHRoZSBuZXcgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBDc3NTZWxlY3RvcnNNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqIENoYW5nZSBkYXRhIHRoYXQgdXBncmFkZXMgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YTogQ3NzU2VsZWN0b3JVcGdyYWRlRGF0YVtdID0gZ2V0VmVyc2lvblVwZ3JhZGVEYXRhKHRoaXMsICdjc3NTZWxlY3RvcnMnKTtcblxuICAvLyBPbmx5IGVuYWJsZSB0aGUgbWlncmF0aW9uIHJ1bGUgaWYgdGhlcmUgaXMgdXBncmFkZSBkYXRhLlxuICBlbmFibGVkID0gdGhpcy5kYXRhLmxlbmd0aCAhPT0gMDtcblxuICBvdmVycmlkZSB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSk6IHZvaWQge1xuICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKG5vZGUpKSB7XG4gICAgICB0aGlzLl92aXNpdFN0cmluZ0xpdGVyYWxMaWtlKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0VGVtcGxhdGUodGVtcGxhdGU6IFJlc29sdmVkUmVzb3VyY2UpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhLnJlcGxhY2VJbiAmJiAhZGF0YS5yZXBsYWNlSW4uaHRtbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzKHRlbXBsYXRlLmNvbnRlbnQsIGRhdGEucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gdGVtcGxhdGUuc3RhcnQgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3Rvcih0ZW1wbGF0ZS5maWxlUGF0aCwgc3RhcnQsIGRhdGEpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0U3R5bGVzaGVldChzdHlsZXNoZWV0OiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBpZiAoZGF0YS5yZXBsYWNlSW4gJiYgIWRhdGEucmVwbGFjZUluLnN0eWxlc2hlZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBmaW5kQWxsU3Vic3RyaW5nSW5kaWNlcyhzdHlsZXNoZWV0LmNvbnRlbnQsIGRhdGEucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gc3R5bGVzaGVldC5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT4gdGhpcy5fcmVwbGFjZVNlbGVjdG9yKHN0eWxlc2hlZXQuZmlsZVBhdGgsIHN0YXJ0LCBkYXRhKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdFN0cmluZ0xpdGVyYWxMaWtlKG5vZGU6IHRzLlN0cmluZ0xpdGVyYWxMaWtlKSB7XG4gICAgaWYgKG5vZGUucGFyZW50ICYmIG5vZGUucGFyZW50LmtpbmQgIT09IHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0Q29udGVudCA9IG5vZGUuZ2V0VGV4dCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUobm9kZS5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5kYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBpZiAoZGF0YS5yZXBsYWNlSW4gJiYgIWRhdGEucmVwbGFjZUluLnRzU3RyaW5nTGl0ZXJhbHMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBmaW5kQWxsU3Vic3RyaW5nSW5kaWNlcyh0ZXh0Q29udGVudCwgZGF0YS5yZXBsYWNlKVxuICAgICAgICAubWFwKG9mZnNldCA9PiBub2RlLmdldFN0YXJ0KCkgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3RvcihmaWxlUGF0aCwgc3RhcnQsIGRhdGEpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VTZWxlY3RvcihmaWxlUGF0aDogV29ya3NwYWNlUGF0aCwgc3RhcnQ6IG51bWJlciwgZGF0YTogQ3NzU2VsZWN0b3JVcGdyYWRlRGF0YSkge1xuICAgIHRoaXMuZmlsZVN5c3RlbVxuICAgICAgLmVkaXQoZmlsZVBhdGgpXG4gICAgICAucmVtb3ZlKHN0YXJ0LCBkYXRhLnJlcGxhY2UubGVuZ3RoKVxuICAgICAgLmluc2VydFJpZ2h0KHN0YXJ0LCBkYXRhLnJlcGxhY2VXaXRoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
10
+ import { Migration } from '../../update-tool/migration';
11
+ import { ElementSelectorUpgradeData } from '../data/element-selectors';
12
+ import { UpgradeData } from '../upgrade-data';
13
+ /**
14
+ * Migration that walks through every string literal, template and stylesheet in order
15
+ * to migrate outdated element selectors to the new one.
16
+ */
17
+ export declare class ElementSelectorsMigration extends Migration<UpgradeData> {
18
+ /** Change data that upgrades to the specified target version. */
19
+ data: ElementSelectorUpgradeData[];
20
+ enabled: boolean;
21
+ visitNode(node: ts.Node): void;
22
+ visitTemplate(template: ResolvedResource): void;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ private _visitStringLiteralLike;
25
+ private _replaceSelector;
26
+ }
@@ -0,0 +1,63 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ElementSelectorsMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const literal_1 = require("../typescript/literal");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that walks through every string literal, template and stylesheet in order
17
+ * to migrate outdated element selectors to the new one.
18
+ */
19
+ class ElementSelectorsMigration extends migration_1.Migration {
20
+ /** Change data that upgrades to the specified target version. */
21
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'elementSelectors');
22
+ // Only enable the migration rule if there is upgrade data.
23
+ enabled = this.data.length !== 0;
24
+ visitNode(node) {
25
+ if (ts.isStringLiteralLike(node)) {
26
+ this._visitStringLiteralLike(node);
27
+ }
28
+ }
29
+ visitTemplate(template) {
30
+ this.data.forEach(selector => {
31
+ (0, literal_1.findAllSubstringIndices)(template.content, selector.replace)
32
+ .map(offset => template.start + offset)
33
+ .forEach(start => this._replaceSelector(template.filePath, start, selector));
34
+ });
35
+ }
36
+ visitStylesheet(stylesheet) {
37
+ this.data.forEach(selector => {
38
+ (0, literal_1.findAllSubstringIndices)(stylesheet.content, selector.replace)
39
+ .map(offset => stylesheet.start + offset)
40
+ .forEach(start => this._replaceSelector(stylesheet.filePath, start, selector));
41
+ });
42
+ }
43
+ _visitStringLiteralLike(node) {
44
+ if (node.parent && node.parent.kind !== ts.SyntaxKind.CallExpression) {
45
+ return;
46
+ }
47
+ const textContent = node.getText();
48
+ const filePath = this.fileSystem.resolve(node.getSourceFile().fileName);
49
+ this.data.forEach(selector => {
50
+ (0, literal_1.findAllSubstringIndices)(textContent, selector.replace)
51
+ .map(offset => node.getStart() + offset)
52
+ .forEach(start => this._replaceSelector(filePath, start, selector));
53
+ });
54
+ }
55
+ _replaceSelector(filePath, start, data) {
56
+ this.fileSystem
57
+ .edit(filePath)
58
+ .remove(start, data.replace.length)
59
+ .insertRight(start, data.replaceWith);
60
+ }
61
+ }
62
+ exports.ElementSelectorsMigration = ElementSelectorsMigration;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvZWxlbWVudC1zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBR2pDLDJEQUFzRDtBQUV0RCxtREFBOEQ7QUFDOUQsa0RBQW1FO0FBRW5FOzs7R0FHRztBQUNILE1BQWEseUJBQTBCLFNBQVEscUJBQXNCO0lBQ25FLGlFQUFpRTtJQUNqRSxJQUFJLEdBQUcsSUFBQSxvQ0FBcUIsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUV2RCwyREFBMkQ7SUFDM0QsT0FBTyxHQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUVqQyxTQUFTLENBQUMsSUFBYTtRQUM5QixJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRVEsYUFBYSxDQUFDLFFBQTBCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNCLElBQUEsaUNBQXVCLEVBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUN4RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsZUFBZSxDQUFDLFVBQTRCO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNCLElBQUEsaUNBQXVCLEVBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUMxRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsSUFBMEI7UUFDeEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1lBQ3BFLE9BQU87U0FDUjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0IsSUFBQSxpQ0FBdUIsRUFBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztpQkFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsUUFBdUIsRUFDdkIsS0FBYSxFQUNiLElBQWdDO1FBRWhDLElBQUksQ0FBQyxVQUFVO2FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNkLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDbEMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBdERELDhEQXNEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7UmVzb2x2ZWRSZXNvdXJjZX0gZnJvbSAnLi4vLi4vdXBkYXRlLXRvb2wvY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge1dvcmtzcGFjZVBhdGh9IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtFbGVtZW50U2VsZWN0b3JVcGdyYWRlRGF0YX0gZnJvbSAnLi4vZGF0YS9lbGVtZW50LXNlbGVjdG9ycyc7XG5pbXBvcnQge2ZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzfSBmcm9tICcuLi90eXBlc2NyaXB0L2xpdGVyYWwnO1xuaW1wb3J0IHtnZXRWZXJzaW9uVXBncmFkZURhdGEsIFVwZ3JhZGVEYXRhfSBmcm9tICcuLi91cGdyYWRlLWRhdGEnO1xuXG4vKipcbiAqIE1pZ3JhdGlvbiB0aGF0IHdhbGtzIHRocm91Z2ggZXZlcnkgc3RyaW5nIGxpdGVyYWwsIHRlbXBsYXRlIGFuZCBzdHlsZXNoZWV0IGluIG9yZGVyXG4gKiB0byBtaWdyYXRlIG91dGRhdGVkIGVsZW1lbnQgc2VsZWN0b3JzIHRvIHRoZSBuZXcgb25lLlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudFNlbGVjdG9yc01pZ3JhdGlvbiBleHRlbmRzIE1pZ3JhdGlvbjxVcGdyYWRlRGF0YT4ge1xuICAvKiogQ2hhbmdlIGRhdGEgdGhhdCB1cGdyYWRlcyB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCB2ZXJzaW9uLiAqL1xuICBkYXRhID0gZ2V0VmVyc2lvblVwZ3JhZGVEYXRhKHRoaXMsICdlbGVtZW50U2VsZWN0b3JzJyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHtcbiAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShub2RlKSkge1xuICAgICAgdGhpcy5fdmlzaXRTdHJpbmdMaXRlcmFsTGlrZShub2RlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXModGVtcGxhdGUuY29udGVudCwgc2VsZWN0b3IucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gdGVtcGxhdGUuc3RhcnQgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3Rvcih0ZW1wbGF0ZS5maWxlUGF0aCwgc3RhcnQsIHNlbGVjdG9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgIGZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzKHN0eWxlc2hlZXQuY29udGVudCwgc2VsZWN0b3IucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gc3R5bGVzaGVldC5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT4gdGhpcy5fcmVwbGFjZVNlbGVjdG9yKHN0eWxlc2hlZXQuZmlsZVBhdGgsIHN0YXJ0LCBzZWxlY3RvcikpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRTdHJpbmdMaXRlcmFsTGlrZShub2RlOiB0cy5TdHJpbmdMaXRlcmFsTGlrZSkge1xuICAgIGlmIChub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC5raW5kICE9PSB0cy5TeW50YXhLaW5kLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLmdldFRleHQoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVN5c3RlbS5yZXNvbHZlKG5vZGUuZ2V0U291cmNlRmlsZSgpLmZpbGVOYW1lKTtcblxuICAgIHRoaXMuZGF0YS5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgIGZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzKHRleHRDb250ZW50LCBzZWxlY3Rvci5yZXBsYWNlKVxuICAgICAgICAubWFwKG9mZnNldCA9PiBub2RlLmdldFN0YXJ0KCkgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3RvcihmaWxlUGF0aCwgc3RhcnQsIHNlbGVjdG9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlU2VsZWN0b3IoXG4gICAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGgsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBkYXRhOiBFbGVtZW50U2VsZWN0b3JVcGdyYWRlRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5maWxlU3lzdGVtXG4gICAgICAuZWRpdChmaWxlUGF0aClcbiAgICAgIC5yZW1vdmUoc3RhcnQsIGRhdGEucmVwbGFjZS5sZW5ndGgpXG4gICAgICAuaW5zZXJ0UmlnaHQoc3RhcnQsIGRhdGEucmVwbGFjZVdpdGgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { InputNameUpgradeData } from '../data';
11
+ import { UpgradeData } from '../upgrade-data';
12
+ /**
13
+ * Migration that walks through every template or stylesheet and replaces outdated input
14
+ * names to the new input name. Selectors in stylesheets could also target input
15
+ * bindings declared as static attribute. See for example:
16
+ *
17
+ * e.g. `<my-component color="primary">` becomes `my-component[color]`
18
+ */
19
+ export declare class InputNamesMigration extends Migration<UpgradeData> {
20
+ /** Change data that upgrades to the specified target version. */
21
+ data: InputNameUpgradeData[];
22
+ enabled: boolean;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ visitTemplate(template: ResolvedResource): void;
25
+ private _replaceInputName;
26
+ }
@@ -0,0 +1,56 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.InputNamesMigration = void 0;
11
+ const angular_1 = require("../html-parsing/angular");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const literal_1 = require("../typescript/literal");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that walks through every template or stylesheet and replaces outdated input
17
+ * names to the new input name. Selectors in stylesheets could also target input
18
+ * bindings declared as static attribute. See for example:
19
+ *
20
+ * e.g. `<my-component color="primary">` becomes `my-component[color]`
21
+ */
22
+ class InputNamesMigration extends migration_1.Migration {
23
+ /** Change data that upgrades to the specified target version. */
24
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'inputNames');
25
+ // Only enable the migration rule if there is upgrade data.
26
+ enabled = this.data.length !== 0;
27
+ visitStylesheet(stylesheet) {
28
+ this.data.forEach(name => {
29
+ const currentSelector = `[${name.replace}]`;
30
+ const updatedSelector = `[${name.replaceWith}]`;
31
+ (0, literal_1.findAllSubstringIndices)(stylesheet.content, currentSelector)
32
+ .map(offset => stylesheet.start + offset)
33
+ .forEach(start => this._replaceInputName(stylesheet.filePath, start, currentSelector.length, updatedSelector));
34
+ });
35
+ }
36
+ visitTemplate(template) {
37
+ this.data.forEach(name => {
38
+ const limitedTo = name.limitedTo;
39
+ const relativeOffsets = [];
40
+ if (limitedTo.attributes) {
41
+ relativeOffsets.push(...(0, angular_1.findInputsOnElementWithAttr)(template.content, name.replace, limitedTo.attributes));
42
+ }
43
+ if (limitedTo.elements) {
44
+ relativeOffsets.push(...(0, angular_1.findInputsOnElementWithTag)(template.content, name.replace, limitedTo.elements));
45
+ }
46
+ relativeOffsets
47
+ .map(offset => template.start + offset)
48
+ .forEach(start => this._replaceInputName(template.filePath, start, name.replace.length, name.replaceWith));
49
+ });
50
+ }
51
+ _replaceInputName(filePath, start, width, newName) {
52
+ this.fileSystem.edit(filePath).remove(start, width).insertRight(start, newName);
53
+ }
54
+ }
55
+ exports.InputNamesMigration = InputNamesMigration;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvaW5wdXQtbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gscURBQWdHO0FBRWhHLDJEQUFzRDtBQUd0RCxtREFBOEQ7QUFDOUQsa0RBQW1FO0FBRW5FOzs7Ozs7R0FNRztBQUNILE1BQWEsbUJBQW9CLFNBQVEscUJBQXNCO0lBQzdELGlFQUFpRTtJQUNqRSxJQUFJLEdBQTJCLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXpFLDJEQUEyRDtJQUMzRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBRXhCLGVBQWUsQ0FBQyxVQUE0QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztZQUM1QyxNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQztZQUVoRCxJQUFBLGlDQUF1QixFQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO2lCQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixVQUFVLENBQUMsUUFBUSxFQUNuQixLQUFLLEVBQ0wsZUFBZSxDQUFDLE1BQU0sRUFDdEIsZUFBZSxDQUNoQixDQUNGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxhQUFhLENBQUMsUUFBMEI7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNqQyxNQUFNLGVBQWUsR0FBYSxFQUFFLENBQUM7WUFFckMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFO2dCQUN4QixlQUFlLENBQUMsSUFBSSxDQUNsQixHQUFHLElBQUEscUNBQTJCLEVBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FDckYsQ0FBQzthQUNIO1lBRUQsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUN0QixlQUFlLENBQUMsSUFBSSxDQUNsQixHQUFHLElBQUEsb0NBQTBCLEVBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDbEYsQ0FBQzthQUNIO1lBRUQsZUFBZTtpQkFDWixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDeEYsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixRQUF1QixFQUN2QixLQUFhLEVBQ2IsS0FBYSxFQUNiLE9BQWU7UUFFZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGO0FBMURELGtEQTBEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1dvcmtzcGFjZVBhdGh9IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7ZmluZElucHV0c09uRWxlbWVudFdpdGhBdHRyLCBmaW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZ30gZnJvbSAnLi4vaHRtbC1wYXJzaW5nL2FuZ3VsYXInO1xuaW1wb3J0IHtSZXNvbHZlZFJlc291cmNlfSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuXG5pbXBvcnQge0lucHV0TmFtZVVwZ3JhZGVEYXRhfSBmcm9tICcuLi9kYXRhJztcbmltcG9ydCB7ZmluZEFsbFN1YnN0cmluZ0luZGljZXN9IGZyb20gJy4uL3R5cGVzY3JpcHQvbGl0ZXJhbCc7XG5pbXBvcnQge2dldFZlcnNpb25VcGdyYWRlRGF0YSwgVXBncmFkZURhdGF9IGZyb20gJy4uL3VwZ3JhZGUtZGF0YSc7XG5cbi8qKlxuICogTWlncmF0aW9uIHRoYXQgd2Fsa3MgdGhyb3VnaCBldmVyeSB0ZW1wbGF0ZSBvciBzdHlsZXNoZWV0IGFuZCByZXBsYWNlcyBvdXRkYXRlZCBpbnB1dFxuICogbmFtZXMgdG8gdGhlIG5ldyBpbnB1dCBuYW1lLiBTZWxlY3RvcnMgaW4gc3R5bGVzaGVldHMgY291bGQgYWxzbyB0YXJnZXQgaW5wdXRcbiAqIGJpbmRpbmdzIGRlY2xhcmVkIGFzIHN0YXRpYyBhdHRyaWJ1dGUuIFNlZSBmb3IgZXhhbXBsZTpcbiAqXG4gKiBlLmcuIGA8bXktY29tcG9uZW50IGNvbG9yPVwicHJpbWFyeVwiPmAgYmVjb21lcyBgbXktY29tcG9uZW50W2NvbG9yXWBcbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0TmFtZXNNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqIENoYW5nZSBkYXRhIHRoYXQgdXBncmFkZXMgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YTogSW5wdXROYW1lVXBncmFkZURhdGFbXSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnaW5wdXROYW1lcycpO1xuXG4gIC8vIE9ubHkgZW5hYmxlIHRoZSBtaWdyYXRpb24gcnVsZSBpZiB0aGVyZSBpcyB1cGdyYWRlIGRhdGEuXG4gIGVuYWJsZWQgPSB0aGlzLmRhdGEubGVuZ3RoICE9PSAwO1xuXG4gIG92ZXJyaWRlIHZpc2l0U3R5bGVzaGVldChzdHlsZXNoZWV0OiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0b3IgPSBgWyR7bmFtZS5yZXBsYWNlfV1gO1xuICAgICAgY29uc3QgdXBkYXRlZFNlbGVjdG9yID0gYFske25hbWUucmVwbGFjZVdpdGh9XWA7XG5cbiAgICAgIGZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzKHN0eWxlc2hlZXQuY29udGVudCwgY3VycmVudFNlbGVjdG9yKVxuICAgICAgICAubWFwKG9mZnNldCA9PiBzdHlsZXNoZWV0LnN0YXJ0ICsgb2Zmc2V0KVxuICAgICAgICAuZm9yRWFjaChzdGFydCA9PlxuICAgICAgICAgIHRoaXMuX3JlcGxhY2VJbnB1dE5hbWUoXG4gICAgICAgICAgICBzdHlsZXNoZWV0LmZpbGVQYXRoLFxuICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICBjdXJyZW50U2VsZWN0b3IubGVuZ3RoLFxuICAgICAgICAgICAgdXBkYXRlZFNlbGVjdG9yLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBjb25zdCBsaW1pdGVkVG8gPSBuYW1lLmxpbWl0ZWRUbztcbiAgICAgIGNvbnN0IHJlbGF0aXZlT2Zmc2V0czogbnVtYmVyW10gPSBbXTtcblxuICAgICAgaWYgKGxpbWl0ZWRUby5hdHRyaWJ1dGVzKSB7XG4gICAgICAgIHJlbGF0aXZlT2Zmc2V0cy5wdXNoKFxuICAgICAgICAgIC4uLmZpbmRJbnB1dHNPbkVsZW1lbnRXaXRoQXR0cih0ZW1wbGF0ZS5jb250ZW50LCBuYW1lLnJlcGxhY2UsIGxpbWl0ZWRUby5hdHRyaWJ1dGVzKSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGxpbWl0ZWRUby5lbGVtZW50cykge1xuICAgICAgICByZWxhdGl2ZU9mZnNldHMucHVzaChcbiAgICAgICAgICAuLi5maW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZyh0ZW1wbGF0ZS5jb250ZW50LCBuYW1lLnJlcGxhY2UsIGxpbWl0ZWRUby5lbGVtZW50cyksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJlbGF0aXZlT2Zmc2V0c1xuICAgICAgICAubWFwKG9mZnNldCA9PiB0ZW1wbGF0ZS5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT5cbiAgICAgICAgICB0aGlzLl9yZXBsYWNlSW5wdXROYW1lKHRlbXBsYXRlLmZpbGVQYXRoLCBzdGFydCwgbmFtZS5yZXBsYWNlLmxlbmd0aCwgbmFtZS5yZXBsYWNlV2l0aCksXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlSW5wdXROYW1lKFxuICAgIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBuZXdOYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIHRoaXMuZmlsZVN5c3RlbS5lZGl0KGZpbGVQYXRoKS5yZW1vdmUoc3RhcnQsIHdpZHRoKS5pbnNlcnRSaWdodChzdGFydCwgbmV3TmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { MethodCallUpgradeData } from '../data';
11
+ import { UpgradeData } from '../upgrade-data';
12
+ /**
13
+ * Migration that visits every TypeScript method call expression and checks if the
14
+ * argument count is invalid and needs to be *manually* updated.
15
+ */
16
+ export declare class MethodCallArgumentsMigration extends Migration<UpgradeData> {
17
+ /** Change data that upgrades to the specified target version. */
18
+ data: MethodCallUpgradeData[];
19
+ enabled: boolean;
20
+ visitNode(node: ts.Node): void;
21
+ private _checkPropertyAccessMethodCall;
22
+ }
@@ -0,0 +1,59 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MethodCallArgumentsMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const upgrade_data_1 = require("../upgrade-data");
14
+ /**
15
+ * Migration that visits every TypeScript method call expression and checks if the
16
+ * argument count is invalid and needs to be *manually* updated.
17
+ */
18
+ class MethodCallArgumentsMigration extends migration_1.Migration {
19
+ /** Change data that upgrades to the specified target version. */
20
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'methodCallChecks');
21
+ // Only enable the migration rule if there is upgrade data.
22
+ enabled = this.data.length !== 0;
23
+ visitNode(node) {
24
+ if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
25
+ this._checkPropertyAccessMethodCall(node);
26
+ }
27
+ }
28
+ _checkPropertyAccessMethodCall(node) {
29
+ const propertyAccess = node.expression;
30
+ if (!ts.isIdentifier(propertyAccess.name)) {
31
+ return;
32
+ }
33
+ const hostType = this.typeChecker.getTypeAtLocation(propertyAccess.expression);
34
+ const hostTypeName = hostType.symbol && hostType.symbol.name;
35
+ const methodName = propertyAccess.name.text;
36
+ if (!hostTypeName) {
37
+ return;
38
+ }
39
+ // TODO(devversion): Revisit the implementation of this upgrade rule. It seems difficult
40
+ // and ambiguous to maintain the data for this rule. e.g. consider a method which has the
41
+ // same amount of arguments but just had a type change. In that case we could still add
42
+ // new entries to the upgrade data that match the current argument length to just show
43
+ // a failure message, but adding that data becomes painful if the method has optional
44
+ // parameters and it would mean that the error message would always show up, even if the
45
+ // argument is in some cases still assignable to the new parameter type. We could re-use
46
+ // the logic we have in the constructor-signature checks to check for assignability and
47
+ // to make the upgrade data less verbose.
48
+ const failure = this.data
49
+ .filter(data => data.method === methodName && data.className === hostTypeName)
50
+ .map(data => data.invalidArgCounts.find(f => f.count === node.arguments.length))[0];
51
+ if (!failure) {
52
+ return;
53
+ }
54
+ this.createFailureAtNode(node, `Found call to "${hostTypeName + '.' + methodName}" ` +
55
+ `with ${failure.count} arguments. Message: ${failure.message}`);
56
+ }
57
+ }
58
+ exports.MethodCallArgumentsMigration = MethodCallArgumentsMigration;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kLWNhbGwtYXJndW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL25nLXVwZGF0ZS9taWdyYXRpb25zL21ldGhvZC1jYWxsLWFyZ3VtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUFDakMsMkRBQXNEO0FBR3RELGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCxNQUFhLDRCQUE2QixTQUFRLHFCQUFzQjtJQUN0RSxpRUFBaUU7SUFDakUsSUFBSSxHQUE0QixJQUFBLG9DQUFxQixFQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBRWhGLDJEQUEyRDtJQUMzRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBRXhCLFNBQVMsQ0FBQyxJQUFhO1FBQzlCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0UsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QixDQUFDLElBQXVCO1FBQzVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUF5QyxDQUFDO1FBRXRFLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QyxPQUFPO1NBQ1I7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzdELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRTVDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsd0ZBQXdGO1FBQ3hGLHlGQUF5RjtRQUN6Rix1RkFBdUY7UUFDdkYsc0ZBQXNGO1FBQ3RGLHFGQUFxRjtRQUNyRix3RkFBd0Y7UUFDeEYsd0ZBQXdGO1FBQ3hGLHVGQUF1RjtRQUN2Rix5Q0FBeUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUM7YUFDN0UsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksRUFDSixrQkFBa0IsWUFBWSxHQUFHLEdBQUcsR0FBRyxVQUFVLElBQUk7WUFDbkQsUUFBUSxPQUFPLENBQUMsS0FBSyx3QkFBd0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUNqRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbkRELG9FQW1EQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuXG5pbXBvcnQge01ldGhvZENhbGxVcGdyYWRlRGF0YX0gZnJvbSAnLi4vZGF0YSc7XG5pbXBvcnQge2dldFZlcnNpb25VcGdyYWRlRGF0YSwgVXBncmFkZURhdGF9IGZyb20gJy4uL3VwZ3JhZGUtZGF0YSc7XG5cbi8qKlxuICogTWlncmF0aW9uIHRoYXQgdmlzaXRzIGV2ZXJ5IFR5cGVTY3JpcHQgbWV0aG9kIGNhbGwgZXhwcmVzc2lvbiBhbmQgY2hlY2tzIGlmIHRoZVxuICogYXJndW1lbnQgY291bnQgaXMgaW52YWxpZCBhbmQgbmVlZHMgdG8gYmUgKm1hbnVhbGx5KiB1cGRhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgTWV0aG9kQ2FsbEFyZ3VtZW50c01pZ3JhdGlvbiBleHRlbmRzIE1pZ3JhdGlvbjxVcGdyYWRlRGF0YT4ge1xuICAvKiogQ2hhbmdlIGRhdGEgdGhhdCB1cGdyYWRlcyB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCB2ZXJzaW9uLiAqL1xuICBkYXRhOiBNZXRob2RDYWxsVXBncmFkZURhdGFbXSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnbWV0aG9kQ2FsbENoZWNrcycpO1xuXG4gIC8vIE9ubHkgZW5hYmxlIHRoZSBtaWdyYXRpb24gcnVsZSBpZiB0aGVyZSBpcyB1cGdyYWRlIGRhdGEuXG4gIGVuYWJsZWQgPSB0aGlzLmRhdGEubGVuZ3RoICE9PSAwO1xuXG4gIG92ZXJyaWRlIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKTogdm9pZCB7XG4gICAgaWYgKHRzLmlzQ2FsbEV4cHJlc3Npb24obm9kZSkgJiYgdHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obm9kZS5leHByZXNzaW9uKSkge1xuICAgICAgdGhpcy5fY2hlY2tQcm9wZXJ0eUFjY2Vzc01ldGhvZENhbGwobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tQcm9wZXJ0eUFjY2Vzc01ldGhvZENhbGwobm9kZTogdHMuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBwcm9wZXJ0eUFjY2VzcyA9IG5vZGUuZXhwcmVzc2lvbiBhcyB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb247XG5cbiAgICBpZiAoIXRzLmlzSWRlbnRpZmllcihwcm9wZXJ0eUFjY2Vzcy5uYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhvc3RUeXBlID0gdGhpcy50eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihwcm9wZXJ0eUFjY2Vzcy5leHByZXNzaW9uKTtcbiAgICBjb25zdCBob3N0VHlwZU5hbWUgPSBob3N0VHlwZS5zeW1ib2wgJiYgaG9zdFR5cGUuc3ltYm9sLm5hbWU7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHByb3BlcnR5QWNjZXNzLm5hbWUudGV4dDtcblxuICAgIGlmICghaG9zdFR5cGVOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVE9ETyhkZXZ2ZXJzaW9uKTogUmV2aXNpdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB1cGdyYWRlIHJ1bGUuIEl0IHNlZW1zIGRpZmZpY3VsdFxuICAgIC8vIGFuZCBhbWJpZ3VvdXMgdG8gbWFpbnRhaW4gdGhlIGRhdGEgZm9yIHRoaXMgcnVsZS4gZS5nLiBjb25zaWRlciBhIG1ldGhvZCB3aGljaCBoYXMgdGhlXG4gICAgLy8gc2FtZSBhbW91bnQgb2YgYXJndW1lbnRzIGJ1dCBqdXN0IGhhZCBhIHR5cGUgY2hhbmdlLiBJbiB0aGF0IGNhc2Ugd2UgY291bGQgc3RpbGwgYWRkXG4gICAgLy8gbmV3IGVudHJpZXMgdG8gdGhlIHVwZ3JhZGUgZGF0YSB0aGF0IG1hdGNoIHRoZSBjdXJyZW50IGFyZ3VtZW50IGxlbmd0aCB0byBqdXN0IHNob3dcbiAgICAvLyBhIGZhaWx1cmUgbWVzc2FnZSwgYnV0IGFkZGluZyB0aGF0IGRhdGEgYmVjb21lcyBwYWluZnVsIGlmIHRoZSBtZXRob2QgaGFzIG9wdGlvbmFsXG4gICAgLy8gcGFyYW1ldGVycyBhbmQgaXQgd291bGQgbWVhbiB0aGF0IHRoZSBlcnJvciBtZXNzYWdlIHdvdWxkIGFsd2F5cyBzaG93IHVwLCBldmVuIGlmIHRoZVxuICAgIC8vIGFyZ3VtZW50IGlzIGluIHNvbWUgY2FzZXMgc3RpbGwgYXNzaWduYWJsZSB0byB0aGUgbmV3IHBhcmFtZXRlciB0eXBlLiBXZSBjb3VsZCByZS11c2VcbiAgICAvLyB0aGUgbG9naWMgd2UgaGF2ZSBpbiB0aGUgY29uc3RydWN0b3Itc2lnbmF0dXJlIGNoZWNrcyB0byBjaGVjayBmb3IgYXNzaWduYWJpbGl0eSBhbmRcbiAgICAvLyB0byBtYWtlIHRoZSB1cGdyYWRlIGRhdGEgbGVzcyB2ZXJib3NlLlxuICAgIGNvbnN0IGZhaWx1cmUgPSB0aGlzLmRhdGFcbiAgICAgIC5maWx0ZXIoZGF0YSA9PiBkYXRhLm1ldGhvZCA9PT0gbWV0aG9kTmFtZSAmJiBkYXRhLmNsYXNzTmFtZSA9PT0gaG9zdFR5cGVOYW1lKVxuICAgICAgLm1hcChkYXRhID0+IGRhdGEuaW52YWxpZEFyZ0NvdW50cy5maW5kKGYgPT4gZi5jb3VudCA9PT0gbm9kZS5hcmd1bWVudHMubGVuZ3RoKSlbMF07XG5cbiAgICBpZiAoIWZhaWx1cmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUZhaWx1cmVBdE5vZGUoXG4gICAgICBub2RlLFxuICAgICAgYEZvdW5kIGNhbGwgdG8gXCIke2hvc3RUeXBlTmFtZSArICcuJyArIG1ldGhvZE5hbWV9XCIgYCArXG4gICAgICAgIGB3aXRoICR7ZmFpbHVyZS5jb3VudH0gYXJndW1lbnRzLiBNZXNzYWdlOiAke2ZhaWx1cmUubWVzc2FnZX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { UpgradeData } from '../upgrade-data';
11
+ /**
12
+ * Migration that walks through every template and reports if there are
13
+ * instances of outdated Angular CDK API that can't be migrated automatically.
14
+ */
15
+ export declare class MiscTemplateMigration extends Migration<UpgradeData> {
16
+ enabled: boolean;
17
+ visitTemplate(template: ResolvedResource): void;
18
+ }