jqwidgets-ng 23.0.6 → 23.0.8

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 (549) hide show
  1. package/jqwidgets/jqx-all.js +4 -28
  2. package/jqwidgets/jqxbarcode.js +0 -6
  3. package/jqwidgets/jqxchart.core.js +1 -1
  4. package/jqwidgets/jqxchart.js +1 -1
  5. package/jqwidgets/jqxcheckboxgroup.js +0 -6
  6. package/jqwidgets/jqxdatatable.js +1 -1
  7. package/jqwidgets/jqxgrid.js +1 -1
  8. package/jqwidgets/jqxqrcode.js +0 -6
  9. package/jqwidgets/jqxradiobuttongroup.js +0 -6
  10. package/jqwidgets/jqxscheduler.js +1 -1
  11. package/jqwidgets/jqxsplitlayout.js +2 -2455
  12. package/jqwidgets/modules/jqxbarcode.js +15 -135
  13. package/jqwidgets/modules/jqxbargauge.js +17 -137
  14. package/jqwidgets/modules/jqxbulletchart.js +19 -139
  15. package/jqwidgets/modules/jqxbuttongroup.js +17 -137
  16. package/jqwidgets/modules/jqxbuttons.js +15 -135
  17. package/jqwidgets/modules/jqxcalendar.js +21 -141
  18. package/jqwidgets/modules/jqxchart.js +29 -149
  19. package/jqwidgets/modules/jqxcheckbox.js +19 -139
  20. package/jqwidgets/modules/jqxcheckboxgroup.js +19 -139
  21. package/jqwidgets/modules/jqxcolorpicker.js +21 -141
  22. package/jqwidgets/modules/jqxcombobox.js +25 -145
  23. package/jqwidgets/modules/jqxcomplexinput.js +17 -137
  24. package/jqwidgets/modules/jqxdatatable.js +45 -165
  25. package/jqwidgets/modules/jqxdatetimeinput.js +39 -159
  26. package/jqwidgets/modules/jqxdocking.js +19 -139
  27. package/jqwidgets/modules/jqxdockinglayout.js +27 -147
  28. package/jqwidgets/modules/jqxdockpanel.js +17 -137
  29. package/jqwidgets/modules/jqxdragdrop.js +19 -139
  30. package/jqwidgets/modules/jqxdraw.js +15 -135
  31. package/jqwidgets/modules/jqxdropdownbutton.js +17 -137
  32. package/jqwidgets/modules/jqxdropdownlist.js +37 -157
  33. package/jqwidgets/modules/jqxeditor.js +49 -169
  34. package/jqwidgets/modules/jqxexpander.js +23 -143
  35. package/jqwidgets/modules/jqxfileupload.js +19 -139
  36. package/jqwidgets/modules/jqxform.js +48 -168
  37. package/jqwidgets/modules/jqxformattedinput.js +39 -159
  38. package/jqwidgets/modules/jqxgantt.js +17 -137
  39. package/jqwidgets/modules/jqxgauge.js +21 -141
  40. package/jqwidgets/modules/jqxgrid.js +94 -191
  41. package/jqwidgets/modules/jqxheatmap.js +17 -137
  42. package/jqwidgets/modules/jqxinput.js +19 -139
  43. package/jqwidgets/modules/jqxkanban.js +49 -169
  44. package/jqwidgets/modules/jqxknob.js +19 -139
  45. package/jqwidgets/modules/jqxlayout.js +27 -147
  46. package/jqwidgets/modules/jqxlineargauge.js +21 -141
  47. package/jqwidgets/modules/jqxlinkbutton.js +15 -135
  48. package/jqwidgets/modules/jqxlistbox.js +29 -149
  49. package/jqwidgets/modules/jqxlistmenu.js +45 -165
  50. package/jqwidgets/modules/jqxloader.js +15 -135
  51. package/jqwidgets/modules/jqxmaskedinput.js +15 -135
  52. package/jqwidgets/modules/jqxmenu.js +27 -147
  53. package/jqwidgets/modules/jqxnavbar.js +23 -143
  54. package/jqwidgets/modules/jqxnavigationbar.js +31 -151
  55. package/jqwidgets/modules/jqxnotification.js +23 -143
  56. package/jqwidgets/modules/jqxnumberinput.js +29 -149
  57. package/jqwidgets/modules/jqxpanel.js +21 -141
  58. package/jqwidgets/modules/jqxpasswordinput.js +23 -143
  59. package/jqwidgets/modules/jqxpivotdesigner.js +53 -173
  60. package/jqwidgets/modules/jqxpivotgrid.js +53 -173
  61. package/jqwidgets/modules/jqxpopover.js +17 -137
  62. package/jqwidgets/modules/jqxprogressbar.js +15 -135
  63. package/jqwidgets/modules/jqxqrcode.js +23 -143
  64. package/jqwidgets/modules/jqxradiobutongroup.js +19 -139
  65. package/jqwidgets/modules/jqxradiobutton.js +17 -137
  66. package/jqwidgets/modules/jqxrangeselector.js +19 -139
  67. package/jqwidgets/modules/jqxrating.js +17 -137
  68. package/jqwidgets/modules/jqxrepeatbutton.js +15 -135
  69. package/jqwidgets/modules/jqxresponsivepanel.js +17 -137
  70. package/jqwidgets/modules/jqxribbon.js +19 -139
  71. package/jqwidgets/modules/jqxscheduler.js +55 -175
  72. package/jqwidgets/modules/jqxscrollbar.js +17 -137
  73. package/jqwidgets/modules/jqxscrollview.js +17 -137
  74. package/jqwidgets/modules/jqxslider.js +17 -127
  75. package/jqwidgets/modules/jqxsortable.js +14104 -68
  76. package/jqwidgets/modules/jqxsplitlayout.js +11472 -71
  77. package/jqwidgets/modules/jqxsplitter.js +13453 -68
  78. package/jqwidgets/modules/jqxswitchbutton.js +21 -131
  79. package/jqwidgets/modules/jqxtabs.js +29 -139
  80. package/jqwidgets/modules/jqxtagcloud.js +23 -133
  81. package/jqwidgets/modules/jqxtextarea.js +23 -133
  82. package/jqwidgets/modules/jqxtimeline.js +15 -125
  83. package/jqwidgets/modules/jqxtimepicker.js +17 -127
  84. package/jqwidgets/modules/jqxtogglebutton.js +15 -125
  85. package/jqwidgets/modules/jqxtoolbar.js +47 -157
  86. package/jqwidgets/modules/jqxtooltip.js +15 -125
  87. package/jqwidgets/modules/jqxtree.js +27 -137
  88. package/jqwidgets/modules/jqxtreegrid.js +47 -157
  89. package/jqwidgets/modules/jqxtreemap.js +19 -129
  90. package/jqwidgets/modules/jqxvalidator.js +21 -131
  91. package/jqwidgets/modules/jqxwindow.js +17 -127
  92. package/package.json +1 -1
  93. package/schematics/cdk/schematics/index.d.ts +1 -1
  94. package/schematics/cdk/schematics/index.js +2 -2
  95. package/schematics/cdk/schematics/index.js.map +1 -0
  96. package/schematics/cdk/schematics/migration.json +4 -4
  97. package/schematics/cdk/schematics/ng-add/index.d.ts +1 -1
  98. package/schematics/cdk/schematics/ng-add/index.js +13 -21
  99. package/schematics/cdk/schematics/ng-add/index.js.map +1 -0
  100. package/schematics/cdk/schematics/ng-add/schema.d.ts +1 -1
  101. package/schematics/cdk/schematics/ng-add/schema.js +2 -2
  102. package/schematics/cdk/schematics/ng-add/schema.js.map +1 -0
  103. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +6 -2
  104. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +1 -1
  105. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +5 -5
  106. package/schematics/cdk/schematics/ng-generate/drag-drop/index.d.ts +1 -1
  107. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js +17 -8
  108. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js.map +1 -0
  109. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.d.ts +1 -1
  110. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js +2 -2
  111. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  112. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.d.ts +1 -1
  113. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js +2 -2
  114. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  115. package/schematics/cdk/schematics/ng-update/data/class-names.d.ts +1 -1
  116. package/schematics/cdk/schematics/ng-update/data/class-names.js +2 -2
  117. package/schematics/cdk/schematics/ng-update/data/class-names.js.map +1 -0
  118. package/schematics/cdk/schematics/ng-update/data/constructor-checks.d.ts +1 -1
  119. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js +2 -2
  120. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js.map +1 -0
  121. package/schematics/cdk/schematics/ng-update/data/css-selectors.d.ts +1 -1
  122. package/schematics/cdk/schematics/ng-update/data/css-selectors.js +2 -2
  123. package/schematics/cdk/schematics/ng-update/data/css-selectors.js.map +1 -0
  124. package/schematics/cdk/schematics/ng-update/data/css-tokens.d.ts +27 -0
  125. package/schematics/cdk/schematics/ng-update/data/css-tokens.js +12 -0
  126. package/schematics/cdk/schematics/ng-update/data/css-tokens.js.map +1 -0
  127. package/schematics/cdk/schematics/ng-update/data/element-selectors.d.ts +1 -1
  128. package/schematics/cdk/schematics/ng-update/data/element-selectors.js +2 -2
  129. package/schematics/cdk/schematics/ng-update/data/element-selectors.js.map +1 -0
  130. package/schematics/cdk/schematics/ng-update/data/index.d.ts +2 -1
  131. package/schematics/cdk/schematics/ng-update/data/index.js +3 -2
  132. package/schematics/cdk/schematics/ng-update/data/index.js.map +1 -0
  133. package/schematics/cdk/schematics/ng-update/data/input-names.d.ts +1 -1
  134. package/schematics/cdk/schematics/ng-update/data/input-names.js +2 -2
  135. package/schematics/cdk/schematics/ng-update/data/input-names.js.map +1 -0
  136. package/schematics/cdk/schematics/ng-update/data/method-call-checks.d.ts +1 -1
  137. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js +2 -2
  138. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js.map +1 -0
  139. package/schematics/cdk/schematics/ng-update/data/output-names.d.ts +1 -1
  140. package/schematics/cdk/schematics/ng-update/data/output-names.js +2 -2
  141. package/schematics/cdk/schematics/ng-update/data/output-names.js.map +1 -0
  142. package/schematics/cdk/schematics/ng-update/data/property-names.d.ts +1 -1
  143. package/schematics/cdk/schematics/ng-update/data/property-names.js +2 -2
  144. package/schematics/cdk/schematics/ng-update/data/property-names.js.map +1 -0
  145. package/schematics/cdk/schematics/ng-update/data/symbol-removal.d.ts +1 -1
  146. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js +2 -2
  147. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js.map +1 -0
  148. package/schematics/cdk/schematics/ng-update/devkit-file-system.d.ts +1 -1
  149. package/schematics/cdk/schematics/ng-update/devkit-file-system.js +3 -4
  150. package/schematics/cdk/schematics/ng-update/devkit-file-system.js.map +1 -0
  151. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.d.ts +1 -1
  152. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js +19 -8
  153. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  154. package/schematics/cdk/schematics/ng-update/devkit-migration.d.ts +3 -3
  155. package/schematics/cdk/schematics/ng-update/devkit-migration.js +2 -2
  156. package/schematics/cdk/schematics/ng-update/devkit-migration.js.map +1 -0
  157. package/schematics/cdk/schematics/ng-update/find-stylesheets.d.ts +1 -1
  158. package/schematics/cdk/schematics/ng-update/find-stylesheets.js +3 -4
  159. package/schematics/cdk/schematics/ng-update/find-stylesheets.js.map +1 -0
  160. package/schematics/cdk/schematics/ng-update/html-parsing/angular.d.ts +1 -1
  161. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js +7 -8
  162. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js.map +1 -0
  163. package/schematics/cdk/schematics/ng-update/html-parsing/elements.d.ts +1 -1
  164. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js +8 -8
  165. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js.map +1 -0
  166. package/schematics/cdk/schematics/ng-update/index.d.ts +3 -3
  167. package/schematics/cdk/schematics/ng-update/index.js +6 -7
  168. package/schematics/cdk/schematics/ng-update/index.js.map +1 -0
  169. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.d.ts +1 -1
  170. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js +9 -6
  171. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  172. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.d.ts +1 -1
  173. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js +12 -9
  174. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  175. package/schematics/cdk/schematics/ng-update/migrations/class-names.d.ts +1 -1
  176. package/schematics/cdk/schematics/ng-update/migrations/class-names.js +16 -13
  177. package/schematics/cdk/schematics/ng-update/migrations/class-names.js.map +1 -0
  178. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.d.ts +1 -1
  179. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js +11 -8
  180. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  181. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.d.ts +1 -1
  182. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js +9 -6
  183. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  184. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.d.ts +26 -0
  185. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js +83 -0
  186. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  187. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.d.ts +1 -1
  188. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js +9 -6
  189. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  190. package/schematics/cdk/schematics/ng-update/migrations/input-names.d.ts +1 -1
  191. package/schematics/cdk/schematics/ng-update/migrations/input-names.js +9 -6
  192. package/schematics/cdk/schematics/ng-update/migrations/input-names.js.map +1 -0
  193. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.d.ts +1 -1
  194. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js +9 -6
  195. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  196. package/schematics/cdk/schematics/ng-update/migrations/misc-template.d.ts +1 -1
  197. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js +7 -4
  198. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js.map +1 -0
  199. package/schematics/cdk/schematics/ng-update/migrations/output-names.d.ts +1 -1
  200. package/schematics/cdk/schematics/ng-update/migrations/output-names.js +9 -6
  201. package/schematics/cdk/schematics/ng-update/migrations/output-names.js.map +1 -0
  202. package/schematics/cdk/schematics/ng-update/migrations/property-names.d.ts +1 -1
  203. package/schematics/cdk/schematics/ng-update/migrations/property-names.js +9 -6
  204. package/schematics/cdk/schematics/ng-update/migrations/property-names.js.map +1 -0
  205. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.d.ts +1 -1
  206. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js +11 -7
  207. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  208. package/schematics/cdk/schematics/ng-update/public-api.d.ts +1 -1
  209. package/schematics/cdk/schematics/ng-update/public-api.js +2 -2
  210. package/schematics/cdk/schematics/ng-update/public-api.js.map +1 -0
  211. package/schematics/cdk/schematics/ng-update/typescript/base-types.d.ts +1 -1
  212. package/schematics/cdk/schematics/ng-update/typescript/base-types.js +3 -4
  213. package/schematics/cdk/schematics/ng-update/typescript/base-types.js.map +1 -0
  214. package/schematics/cdk/schematics/ng-update/typescript/imports.d.ts +1 -1
  215. package/schematics/cdk/schematics/ng-update/typescript/imports.js +7 -8
  216. package/schematics/cdk/schematics/ng-update/typescript/imports.js.map +1 -0
  217. package/schematics/cdk/schematics/ng-update/typescript/literal.d.ts +1 -1
  218. package/schematics/cdk/schematics/ng-update/typescript/literal.js +4 -5
  219. package/schematics/cdk/schematics/ng-update/typescript/literal.js.map +1 -0
  220. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.d.ts +1 -1
  221. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js +5 -5
  222. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  223. package/schematics/cdk/schematics/ng-update/upgrade-data.d.ts +3 -2
  224. package/schematics/cdk/schematics/ng-update/upgrade-data.js +5 -4
  225. package/schematics/cdk/schematics/ng-update/upgrade-data.js.map +1 -0
  226. package/schematics/cdk/schematics/paths.d.ts +1 -1
  227. package/schematics/cdk/schematics/paths.js +2 -2
  228. package/schematics/cdk/schematics/paths.js.map +1 -0
  229. package/schematics/cdk/schematics/update-tool/component-resource-collector.d.ts +1 -1
  230. package/schematics/cdk/schematics/update-tool/component-resource-collector.js +4 -6
  231. package/schematics/cdk/schematics/update-tool/component-resource-collector.js.map +1 -0
  232. package/schematics/cdk/schematics/update-tool/file-system.d.ts +1 -1
  233. package/schematics/cdk/schematics/update-tool/file-system.js +2 -2
  234. package/schematics/cdk/schematics/update-tool/file-system.js.map +1 -0
  235. package/schematics/cdk/schematics/update-tool/index.d.ts +2 -2
  236. package/schematics/cdk/schematics/update-tool/index.js +4 -10
  237. package/schematics/cdk/schematics/update-tool/index.js.map +1 -0
  238. package/schematics/cdk/schematics/update-tool/logger.d.ts +1 -1
  239. package/schematics/cdk/schematics/update-tool/logger.js +2 -2
  240. package/schematics/cdk/schematics/update-tool/logger.js.map +1 -0
  241. package/schematics/cdk/schematics/update-tool/migration.d.ts +1 -1
  242. package/schematics/cdk/schematics/update-tool/migration.js +4 -11
  243. package/schematics/cdk/schematics/update-tool/migration.js.map +1 -0
  244. package/schematics/cdk/schematics/update-tool/public-api.d.ts +1 -1
  245. package/schematics/cdk/schematics/update-tool/public-api.js +2 -2
  246. package/schematics/cdk/schematics/update-tool/public-api.js.map +1 -0
  247. package/schematics/cdk/schematics/update-tool/target-version.d.ts +2 -2
  248. package/schematics/cdk/schematics/update-tool/target-version.js +5 -6
  249. package/schematics/cdk/schematics/update-tool/target-version.js.map +1 -0
  250. package/schematics/cdk/schematics/update-tool/update-recorder.d.ts +1 -1
  251. package/schematics/cdk/schematics/update-tool/update-recorder.js +2 -2
  252. package/schematics/cdk/schematics/update-tool/update-recorder.js.map +1 -0
  253. package/schematics/cdk/schematics/update-tool/utils/decorators.d.ts +1 -1
  254. package/schematics/cdk/schematics/update-tool/utils/decorators.js +4 -5
  255. package/schematics/cdk/schematics/update-tool/utils/decorators.js.map +1 -0
  256. package/schematics/cdk/schematics/update-tool/utils/diagnostics.d.ts +1 -1
  257. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js +3 -4
  258. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js.map +1 -0
  259. package/schematics/cdk/schematics/update-tool/utils/functions.d.ts +1 -1
  260. package/schematics/cdk/schematics/update-tool/utils/functions.js +3 -4
  261. package/schematics/cdk/schematics/update-tool/utils/functions.js.map +1 -0
  262. package/schematics/cdk/schematics/update-tool/utils/imports.d.ts +1 -1
  263. package/schematics/cdk/schematics/update-tool/utils/imports.js +3 -4
  264. package/schematics/cdk/schematics/update-tool/utils/imports.js.map +1 -0
  265. package/schematics/cdk/schematics/update-tool/utils/line-mappings.d.ts +1 -1
  266. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js +4 -5
  267. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js.map +1 -0
  268. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts +1 -1
  269. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js +4 -4
  270. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  271. package/schematics/cdk/schematics/update-tool/utils/property-name.d.ts +1 -1
  272. package/schematics/cdk/schematics/update-tool/utils/property-name.js +4 -5
  273. package/schematics/cdk/schematics/update-tool/utils/property-name.js.map +1 -0
  274. package/schematics/cdk/schematics/update-tool/utils/virtual-host.d.ts +1 -1
  275. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js +6 -7
  276. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js.map +1 -0
  277. package/schematics/cdk/schematics/update-tool/version-changes.d.ts +1 -1
  278. package/schematics/cdk/schematics/update-tool/version-changes.js +4 -5
  279. package/schematics/cdk/schematics/update-tool/version-changes.js.map +1 -0
  280. package/schematics/cdk/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  281. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js +3 -4
  282. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js.map +1 -0
  283. package/schematics/cdk/schematics/utils/ast.d.ts +3 -3
  284. package/schematics/cdk/schematics/utils/ast.js +28 -18
  285. package/schematics/cdk/schematics/utils/ast.js.map +1 -0
  286. package/schematics/cdk/schematics/utils/build-component.d.ts +1 -1
  287. package/schematics/cdk/schematics/utils/build-component.js +24 -20
  288. package/schematics/cdk/schematics/utils/build-component.js.map +1 -0
  289. package/schematics/cdk/schematics/utils/get-project.d.ts +3 -3
  290. package/schematics/cdk/schematics/utils/get-project.js +3 -4
  291. package/schematics/cdk/schematics/utils/get-project.js.map +1 -0
  292. package/schematics/cdk/schematics/utils/html-manipulation.d.ts +1 -1
  293. package/schematics/cdk/schematics/utils/html-manipulation.js +5 -6
  294. package/schematics/cdk/schematics/utils/html-manipulation.js.map +1 -0
  295. package/schematics/cdk/schematics/utils/index.d.ts +1 -1
  296. package/schematics/cdk/schematics/utils/index.js +2 -2
  297. package/schematics/cdk/schematics/utils/index.js.map +1 -0
  298. package/schematics/cdk/schematics/utils/parse5-element.d.ts +1 -1
  299. package/schematics/cdk/schematics/utils/parse5-element.js +3 -4
  300. package/schematics/cdk/schematics/utils/parse5-element.js.map +1 -0
  301. package/schematics/cdk/schematics/utils/project-index-file.d.ts +7 -4
  302. package/schematics/cdk/schematics/utils/project-index-file.js +32 -10
  303. package/schematics/cdk/schematics/utils/project-index-file.js.map +1 -0
  304. package/schematics/cdk/schematics/utils/project-main-file.d.ts +4 -3
  305. package/schematics/cdk/schematics/utils/project-main-file.js +3 -4
  306. package/schematics/cdk/schematics/utils/project-main-file.js.map +1 -0
  307. package/schematics/cdk/schematics/utils/project-style-file.d.ts +3 -3
  308. package/schematics/cdk/schematics/utils/project-style-file.js +3 -4
  309. package/schematics/cdk/schematics/utils/project-style-file.js.map +1 -0
  310. package/schematics/cdk/schematics/utils/project-targets.d.ts +6 -5
  311. package/schematics/cdk/schematics/utils/project-targets.js +19 -12
  312. package/schematics/cdk/schematics/utils/project-targets.js.map +1 -0
  313. package/schematics/cdk/schematics/utils/project-tsconfig-paths.d.ts +4 -4
  314. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js +29 -18
  315. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js.map +1 -0
  316. package/schematics/cdk/schematics/utils/schematic-options.d.ts +3 -3
  317. package/schematics/cdk/schematics/utils/schematic-options.js +30 -19
  318. package/schematics/cdk/schematics/utils/schematic-options.js.map +1 -0
  319. package/schematics/cdk2/schematics/collection.json +18 -0
  320. package/schematics/cdk2/schematics/index.d.ts +14 -0
  321. package/schematics/cdk2/schematics/index.mjs +37 -0
  322. package/schematics/cdk2/schematics/migration.json +15 -0
  323. package/schematics/cdk2/schematics/ng-add/index.d.ts +17 -0
  324. package/schematics/cdk2/schematics/ng-add/index.mjs +39 -0
  325. package/schematics/cdk2/schematics/ng-add/schema.d.ts +11 -0
  326. package/schematics/cdk2/schematics/ng-add/schema.json +16 -0
  327. package/schematics/cdk2/schematics/ng-add/schema.mjs +10 -0
  328. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +53 -0
  329. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +17 -0
  330. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +25 -0
  331. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +45 -0
  332. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.d.ts +11 -0
  333. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.mjs +33 -0
  334. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.d.ts +10 -0
  335. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.json +100 -0
  336. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.mjs +10 -0
  337. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.d.ts +15 -0
  338. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.mjs +12 -0
  339. package/schematics/cdk2/schematics/ng-update/data/class-names.d.ts +15 -0
  340. package/schematics/cdk2/schematics/ng-update/data/class-names.mjs +12 -0
  341. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.d.ts +15 -0
  342. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.mjs +17 -0
  343. package/schematics/cdk2/schematics/ng-update/data/css-selectors.d.ts +27 -0
  344. package/schematics/cdk2/schematics/ng-update/data/css-selectors.mjs +12 -0
  345. package/schematics/cdk2/schematics/ng-update/data/element-selectors.d.ts +15 -0
  346. package/schematics/cdk2/schematics/ng-update/data/element-selectors.mjs +12 -0
  347. package/schematics/cdk2/schematics/ng-update/data/index.d.ts +17 -0
  348. package/schematics/cdk2/schematics/ng-update/data/index.mjs +34 -0
  349. package/schematics/cdk2/schematics/ng-update/data/input-names.d.ts +22 -0
  350. package/schematics/cdk2/schematics/ng-update/data/input-names.mjs +12 -0
  351. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.d.ts +17 -0
  352. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.mjs +12 -0
  353. package/schematics/cdk2/schematics/ng-update/data/output-names.d.ts +22 -0
  354. package/schematics/cdk2/schematics/ng-update/data/output-names.mjs +12 -0
  355. package/schematics/cdk2/schematics/ng-update/data/property-names.d.ts +20 -0
  356. package/schematics/cdk2/schematics/ng-update/data/property-names.mjs +12 -0
  357. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.d.ts +17 -0
  358. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.mjs +12 -0
  359. package/schematics/cdk2/schematics/ng-update/devkit-file-system.d.ts +30 -0
  360. package/schematics/cdk2/schematics/ng-update/devkit-file-system.mjs +84 -0
  361. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.d.ts +24 -0
  362. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.mjs +131 -0
  363. package/schematics/cdk2/schematics/ng-update/devkit-migration.d.ts +35 -0
  364. package/schematics/cdk2/schematics/ng-update/devkit-migration.mjs +20 -0
  365. package/schematics/cdk2/schematics/ng-update/find-stylesheets.d.ts +16 -0
  366. package/schematics/cdk2/schematics/ng-update/find-stylesheets.mjs +42 -0
  367. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.d.ts +15 -0
  368. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.mjs +52 -0
  369. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.d.ts +24 -0
  370. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.mjs +63 -0
  371. package/schematics/cdk2/schematics/ng-update/index.d.ts +10 -0
  372. package/schematics/cdk2/schematics/ng-update/index.mjs +30 -0
  373. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.d.ts +26 -0
  374. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.mjs +68 -0
  375. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.d.ts +26 -0
  376. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.mjs +55 -0
  377. package/schematics/cdk2/schematics/ng-update/migrations/class-names.d.ts +32 -0
  378. package/schematics/cdk2/schematics/ng-update/migrations/class-names.mjs +88 -0
  379. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.d.ts +29 -0
  380. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.mjs +136 -0
  381. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.d.ts +26 -0
  382. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.mjs +72 -0
  383. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.d.ts +26 -0
  384. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.mjs +63 -0
  385. package/schematics/cdk2/schematics/ng-update/migrations/input-names.d.ts +26 -0
  386. package/schematics/cdk2/schematics/ng-update/migrations/input-names.mjs +56 -0
  387. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.d.ts +22 -0
  388. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.mjs +59 -0
  389. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.d.ts +18 -0
  390. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.mjs +22 -0
  391. package/schematics/cdk2/schematics/ng-update/migrations/output-names.d.ts +22 -0
  392. package/schematics/cdk2/schematics/ng-update/migrations/output-names.mjs +43 -0
  393. package/schematics/cdk2/schematics/ng-update/migrations/property-names.d.ts +22 -0
  394. package/schematics/cdk2/schematics/ng-update/migrations/property-names.mjs +57 -0
  395. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.d.ts +18 -0
  396. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.mjs +43 -0
  397. package/schematics/cdk2/schematics/ng-update/public-api.d.ts +19 -0
  398. package/schematics/cdk2/schematics/ng-update/public-api.mjs +36 -0
  399. package/schematics/cdk2/schematics/ng-update/typescript/base-types.d.ts +10 -0
  400. package/schematics/cdk2/schematics/ng-update/typescript/base-types.mjs +24 -0
  401. package/schematics/cdk2/schematics/ng-update/typescript/imports.d.ts +18 -0
  402. package/schematics/cdk2/schematics/ng-update/typescript/imports.mjs +54 -0
  403. package/schematics/cdk2/schematics/ng-update/typescript/literal.d.ts +18 -0
  404. package/schematics/cdk2/schematics/ng-update/typescript/literal.mjs +33 -0
  405. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.d.ts +16 -0
  406. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  407. package/schematics/cdk2/schematics/ng-update/upgrade-data.d.ts +34 -0
  408. package/schematics/cdk2/schematics/ng-update/upgrade-data.mjs +39 -0
  409. package/schematics/cdk2/schematics/package.json +3 -0
  410. package/schematics/cdk2/schematics/paths.d.ts +11 -0
  411. package/schematics/cdk2/schematics/paths.mjs +16 -0
  412. package/schematics/cdk2/schematics/update-tool/component-resource-collector.d.ts +44 -0
  413. package/schematics/cdk2/schematics/update-tool/component-resource-collector.mjs +166 -0
  414. package/schematics/cdk2/schematics/update-tool/file-system.d.ts +72 -0
  415. package/schematics/cdk2/schematics/update-tool/file-system.mjs +18 -0
  416. package/schematics/cdk2/schematics/update-tool/index.d.ts +74 -0
  417. package/schematics/cdk2/schematics/update-tool/index.mjs +178 -0
  418. package/schematics/cdk2/schematics/update-tool/logger.d.ts +15 -0
  419. package/schematics/cdk2/schematics/update-tool/logger.mjs +18 -0
  420. package/schematics/cdk2/schematics/update-tool/migration.d.ts +87 -0
  421. package/schematics/cdk2/schematics/update-tool/migration.mjs +77 -0
  422. package/schematics/cdk2/schematics/update-tool/public-api.d.ts +16 -0
  423. package/schematics/cdk2/schematics/update-tool/public-api.mjs +33 -0
  424. package/schematics/cdk2/schematics/update-tool/target-version.d.ts +16 -0
  425. package/schematics/cdk2/schematics/update-tool/target-version.mjs +28 -0
  426. package/schematics/cdk2/schematics/update-tool/update-recorder.d.ts +13 -0
  427. package/schematics/cdk2/schematics/update-tool/update-recorder.mjs +10 -0
  428. package/schematics/cdk2/schematics/update-tool/utils/decorators.d.ts +22 -0
  429. package/schematics/cdk2/schematics/update-tool/utils/decorators.mjs +42 -0
  430. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.d.ts +11 -0
  431. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.mjs +19 -0
  432. package/schematics/cdk2/schematics/update-tool/utils/functions.d.ts +14 -0
  433. package/schematics/cdk2/schematics/update-tool/utils/functions.mjs +21 -0
  434. package/schematics/cdk2/schematics/update-tool/utils/imports.d.ts +17 -0
  435. package/schematics/cdk2/schematics/update-tool/utils/imports.mjs +111 -0
  436. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.d.ts +21 -0
  437. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.mjs +76 -0
  438. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.d.ts +18 -0
  439. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.mjs +45 -0
  440. package/schematics/cdk2/schematics/update-tool/utils/property-name.d.ts +18 -0
  441. package/schematics/cdk2/schematics/update-tool/utils/property-name.mjs +28 -0
  442. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.d.ts +36 -0
  443. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.mjs +72 -0
  444. package/schematics/cdk2/schematics/update-tool/version-changes.d.ts +32 -0
  445. package/schematics/cdk2/schematics/update-tool/version-changes.mjs +39 -0
  446. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.d.ts +12 -0
  447. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.mjs +83 -0
  448. package/schematics/cdk2/schematics/utils/ast.d.ts +25 -0
  449. package/schematics/cdk2/schematics/utils/ast.mjs +69 -0
  450. package/schematics/cdk2/schematics/utils/build-component.d.ts +20 -0
  451. package/schematics/cdk2/schematics/utils/build-component.mjs +184 -0
  452. package/schematics/cdk2/schematics/utils/get-project.d.ts +13 -0
  453. package/schematics/cdk2/schematics/utils/get-project.mjs +29 -0
  454. package/schematics/cdk2/schematics/utils/html-manipulation.d.ts +15 -0
  455. package/schematics/cdk2/schematics/utils/html-manipulation.mjs +92 -0
  456. package/schematics/cdk2/schematics/utils/index.d.ts +19 -0
  457. package/schematics/cdk2/schematics/utils/index.mjs +36 -0
  458. package/schematics/cdk2/schematics/utils/parse5-element.d.ts +12 -0
  459. package/schematics/cdk2/schematics/utils/parse5-element.mjs +31 -0
  460. package/schematics/cdk2/schematics/utils/project-index-file.d.ts +10 -0
  461. package/schematics/cdk2/schematics/utils/project-index-file.mjs +21 -0
  462. package/schematics/cdk2/schematics/utils/project-main-file.d.ts +10 -0
  463. package/schematics/cdk2/schematics/utils/project-main-file.mjs +26 -0
  464. package/schematics/cdk2/schematics/utils/project-style-file.d.ts +13 -0
  465. package/schematics/cdk2/schematics/utils/project-style-file.mjs +43 -0
  466. package/schematics/cdk2/schematics/utils/project-targets.d.ts +14 -0
  467. package/schematics/cdk2/schematics/utils/project-targets.mjs +39 -0
  468. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.d.ts +14 -0
  469. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.mjs +35 -0
  470. package/schematics/cdk2/schematics/utils/schematic-options.d.ts +20 -0
  471. package/schematics/cdk2/schematics/utils/schematic-options.mjs +78 -0
  472. /package/schematics/{cdk/schematics/index.mjs → cdk2/schematics/index.js} +0 -0
  473. /package/schematics/{cdk/schematics/ng-add/index.mjs → cdk2/schematics/ng-add/index.js} +0 -0
  474. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.d.ts +0 -0
  475. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.js +0 -0
  476. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.mjs +0 -0
  477. /package/schematics/{cdk/schematics/ng-add/schema.mjs → cdk2/schematics/ng-add/schema.js} +0 -0
  478. /package/schematics/{cdk/schematics/ng-generate/drag-drop/index.mjs → cdk2/schematics/ng-generate/drag-drop/index.js} +0 -0
  479. /package/schematics/{cdk/schematics/ng-generate/drag-drop/schema.mjs → cdk2/schematics/ng-generate/drag-drop/schema.js} +0 -0
  480. /package/schematics/{cdk/schematics/ng-update/data/attribute-selectors.mjs → cdk2/schematics/ng-update/data/attribute-selectors.js} +0 -0
  481. /package/schematics/{cdk/schematics/ng-update/data/class-names.mjs → cdk2/schematics/ng-update/data/class-names.js} +0 -0
  482. /package/schematics/{cdk/schematics/ng-update/data/constructor-checks.mjs → cdk2/schematics/ng-update/data/constructor-checks.js} +0 -0
  483. /package/schematics/{cdk/schematics/ng-update/data/css-selectors.mjs → cdk2/schematics/ng-update/data/css-selectors.js} +0 -0
  484. /package/schematics/{cdk/schematics/ng-update/data/element-selectors.mjs → cdk2/schematics/ng-update/data/element-selectors.js} +0 -0
  485. /package/schematics/{cdk/schematics/ng-update/data/index.mjs → cdk2/schematics/ng-update/data/index.js} +0 -0
  486. /package/schematics/{cdk/schematics/ng-update/data/input-names.mjs → cdk2/schematics/ng-update/data/input-names.js} +0 -0
  487. /package/schematics/{cdk/schematics/ng-update/data/method-call-checks.mjs → cdk2/schematics/ng-update/data/method-call-checks.js} +0 -0
  488. /package/schematics/{cdk/schematics/ng-update/data/output-names.mjs → cdk2/schematics/ng-update/data/output-names.js} +0 -0
  489. /package/schematics/{cdk/schematics/ng-update/data/property-names.mjs → cdk2/schematics/ng-update/data/property-names.js} +0 -0
  490. /package/schematics/{cdk/schematics/ng-update/data/symbol-removal.mjs → cdk2/schematics/ng-update/data/symbol-removal.js} +0 -0
  491. /package/schematics/{cdk/schematics/ng-update/devkit-file-system.mjs → cdk2/schematics/ng-update/devkit-file-system.js} +0 -0
  492. /package/schematics/{cdk/schematics/ng-update/devkit-migration-rule.mjs → cdk2/schematics/ng-update/devkit-migration-rule.js} +0 -0
  493. /package/schematics/{cdk/schematics/ng-update/devkit-migration.mjs → cdk2/schematics/ng-update/devkit-migration.js} +0 -0
  494. /package/schematics/{cdk/schematics/ng-update/find-stylesheets.mjs → cdk2/schematics/ng-update/find-stylesheets.js} +0 -0
  495. /package/schematics/{cdk/schematics/ng-update/html-parsing/angular.mjs → cdk2/schematics/ng-update/html-parsing/angular.js} +0 -0
  496. /package/schematics/{cdk/schematics/ng-update/html-parsing/elements.mjs → cdk2/schematics/ng-update/html-parsing/elements.js} +0 -0
  497. /package/schematics/{cdk/schematics/ng-update/index.mjs → cdk2/schematics/ng-update/index.js} +0 -0
  498. /package/schematics/{cdk/schematics/ng-update/migrations/attribute-selectors.mjs → cdk2/schematics/ng-update/migrations/attribute-selectors.js} +0 -0
  499. /package/schematics/{cdk/schematics/ng-update/migrations/class-inheritance.mjs → cdk2/schematics/ng-update/migrations/class-inheritance.js} +0 -0
  500. /package/schematics/{cdk/schematics/ng-update/migrations/class-names.mjs → cdk2/schematics/ng-update/migrations/class-names.js} +0 -0
  501. /package/schematics/{cdk/schematics/ng-update/migrations/constructor-signature.mjs → cdk2/schematics/ng-update/migrations/constructor-signature.js} +0 -0
  502. /package/schematics/{cdk/schematics/ng-update/migrations/css-selectors.mjs → cdk2/schematics/ng-update/migrations/css-selectors.js} +0 -0
  503. /package/schematics/{cdk/schematics/ng-update/migrations/element-selectors.mjs → cdk2/schematics/ng-update/migrations/element-selectors.js} +0 -0
  504. /package/schematics/{cdk/schematics/ng-update/migrations/input-names.mjs → cdk2/schematics/ng-update/migrations/input-names.js} +0 -0
  505. /package/schematics/{cdk/schematics/ng-update/migrations/method-call-arguments.mjs → cdk2/schematics/ng-update/migrations/method-call-arguments.js} +0 -0
  506. /package/schematics/{cdk/schematics/ng-update/migrations/misc-template.mjs → cdk2/schematics/ng-update/migrations/misc-template.js} +0 -0
  507. /package/schematics/{cdk/schematics/ng-update/migrations/output-names.mjs → cdk2/schematics/ng-update/migrations/output-names.js} +0 -0
  508. /package/schematics/{cdk/schematics/ng-update/migrations/property-names.mjs → cdk2/schematics/ng-update/migrations/property-names.js} +0 -0
  509. /package/schematics/{cdk/schematics/ng-update/migrations/symbol-removal.mjs → cdk2/schematics/ng-update/migrations/symbol-removal.js} +0 -0
  510. /package/schematics/{cdk/schematics/ng-update/public-api.mjs → cdk2/schematics/ng-update/public-api.js} +0 -0
  511. /package/schematics/{cdk/schematics/ng-update/typescript/base-types.mjs → cdk2/schematics/ng-update/typescript/base-types.js} +0 -0
  512. /package/schematics/{cdk/schematics/ng-update/typescript/imports.mjs → cdk2/schematics/ng-update/typescript/imports.js} +0 -0
  513. /package/schematics/{cdk/schematics/ng-update/typescript/literal.mjs → cdk2/schematics/ng-update/typescript/literal.js} +0 -0
  514. /package/schematics/{cdk/schematics/ng-update/typescript/module-specifiers.mjs → cdk2/schematics/ng-update/typescript/module-specifiers.js} +0 -0
  515. /package/schematics/{cdk/schematics/ng-update/upgrade-data.mjs → cdk2/schematics/ng-update/upgrade-data.js} +0 -0
  516. /package/schematics/{cdk/schematics/paths.mjs → cdk2/schematics/paths.js} +0 -0
  517. /package/schematics/{cdk → cdk2}/schematics/schematics.externs.js +0 -0
  518. /package/schematics/{cdk → cdk2}/schematics/tsconfig.json +0 -0
  519. /package/schematics/{cdk/schematics/update-tool/component-resource-collector.mjs → cdk2/schematics/update-tool/component-resource-collector.js} +0 -0
  520. /package/schematics/{cdk/schematics/update-tool/file-system.mjs → cdk2/schematics/update-tool/file-system.js} +0 -0
  521. /package/schematics/{cdk/schematics/update-tool/index.mjs → cdk2/schematics/update-tool/index.js} +0 -0
  522. /package/schematics/{cdk/schematics/update-tool/logger.mjs → cdk2/schematics/update-tool/logger.js} +0 -0
  523. /package/schematics/{cdk/schematics/update-tool/migration.mjs → cdk2/schematics/update-tool/migration.js} +0 -0
  524. /package/schematics/{cdk/schematics/update-tool/public-api.mjs → cdk2/schematics/update-tool/public-api.js} +0 -0
  525. /package/schematics/{cdk/schematics/update-tool/target-version.mjs → cdk2/schematics/update-tool/target-version.js} +0 -0
  526. /package/schematics/{cdk/schematics/update-tool/update-recorder.mjs → cdk2/schematics/update-tool/update-recorder.js} +0 -0
  527. /package/schematics/{cdk → cdk2}/schematics/update-tool/update-tool.externs.js +0 -0
  528. /package/schematics/{cdk/schematics/update-tool/utils/decorators.mjs → cdk2/schematics/update-tool/utils/decorators.js} +0 -0
  529. /package/schematics/{cdk/schematics/update-tool/utils/diagnostics.mjs → cdk2/schematics/update-tool/utils/diagnostics.js} +0 -0
  530. /package/schematics/{cdk/schematics/update-tool/utils/functions.mjs → cdk2/schematics/update-tool/utils/functions.js} +0 -0
  531. /package/schematics/{cdk/schematics/update-tool/utils/imports.mjs → cdk2/schematics/update-tool/utils/imports.js} +0 -0
  532. /package/schematics/{cdk/schematics/update-tool/utils/line-mappings.mjs → cdk2/schematics/update-tool/utils/line-mappings.js} +0 -0
  533. /package/schematics/{cdk/schematics/update-tool/utils/parse-tsconfig.mjs → cdk2/schematics/update-tool/utils/parse-tsconfig.js} +0 -0
  534. /package/schematics/{cdk/schematics/update-tool/utils/property-name.mjs → cdk2/schematics/update-tool/utils/property-name.js} +0 -0
  535. /package/schematics/{cdk/schematics/update-tool/utils/virtual-host.mjs → cdk2/schematics/update-tool/utils/virtual-host.js} +0 -0
  536. /package/schematics/{cdk/schematics/update-tool/version-changes.mjs → cdk2/schematics/update-tool/version-changes.js} +0 -0
  537. /package/schematics/{cdk/schematics/utils/ast/ng-module-imports.mjs → cdk2/schematics/utils/ast/ng-module-imports.js} +0 -0
  538. /package/schematics/{cdk/schematics/utils/ast.mjs → cdk2/schematics/utils/ast.js} +0 -0
  539. /package/schematics/{cdk/schematics/utils/build-component.mjs → cdk2/schematics/utils/build-component.js} +0 -0
  540. /package/schematics/{cdk/schematics/utils/get-project.mjs → cdk2/schematics/utils/get-project.js} +0 -0
  541. /package/schematics/{cdk/schematics/utils/html-manipulation.mjs → cdk2/schematics/utils/html-manipulation.js} +0 -0
  542. /package/schematics/{cdk/schematics/utils/index.mjs → cdk2/schematics/utils/index.js} +0 -0
  543. /package/schematics/{cdk/schematics/utils/parse5-element.mjs → cdk2/schematics/utils/parse5-element.js} +0 -0
  544. /package/schematics/{cdk/schematics/utils/project-index-file.mjs → cdk2/schematics/utils/project-index-file.js} +0 -0
  545. /package/schematics/{cdk/schematics/utils/project-main-file.mjs → cdk2/schematics/utils/project-main-file.js} +0 -0
  546. /package/schematics/{cdk/schematics/utils/project-style-file.mjs → cdk2/schematics/utils/project-style-file.js} +0 -0
  547. /package/schematics/{cdk/schematics/utils/project-targets.mjs → cdk2/schematics/utils/project-targets.js} +0 -0
  548. /package/schematics/{cdk/schematics/utils/project-tsconfig-paths.mjs → cdk2/schematics/utils/project-tsconfig-paths.js} +0 -0
  549. /package/schematics/{cdk/schematics/utils/schematic-options.mjs → cdk2/schematics/utils/schematic-options.js} +0 -0
@@ -0,0 +1,166 @@
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.ComponentResourceCollector = void 0;
11
+ const path_1 = require("path");
12
+ const ts = require("typescript");
13
+ const decorators_1 = require("./utils/decorators");
14
+ const functions_1 = require("./utils/functions");
15
+ const line_mappings_1 = require("./utils/line-mappings");
16
+ const property_name_1 = require("./utils/property-name");
17
+ /**
18
+ * Collector that can be used to find Angular templates and stylesheets referenced within
19
+ * given TypeScript source files (inline or external referenced files)
20
+ */
21
+ class ComponentResourceCollector {
22
+ typeChecker;
23
+ _fileSystem;
24
+ resolvedTemplates = [];
25
+ resolvedStylesheets = [];
26
+ constructor(typeChecker, _fileSystem) {
27
+ this.typeChecker = typeChecker;
28
+ this._fileSystem = _fileSystem;
29
+ }
30
+ visitNode(node) {
31
+ if (node.kind === ts.SyntaxKind.ClassDeclaration) {
32
+ this._visitClassDeclaration(node);
33
+ }
34
+ }
35
+ _visitClassDeclaration(node) {
36
+ const decorators = ts.getDecorators(node);
37
+ if (!decorators || !decorators.length) {
38
+ return;
39
+ }
40
+ const ngDecorators = (0, decorators_1.getAngularDecorators)(this.typeChecker, decorators);
41
+ const componentDecorator = ngDecorators.find(dec => dec.name === 'Component');
42
+ // In case no "@Component" decorator could be found on the current class, skip.
43
+ if (!componentDecorator) {
44
+ return;
45
+ }
46
+ const decoratorCall = componentDecorator.node.expression;
47
+ // In case the component decorator call is not valid, skip this class declaration.
48
+ if (decoratorCall.arguments.length !== 1) {
49
+ return;
50
+ }
51
+ const componentMetadata = (0, functions_1.unwrapExpression)(decoratorCall.arguments[0]);
52
+ // Ensure that the component metadata is an object literal expression.
53
+ if (!ts.isObjectLiteralExpression(componentMetadata)) {
54
+ return;
55
+ }
56
+ const sourceFile = node.getSourceFile();
57
+ const filePath = this._fileSystem.resolve(sourceFile.fileName);
58
+ const sourceFileDirPath = (0, path_1.dirname)(sourceFile.fileName);
59
+ // Walk through all component metadata properties and determine the referenced
60
+ // HTML templates (either external or inline)
61
+ componentMetadata.properties.forEach(property => {
62
+ if (!ts.isPropertyAssignment(property)) {
63
+ return;
64
+ }
65
+ const propertyName = (0, property_name_1.getPropertyNameText)(property.name);
66
+ if (propertyName === 'styles') {
67
+ const elements = ts.isArrayLiteralExpression(property.initializer)
68
+ ? property.initializer.elements
69
+ : [property.initializer];
70
+ elements.forEach(el => {
71
+ if (ts.isStringLiteralLike(el)) {
72
+ // Need to add an offset of one to the start because the template quotes are
73
+ // not part of the template content.
74
+ const templateStartIdx = el.getStart() + 1;
75
+ const content = stripBom(el.text);
76
+ this.resolvedStylesheets.push({
77
+ filePath,
78
+ container: node,
79
+ content,
80
+ inline: true,
81
+ start: templateStartIdx,
82
+ getCharacterAndLineOfPosition: pos => ts.getLineAndCharacterOfPosition(sourceFile, pos + templateStartIdx),
83
+ });
84
+ }
85
+ });
86
+ }
87
+ // In case there is an inline template specified, ensure that the value is statically
88
+ // analyzable by checking if the initializer is a string literal-like node.
89
+ if (propertyName === 'template' && ts.isStringLiteralLike(property.initializer)) {
90
+ // Need to add an offset of one to the start because the template quotes are
91
+ // not part of the template content.
92
+ const templateStartIdx = property.initializer.getStart() + 1;
93
+ this.resolvedTemplates.push({
94
+ filePath,
95
+ container: node,
96
+ content: property.initializer.text,
97
+ inline: true,
98
+ start: templateStartIdx,
99
+ getCharacterAndLineOfPosition: pos => ts.getLineAndCharacterOfPosition(sourceFile, pos + templateStartIdx),
100
+ });
101
+ }
102
+ if (propertyName === 'styleUrls' && ts.isArrayLiteralExpression(property.initializer)) {
103
+ property.initializer.elements.forEach(el => {
104
+ if (ts.isStringLiteralLike(el)) {
105
+ this._trackExternalStylesheet(sourceFileDirPath, el, node);
106
+ }
107
+ });
108
+ }
109
+ if (propertyName === 'styleUrl' && ts.isStringLiteralLike(property.initializer)) {
110
+ this._trackExternalStylesheet(sourceFileDirPath, property.initializer, node);
111
+ }
112
+ if (propertyName === 'templateUrl' && ts.isStringLiteralLike(property.initializer)) {
113
+ const templateUrl = property.initializer.text;
114
+ const templatePath = this._fileSystem.resolve(sourceFileDirPath, templateUrl);
115
+ // In case the template does not exist in the file system, skip this
116
+ // external template.
117
+ if (!this._fileSystem.fileExists(templatePath)) {
118
+ return;
119
+ }
120
+ const fileContent = stripBom(this._fileSystem.read(templatePath) || '');
121
+ if (fileContent) {
122
+ const lineStartsMap = (0, line_mappings_1.computeLineStartsMap)(fileContent);
123
+ this.resolvedTemplates.push({
124
+ filePath: templatePath,
125
+ container: node,
126
+ content: fileContent,
127
+ inline: false,
128
+ start: 0,
129
+ getCharacterAndLineOfPosition: p => (0, line_mappings_1.getLineAndCharacterFromPosition)(lineStartsMap, p),
130
+ });
131
+ }
132
+ }
133
+ });
134
+ }
135
+ /** Resolves an external stylesheet by reading its content and computing line mappings. */
136
+ resolveExternalStylesheet(filePath, container) {
137
+ // Strip the BOM to avoid issues with the Sass compiler. See:
138
+ // https://github.com/angular/components/issues/24227#issuecomment-1200934258
139
+ const fileContent = stripBom(this._fileSystem.read(filePath) || '');
140
+ if (!fileContent) {
141
+ return null;
142
+ }
143
+ const lineStartsMap = (0, line_mappings_1.computeLineStartsMap)(fileContent);
144
+ return {
145
+ filePath: filePath,
146
+ container: container,
147
+ content: fileContent,
148
+ inline: false,
149
+ start: 0,
150
+ getCharacterAndLineOfPosition: pos => (0, line_mappings_1.getLineAndCharacterFromPosition)(lineStartsMap, pos),
151
+ };
152
+ }
153
+ _trackExternalStylesheet(sourceFileDirPath, node, container) {
154
+ const stylesheetPath = this._fileSystem.resolve(sourceFileDirPath, node.text);
155
+ const stylesheet = this.resolveExternalStylesheet(stylesheetPath, container);
156
+ if (stylesheet) {
157
+ this.resolvedStylesheets.push(stylesheet);
158
+ }
159
+ }
160
+ }
161
+ exports.ComponentResourceCollector = ComponentResourceCollector;
162
+ /** Strips the BOM from a string. */
163
+ function stripBom(content) {
164
+ return content.replace(/\uFEFF/g, '');
165
+ }
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUE2QjtBQUM3QixpQ0FBaUM7QUFFakMsbURBQXdEO0FBQ3hELGlEQUFtRDtBQUNuRCx5REFJK0I7QUFDL0IseURBQTBEO0FBcUIxRDs7O0dBR0c7QUFDSCxNQUFhLDBCQUEwQjtJQUs1QjtJQUNDO0lBTFYsaUJBQWlCLEdBQXVCLEVBQUUsQ0FBQztJQUMzQyxtQkFBbUIsR0FBdUIsRUFBRSxDQUFDO0lBRTdDLFlBQ1MsV0FBMkIsRUFDMUIsV0FBdUI7UUFEeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO0lBQzlCLENBQUM7SUFFSixTQUFTLENBQUMsSUFBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBMkIsQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQXlCO1FBQ3RELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxpQ0FBb0IsRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxD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RUFBRSxHQUFHLENBQUM7U0FDMUYsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0IsQ0FDOUIsaUJBQXlCLEVBQ3pCLElBQTBCLEVBQzFCLFNBQThCO1FBRTlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTdFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7Q0FDRjtBQS9LRCxnRUErS0M7QUFFRCxvQ0FBb0M7QUFDcEMsU0FBUyxRQUFRLENBQUMsT0FBZTtJQUMvQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtkaXJuYW1lfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7Z2V0QW5ndWxhckRlY29yYXRvcnN9IGZyb20gJy4vdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQge3Vud3JhcEV4cHJlc3Npb259IGZyb20gJy4vdXRpbHMvZnVuY3Rpb25zJztcbmltcG9ydCB7XG4gIGNvbXB1dGVMaW5lU3RhcnRzTWFwLFxuICBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uLFxuICBMaW5lQW5kQ2hhcmFjdGVyLFxufSBmcm9tICcuL3V0aWxzL2xpbmUtbWFwcGluZ3MnO1xuaW1wb3J0IHtnZXRQcm9wZXJ0eU5hbWVUZXh0fSBmcm9tICcuL3V0aWxzL3Byb3BlcnR5LW5hbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkUmVzb3VyY2Uge1xuICAvKiogQ2xhc3MgZGVjbGFyYXRpb24gdGhhdCBjb250YWlucyB0aGlzIHJlc291cmNlLiAqL1xuICBjb250YWluZXI6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsO1xuICAvKiogRmlsZSBjb250ZW50IG9mIHRoZSBnaXZlbiB0ZW1wbGF0ZS4gKi9cbiAgY29udGVudDogc3RyaW5nO1xuICAvKiogU3RhcnQgb2Zmc2V0IG9mIHRoZSByZXNvdXJjZSBjb250ZW50IChlLmcuIGluIHRoZSBpbmxpbmUgc291cmNlIGZpbGUpICovXG4gIHN0YXJ0OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBnaXZlbiByZXNvdXJjZSBpcyBpbmxpbmUgb3Igbm90LiAqL1xuICBpbmxpbmU6IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhpcyByZXNvdXJjZS4gKi9cbiAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGg7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYW5kIGxpbmUgb2YgYSBnaXZlbiBwb3NpdGlvbiBpbmRleCBpbiB0aGUgcmVzb3VyY2UuXG4gICAqIElmIHRoZSByZXNvdXJjZSBpcyBkZWNsYXJlZCBpbmxpbmUgd2l0aGluIGEgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZSwgdGhlIGxpbmUgYW5kXG4gICAqIGNoYXJhY3RlciBhcmUgYmFzZWQgb24gdGhlIGZ1bGwgc291cmNlIGZpbGUgY29udGVudC5cbiAgICovXG4gIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiAocG9zOiBudW1iZXIpID0+IExpbmVBbmRDaGFyYWN0ZXI7XG59XG5cbi8qKlxuICogQ29sbGVjdG9yIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmluZCBBbmd1bGFyIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMgcmVmZXJlbmNlZCB3aXRoaW5cbiAqIGdpdmVuIFR5cGVTY3JpcHQgc291cmNlIGZpbGVzIChpbmxpbmUgb3IgZXh0ZXJuYWwgcmVmZXJlbmNlZCBmaWxlcylcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudFJlc291cmNlQ29sbGVjdG9yIHtcbiAgcmVzb2x2ZWRUZW1wbGF0ZXM6IFJlc29sdmVkUmVzb3VyY2VbXSA9IFtdO1xuICByZXNvbHZlZFN0eWxlc2hlZXRzOiBSZXNvbHZlZFJlc291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICAgIHByaXZhdGUgX2ZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4gICkge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGlmIChub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgICAgdGhpcy5fdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGUgYXMgdHMuQ2xhc3NEZWNsYXJhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pIHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gdHMuZ2V0RGVjb3JhdG9ycyhub2RlKTtcblxuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZ0RlY29yYXRvcnMgPSBnZXRBbmd1bGFyRGVjb3JhdG9ycyh0aGlzLnR5cGVDaGVja2VyLCBkZWNvcmF0b3JzKTtcbiAgICBjb25zdCBjb21wb25lbnREZWNvcmF0b3IgPSBuZ0RlY29yYXRvcnMuZmluZChkZWMgPT4gZGVjLm5hbWUgPT09ICdDb21wb25lbnQnKTtcblxuICAgIC8vIEluIGNhc2Ugbm8gXCJAQ29tcG9uZW50XCIgZGVjb3JhdG9yIGNvdWxkIGJlIGZvdW5kIG9uIHRoZSBjdXJyZW50IGNsYXNzLCBza2lwLlxuICAgIGlmICghY29tcG9uZW50RGVjb3JhdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb3JhdG9yQ2FsbCA9IGNvbXBvbmVudERlY29yYXRvci5ub2RlLmV4cHJlc3Npb247XG5cbiAgICAvLyBJbiBjYXNlIHRoZSBjb21wb25lbnQgZGVjb3JhdG9yIGNhbGwgaXMgbm90IHZhbGlkLCBza2lwIHRoaXMgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAgaWYgKGRlY29yYXRvckNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudE1ldGFkYXRhID0gdW53cmFwRXhwcmVzc2lvbihkZWNvcmF0b3JDYWxsLmFyZ3VtZW50c1swXSk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgY29tcG9uZW50IG1ldGFkYXRhIGlzIGFuIG9iamVjdCBsaXRlcmFsIGV4cHJlc3Npb24uXG4gICAgaWYgKCF0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGNvbXBvbmVudE1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcbiAgICBjb25zdCBzb3VyY2VGaWxlRGlyUGF0aCA9IGRpcm5hbWUoc291cmNlRmlsZS5maWxlTmFtZSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIGNvbXBvbmVudCBtZXRhZGF0YSBwcm9wZXJ0aWVzIGFuZCBkZXRlcm1pbmUgdGhlIHJlZmVyZW5jZWRcbiAgICAvLyBIVE1MIHRlbXBsYXRlcyAoZWl0aGVyIGV4dGVybmFsIG9yIGlubGluZSlcbiAgICBjb21wb25lbnRNZXRhZGF0YS5wcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgaWYgKCF0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWVUZXh0KHByb3BlcnR5Lm5hbWUpO1xuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnc3R5bGVzJykge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihwcm9wZXJ0eS5pbml0aWFsaXplcilcbiAgICAgICAgICA/IHByb3BlcnR5LmluaXRpYWxpemVyLmVsZW1lbnRzXG4gICAgICAgICAgOiBbcHJvcGVydHkuaW5pdGlhbGl6ZXJdO1xuXG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKGVsKSkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBhZGQgYW4gb2Zmc2V0IG9mIG9uZSB0byB0aGUgc3RhcnQgYmVjYXVzZSB0aGUgdGVtcGxhdGUgcXVvdGVzIGFyZVxuICAgICAgICAgICAgLy8gbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGNvbnRlbnQuXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gZWwuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RyaXBCb20oZWwudGV4dCk7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkU3R5bGVzaGVldHMucHVzaCh7XG4gICAgICAgICAgICAgIGZpbGVQYXRoLFxuICAgICAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc3RhcnQ6IHRlbXBsYXRlU3RhcnRJZHgsXG4gICAgICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgICAgICB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihzb3VyY2VGaWxlLCBwb3MgKyB0ZW1wbGF0ZVN0YXJ0SWR4KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gaW5saW5lIHRlbXBsYXRlIHNwZWNpZmllZCwgZW5zdXJlIHRoYXQgdGhlIHZhbHVlIGlzIHN0YXRpY2FsbHlcbiAgICAgIC8vIGFuYWx5emFibGUgYnkgY2hlY2tpbmcgaWYgdGhlIGluaXRpYWxpemVyIGlzIGEgc3RyaW5nIGxpdGVyYWwtbGlrZSBub2RlLlxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3RlbXBsYXRlJyAmJiB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICAvLyBOZWVkIHRvIGFkZCBhbiBvZmZzZXQgb2Ygb25lIHRvIHRoZSBzdGFydCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBxdW90ZXMgYXJlXG4gICAgICAgIC8vIG5vdCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBjb250ZW50LlxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgIHRoaXMucmVzb2x2ZWRUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgY29udGFpbmVyOiBub2RlLFxuICAgICAgICAgIGNvbnRlbnQ6IHByb3BlcnR5LmluaXRpYWxpemVyLnRleHQsXG4gICAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICAgIHN0YXJ0OiB0ZW1wbGF0ZVN0YXJ0SWR4LFxuICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIHBvcyArIHRlbXBsYXRlU3RhcnRJZHgpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3N0eWxlVXJscycgJiYgdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICBwcm9wZXJ0eS5pbml0aWFsaXplci5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShlbCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyYWNrRXh0ZXJuYWxTdHlsZXNoZWV0KHNvdXJjZUZpbGVEaXJQYXRoLCBlbCwgbm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3N0eWxlVXJsJyAmJiB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICB0aGlzLl90cmFja0V4dGVybmFsU3R5bGVzaGVldChzb3VyY2VGaWxlRGlyUGF0aCwgcHJvcGVydHkuaW5pdGlhbGl6ZXIsIG5vZGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAndGVtcGxhdGVVcmwnICYmIHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIudGV4dDtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGVEaXJQYXRoLCB0ZW1wbGF0ZVVybCk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgdGVtcGxhdGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGZpbGUgc3lzdGVtLCBza2lwIHRoaXNcbiAgICAgICAgLy8gZXh0ZXJuYWwgdGVtcGxhdGUuXG4gICAgICAgIGlmICghdGhpcy5fZmlsZVN5c3RlbS5maWxlRXhpc3RzKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IHN0cmlwQm9tKHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZCh0ZW1wbGF0ZVBhdGgpIHx8ICcnKTtcblxuICAgICAgICBpZiAoZmlsZUNvbnRlbnQpIHtcbiAgICAgICAgICBjb25zdCBsaW5lU3RhcnRzTWFwID0gY29tcHV0ZUxpbmVTdGFydHNNYXAoZmlsZUNvbnRlbnQpO1xuXG4gICAgICAgICAgdGhpcy5yZXNvbHZlZFRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICAgIGZpbGVQYXRoOiB0ZW1wbGF0ZVBhdGgsXG4gICAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgICBjb250ZW50OiBmaWxlQ29udGVudCxcbiAgICAgICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwID0+IGdldExpbmVBbmRDaGFyYWN0ZXJGcm9tUG9zaXRpb24obGluZVN0YXJ0c01hcCwgcCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBSZXNvbHZlcyBhbiBleHRlcm5hbCBzdHlsZXNoZWV0IGJ5IHJlYWRpbmcgaXRzIGNvbnRlbnQgYW5kIGNvbXB1dGluZyBsaW5lIG1hcHBpbmdzLiAqL1xuICByZXNvbHZlRXh0ZXJuYWxTdHlsZXNoZWV0KFxuICAgIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoLFxuICAgIGNvbnRhaW5lcjogdHMuQ2xhc3NEZWNsYXJhdGlvbiB8IG51bGwsXG4gICk6IFJlc29sdmVkUmVzb3VyY2UgfCBudWxsIHtcbiAgICAvLyBTdHJpcCB0aGUgQk9NIHRvIGF2b2lkIGlzc3VlcyB3aXRoIHRoZSBTYXNzIGNvbXBpbGVyLiBTZWU6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjQyMjcjaXNzdWVjb21tZW50LTEyMDA5MzQyNThcbiAgICBjb25zdCBmaWxlQ29udGVudCA9IHN0cmlwQm9tKHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZChmaWxlUGF0aCkgfHwgJycpO1xuXG4gICAgaWYgKCFmaWxlQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbGluZVN0YXJ0c01hcCA9IGNvbXB1dGVMaW5lU3RhcnRzTWFwKGZpbGVDb250ZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWxlUGF0aDogZmlsZVBhdGgsXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lcixcbiAgICAgIGNvbnRlbnQ6IGZpbGVDb250ZW50LFxuICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgIHN0YXJ0OiAwLFxuICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHBvcyA9PiBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uKGxpbmVTdGFydHNNYXAsIHBvcyksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYWNrRXh0ZXJuYWxTdHlsZXNoZWV0KFxuICAgIHNvdXJjZUZpbGVEaXJQYXRoOiBzdHJpbmcsXG4gICAgbm9kZTogdHMuU3RyaW5nTGl0ZXJhbExpa2UsXG4gICAgY29udGFpbmVyOiB0cy5DbGFzc0RlY2xhcmF0aW9uLFxuICApIHtcbiAgICBjb25zdCBzdHlsZXNoZWV0UGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlRGlyUGF0aCwgbm9kZS50ZXh0KTtcbiAgICBjb25zdCBzdHlsZXNoZWV0ID0gdGhpcy5yZXNvbHZlRXh0ZXJuYWxTdHlsZXNoZWV0KHN0eWxlc2hlZXRQYXRoLCBjb250YWluZXIpO1xuXG4gICAgaWYgKHN0eWxlc2hlZXQpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRTdHlsZXNoZWV0cy5wdXNoKHN0eWxlc2hlZXQpO1xuICAgIH1cbiAgfVxufVxuXG4vKiogU3RyaXBzIHRoZSBCT00gZnJvbSBhIHN0cmluZy4gKi9cbmZ1bmN0aW9uIHN0cmlwQm9tKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjb250ZW50LnJlcGxhY2UoL1xcdUZFRkYvZywgJycpO1xufVxuIl19
@@ -0,0 +1,72 @@
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 { UpdateRecorder } from './update-recorder';
9
+ /**
10
+ * A workspace path semantically is equivalent to the `Path` type provided by the
11
+ * Angular devkit. Paths denoted with such a type are guaranteed to be representing
12
+ * paths of a given virtual file system. This means that the root of a path can be
13
+ * different, and does not necessarily need to match the root in the real file system.
14
+ *
15
+ * For example: Consider we have a project in `/home/<..>/my-project`. Then a path
16
+ * like `/package.json` could actually refer to the `package.json` file in `my-project`.
17
+ * Note that in the real file system this would not match though.
18
+ *
19
+ * One might wonder why another type has been declared for such paths, when there
20
+ * already is the `Path` type provided by the devkit. We do this for a couple of reasons:
21
+ *
22
+ * 1. The update-tool cannot have a dependency on the Angular devkit as that one
23
+ * is not synced into g3. We want to be able to run migrations in g3 if needed.
24
+ */
25
+ export type WorkspacePath = string & {
26
+ __PRIVATE_DEVKIT_PATH: void;
27
+ };
28
+ /** Interface that describes a directory. */
29
+ export interface DirectoryEntry {
30
+ /** List of directories inside the directory. */
31
+ directories: string[];
32
+ /** List of files inside the directory. */
33
+ files: string[];
34
+ }
35
+ /**
36
+ * Abstraction of the file system that migrations can use to record and apply
37
+ * changes. This is necessary to support virtual file systems as used in the CLI devkit.
38
+ */
39
+ export declare abstract class FileSystem {
40
+ /** Checks whether the given file exists. */
41
+ abstract fileExists(path: WorkspacePath): boolean;
42
+ /** Checks whether the given directory exists. */
43
+ abstract directoryExists(path: WorkspacePath): boolean;
44
+ /** Gets the contents of the given file. */
45
+ abstract read(filePath: WorkspacePath): string | null;
46
+ /** Reads the given directory to retrieve children. */
47
+ abstract readDirectory(dirPath: WorkspacePath): DirectoryEntry;
48
+ /**
49
+ * Creates an update recorder for the given file. Edits can be recorded and
50
+ * committed in batches. Changes are not applied automatically because otherwise
51
+ * migrations would need to re-read files, or account for shifted file contents.
52
+ */
53
+ abstract edit(filePath: WorkspacePath): UpdateRecorder;
54
+ /** Applies all changes which have been recorded in update recorders. */
55
+ abstract commitEdits(): void;
56
+ /** Creates a new file with the given content. */
57
+ abstract create(filePath: WorkspacePath, content: string): void;
58
+ /** Overwrites an existing file with the given content. */
59
+ abstract overwrite(filePath: WorkspacePath, content: string): void;
60
+ /** Deletes the given file. */
61
+ abstract delete(filePath: WorkspacePath): void;
62
+ /**
63
+ * Resolves given paths to a resolved path in the file system. For example, the devkit
64
+ * tree considers the actual workspace directory as file system root.
65
+ *
66
+ * Follows the same semantics as the native path `resolve` method. i.e. segments
67
+ * are processed in reverse. The last segment is considered the target and the
68
+ * function will iterate from the target through other segments until it finds an
69
+ * absolute path segment.
70
+ */
71
+ abstract resolve(...segments: string[]): WorkspacePath;
72
+ }
@@ -0,0 +1,18 @@
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.FileSystem = void 0;
11
+ /**
12
+ * Abstraction of the file system that migrations can use to record and apply
13
+ * changes. This is necessary to support virtual file systems as used in the CLI devkit.
14
+ */
15
+ class FileSystem {
16
+ }
17
+ exports.FileSystem = FileSystem;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zeXN0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvZmlsZS1zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBa0NIOzs7R0FHRztBQUNILE1BQXNCLFVBQVU7Q0FpQy9CO0FBakNELGdDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1VwZGF0ZVJlY29yZGVyfSBmcm9tICcuL3VwZGF0ZS1yZWNvcmRlcic7XG5cbi8qKlxuICogQSB3b3Jrc3BhY2UgcGF0aCBzZW1hbnRpY2FsbHkgaXMgZXF1aXZhbGVudCB0byB0aGUgYFBhdGhgIHR5cGUgcHJvdmlkZWQgYnkgdGhlXG4gKiBBbmd1bGFyIGRldmtpdC4gUGF0aHMgZGVub3RlZCB3aXRoIHN1Y2ggYSB0eXBlIGFyZSBndWFyYW50ZWVkIHRvIGJlIHJlcHJlc2VudGluZ1xuICogcGF0aHMgb2YgYSBnaXZlbiB2aXJ0dWFsIGZpbGUgc3lzdGVtLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHJvb3Qgb2YgYSBwYXRoIGNhbiBiZVxuICogZGlmZmVyZW50LCBhbmQgZG9lcyBub3QgbmVjZXNzYXJpbHkgbmVlZCB0byBtYXRjaCB0aGUgcm9vdCBpbiB0aGUgcmVhbCBmaWxlIHN5c3RlbS5cbiAqXG4gKiBGb3IgZXhhbXBsZTogQ29uc2lkZXIgd2UgaGF2ZSBhIHByb2plY3QgaW4gYC9ob21lLzwuLj4vbXktcHJvamVjdGAuIFRoZW4gYSBwYXRoXG4gKiBsaWtlIGAvcGFja2FnZS5qc29uYCBjb3VsZCBhY3R1YWxseSByZWZlciB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBpbiBgbXktcHJvamVjdGAuXG4gKiBOb3RlIHRoYXQgaW4gdGhlIHJlYWwgZmlsZSBzeXN0ZW0gdGhpcyB3b3VsZCBub3QgbWF0Y2ggdGhvdWdoLlxuICpcbiAqIE9uZSBtaWdodCB3b25kZXIgd2h5IGFub3RoZXIgdHlwZSBoYXMgYmVlbiBkZWNsYXJlZCBmb3Igc3VjaCBwYXRocywgd2hlbiB0aGVyZVxuICogYWxyZWFkeSBpcyB0aGUgYFBhdGhgIHR5cGUgcHJvdmlkZWQgYnkgdGhlIGRldmtpdC4gV2UgZG8gdGhpcyBmb3IgYSBjb3VwbGUgb2YgcmVhc29uczpcbiAqXG4gKiAgIDEuIFRoZSB1cGRhdGUtdG9vbCBjYW5ub3QgaGF2ZSBhIGRlcGVuZGVuY3kgb24gdGhlIEFuZ3VsYXIgZGV2a2l0IGFzIHRoYXQgb25lXG4gKiAgICAgIGlzIG5vdCBzeW5jZWQgaW50byBnMy4gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHJ1biBtaWdyYXRpb25zIGluIGczIGlmIG5lZWRlZC5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya3NwYWNlUGF0aCA9IHN0cmluZyAmIHtcbiAgLy8gQnJhbmQgc2lnbmF0dXJlIG1hdGNoZXMgdGhlIGRldmtpdCBwYXRocyBzbyB0aGF0IGV4aXN0aW5nIHBhdGhcbiAgLy8gdXRpbGl0aWVzIGZyb20gdGhlIEFuZ3VsYXIgZGV2a2l0IGNhbiBiZSBjb252ZW5pZW50bHkgdXNlZC5cbiAgX19QUklWQVRFX0RFVktJVF9QQVRIOiB2b2lkO1xufTtcblxuLyoqIEludGVyZmFjZSB0aGF0IGRlc2NyaWJlcyBhIGRpcmVjdG9yeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5RW50cnkge1xuICAvKiogTGlzdCBvZiBkaXJlY3RvcmllcyBpbnNpZGUgdGhlIGRpcmVjdG9yeS4gKi9cbiAgZGlyZWN0b3JpZXM6IHN0cmluZ1tdO1xuICAvKiogTGlzdCBvZiBmaWxlcyBpbnNpZGUgdGhlIGRpcmVjdG9yeS4gKi9cbiAgZmlsZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFic3RyYWN0aW9uIG9mIHRoZSBmaWxlIHN5c3RlbSB0aGF0IG1pZ3JhdGlvbnMgY2FuIHVzZSB0byByZWNvcmQgYW5kIGFwcGx5XG4gKiBjaGFuZ2VzLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHZpcnR1YWwgZmlsZSBzeXN0ZW1zIGFzIHVzZWQgaW4gdGhlIENMSSBkZXZraXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWxlU3lzdGVtIHtcbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIGV4aXN0cy4gKi9cbiAgYWJzdHJhY3QgZmlsZUV4aXN0cyhwYXRoOiBXb3Jrc3BhY2VQYXRoKTogYm9vbGVhbjtcbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBkaXJlY3RvcnkgZXhpc3RzLiAqL1xuICBhYnN0cmFjdCBkaXJlY3RvcnlFeGlzdHMocGF0aDogV29ya3NwYWNlUGF0aCk6IGJvb2xlYW47XG4gIC8qKiBHZXRzIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZmlsZS4gKi9cbiAgYWJzdHJhY3QgcmVhZChmaWxlUGF0aDogV29ya3NwYWNlUGF0aCk6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZWFkcyB0aGUgZ2l2ZW4gZGlyZWN0b3J5IHRvIHJldHJpZXZlIGNoaWxkcmVuLiAqL1xuICBhYnN0cmFjdCByZWFkRGlyZWN0b3J5KGRpclBhdGg6IFdvcmtzcGFjZVBhdGgpOiBEaXJlY3RvcnlFbnRyeTtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gdXBkYXRlIHJlY29yZGVyIGZvciB0aGUgZ2l2ZW4gZmlsZS4gRWRpdHMgY2FuIGJlIHJlY29yZGVkIGFuZFxuICAgKiBjb21taXR0ZWQgaW4gYmF0Y2hlcy4gQ2hhbmdlcyBhcmUgbm90IGFwcGxpZWQgYXV0b21hdGljYWxseSBiZWNhdXNlIG90aGVyd2lzZVxuICAgKiBtaWdyYXRpb25zIHdvdWxkIG5lZWQgdG8gcmUtcmVhZCBmaWxlcywgb3IgYWNjb3VudCBmb3Igc2hpZnRlZCBmaWxlIGNvbnRlbnRzLlxuICAgKi9cbiAgYWJzdHJhY3QgZWRpdChmaWxlUGF0aDogV29ya3NwYWNlUGF0aCk6IFVwZGF0ZVJlY29yZGVyO1xuICAvKiogQXBwbGllcyBhbGwgY2hhbmdlcyB3aGljaCBoYXZlIGJlZW4gcmVjb3JkZWQgaW4gdXBkYXRlIHJlY29yZGVycy4gKi9cbiAgYWJzdHJhY3QgY29tbWl0RWRpdHMoKTogdm9pZDtcbiAgLyoqIENyZWF0ZXMgYSBuZXcgZmlsZSB3aXRoIHRoZSBnaXZlbiBjb250ZW50LiAqL1xuICBhYnN0cmFjdCBjcmVhdGUoZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGgsIGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBPdmVyd3JpdGVzIGFuIGV4aXN0aW5nIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gY29udGVudC4gKi9cbiAgYWJzdHJhY3Qgb3ZlcndyaXRlKGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkO1xuICAvKiogRGVsZXRlcyB0aGUgZ2l2ZW4gZmlsZS4gKi9cbiAgYWJzdHJhY3QgZGVsZXRlKGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoKTogdm9pZDtcbiAgLyoqXG4gICAqIFJlc29sdmVzIGdpdmVuIHBhdGhzIHRvIGEgcmVzb2x2ZWQgcGF0aCBpbiB0aGUgZmlsZSBzeXN0ZW0uIEZvciBleGFtcGxlLCB0aGUgZGV2a2l0XG4gICAqIHRyZWUgY29uc2lkZXJzIHRoZSBhY3R1YWwgd29ya3NwYWNlIGRpcmVjdG9yeSBhcyBmaWxlIHN5c3RlbSByb290LlxuICAgKlxuICAgKiBGb2xsb3dzIHRoZSBzYW1lIHNlbWFudGljcyBhcyB0aGUgbmF0aXZlIHBhdGggYHJlc29sdmVgIG1ldGhvZC4gaS5lLiBzZWdtZW50c1xuICAgKiBhcmUgcHJvY2Vzc2VkIGluIHJldmVyc2UuIFRoZSBsYXN0IHNlZ21lbnQgaXMgY29uc2lkZXJlZCB0aGUgdGFyZ2V0IGFuZCB0aGVcbiAgICogZnVuY3Rpb24gd2lsbCBpdGVyYXRlIGZyb20gdGhlIHRhcmdldCB0aHJvdWdoIG90aGVyIHNlZ21lbnRzIHVudGlsIGl0IGZpbmRzIGFuXG4gICAqIGFic29sdXRlIHBhdGggc2VnbWVudC5cbiAgICovXG4gIGFic3RyYWN0IHJlc29sdmUoLi4uc2VnbWVudHM6IHN0cmluZ1tdKTogV29ya3NwYWNlUGF0aDtcbn1cbiJdfQ==
@@ -0,0 +1,74 @@
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 { FileSystem, WorkspacePath } from './file-system';
10
+ import { UpdateLogger } from './logger';
11
+ import { MigrationCtor } from './migration';
12
+ import { TargetVersion } from './target-version';
13
+ /**
14
+ * An update project that can be run against individual migrations. An update project
15
+ * accepts a TypeScript program and a context that is provided to all migrations. The
16
+ * context is usually not used by migrations, but in some cases migrations rely on
17
+ * specifics from the tool that performs the update (e.g. the Angular CLI). In those cases,
18
+ * the context can provide the necessary specifics to the migrations in a type-safe way.
19
+ */
20
+ export declare class UpdateProject<Context> {
21
+ /** Context provided to all migrations. */
22
+ private _context;
23
+ /** TypeScript program using workspace paths. */
24
+ private _program;
25
+ /** File system used for reading, writing and editing files. */
26
+ private _fileSystem;
27
+ /**
28
+ * Set of analyzed files. Used for avoiding multiple migration runs if
29
+ * files overlap between targets.
30
+ */
31
+ private _analyzedFiles;
32
+ /** Logger used for printing messages. */
33
+ private _logger;
34
+ private readonly _typeChecker;
35
+ constructor(
36
+ /** Context provided to all migrations. */
37
+ _context: Context,
38
+ /** TypeScript program using workspace paths. */
39
+ _program: ts.Program,
40
+ /** File system used for reading, writing and editing files. */
41
+ _fileSystem: FileSystem,
42
+ /**
43
+ * Set of analyzed files. Used for avoiding multiple migration runs if
44
+ * files overlap between targets.
45
+ */
46
+ _analyzedFiles?: Set<WorkspacePath>,
47
+ /** Logger used for printing messages. */
48
+ _logger?: UpdateLogger);
49
+ /**
50
+ * Migrates the project to the specified target version.
51
+ * @param migrationTypes Migrations that should be run.
52
+ * @param target Version the project should be updated to. Can be `null` if the set of
53
+ * specified migrations runs regardless of a target version.
54
+ * @param data Upgrade data that is passed to all migration rules.
55
+ * @param additionalStylesheetPaths Additional stylesheets that should be migrated, if not
56
+ * referenced in an Angular component. This is helpful for global stylesheets in a project.
57
+ * @param limitToDirectory If specified, changes will be limited to the given directory.
58
+ */
59
+ migrate<Data>(migrationTypes: MigrationCtor<Data, Context>[], target: TargetVersion | null, data: Data, additionalStylesheetPaths?: string[], limitToDirectory?: string): {
60
+ hasFailures: boolean;
61
+ };
62
+ /**
63
+ * Creates instances of the given migrations with the specified target
64
+ * version and data.
65
+ */
66
+ private _createMigrations;
67
+ /**
68
+ * Creates a program form the specified tsconfig and patches the host
69
+ * to read files and directories through the given file system.
70
+ *
71
+ * @throws {TsconfigParseError} If the tsconfig could not be parsed.
72
+ */
73
+ static createProgramFromTsconfig(tsconfigPath: WorkspacePath, fs: FileSystem): ts.Program;
74
+ }
@@ -0,0 +1,178 @@
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.UpdateProject = void 0;
11
+ const ts = require("typescript");
12
+ const component_resource_collector_1 = require("./component-resource-collector");
13
+ const logger_1 = require("./logger");
14
+ const parse_tsconfig_1 = require("./utils/parse-tsconfig");
15
+ const virtual_host_1 = require("./utils/virtual-host");
16
+ /**
17
+ * An update project that can be run against individual migrations. An update project
18
+ * accepts a TypeScript program and a context that is provided to all migrations. The
19
+ * context is usually not used by migrations, but in some cases migrations rely on
20
+ * specifics from the tool that performs the update (e.g. the Angular CLI). In those cases,
21
+ * the context can provide the necessary specifics to the migrations in a type-safe way.
22
+ */
23
+ class UpdateProject {
24
+ _context;
25
+ _program;
26
+ _fileSystem;
27
+ _analyzedFiles;
28
+ _logger;
29
+ _typeChecker;
30
+ constructor(
31
+ /** Context provided to all migrations. */
32
+ _context,
33
+ /** TypeScript program using workspace paths. */
34
+ _program,
35
+ /** File system used for reading, writing and editing files. */
36
+ _fileSystem,
37
+ /**
38
+ * Set of analyzed files. Used for avoiding multiple migration runs if
39
+ * files overlap between targets.
40
+ */
41
+ _analyzedFiles = new Set(),
42
+ /** Logger used for printing messages. */
43
+ _logger = logger_1.defaultLogger) {
44
+ this._context = _context;
45
+ this._program = _program;
46
+ this._fileSystem = _fileSystem;
47
+ this._analyzedFiles = _analyzedFiles;
48
+ this._logger = _logger;
49
+ this._typeChecker = this._program.getTypeChecker();
50
+ }
51
+ /**
52
+ * Migrates the project to the specified target version.
53
+ * @param migrationTypes Migrations that should be run.
54
+ * @param target Version the project should be updated to. Can be `null` if the set of
55
+ * specified migrations runs regardless of a target version.
56
+ * @param data Upgrade data that is passed to all migration rules.
57
+ * @param additionalStylesheetPaths Additional stylesheets that should be migrated, if not
58
+ * referenced in an Angular component. This is helpful for global stylesheets in a project.
59
+ * @param limitToDirectory If specified, changes will be limited to the given directory.
60
+ */
61
+ migrate(migrationTypes, target, data, additionalStylesheetPaths, limitToDirectory) {
62
+ limitToDirectory &&= this._fileSystem.resolve(limitToDirectory);
63
+ // Create instances of the specified migrations.
64
+ const migrations = this._createMigrations(migrationTypes, target, data);
65
+ // Creates the component resource collector. The collector can visit arbitrary
66
+ // TypeScript nodes and will find Angular component resources. Resources include
67
+ // templates and stylesheets. It also captures inline stylesheets and templates.
68
+ const resourceCollector = new component_resource_collector_1.ComponentResourceCollector(this._typeChecker, this._fileSystem);
69
+ // Collect all of the TypeScript source files we want to migrate. We don't
70
+ // migrate type definition files, or source files from external libraries.
71
+ const sourceFiles = this._program.getSourceFiles().filter(f => {
72
+ return (!f.isDeclarationFile &&
73
+ (limitToDirectory == null ||
74
+ this._fileSystem.resolve(f.fileName).startsWith(limitToDirectory)) &&
75
+ !this._program.isSourceFileFromExternalLibrary(f));
76
+ });
77
+ // Helper function that visits a given TypeScript node and collects all referenced
78
+ // component resources (i.e. stylesheets or templates). Additionally, the helper
79
+ // visits the node in each instantiated migration.
80
+ const visitNodeAndCollectResources = (node) => {
81
+ migrations.forEach(r => r.visitNode(node));
82
+ ts.forEachChild(node, visitNodeAndCollectResources);
83
+ resourceCollector.visitNode(node);
84
+ };
85
+ // Walk through all source file, if it has not been visited before, and
86
+ // visit found nodes while collecting potential resources.
87
+ sourceFiles.forEach(sourceFile => {
88
+ const resolvedPath = this._fileSystem.resolve(sourceFile.fileName);
89
+ // Do not visit source files which have been checked as part of a
90
+ // previously migrated TypeScript project.
91
+ if (!this._analyzedFiles.has(resolvedPath)) {
92
+ visitNodeAndCollectResources(sourceFile);
93
+ this._analyzedFiles.add(resolvedPath);
94
+ }
95
+ });
96
+ // Walk through all resolved templates and visit them in each instantiated
97
+ // migration. Note that this can only happen after source files have been
98
+ // visited because we find templates through the TypeScript source files.
99
+ resourceCollector.resolvedTemplates.forEach(template => {
100
+ // Do not visit the template if it has been checked before. Inline
101
+ // templates cannot be referenced multiple times.
102
+ if (template.inline || !this._analyzedFiles.has(template.filePath)) {
103
+ migrations.forEach(m => m.visitTemplate(template));
104
+ this._analyzedFiles.add(template.filePath);
105
+ }
106
+ });
107
+ // Walk through all resolved stylesheets and visit them in each instantiated
108
+ // migration. Note that this can only happen after source files have been
109
+ // visited because we find stylesheets through the TypeScript source files.
110
+ resourceCollector.resolvedStylesheets.forEach(stylesheet => {
111
+ // Do not visit the stylesheet if it has been checked before. Inline
112
+ // stylesheets cannot be referenced multiple times.
113
+ if (stylesheet.inline || !this._analyzedFiles.has(stylesheet.filePath)) {
114
+ migrations.forEach(r => r.visitStylesheet(stylesheet));
115
+ this._analyzedFiles.add(stylesheet.filePath);
116
+ }
117
+ });
118
+ // In some applications, developers will have global stylesheets which are not
119
+ // specified in any Angular component. Therefore we allow for additional stylesheets
120
+ // being specified. We visit them in each migration unless they have been already
121
+ // discovered before as actual component resource.
122
+ if (additionalStylesheetPaths) {
123
+ additionalStylesheetPaths.forEach(filePath => {
124
+ const resolvedPath = this._fileSystem.resolve(filePath);
125
+ if (limitToDirectory == null || resolvedPath.startsWith(limitToDirectory)) {
126
+ const stylesheet = resourceCollector.resolveExternalStylesheet(resolvedPath, null);
127
+ // Do not visit stylesheets which have been referenced from a component.
128
+ if (!this._analyzedFiles.has(resolvedPath) && stylesheet) {
129
+ migrations.forEach(r => r.visitStylesheet(stylesheet));
130
+ this._analyzedFiles.add(resolvedPath);
131
+ }
132
+ }
133
+ });
134
+ }
135
+ // Call the "postAnalysis" method for each migration.
136
+ migrations.forEach(r => r.postAnalysis());
137
+ // Collect all failures reported by individual migrations.
138
+ const failures = migrations.reduce((res, m) => res.concat(m.failures), []);
139
+ // In case there are failures, print these to the CLI logger as warnings.
140
+ if (failures.length) {
141
+ failures.forEach(({ filePath, message, position }) => {
142
+ const lineAndCharacter = position ? `@${position.line + 1}:${position.character + 1}` : '';
143
+ this._logger.warn(`${filePath}${lineAndCharacter} - ${message}`);
144
+ });
145
+ }
146
+ return {
147
+ hasFailures: !!failures.length,
148
+ };
149
+ }
150
+ /**
151
+ * Creates instances of the given migrations with the specified target
152
+ * version and data.
153
+ */
154
+ _createMigrations(types, target, data) {
155
+ const result = [];
156
+ for (const ctor of types) {
157
+ const instance = new ctor(this._program, this._typeChecker, target, this._context, data, this._fileSystem, this._logger);
158
+ instance.init();
159
+ if (instance.enabled) {
160
+ result.push(instance);
161
+ }
162
+ }
163
+ return result;
164
+ }
165
+ /**
166
+ * Creates a program form the specified tsconfig and patches the host
167
+ * to read files and directories through the given file system.
168
+ *
169
+ * @throws {TsconfigParseError} If the tsconfig could not be parsed.
170
+ */
171
+ static createProgramFromTsconfig(tsconfigPath, fs) {
172
+ const parsed = (0, parse_tsconfig_1.parseTsconfigFile)(fs.resolve(tsconfigPath), fs);
173
+ const host = (0, virtual_host_1.createFileSystemCompilerHost)(parsed.options, fs);
174
+ return ts.createProgram(parsed.fileNames, parsed.options, host);
175
+ }
176
+ }
177
+ exports.UpdateProject = UpdateProject;
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFLZDtJQUVBO0lBRUE7SUFLQTtJQUVBO0lBZk8sWUFBWSxDQUFpQjtJQUU5QztJQUNFLDBDQUEwQztJQUNsQyxRQUFpQjtJQUN6QixnREFBZ0Q7SUFDeEMsUUFBb0I7SUFDNUIsK0RBQStEO0lBQ3ZELFdBQXVCO0lBQy9COzs7T0FHRztJQUNLLGlCQUFxQyxJQUFJLEdBQUcsRUFBRTtJQUN0RCx5Q0FBeUM7SUFDakMsVUFBd0Isc0JBQWE7UUFYckMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBS3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUU5QyxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUU3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLGdEQUFnRDtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztR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LFlBQTJCLEVBQUUsRUFBYztRQUMxRSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFpQixFQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBckxELHNDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtDb21wb25lbnRSZXNvdXJjZUNvbGxlY3Rvcn0gZnJvbSAnLi9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge2RlZmF1bHRMb2dnZXIsIFVwZGF0ZUxvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtNaWdyYXRpb24sIE1pZ3JhdGlvbkN0b3IsIE1pZ3JhdGlvbkZhaWx1cmV9IGZyb20gJy4vbWlncmF0aW9uJztcbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge3BhcnNlVHNjb25maWdGaWxlfSBmcm9tICcuL3V0aWxzL3BhcnNlLXRzY29uZmlnJztcbmltcG9ydCB7Y3JlYXRlRmlsZVN5c3RlbUNvbXBpbGVySG9zdH0gZnJvbSAnLi91dGlscy92aXJ0dWFsLWhvc3QnO1xuXG4vKipcbiAqIEFuIHVwZGF0ZSBwcm9qZWN0IHRoYXQgY2FuIGJlIHJ1biBhZ2FpbnN0IGluZGl2aWR1YWwgbWlncmF0aW9ucy4gQW4gdXBkYXRlIHByb2plY3RcbiAqIGFjY2VwdHMgYSBUeXBlU2NyaXB0IHByb2dyYW0gYW5kIGEgY29udGV4dCB0aGF0IGlzIHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiBUaGVcbiAqIGNvbnRleHQgaXMgdXN1YWxseSBub3QgdXNlZCBieSBtaWdyYXRpb25zLCBidXQgaW4gc29tZSBjYXNlcyBtaWdyYXRpb25zIHJlbHkgb25cbiAqIHNwZWNpZmljcyBmcm9tIHRoZSB0b29sIHRoYXQgcGVyZm9ybXMgdGhlIHVwZGF0ZSAoZS5nLiB0aGUgQW5ndWxhciBDTEkpLiBJbiB0aG9zZSBjYXNlcyxcbiAqIHRoZSBjb250ZXh0IGNhbiBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgc3BlY2lmaWNzIHRvIHRoZSBtaWdyYXRpb25zIGluIGEgdHlwZS1zYWZlIHdheS5cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZVByb2plY3Q8Q29udGV4dD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIENvbnRleHQgcHJvdmlkZWQgdG8gYWxsIG1pZ3JhdGlvbnMuICovXG4gICAgcHJpdmF0ZSBfY29udGV4dDogQ29udGV4dCxcbiAgICAvKiogVHlwZVNjcmlwdCBwcm9ncmFtIHVzaW5nIHdvcmtzcGFjZSBwYXRocy4gKi9cbiAgICBwcml2YXRlIF9wcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgIC8qKiBGaWxlIHN5c3RlbSB1c2VkIGZvciByZWFkaW5nLCB3cml0aW5nIGFuZCBlZGl0aW5nIGZpbGVzLiAqL1xuICAgIHByaXZhdGUgX2ZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGFuYWx5emVkIGZpbGVzLiBVc2VkIGZvciBhdm9pZGluZyBtdWx0aXBsZSBtaWdyYXRpb24gcnVucyBpZlxuICAgICAqIGZpbGVzIG92ZXJsYXAgYmV0d2VlbiB0YXJnZXRzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2FuYWx5emVkRmlsZXM6IFNldDxXb3Jrc3BhY2VQYXRoPiA9IG5ldyBTZXQoKSxcbiAgICAvKiogTG9nZ2VyIHVzZWQgZm9yIHByaW50aW5nIG1lc3NhZ2VzLiAqL1xuICAgIHByaXZhdGUgX2xvZ2dlcjogVXBkYXRlTG9nZ2VyID0gZGVmYXVsdExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5fdHlwZUNoZWNrZXIgPSB0aGlzLl9wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogTWlncmF0ZXMgdGhlIHByb2plY3QgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIG1pZ3JhdGlvblR5cGVzIE1pZ3JhdGlvbnMgdGhhdCBzaG91bGQgYmUgcnVuLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFZlcnNpb24gdGhlIHByb2plY3Qgc2hvdWxkIGJlIHVwZGF0ZWQgdG8uIENhbiBiZSBgbnVsbGAgaWYgdGhlIHNldCBvZlxuICAgKiAgIHNwZWNpZmllZCBtaWdyYXRpb25zIHJ1bnMgcmVnYXJkbGVzcyBvZiBhIHRhcmdldCB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gZGF0YSBVcGdyYWRlIGRhdGEgdGhhdCBpcyBwYXNzZWQgdG8gYWxsIG1pZ3JhdGlvbiBydWxlcy5cbiAgICogQHBhcmFtIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHMgQWRkaXRpb25hbCBzdHlsZXNoZWV0cyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCwgaWYgbm90XG4gICAqICAgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGNvbXBvbmVudC4gVGhpcyBpcyBoZWxwZnVsIGZvciBnbG9iYWwgc3R5bGVzaGVldHMgaW4gYSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbGltaXRUb0RpcmVjdG9yeSBJZiBzcGVjaWZpZWQsIGNoYW5nZXMgd2lsbCBiZSBsaW1pdGVkIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuXG4gICAqL1xuICBtaWdyYXRlPERhdGE+KFxuICAgIG1pZ3JhdGlvblR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICAgIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdFRvRGlyZWN0b3J5Pzogc3RyaW5nLFxuICApOiB7aGFzRmFpbHVyZXM6IGJvb2xlYW59IHtcbiAgICBsaW1pdFRvRGlyZWN0b3J5ICYmPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUobGltaXRUb0RpcmVjdG9yeSk7XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2VzIG9mIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9ucy5cbiAgICBjb25zdCBtaWdyYXRpb25zID0gdGhpcy5fY3JlYXRlTWlncmF0aW9ucyhtaWdyYXRpb25UeXBlcywgdGFyZ2V0LCBkYXRhKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBjb21wb25lbnQgcmVzb3VyY2UgY29sbGVjdG9yLiBUaGUgY29sbGVjdG9yIGNhbiB2aXNpdCBhcmJpdHJhcnlcbiAgICAvLyBUeXBlU2NyaXB0IG5vZGVzIGFuZCB3aWxsIGZpbmQgQW5ndWxhciBjb21wb25lbnQgcmVzb3VyY2VzLiBSZXNvdXJjZXMgaW5jbHVkZVxuICAgIC8vIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuIEl0IGFsc28gY2FwdHVyZXMgaW5saW5lIHN0eWxlc2hlZXRzIGFuZCB0ZW1wbGF0ZXMuXG4gICAgY29uc3QgcmVzb3VyY2VDb2xsZWN0b3IgPSBuZXcgQ29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3IodGhpcy5fdHlwZUNoZWNrZXIsIHRoaXMuX2ZpbGVTeXN0ZW0pO1xuICAgIC8vIENvbGxlY3QgYWxsIG9mIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyB3ZSB3YW50IHRvIG1pZ3JhdGUuIFdlIGRvbid0XG4gICAgLy8gbWlncmF0ZSB0eXBlIGRlZmluaXRpb24gZmlsZXMsIG9yIHNvdXJjZSBmaWxlcyBmcm9tIGV4dGVybmFsIGxpYnJhcmllcy5cbiAgICBjb25zdCBzb3VyY2VGaWxlcyA9IHRoaXMuX3Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoZiA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhZi5pc0RlY2xhcmF0aW9uRmlsZSAmJlxuICAgICAgICAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGYuZmlsZU5hbWUpLnN0YXJ0c1dpdGgobGltaXRUb0RpcmVjdG9yeSkpICYmXG4gICAgICAgICF0aGlzLl9wcm9ncmFtLmlzU291cmNlRmlsZUZyb21FeHRlcm5hbExpYnJhcnkoZilcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB2aXNpdHMgYSBnaXZlbiBUeXBlU2NyaXB0IG5vZGUgYW5kIGNvbGxlY3RzIGFsbCByZWZlcmVuY2VkXG4gICAgLy8gY29tcG9uZW50IHJlc291cmNlcyAoaS5lLiBzdHlsZXNoZWV0cyBvciB0ZW1wbGF0ZXMpLiBBZGRpdGlvbmFsbHksIHRoZSBoZWxwZXJcbiAgICAvLyB2aXNpdHMgdGhlIG5vZGUgaW4gZWFjaCBpbnN0YW50aWF0ZWQgbWlncmF0aW9uLlxuICAgIGNvbnN0IHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMgPSAobm9kZTogdHMuTm9kZSkgPT4ge1xuICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdE5vZGUobm9kZSkpO1xuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMpO1xuICAgICAgcmVzb3VyY2VDb2xsZWN0b3IudmlzaXROb2RlKG5vZGUpO1xuICAgIH07XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHNvdXJjZSBmaWxlLCBpZiBpdCBoYXMgbm90IGJlZW4gdmlzaXRlZCBiZWZvcmUsIGFuZFxuICAgIC8vIHZpc2l0IGZvdW5kIG5vZGVzIHdoaWxlIGNvbGxlY3RpbmcgcG90ZW50aWFsIHJlc291cmNlcy5cbiAgICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZCBhcyBwYXJ0IG9mIGFcbiAgICAgIC8vIHByZXZpb3VzbHkgbWlncmF0ZWQgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMoc291cmNlRmlsZSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHJlc29sdmVkIHRlbXBsYXRlcyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRUZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHRlbXBsYXRlIGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHRlbXBsYXRlcyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIGlmICh0ZW1wbGF0ZS5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHRlbXBsYXRlLmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiBtLnZpc2l0VGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQodGVtcGxhdGUuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCBzdHlsZXNoZWV0cyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCBzdHlsZXNoZWV0cyB0aHJvdWdoIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcy5cbiAgICByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlZFN0eWxlc2hlZXRzLmZvckVhY2goc3R5bGVzaGVldCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHN0eWxlc2hlZXQgaWYgaXQgaGFzIGJlZW4gY2hlY2tlZCBiZWZvcmUuIElubGluZVxuICAgICAgLy8gc3R5bGVzaGVldHMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAoc3R5bGVzaGVldC5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHN0eWxlc2hlZXQuZmlsZVBhdGgpKSB7XG4gICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQoc3R5bGVzaGVldC5maWxlUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbiBzb21lIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyB3aWxsIGhhdmUgZ2xvYmFsIHN0eWxlc2hlZXRzIHdoaWNoIGFyZSBub3RcbiAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgYWxsb3cgZm9yIGFkZGl0aW9uYWwgc3R5bGVzaGVldHNcbiAgICAvLyBiZWluZyBzcGVjaWZpZWQuIFdlIHZpc2l0IHRoZW0gaW4gZWFjaCBtaWdyYXRpb24gdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHlcbiAgICAvLyBkaXNjb3ZlcmVkIGJlZm9yZSBhcyBhY3R1YWwgY29tcG9uZW50IHJlc291cmNlLlxuICAgIGlmIChhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKSB7XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLmZvckVhY2goZmlsZVBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoZmlsZVBhdGgpO1xuICAgICAgICBpZiAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8IHJlc29sdmVkUGF0aC5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQocmVzb2x2ZWRQYXRoLCBudWxsKTtcbiAgICAgICAgICAvLyBEbyBub3QgdmlzaXQgc3R5bGVzaGVldHMgd2hpY2ggaGF2ZSBiZWVuIHJlZmVyZW5jZWQgZnJvbSBhIGNvbXBvbmVudC5cbiAgICAgICAgICBpZiAoIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHJlc29sdmVkUGF0aCkgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldCkpO1xuICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIFwicG9zdEFuYWx5c2lzXCIgbWV0aG9kIGZvciBlYWNoIG1pZ3JhdGlvbi5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnBvc3RBbmFseXNpcygpKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZhaWx1cmVzIHJlcG9ydGVkIGJ5IGluZGl2aWR1YWwgbWlncmF0aW9ucy5cbiAgICBjb25zdCBmYWlsdXJlcyA9IG1pZ3JhdGlvbnMucmVkdWNlKFxuICAgICAgKHJlcywgbSkgPT4gcmVzLmNvbmNhdChtLmZhaWx1cmVzKSxcbiAgICAgIFtdIGFzIE1pZ3JhdGlvbkZhaWx1cmVbXSxcbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSB0aGVyZSBhcmUgZmFpbHVyZXMsIHByaW50IHRoZXNlIHRvIHRoZSBDTEkgbG9nZ2VyIGFzIHdhcm5pbmdzLlxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2goKHtmaWxlUGF0aCwgbWVzc2FnZSwgcG9zaXRpb259KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmVBbmRDaGFyYWN0ZXIgPSBwb3NpdGlvbiA/IGBAJHtwb3NpdGlvbi5saW5lICsgMX06JHtwb3NpdGlvbi5jaGFyYWN0ZXIgKyAxfWAgOiAnJztcbiAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYCR7ZmlsZVBhdGh9JHtsaW5lQW5kQ2hhcmFjdGVyfSAtICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBoYXNGYWlsdXJlczogISFmYWlsdXJlcy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGluc3RhbmNlcyBvZiB0aGUgZ2l2ZW4gbWlncmF0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFyZ2V0XG4gICAqIHZlcnNpb24gYW5kIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVNaWdyYXRpb25zPERhdGE+KFxuICAgIHR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICApOiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY3RvciBvZiB0eXBlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY3RvcihcbiAgICAgICAgdGhpcy5fcHJvZ3JhbSxcbiAgICAgICAgdGhpcy5fdHlwZUNoZWNrZXIsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5fY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5fZmlsZVN5c3RlbSxcbiAgICAgICAgdGhpcy5fbG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLmluaXQoKTtcbiAgICAgIGlmIChpbnN0YW5jZS5lbmFibGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvZ3JhbSBmb3JtIHRoZSBzcGVjaWZpZWQgdHNjb25maWcgYW5kIHBhdGNoZXMgdGhlIGhvc3RcbiAgICogdG8gcmVhZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0aHJvd3Mge1RzY29uZmlnUGFyc2VFcnJvcn0gSWYgdGhlIHRzY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUHJvZ3JhbUZyb21Uc2NvbmZpZyh0c2NvbmZpZ1BhdGg6IFdvcmtzcGFjZVBhdGgsIGZzOiBGaWxlU3lzdGVtKTogdHMuUHJvZ3JhbSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VUc2NvbmZpZ0ZpbGUoZnMucmVzb2x2ZSh0c2NvbmZpZ1BhdGgpLCBmcyk7XG4gICAgY29uc3QgaG9zdCA9IGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QocGFyc2VkLm9wdGlvbnMsIGZzKTtcbiAgICByZXR1cm4gdHMuY3JlYXRlUHJvZ3JhbShwYXJzZWQuZmlsZU5hbWVzLCBwYXJzZWQub3B0aW9ucywgaG9zdCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
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
+ export interface UpdateLogger {
9
+ debug(message: string): void;
10
+ error(message: string): void;
11
+ fatal(message: string): void;
12
+ info(message: string): void;
13
+ warn(message: string): void;
14
+ }
15
+ export declare const defaultLogger: UpdateLogger;
@@ -0,0 +1,18 @@
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.defaultLogger = void 0;
11
+ exports.defaultLogger = {
12
+ debug: m => console.debug(m),
13
+ error: m => console.error(m),
14
+ fatal: m => console.error(m),
15
+ info: m => console.info(m),
16
+ warn: m => console.warn(m),
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFVVSxRQUFBLGFBQWEsR0FBaUI7SUFDekMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUxvZ2dlciB7XG4gIGRlYnVnKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG4gIGZhdGFsKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG4gIGluZm8obWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ2dlcjogVXBkYXRlTG9nZ2VyID0ge1xuICBkZWJ1ZzogbSA9PiBjb25zb2xlLmRlYnVnKG0pLFxuICBlcnJvcjogbSA9PiBjb25zb2xlLmVycm9yKG0pLFxuICBmYXRhbDogbSA9PiBjb25zb2xlLmVycm9yKG0pLFxuICBpbmZvOiBtID0+IGNvbnNvbGUuaW5mbyhtKSxcbiAgd2FybjogbSA9PiBjb25zb2xlLndhcm4obSksXG59O1xuIl19