jqwidgets-ng 23.0.7 → 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 (458) hide show
  1. package/package.json +1 -1
  2. package/schematics/cdk/schematics/index.d.ts +1 -1
  3. package/schematics/cdk/schematics/index.js +2 -2
  4. package/schematics/cdk/schematics/index.js.map +1 -0
  5. package/schematics/cdk/schematics/migration.json +4 -4
  6. package/schematics/cdk/schematics/ng-add/index.d.ts +1 -1
  7. package/schematics/cdk/schematics/ng-add/index.js +13 -21
  8. package/schematics/cdk/schematics/ng-add/index.js.map +1 -0
  9. package/schematics/cdk/schematics/ng-add/schema.d.ts +1 -1
  10. package/schematics/cdk/schematics/ng-add/schema.js +2 -2
  11. package/schematics/cdk/schematics/ng-add/schema.js.map +1 -0
  12. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +6 -2
  13. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +1 -1
  14. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +5 -5
  15. package/schematics/cdk/schematics/ng-generate/drag-drop/index.d.ts +1 -1
  16. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js +17 -8
  17. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js.map +1 -0
  18. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.d.ts +1 -1
  19. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js +2 -2
  20. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  21. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.d.ts +1 -1
  22. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js +2 -2
  23. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  24. package/schematics/cdk/schematics/ng-update/data/class-names.d.ts +1 -1
  25. package/schematics/cdk/schematics/ng-update/data/class-names.js +2 -2
  26. package/schematics/cdk/schematics/ng-update/data/class-names.js.map +1 -0
  27. package/schematics/cdk/schematics/ng-update/data/constructor-checks.d.ts +1 -1
  28. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js +2 -2
  29. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js.map +1 -0
  30. package/schematics/cdk/schematics/ng-update/data/css-selectors.d.ts +1 -1
  31. package/schematics/cdk/schematics/ng-update/data/css-selectors.js +2 -2
  32. package/schematics/cdk/schematics/ng-update/data/css-selectors.js.map +1 -0
  33. package/schematics/cdk/schematics/ng-update/data/css-tokens.d.ts +27 -0
  34. package/schematics/cdk/schematics/ng-update/data/css-tokens.js +12 -0
  35. package/schematics/cdk/schematics/ng-update/data/css-tokens.js.map +1 -0
  36. package/schematics/cdk/schematics/ng-update/data/element-selectors.d.ts +1 -1
  37. package/schematics/cdk/schematics/ng-update/data/element-selectors.js +2 -2
  38. package/schematics/cdk/schematics/ng-update/data/element-selectors.js.map +1 -0
  39. package/schematics/cdk/schematics/ng-update/data/index.d.ts +2 -1
  40. package/schematics/cdk/schematics/ng-update/data/index.js +3 -2
  41. package/schematics/cdk/schematics/ng-update/data/index.js.map +1 -0
  42. package/schematics/cdk/schematics/ng-update/data/input-names.d.ts +1 -1
  43. package/schematics/cdk/schematics/ng-update/data/input-names.js +2 -2
  44. package/schematics/cdk/schematics/ng-update/data/input-names.js.map +1 -0
  45. package/schematics/cdk/schematics/ng-update/data/method-call-checks.d.ts +1 -1
  46. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js +2 -2
  47. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js.map +1 -0
  48. package/schematics/cdk/schematics/ng-update/data/output-names.d.ts +1 -1
  49. package/schematics/cdk/schematics/ng-update/data/output-names.js +2 -2
  50. package/schematics/cdk/schematics/ng-update/data/output-names.js.map +1 -0
  51. package/schematics/cdk/schematics/ng-update/data/property-names.d.ts +1 -1
  52. package/schematics/cdk/schematics/ng-update/data/property-names.js +2 -2
  53. package/schematics/cdk/schematics/ng-update/data/property-names.js.map +1 -0
  54. package/schematics/cdk/schematics/ng-update/data/symbol-removal.d.ts +1 -1
  55. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js +2 -2
  56. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js.map +1 -0
  57. package/schematics/cdk/schematics/ng-update/devkit-file-system.d.ts +1 -1
  58. package/schematics/cdk/schematics/ng-update/devkit-file-system.js +3 -4
  59. package/schematics/cdk/schematics/ng-update/devkit-file-system.js.map +1 -0
  60. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.d.ts +1 -1
  61. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js +19 -8
  62. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  63. package/schematics/cdk/schematics/ng-update/devkit-migration.d.ts +3 -3
  64. package/schematics/cdk/schematics/ng-update/devkit-migration.js +2 -2
  65. package/schematics/cdk/schematics/ng-update/devkit-migration.js.map +1 -0
  66. package/schematics/cdk/schematics/ng-update/find-stylesheets.d.ts +1 -1
  67. package/schematics/cdk/schematics/ng-update/find-stylesheets.js +3 -4
  68. package/schematics/cdk/schematics/ng-update/find-stylesheets.js.map +1 -0
  69. package/schematics/cdk/schematics/ng-update/html-parsing/angular.d.ts +1 -1
  70. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js +7 -8
  71. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js.map +1 -0
  72. package/schematics/cdk/schematics/ng-update/html-parsing/elements.d.ts +1 -1
  73. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js +8 -8
  74. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js.map +1 -0
  75. package/schematics/cdk/schematics/ng-update/index.d.ts +3 -3
  76. package/schematics/cdk/schematics/ng-update/index.js +6 -7
  77. package/schematics/cdk/schematics/ng-update/index.js.map +1 -0
  78. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.d.ts +1 -1
  79. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js +9 -6
  80. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  81. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.d.ts +1 -1
  82. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js +12 -9
  83. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  84. package/schematics/cdk/schematics/ng-update/migrations/class-names.d.ts +1 -1
  85. package/schematics/cdk/schematics/ng-update/migrations/class-names.js +16 -13
  86. package/schematics/cdk/schematics/ng-update/migrations/class-names.js.map +1 -0
  87. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.d.ts +1 -1
  88. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js +11 -8
  89. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  90. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.d.ts +1 -1
  91. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js +9 -6
  92. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  93. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.d.ts +26 -0
  94. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js +83 -0
  95. package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  96. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.d.ts +1 -1
  97. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js +9 -6
  98. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  99. package/schematics/cdk/schematics/ng-update/migrations/input-names.d.ts +1 -1
  100. package/schematics/cdk/schematics/ng-update/migrations/input-names.js +9 -6
  101. package/schematics/cdk/schematics/ng-update/migrations/input-names.js.map +1 -0
  102. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.d.ts +1 -1
  103. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js +9 -6
  104. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  105. package/schematics/cdk/schematics/ng-update/migrations/misc-template.d.ts +1 -1
  106. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js +7 -4
  107. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js.map +1 -0
  108. package/schematics/cdk/schematics/ng-update/migrations/output-names.d.ts +1 -1
  109. package/schematics/cdk/schematics/ng-update/migrations/output-names.js +9 -6
  110. package/schematics/cdk/schematics/ng-update/migrations/output-names.js.map +1 -0
  111. package/schematics/cdk/schematics/ng-update/migrations/property-names.d.ts +1 -1
  112. package/schematics/cdk/schematics/ng-update/migrations/property-names.js +9 -6
  113. package/schematics/cdk/schematics/ng-update/migrations/property-names.js.map +1 -0
  114. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.d.ts +1 -1
  115. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js +11 -7
  116. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  117. package/schematics/cdk/schematics/ng-update/public-api.d.ts +1 -1
  118. package/schematics/cdk/schematics/ng-update/public-api.js +2 -2
  119. package/schematics/cdk/schematics/ng-update/public-api.js.map +1 -0
  120. package/schematics/cdk/schematics/ng-update/typescript/base-types.d.ts +1 -1
  121. package/schematics/cdk/schematics/ng-update/typescript/base-types.js +3 -4
  122. package/schematics/cdk/schematics/ng-update/typescript/base-types.js.map +1 -0
  123. package/schematics/cdk/schematics/ng-update/typescript/imports.d.ts +1 -1
  124. package/schematics/cdk/schematics/ng-update/typescript/imports.js +7 -8
  125. package/schematics/cdk/schematics/ng-update/typescript/imports.js.map +1 -0
  126. package/schematics/cdk/schematics/ng-update/typescript/literal.d.ts +1 -1
  127. package/schematics/cdk/schematics/ng-update/typescript/literal.js +4 -5
  128. package/schematics/cdk/schematics/ng-update/typescript/literal.js.map +1 -0
  129. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.d.ts +1 -1
  130. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js +5 -5
  131. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  132. package/schematics/cdk/schematics/ng-update/upgrade-data.d.ts +3 -2
  133. package/schematics/cdk/schematics/ng-update/upgrade-data.js +5 -4
  134. package/schematics/cdk/schematics/ng-update/upgrade-data.js.map +1 -0
  135. package/schematics/cdk/schematics/paths.d.ts +1 -1
  136. package/schematics/cdk/schematics/paths.js +2 -2
  137. package/schematics/cdk/schematics/paths.js.map +1 -0
  138. package/schematics/cdk/schematics/update-tool/component-resource-collector.d.ts +1 -1
  139. package/schematics/cdk/schematics/update-tool/component-resource-collector.js +4 -6
  140. package/schematics/cdk/schematics/update-tool/component-resource-collector.js.map +1 -0
  141. package/schematics/cdk/schematics/update-tool/file-system.d.ts +1 -1
  142. package/schematics/cdk/schematics/update-tool/file-system.js +2 -2
  143. package/schematics/cdk/schematics/update-tool/file-system.js.map +1 -0
  144. package/schematics/cdk/schematics/update-tool/index.d.ts +2 -2
  145. package/schematics/cdk/schematics/update-tool/index.js +4 -10
  146. package/schematics/cdk/schematics/update-tool/index.js.map +1 -0
  147. package/schematics/cdk/schematics/update-tool/logger.d.ts +1 -1
  148. package/schematics/cdk/schematics/update-tool/logger.js +2 -2
  149. package/schematics/cdk/schematics/update-tool/logger.js.map +1 -0
  150. package/schematics/cdk/schematics/update-tool/migration.d.ts +1 -1
  151. package/schematics/cdk/schematics/update-tool/migration.js +4 -11
  152. package/schematics/cdk/schematics/update-tool/migration.js.map +1 -0
  153. package/schematics/cdk/schematics/update-tool/public-api.d.ts +1 -1
  154. package/schematics/cdk/schematics/update-tool/public-api.js +2 -2
  155. package/schematics/cdk/schematics/update-tool/public-api.js.map +1 -0
  156. package/schematics/cdk/schematics/update-tool/target-version.d.ts +2 -2
  157. package/schematics/cdk/schematics/update-tool/target-version.js +5 -6
  158. package/schematics/cdk/schematics/update-tool/target-version.js.map +1 -0
  159. package/schematics/cdk/schematics/update-tool/update-recorder.d.ts +1 -1
  160. package/schematics/cdk/schematics/update-tool/update-recorder.js +2 -2
  161. package/schematics/cdk/schematics/update-tool/update-recorder.js.map +1 -0
  162. package/schematics/cdk/schematics/update-tool/utils/decorators.d.ts +1 -1
  163. package/schematics/cdk/schematics/update-tool/utils/decorators.js +4 -5
  164. package/schematics/cdk/schematics/update-tool/utils/decorators.js.map +1 -0
  165. package/schematics/cdk/schematics/update-tool/utils/diagnostics.d.ts +1 -1
  166. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js +3 -4
  167. package/schematics/cdk/schematics/update-tool/utils/diagnostics.js.map +1 -0
  168. package/schematics/cdk/schematics/update-tool/utils/functions.d.ts +1 -1
  169. package/schematics/cdk/schematics/update-tool/utils/functions.js +3 -4
  170. package/schematics/cdk/schematics/update-tool/utils/functions.js.map +1 -0
  171. package/schematics/cdk/schematics/update-tool/utils/imports.d.ts +1 -1
  172. package/schematics/cdk/schematics/update-tool/utils/imports.js +3 -4
  173. package/schematics/cdk/schematics/update-tool/utils/imports.js.map +1 -0
  174. package/schematics/cdk/schematics/update-tool/utils/line-mappings.d.ts +1 -1
  175. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js +4 -5
  176. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js.map +1 -0
  177. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts +1 -1
  178. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js +4 -4
  179. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  180. package/schematics/cdk/schematics/update-tool/utils/property-name.d.ts +1 -1
  181. package/schematics/cdk/schematics/update-tool/utils/property-name.js +4 -5
  182. package/schematics/cdk/schematics/update-tool/utils/property-name.js.map +1 -0
  183. package/schematics/cdk/schematics/update-tool/utils/virtual-host.d.ts +1 -1
  184. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js +6 -7
  185. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js.map +1 -0
  186. package/schematics/cdk/schematics/update-tool/version-changes.d.ts +1 -1
  187. package/schematics/cdk/schematics/update-tool/version-changes.js +4 -5
  188. package/schematics/cdk/schematics/update-tool/version-changes.js.map +1 -0
  189. package/schematics/cdk/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  190. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js +3 -4
  191. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js.map +1 -0
  192. package/schematics/cdk/schematics/utils/ast.d.ts +3 -3
  193. package/schematics/cdk/schematics/utils/ast.js +28 -18
  194. package/schematics/cdk/schematics/utils/ast.js.map +1 -0
  195. package/schematics/cdk/schematics/utils/build-component.d.ts +1 -1
  196. package/schematics/cdk/schematics/utils/build-component.js +24 -20
  197. package/schematics/cdk/schematics/utils/build-component.js.map +1 -0
  198. package/schematics/cdk/schematics/utils/get-project.d.ts +3 -3
  199. package/schematics/cdk/schematics/utils/get-project.js +3 -4
  200. package/schematics/cdk/schematics/utils/get-project.js.map +1 -0
  201. package/schematics/cdk/schematics/utils/html-manipulation.d.ts +1 -1
  202. package/schematics/cdk/schematics/utils/html-manipulation.js +5 -6
  203. package/schematics/cdk/schematics/utils/html-manipulation.js.map +1 -0
  204. package/schematics/cdk/schematics/utils/index.d.ts +1 -1
  205. package/schematics/cdk/schematics/utils/index.js +2 -2
  206. package/schematics/cdk/schematics/utils/index.js.map +1 -0
  207. package/schematics/cdk/schematics/utils/parse5-element.d.ts +1 -1
  208. package/schematics/cdk/schematics/utils/parse5-element.js +3 -4
  209. package/schematics/cdk/schematics/utils/parse5-element.js.map +1 -0
  210. package/schematics/cdk/schematics/utils/project-index-file.d.ts +7 -4
  211. package/schematics/cdk/schematics/utils/project-index-file.js +32 -10
  212. package/schematics/cdk/schematics/utils/project-index-file.js.map +1 -0
  213. package/schematics/cdk/schematics/utils/project-main-file.d.ts +4 -3
  214. package/schematics/cdk/schematics/utils/project-main-file.js +3 -4
  215. package/schematics/cdk/schematics/utils/project-main-file.js.map +1 -0
  216. package/schematics/cdk/schematics/utils/project-style-file.d.ts +3 -3
  217. package/schematics/cdk/schematics/utils/project-style-file.js +3 -4
  218. package/schematics/cdk/schematics/utils/project-style-file.js.map +1 -0
  219. package/schematics/cdk/schematics/utils/project-targets.d.ts +6 -5
  220. package/schematics/cdk/schematics/utils/project-targets.js +19 -12
  221. package/schematics/cdk/schematics/utils/project-targets.js.map +1 -0
  222. package/schematics/cdk/schematics/utils/project-tsconfig-paths.d.ts +4 -4
  223. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js +29 -18
  224. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js.map +1 -0
  225. package/schematics/cdk/schematics/utils/schematic-options.d.ts +3 -3
  226. package/schematics/cdk/schematics/utils/schematic-options.js +30 -19
  227. package/schematics/cdk/schematics/utils/schematic-options.js.map +1 -0
  228. package/schematics/cdk2/schematics/collection.json +18 -0
  229. package/schematics/cdk2/schematics/index.d.ts +14 -0
  230. package/schematics/cdk2/schematics/index.mjs +37 -0
  231. package/schematics/cdk2/schematics/migration.json +15 -0
  232. package/schematics/cdk2/schematics/ng-add/index.d.ts +17 -0
  233. package/schematics/cdk2/schematics/ng-add/index.mjs +39 -0
  234. package/schematics/cdk2/schematics/ng-add/schema.d.ts +11 -0
  235. package/schematics/cdk2/schematics/ng-add/schema.json +16 -0
  236. package/schematics/cdk2/schematics/ng-add/schema.mjs +10 -0
  237. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +53 -0
  238. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +17 -0
  239. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +25 -0
  240. package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +45 -0
  241. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.d.ts +11 -0
  242. package/schematics/cdk2/schematics/ng-generate/drag-drop/index.mjs +33 -0
  243. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.d.ts +10 -0
  244. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.json +100 -0
  245. package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.mjs +10 -0
  246. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.d.ts +15 -0
  247. package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.mjs +12 -0
  248. package/schematics/cdk2/schematics/ng-update/data/class-names.d.ts +15 -0
  249. package/schematics/cdk2/schematics/ng-update/data/class-names.mjs +12 -0
  250. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.d.ts +15 -0
  251. package/schematics/cdk2/schematics/ng-update/data/constructor-checks.mjs +17 -0
  252. package/schematics/cdk2/schematics/ng-update/data/css-selectors.d.ts +27 -0
  253. package/schematics/cdk2/schematics/ng-update/data/css-selectors.mjs +12 -0
  254. package/schematics/cdk2/schematics/ng-update/data/element-selectors.d.ts +15 -0
  255. package/schematics/cdk2/schematics/ng-update/data/element-selectors.mjs +12 -0
  256. package/schematics/cdk2/schematics/ng-update/data/index.d.ts +17 -0
  257. package/schematics/cdk2/schematics/ng-update/data/index.mjs +34 -0
  258. package/schematics/cdk2/schematics/ng-update/data/input-names.d.ts +22 -0
  259. package/schematics/cdk2/schematics/ng-update/data/input-names.mjs +12 -0
  260. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.d.ts +17 -0
  261. package/schematics/cdk2/schematics/ng-update/data/method-call-checks.mjs +12 -0
  262. package/schematics/cdk2/schematics/ng-update/data/output-names.d.ts +22 -0
  263. package/schematics/cdk2/schematics/ng-update/data/output-names.mjs +12 -0
  264. package/schematics/cdk2/schematics/ng-update/data/property-names.d.ts +20 -0
  265. package/schematics/cdk2/schematics/ng-update/data/property-names.mjs +12 -0
  266. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.d.ts +17 -0
  267. package/schematics/cdk2/schematics/ng-update/data/symbol-removal.mjs +12 -0
  268. package/schematics/cdk2/schematics/ng-update/devkit-file-system.d.ts +30 -0
  269. package/schematics/cdk2/schematics/ng-update/devkit-file-system.mjs +84 -0
  270. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.d.ts +24 -0
  271. package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.mjs +131 -0
  272. package/schematics/cdk2/schematics/ng-update/devkit-migration.d.ts +35 -0
  273. package/schematics/cdk2/schematics/ng-update/devkit-migration.mjs +20 -0
  274. package/schematics/cdk2/schematics/ng-update/find-stylesheets.d.ts +16 -0
  275. package/schematics/cdk2/schematics/ng-update/find-stylesheets.mjs +42 -0
  276. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.d.ts +15 -0
  277. package/schematics/cdk2/schematics/ng-update/html-parsing/angular.mjs +52 -0
  278. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.d.ts +24 -0
  279. package/schematics/cdk2/schematics/ng-update/html-parsing/elements.mjs +63 -0
  280. package/schematics/cdk2/schematics/ng-update/index.d.ts +10 -0
  281. package/schematics/cdk2/schematics/ng-update/index.mjs +30 -0
  282. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.d.ts +26 -0
  283. package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.mjs +68 -0
  284. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.d.ts +26 -0
  285. package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.mjs +55 -0
  286. package/schematics/cdk2/schematics/ng-update/migrations/class-names.d.ts +32 -0
  287. package/schematics/cdk2/schematics/ng-update/migrations/class-names.mjs +88 -0
  288. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.d.ts +29 -0
  289. package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.mjs +136 -0
  290. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.d.ts +26 -0
  291. package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.mjs +72 -0
  292. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.d.ts +26 -0
  293. package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.mjs +63 -0
  294. package/schematics/cdk2/schematics/ng-update/migrations/input-names.d.ts +26 -0
  295. package/schematics/cdk2/schematics/ng-update/migrations/input-names.mjs +56 -0
  296. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.d.ts +22 -0
  297. package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.mjs +59 -0
  298. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.d.ts +18 -0
  299. package/schematics/cdk2/schematics/ng-update/migrations/misc-template.mjs +22 -0
  300. package/schematics/cdk2/schematics/ng-update/migrations/output-names.d.ts +22 -0
  301. package/schematics/cdk2/schematics/ng-update/migrations/output-names.mjs +43 -0
  302. package/schematics/cdk2/schematics/ng-update/migrations/property-names.d.ts +22 -0
  303. package/schematics/cdk2/schematics/ng-update/migrations/property-names.mjs +57 -0
  304. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.d.ts +18 -0
  305. package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.mjs +43 -0
  306. package/schematics/cdk2/schematics/ng-update/public-api.d.ts +19 -0
  307. package/schematics/cdk2/schematics/ng-update/public-api.mjs +36 -0
  308. package/schematics/cdk2/schematics/ng-update/typescript/base-types.d.ts +10 -0
  309. package/schematics/cdk2/schematics/ng-update/typescript/base-types.mjs +24 -0
  310. package/schematics/cdk2/schematics/ng-update/typescript/imports.d.ts +18 -0
  311. package/schematics/cdk2/schematics/ng-update/typescript/imports.mjs +54 -0
  312. package/schematics/cdk2/schematics/ng-update/typescript/literal.d.ts +18 -0
  313. package/schematics/cdk2/schematics/ng-update/typescript/literal.mjs +33 -0
  314. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.d.ts +16 -0
  315. package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  316. package/schematics/cdk2/schematics/ng-update/upgrade-data.d.ts +34 -0
  317. package/schematics/cdk2/schematics/ng-update/upgrade-data.mjs +39 -0
  318. package/schematics/cdk2/schematics/package.json +3 -0
  319. package/schematics/cdk2/schematics/paths.d.ts +11 -0
  320. package/schematics/cdk2/schematics/paths.mjs +16 -0
  321. package/schematics/cdk2/schematics/update-tool/component-resource-collector.d.ts +44 -0
  322. package/schematics/cdk2/schematics/update-tool/component-resource-collector.mjs +166 -0
  323. package/schematics/cdk2/schematics/update-tool/file-system.d.ts +72 -0
  324. package/schematics/cdk2/schematics/update-tool/file-system.mjs +18 -0
  325. package/schematics/cdk2/schematics/update-tool/index.d.ts +74 -0
  326. package/schematics/cdk2/schematics/update-tool/index.mjs +178 -0
  327. package/schematics/cdk2/schematics/update-tool/logger.d.ts +15 -0
  328. package/schematics/cdk2/schematics/update-tool/logger.mjs +18 -0
  329. package/schematics/cdk2/schematics/update-tool/migration.d.ts +87 -0
  330. package/schematics/cdk2/schematics/update-tool/migration.mjs +77 -0
  331. package/schematics/cdk2/schematics/update-tool/public-api.d.ts +16 -0
  332. package/schematics/cdk2/schematics/update-tool/public-api.mjs +33 -0
  333. package/schematics/cdk2/schematics/update-tool/target-version.d.ts +16 -0
  334. package/schematics/cdk2/schematics/update-tool/target-version.mjs +28 -0
  335. package/schematics/cdk2/schematics/update-tool/update-recorder.d.ts +13 -0
  336. package/schematics/cdk2/schematics/update-tool/update-recorder.mjs +10 -0
  337. package/schematics/cdk2/schematics/update-tool/utils/decorators.d.ts +22 -0
  338. package/schematics/cdk2/schematics/update-tool/utils/decorators.mjs +42 -0
  339. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.d.ts +11 -0
  340. package/schematics/cdk2/schematics/update-tool/utils/diagnostics.mjs +19 -0
  341. package/schematics/cdk2/schematics/update-tool/utils/functions.d.ts +14 -0
  342. package/schematics/cdk2/schematics/update-tool/utils/functions.mjs +21 -0
  343. package/schematics/cdk2/schematics/update-tool/utils/imports.d.ts +17 -0
  344. package/schematics/cdk2/schematics/update-tool/utils/imports.mjs +111 -0
  345. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.d.ts +21 -0
  346. package/schematics/cdk2/schematics/update-tool/utils/line-mappings.mjs +76 -0
  347. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.d.ts +18 -0
  348. package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.mjs +45 -0
  349. package/schematics/cdk2/schematics/update-tool/utils/property-name.d.ts +18 -0
  350. package/schematics/cdk2/schematics/update-tool/utils/property-name.mjs +28 -0
  351. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.d.ts +36 -0
  352. package/schematics/cdk2/schematics/update-tool/utils/virtual-host.mjs +72 -0
  353. package/schematics/cdk2/schematics/update-tool/version-changes.d.ts +32 -0
  354. package/schematics/cdk2/schematics/update-tool/version-changes.mjs +39 -0
  355. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.d.ts +12 -0
  356. package/schematics/cdk2/schematics/utils/ast/ng-module-imports.mjs +83 -0
  357. package/schematics/cdk2/schematics/utils/ast.d.ts +25 -0
  358. package/schematics/cdk2/schematics/utils/ast.mjs +69 -0
  359. package/schematics/cdk2/schematics/utils/build-component.d.ts +20 -0
  360. package/schematics/cdk2/schematics/utils/build-component.mjs +184 -0
  361. package/schematics/cdk2/schematics/utils/get-project.d.ts +13 -0
  362. package/schematics/cdk2/schematics/utils/get-project.mjs +29 -0
  363. package/schematics/cdk2/schematics/utils/html-manipulation.d.ts +15 -0
  364. package/schematics/cdk2/schematics/utils/html-manipulation.mjs +92 -0
  365. package/schematics/cdk2/schematics/utils/index.d.ts +19 -0
  366. package/schematics/cdk2/schematics/utils/index.mjs +36 -0
  367. package/schematics/cdk2/schematics/utils/parse5-element.d.ts +12 -0
  368. package/schematics/cdk2/schematics/utils/parse5-element.mjs +31 -0
  369. package/schematics/cdk2/schematics/utils/project-index-file.d.ts +10 -0
  370. package/schematics/cdk2/schematics/utils/project-index-file.mjs +21 -0
  371. package/schematics/cdk2/schematics/utils/project-main-file.d.ts +10 -0
  372. package/schematics/cdk2/schematics/utils/project-main-file.mjs +26 -0
  373. package/schematics/cdk2/schematics/utils/project-style-file.d.ts +13 -0
  374. package/schematics/cdk2/schematics/utils/project-style-file.mjs +43 -0
  375. package/schematics/cdk2/schematics/utils/project-targets.d.ts +14 -0
  376. package/schematics/cdk2/schematics/utils/project-targets.mjs +39 -0
  377. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.d.ts +14 -0
  378. package/schematics/cdk2/schematics/utils/project-tsconfig-paths.mjs +35 -0
  379. package/schematics/cdk2/schematics/utils/schematic-options.d.ts +20 -0
  380. package/schematics/cdk2/schematics/utils/schematic-options.mjs +78 -0
  381. /package/schematics/{cdk/schematics/index.mjs → cdk2/schematics/index.js} +0 -0
  382. /package/schematics/{cdk/schematics/ng-add/index.mjs → cdk2/schematics/ng-add/index.js} +0 -0
  383. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.d.ts +0 -0
  384. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.js +0 -0
  385. /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.mjs +0 -0
  386. /package/schematics/{cdk/schematics/ng-add/schema.mjs → cdk2/schematics/ng-add/schema.js} +0 -0
  387. /package/schematics/{cdk/schematics/ng-generate/drag-drop/index.mjs → cdk2/schematics/ng-generate/drag-drop/index.js} +0 -0
  388. /package/schematics/{cdk/schematics/ng-generate/drag-drop/schema.mjs → cdk2/schematics/ng-generate/drag-drop/schema.js} +0 -0
  389. /package/schematics/{cdk/schematics/ng-update/data/attribute-selectors.mjs → cdk2/schematics/ng-update/data/attribute-selectors.js} +0 -0
  390. /package/schematics/{cdk/schematics/ng-update/data/class-names.mjs → cdk2/schematics/ng-update/data/class-names.js} +0 -0
  391. /package/schematics/{cdk/schematics/ng-update/data/constructor-checks.mjs → cdk2/schematics/ng-update/data/constructor-checks.js} +0 -0
  392. /package/schematics/{cdk/schematics/ng-update/data/css-selectors.mjs → cdk2/schematics/ng-update/data/css-selectors.js} +0 -0
  393. /package/schematics/{cdk/schematics/ng-update/data/element-selectors.mjs → cdk2/schematics/ng-update/data/element-selectors.js} +0 -0
  394. /package/schematics/{cdk/schematics/ng-update/data/index.mjs → cdk2/schematics/ng-update/data/index.js} +0 -0
  395. /package/schematics/{cdk/schematics/ng-update/data/input-names.mjs → cdk2/schematics/ng-update/data/input-names.js} +0 -0
  396. /package/schematics/{cdk/schematics/ng-update/data/method-call-checks.mjs → cdk2/schematics/ng-update/data/method-call-checks.js} +0 -0
  397. /package/schematics/{cdk/schematics/ng-update/data/output-names.mjs → cdk2/schematics/ng-update/data/output-names.js} +0 -0
  398. /package/schematics/{cdk/schematics/ng-update/data/property-names.mjs → cdk2/schematics/ng-update/data/property-names.js} +0 -0
  399. /package/schematics/{cdk/schematics/ng-update/data/symbol-removal.mjs → cdk2/schematics/ng-update/data/symbol-removal.js} +0 -0
  400. /package/schematics/{cdk/schematics/ng-update/devkit-file-system.mjs → cdk2/schematics/ng-update/devkit-file-system.js} +0 -0
  401. /package/schematics/{cdk/schematics/ng-update/devkit-migration-rule.mjs → cdk2/schematics/ng-update/devkit-migration-rule.js} +0 -0
  402. /package/schematics/{cdk/schematics/ng-update/devkit-migration.mjs → cdk2/schematics/ng-update/devkit-migration.js} +0 -0
  403. /package/schematics/{cdk/schematics/ng-update/find-stylesheets.mjs → cdk2/schematics/ng-update/find-stylesheets.js} +0 -0
  404. /package/schematics/{cdk/schematics/ng-update/html-parsing/angular.mjs → cdk2/schematics/ng-update/html-parsing/angular.js} +0 -0
  405. /package/schematics/{cdk/schematics/ng-update/html-parsing/elements.mjs → cdk2/schematics/ng-update/html-parsing/elements.js} +0 -0
  406. /package/schematics/{cdk/schematics/ng-update/index.mjs → cdk2/schematics/ng-update/index.js} +0 -0
  407. /package/schematics/{cdk/schematics/ng-update/migrations/attribute-selectors.mjs → cdk2/schematics/ng-update/migrations/attribute-selectors.js} +0 -0
  408. /package/schematics/{cdk/schematics/ng-update/migrations/class-inheritance.mjs → cdk2/schematics/ng-update/migrations/class-inheritance.js} +0 -0
  409. /package/schematics/{cdk/schematics/ng-update/migrations/class-names.mjs → cdk2/schematics/ng-update/migrations/class-names.js} +0 -0
  410. /package/schematics/{cdk/schematics/ng-update/migrations/constructor-signature.mjs → cdk2/schematics/ng-update/migrations/constructor-signature.js} +0 -0
  411. /package/schematics/{cdk/schematics/ng-update/migrations/css-selectors.mjs → cdk2/schematics/ng-update/migrations/css-selectors.js} +0 -0
  412. /package/schematics/{cdk/schematics/ng-update/migrations/element-selectors.mjs → cdk2/schematics/ng-update/migrations/element-selectors.js} +0 -0
  413. /package/schematics/{cdk/schematics/ng-update/migrations/input-names.mjs → cdk2/schematics/ng-update/migrations/input-names.js} +0 -0
  414. /package/schematics/{cdk/schematics/ng-update/migrations/method-call-arguments.mjs → cdk2/schematics/ng-update/migrations/method-call-arguments.js} +0 -0
  415. /package/schematics/{cdk/schematics/ng-update/migrations/misc-template.mjs → cdk2/schematics/ng-update/migrations/misc-template.js} +0 -0
  416. /package/schematics/{cdk/schematics/ng-update/migrations/output-names.mjs → cdk2/schematics/ng-update/migrations/output-names.js} +0 -0
  417. /package/schematics/{cdk/schematics/ng-update/migrations/property-names.mjs → cdk2/schematics/ng-update/migrations/property-names.js} +0 -0
  418. /package/schematics/{cdk/schematics/ng-update/migrations/symbol-removal.mjs → cdk2/schematics/ng-update/migrations/symbol-removal.js} +0 -0
  419. /package/schematics/{cdk/schematics/ng-update/public-api.mjs → cdk2/schematics/ng-update/public-api.js} +0 -0
  420. /package/schematics/{cdk/schematics/ng-update/typescript/base-types.mjs → cdk2/schematics/ng-update/typescript/base-types.js} +0 -0
  421. /package/schematics/{cdk/schematics/ng-update/typescript/imports.mjs → cdk2/schematics/ng-update/typescript/imports.js} +0 -0
  422. /package/schematics/{cdk/schematics/ng-update/typescript/literal.mjs → cdk2/schematics/ng-update/typescript/literal.js} +0 -0
  423. /package/schematics/{cdk/schematics/ng-update/typescript/module-specifiers.mjs → cdk2/schematics/ng-update/typescript/module-specifiers.js} +0 -0
  424. /package/schematics/{cdk/schematics/ng-update/upgrade-data.mjs → cdk2/schematics/ng-update/upgrade-data.js} +0 -0
  425. /package/schematics/{cdk/schematics/paths.mjs → cdk2/schematics/paths.js} +0 -0
  426. /package/schematics/{cdk → cdk2}/schematics/schematics.externs.js +0 -0
  427. /package/schematics/{cdk → cdk2}/schematics/tsconfig.json +0 -0
  428. /package/schematics/{cdk/schematics/update-tool/component-resource-collector.mjs → cdk2/schematics/update-tool/component-resource-collector.js} +0 -0
  429. /package/schematics/{cdk/schematics/update-tool/file-system.mjs → cdk2/schematics/update-tool/file-system.js} +0 -0
  430. /package/schematics/{cdk/schematics/update-tool/index.mjs → cdk2/schematics/update-tool/index.js} +0 -0
  431. /package/schematics/{cdk/schematics/update-tool/logger.mjs → cdk2/schematics/update-tool/logger.js} +0 -0
  432. /package/schematics/{cdk/schematics/update-tool/migration.mjs → cdk2/schematics/update-tool/migration.js} +0 -0
  433. /package/schematics/{cdk/schematics/update-tool/public-api.mjs → cdk2/schematics/update-tool/public-api.js} +0 -0
  434. /package/schematics/{cdk/schematics/update-tool/target-version.mjs → cdk2/schematics/update-tool/target-version.js} +0 -0
  435. /package/schematics/{cdk/schematics/update-tool/update-recorder.mjs → cdk2/schematics/update-tool/update-recorder.js} +0 -0
  436. /package/schematics/{cdk → cdk2}/schematics/update-tool/update-tool.externs.js +0 -0
  437. /package/schematics/{cdk/schematics/update-tool/utils/decorators.mjs → cdk2/schematics/update-tool/utils/decorators.js} +0 -0
  438. /package/schematics/{cdk/schematics/update-tool/utils/diagnostics.mjs → cdk2/schematics/update-tool/utils/diagnostics.js} +0 -0
  439. /package/schematics/{cdk/schematics/update-tool/utils/functions.mjs → cdk2/schematics/update-tool/utils/functions.js} +0 -0
  440. /package/schematics/{cdk/schematics/update-tool/utils/imports.mjs → cdk2/schematics/update-tool/utils/imports.js} +0 -0
  441. /package/schematics/{cdk/schematics/update-tool/utils/line-mappings.mjs → cdk2/schematics/update-tool/utils/line-mappings.js} +0 -0
  442. /package/schematics/{cdk/schematics/update-tool/utils/parse-tsconfig.mjs → cdk2/schematics/update-tool/utils/parse-tsconfig.js} +0 -0
  443. /package/schematics/{cdk/schematics/update-tool/utils/property-name.mjs → cdk2/schematics/update-tool/utils/property-name.js} +0 -0
  444. /package/schematics/{cdk/schematics/update-tool/utils/virtual-host.mjs → cdk2/schematics/update-tool/utils/virtual-host.js} +0 -0
  445. /package/schematics/{cdk/schematics/update-tool/version-changes.mjs → cdk2/schematics/update-tool/version-changes.js} +0 -0
  446. /package/schematics/{cdk/schematics/utils/ast/ng-module-imports.mjs → cdk2/schematics/utils/ast/ng-module-imports.js} +0 -0
  447. /package/schematics/{cdk/schematics/utils/ast.mjs → cdk2/schematics/utils/ast.js} +0 -0
  448. /package/schematics/{cdk/schematics/utils/build-component.mjs → cdk2/schematics/utils/build-component.js} +0 -0
  449. /package/schematics/{cdk/schematics/utils/get-project.mjs → cdk2/schematics/utils/get-project.js} +0 -0
  450. /package/schematics/{cdk/schematics/utils/html-manipulation.mjs → cdk2/schematics/utils/html-manipulation.js} +0 -0
  451. /package/schematics/{cdk/schematics/utils/index.mjs → cdk2/schematics/utils/index.js} +0 -0
  452. /package/schematics/{cdk/schematics/utils/parse5-element.mjs → cdk2/schematics/utils/parse5-element.js} +0 -0
  453. /package/schematics/{cdk/schematics/utils/project-index-file.mjs → cdk2/schematics/utils/project-index-file.js} +0 -0
  454. /package/schematics/{cdk/schematics/utils/project-main-file.mjs → cdk2/schematics/utils/project-main-file.js} +0 -0
  455. /package/schematics/{cdk/schematics/utils/project-style-file.mjs → cdk2/schematics/utils/project-style-file.js} +0 -0
  456. /package/schematics/{cdk/schematics/utils/project-targets.mjs → cdk2/schematics/utils/project-targets.js} +0 -0
  457. /package/schematics/{cdk/schematics/utils/project-tsconfig-paths.mjs → cdk2/schematics/utils/project-tsconfig-paths.js} +0 -0
  458. /package/schematics/{cdk/schematics/utils/schematic-options.mjs → cdk2/schematics/utils/schematic-options.js} +0 -0
@@ -0,0 +1,30 @@
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.updateToV17 = void 0;
11
+ const target_version_1 = require("../update-tool/target-version");
12
+ const upgrade_data_1 = require("./upgrade-data");
13
+ const devkit_migration_rule_1 = require("./devkit-migration-rule");
14
+ const cdkMigrations = [];
15
+ /** Entry point for the migration schematics with target of Angular CDK 17.0.0 */
16
+ function updateToV17() {
17
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V17, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
18
+ }
19
+ exports.updateToV17 = updateToV17;
20
+ /** Function that will be called when the migration completed. */
21
+ function onMigrationComplete(context, targetVersion, hasFailures) {
22
+ context.logger.info('');
23
+ context.logger.info(` ✓ Updated Angular CDK to ${targetVersion}`);
24
+ context.logger.info('');
25
+ if (hasFailures) {
26
+ context.logger.warn(' ⚠ Some issues were detected but could not be fixed automatically. Please check the ' +
27
+ 'output above and fix these issues manually.');
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILGtFQUE0RDtBQUM1RCxpREFBOEM7QUFDOUMsbUVBQThGO0FBRTlGLE1BQU0sYUFBYSxHQUE4QixFQUFFLENBQUM7QUFFcEQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRUFBaUU7QUFDakUsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsV0FBb0I7SUFFcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEIsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsd0ZBQXdGO1lBQ3RGLDZDQUE2QyxDQUNoRCxDQUFDO0tBQ0g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuLi91cGRhdGUtdG9vbC90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge2Nka1VwZ3JhZGVEYXRhfSBmcm9tICcuL3VwZ3JhZGUtZGF0YSc7XG5pbXBvcnQge2NyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUsIE51bGxhYmxlRGV2a2l0TWlncmF0aW9ufSBmcm9tICcuL2RldmtpdC1taWdyYXRpb24tcnVsZSc7XG5cbmNvbnN0IGNka01pZ3JhdGlvbnM6IE51bGxhYmxlRGV2a2l0TWlncmF0aW9uW10gPSBbXTtcblxuLyoqIEVudHJ5IHBvaW50IGZvciB0aGUgbWlncmF0aW9uIHNjaGVtYXRpY3Mgd2l0aCB0YXJnZXQgb2YgQW5ndWxhciBDREsgMTcuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WMTcoKTogUnVsZSB7XG4gIHJldHVybiBjcmVhdGVNaWdyYXRpb25TY2hlbWF0aWNSdWxlKFxuICAgIFRhcmdldFZlcnNpb24uVjE3LFxuICAgIGNka01pZ3JhdGlvbnMsXG4gICAgY2RrVXBncmFkZURhdGEsXG4gICAgb25NaWdyYXRpb25Db21wbGV0ZSxcbiAgKTtcbn1cblxuLyoqIEZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGNvbXBsZXRlZC4gKi9cbmZ1bmN0aW9uIG9uTWlncmF0aW9uQ29tcGxldGUoXG4gIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQsXG4gIHRhcmdldFZlcnNpb246IFRhcmdldFZlcnNpb24sXG4gIGhhc0ZhaWx1cmVzOiBib29sZWFuLFxuKSB7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oJycpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKGAgIOKckyAgVXBkYXRlZCBBbmd1bGFyIENESyB0byAke3RhcmdldFZlcnNpb259YCk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oJycpO1xuXG4gIGlmIChoYXNGYWlsdXJlcykge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAnICDimqAgIFNvbWUgaXNzdWVzIHdlcmUgZGV0ZWN0ZWQgYnV0IGNvdWxkIG5vdCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LiBQbGVhc2UgY2hlY2sgdGhlICcgK1xuICAgICAgICAnb3V0cHV0IGFib3ZlIGFuZCBmaXggdGhlc2UgaXNzdWVzIG1hbnVhbGx5LicsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
10
+ import { Migration } from '../../update-tool/migration';
11
+ import { AttributeSelectorUpgradeData } from '../data/attribute-selectors';
12
+ import { UpgradeData } from '../upgrade-data';
13
+ /**
14
+ * Migration that walks through every string literal, template and stylesheet
15
+ * in order to switch deprecated attribute selectors to the updated selector.
16
+ */
17
+ export declare class AttributeSelectorsMigration extends Migration<UpgradeData> {
18
+ /** Required upgrade changes for specified target version. */
19
+ data: AttributeSelectorUpgradeData[];
20
+ enabled: boolean;
21
+ visitNode(node: ts.Node): void;
22
+ visitTemplate(template: ResolvedResource): void;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ private _visitStringLiteralLike;
25
+ private _replaceSelector;
26
+ }
@@ -0,0 +1,68 @@
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.AttributeSelectorsMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const literal_1 = require("../typescript/literal");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that walks through every string literal, template and stylesheet
17
+ * in order to switch deprecated attribute selectors to the updated selector.
18
+ */
19
+ class AttributeSelectorsMigration extends migration_1.Migration {
20
+ /** Required upgrade changes for specified target version. */
21
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'attributeSelectors');
22
+ // Only enable the migration rule if there is upgrade data.
23
+ enabled = this.data.length !== 0;
24
+ visitNode(node) {
25
+ if (ts.isStringLiteralLike(node)) {
26
+ this._visitStringLiteralLike(node);
27
+ }
28
+ }
29
+ visitTemplate(template) {
30
+ this.data.forEach(selector => {
31
+ (0, literal_1.findAllSubstringIndices)(template.content, selector.replace)
32
+ .map(offset => template.start + offset)
33
+ .forEach(start => this._replaceSelector(template.filePath, start, selector));
34
+ });
35
+ }
36
+ visitStylesheet(stylesheet) {
37
+ this.data.forEach(selector => {
38
+ const currentSelector = `[${selector.replace}]`;
39
+ const updatedSelector = `[${selector.replaceWith}]`;
40
+ (0, literal_1.findAllSubstringIndices)(stylesheet.content, currentSelector)
41
+ .map(offset => stylesheet.start + offset)
42
+ .forEach(start => this._replaceSelector(stylesheet.filePath, start, {
43
+ replace: currentSelector,
44
+ replaceWith: updatedSelector,
45
+ }));
46
+ });
47
+ }
48
+ _visitStringLiteralLike(literal) {
49
+ if (literal.parent && literal.parent.kind !== ts.SyntaxKind.CallExpression) {
50
+ return;
51
+ }
52
+ const literalText = literal.getText();
53
+ const filePath = this.fileSystem.resolve(literal.getSourceFile().fileName);
54
+ this.data.forEach(selector => {
55
+ (0, literal_1.findAllSubstringIndices)(literalText, selector.replace)
56
+ .map(offset => literal.getStart() + offset)
57
+ .forEach(start => this._replaceSelector(filePath, start, selector));
58
+ });
59
+ }
60
+ _replaceSelector(filePath, start, data) {
61
+ this.fileSystem
62
+ .edit(filePath)
63
+ .remove(start, data.replace.length)
64
+ .insertRight(start, data.replaceWith);
65
+ }
66
+ }
67
+ exports.AttributeSelectorsMigration = AttributeSelectorsMigration;
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvbWlncmF0aW9ucy9hdHRyaWJ1dGUtc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILGlDQUFpQztBQUdqQywyREFBc0Q7QUFFdEQsbURBQThEO0FBQzlELGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHFCQUFzQjtJQUNyRSw2REFBNkQ7SUFDN0QsSUFBSSxHQUFHLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFFekQsMkRBQTJEO0lBQzNELE9BQU8sR0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFakMsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVRLGFBQWEsQ0FBQyxRQUEwQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7aUJBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLGVBQWUsQ0FBQyxVQUE0QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQztZQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQztZQUVwRCxJQUFBLGlDQUF1QixFQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO2lCQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNoRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLGVBQWU7YUFDN0IsQ0FBQyxDQUNILENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUE2QjtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDMUUsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO2lCQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixRQUF1QixFQUN2QixLQUFhLEVBQ2IsSUFBa0M7UUFFbEMsSUFBSSxDQUFDLFVBQVU7YUFDWixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUNsQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUE5REQsa0VBOERDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9maWxlLXN5c3RlbSc7XG5pbXBvcnQge1Jlc29sdmVkUmVzb3VyY2V9IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL2NvbXBvbmVudC1yZXNvdXJjZS1jb2xsZWN0b3InO1xuaW1wb3J0IHtNaWdyYXRpb259IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL21pZ3JhdGlvbic7XG5pbXBvcnQge0F0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGF9IGZyb20gJy4uL2RhdGEvYXR0cmlidXRlLXNlbGVjdG9ycyc7XG5pbXBvcnQge2ZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzfSBmcm9tICcuLi90eXBlc2NyaXB0L2xpdGVyYWwnO1xuaW1wb3J0IHtnZXRWZXJzaW9uVXBncmFkZURhdGEsIFVwZ3JhZGVEYXRhfSBmcm9tICcuLi91cGdyYWRlLWRhdGEnO1xuXG4vKipcbiAqIE1pZ3JhdGlvbiB0aGF0IHdhbGtzIHRocm91Z2ggZXZlcnkgc3RyaW5nIGxpdGVyYWwsIHRlbXBsYXRlIGFuZCBzdHlsZXNoZWV0XG4gKiBpbiBvcmRlciB0byBzd2l0Y2ggZGVwcmVjYXRlZCBhdHRyaWJ1dGUgc2VsZWN0b3JzIHRvIHRoZSB1cGRhdGVkIHNlbGVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlU2VsZWN0b3JzTWlncmF0aW9uIGV4dGVuZHMgTWlncmF0aW9uPFVwZ3JhZGVEYXRhPiB7XG4gIC8qKiBSZXF1aXJlZCB1cGdyYWRlIGNoYW5nZXMgZm9yIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnYXR0cmlidXRlU2VsZWN0b3JzJyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpIHtcbiAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShub2RlKSkge1xuICAgICAgdGhpcy5fdmlzaXRTdHJpbmdMaXRlcmFsTGlrZShub2RlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKSB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXModGVtcGxhdGUuY29udGVudCwgc2VsZWN0b3IucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gdGVtcGxhdGUuc3RhcnQgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3Rvcih0ZW1wbGF0ZS5maWxlUGF0aCwgc3RhcnQsIHNlbGVjdG9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RvciA9IGBbJHtzZWxlY3Rvci5yZXBsYWNlfV1gO1xuICAgICAgY29uc3QgdXBkYXRlZFNlbGVjdG9yID0gYFske3NlbGVjdG9yLnJlcGxhY2VXaXRofV1gO1xuXG4gICAgICBmaW5kQWxsU3Vic3RyaW5nSW5kaWNlcyhzdHlsZXNoZWV0LmNvbnRlbnQsIGN1cnJlbnRTZWxlY3RvcilcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gc3R5bGVzaGVldC5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT5cbiAgICAgICAgICB0aGlzLl9yZXBsYWNlU2VsZWN0b3Ioc3R5bGVzaGVldC5maWxlUGF0aCwgc3RhcnQsIHtcbiAgICAgICAgICAgIHJlcGxhY2U6IGN1cnJlbnRTZWxlY3RvcixcbiAgICAgICAgICAgIHJlcGxhY2VXaXRoOiB1cGRhdGVkU2VsZWN0b3IsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdFN0cmluZ0xpdGVyYWxMaWtlKGxpdGVyYWw6IHRzLlN0cmluZ0xpdGVyYWxMaWtlKSB7XG4gICAgaWYgKGxpdGVyYWwucGFyZW50ICYmIGxpdGVyYWwucGFyZW50LmtpbmQgIT09IHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXRlcmFsVGV4dCA9IGxpdGVyYWwuZ2V0VGV4dCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUobGl0ZXJhbC5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXMobGl0ZXJhbFRleHQsIHNlbGVjdG9yLnJlcGxhY2UpXG4gICAgICAgIC5tYXAob2Zmc2V0ID0+IGxpdGVyYWwuZ2V0U3RhcnQoKSArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT4gdGhpcy5fcmVwbGFjZVNlbGVjdG9yKGZpbGVQYXRoLCBzdGFydCwgc2VsZWN0b3IpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VTZWxlY3RvcihcbiAgICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIGRhdGE6IEF0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGEsXG4gICkge1xuICAgIHRoaXMuZmlsZVN5c3RlbVxuICAgICAgLmVkaXQoZmlsZVBhdGgpXG4gICAgICAucmVtb3ZlKHN0YXJ0LCBkYXRhLnJlcGxhY2UubGVuZ3RoKVxuICAgICAgLmluc2VydFJpZ2h0KHN0YXJ0LCBkYXRhLnJlcGxhY2VXaXRoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { PropertyNameUpgradeData } from '../data/property-names';
11
+ import { UpgradeData } from '../upgrade-data';
12
+ /**
13
+ * Migration that identifies class declarations that extend CDK or Material classes
14
+ * which had a public property change.
15
+ */
16
+ export declare class ClassInheritanceMigration extends Migration<UpgradeData> {
17
+ /**
18
+ * Map of classes that have been updated. Each class name maps to the according property
19
+ * change data.
20
+ */
21
+ propertyNames: Map<string, PropertyNameUpgradeData>;
22
+ enabled: boolean;
23
+ init(): void;
24
+ visitNode(node: ts.Node): void;
25
+ private _visitClassDeclaration;
26
+ }
@@ -0,0 +1,55 @@
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.ClassInheritanceMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const base_types_1 = require("../typescript/base-types");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that identifies class declarations that extend CDK or Material classes
17
+ * which had a public property change.
18
+ */
19
+ class ClassInheritanceMigration extends migration_1.Migration {
20
+ /**
21
+ * Map of classes that have been updated. Each class name maps to the according property
22
+ * change data.
23
+ */
24
+ propertyNames = new Map();
25
+ // Only enable the migration rule if there is upgrade data.
26
+ enabled = this.propertyNames.size !== 0;
27
+ init() {
28
+ (0, upgrade_data_1.getVersionUpgradeData)(this, 'propertyNames')
29
+ .filter(data => data.limitedTo && data.limitedTo.classes)
30
+ .forEach(data => data.limitedTo.classes.forEach(name => this.propertyNames.set(name, data)));
31
+ }
32
+ visitNode(node) {
33
+ if (ts.isClassDeclaration(node)) {
34
+ this._visitClassDeclaration(node);
35
+ }
36
+ }
37
+ _visitClassDeclaration(node) {
38
+ const baseTypes = (0, base_types_1.determineBaseTypes)(node);
39
+ const className = node.name ? node.name.text : '{unknown-name}';
40
+ if (!baseTypes) {
41
+ return;
42
+ }
43
+ baseTypes.forEach(typeName => {
44
+ const data = this.propertyNames.get(typeName);
45
+ if (data) {
46
+ this.createFailureAtNode(node, `Found class "${className}" which extends class ` +
47
+ `"${typeName}". Please note that the base class property ` +
48
+ `"${data.replace}" has changed to "${data.replaceWith}". ` +
49
+ `You may need to update your class as well.`);
50
+ }
51
+ });
52
+ }
53
+ }
54
+ exports.ClassInheritanceMigration = ClassInheritanceMigration;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtaW5oZXJpdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvY2xhc3MtaW5oZXJpdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBQ2pDLDJEQUFzRDtBQUV0RCx5REFBNEQ7QUFDNUQsa0RBQW1FO0FBRW5FOzs7R0FHRztBQUNILE1BQWEseUJBQTBCLFNBQVEscUJBQXNCO0lBQ25FOzs7T0FHRztJQUNILGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUUzRCwyREFBMkQ7SUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUUvQixJQUFJO1FBQ1gsSUFBQSxvQ0FBcUIsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO2FBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7YUFDeEQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRVEsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQXlCO1FBQ3RELE1BQU0sU0FBUyxHQUFHLElBQUEsK0JBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBRWhFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFFRCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTlDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FDdEIsSUFBSSxFQUNKLGdCQUFnQixTQUFTLHdCQUF3QjtvQkFDL0MsSUFBSSxRQUFRLDhDQUE4QztvQkFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsS0FBSztvQkFDMUQsNENBQTRDLENBQy9DLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBNUNELDhEQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtQcm9wZXJ0eU5hbWVVcGdyYWRlRGF0YX0gZnJvbSAnLi4vZGF0YS9wcm9wZXJ0eS1uYW1lcyc7XG5pbXBvcnQge2RldGVybWluZUJhc2VUeXBlc30gZnJvbSAnLi4vdHlwZXNjcmlwdC9iYXNlLXR5cGVzJztcbmltcG9ydCB7Z2V0VmVyc2lvblVwZ3JhZGVEYXRhLCBVcGdyYWRlRGF0YX0gZnJvbSAnLi4vdXBncmFkZS1kYXRhJztcblxuLyoqXG4gKiBNaWdyYXRpb24gdGhhdCBpZGVudGlmaWVzIGNsYXNzIGRlY2xhcmF0aW9ucyB0aGF0IGV4dGVuZCBDREsgb3IgTWF0ZXJpYWwgY2xhc3Nlc1xuICogd2hpY2ggaGFkIGEgcHVibGljIHByb3BlcnR5IGNoYW5nZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzSW5oZXJpdGFuY2VNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqXG4gICAqIE1hcCBvZiBjbGFzc2VzIHRoYXQgaGF2ZSBiZWVuIHVwZGF0ZWQuIEVhY2ggY2xhc3MgbmFtZSBtYXBzIHRvIHRoZSBhY2NvcmRpbmcgcHJvcGVydHlcbiAgICogY2hhbmdlIGRhdGEuXG4gICAqL1xuICBwcm9wZXJ0eU5hbWVzID0gbmV3IE1hcDxzdHJpbmcsIFByb3BlcnR5TmFtZVVwZ3JhZGVEYXRhPigpO1xuXG4gIC8vIE9ubHkgZW5hYmxlIHRoZSBtaWdyYXRpb24gcnVsZSBpZiB0aGVyZSBpcyB1cGdyYWRlIGRhdGEuXG4gIGVuYWJsZWQgPSB0aGlzLnByb3BlcnR5TmFtZXMuc2l6ZSAhPT0gMDtcblxuICBvdmVycmlkZSBpbml0KCk6IHZvaWQge1xuICAgIGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAncHJvcGVydHlOYW1lcycpXG4gICAgICAuZmlsdGVyKGRhdGEgPT4gZGF0YS5saW1pdGVkVG8gJiYgZGF0YS5saW1pdGVkVG8uY2xhc3NlcylcbiAgICAgIC5mb3JFYWNoKGRhdGEgPT4gZGF0YS5saW1pdGVkVG8uY2xhc3Nlcy5mb3JFYWNoKG5hbWUgPT4gdGhpcy5wcm9wZXJ0eU5hbWVzLnNldChuYW1lLCBkYXRhKSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHtcbiAgICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICB0aGlzLl92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pIHtcbiAgICBjb25zdCBiYXNlVHlwZXMgPSBkZXRlcm1pbmVCYXNlVHlwZXMobm9kZSk7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gbm9kZS5uYW1lID8gbm9kZS5uYW1lLnRleHQgOiAne3Vua25vd24tbmFtZX0nO1xuXG4gICAgaWYgKCFiYXNlVHlwZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBiYXNlVHlwZXMuZm9yRWFjaCh0eXBlTmFtZSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5wcm9wZXJ0eU5hbWVzLmdldCh0eXBlTmFtZSk7XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRmFpbHVyZUF0Tm9kZShcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGBGb3VuZCBjbGFzcyBcIiR7Y2xhc3NOYW1lfVwiIHdoaWNoIGV4dGVuZHMgY2xhc3MgYCArXG4gICAgICAgICAgICBgXCIke3R5cGVOYW1lfVwiLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBiYXNlIGNsYXNzIHByb3BlcnR5IGAgK1xuICAgICAgICAgICAgYFwiJHtkYXRhLnJlcGxhY2V9XCIgaGFzIGNoYW5nZWQgdG8gXCIke2RhdGEucmVwbGFjZVdpdGh9XCIuIGAgK1xuICAgICAgICAgICAgYFlvdSBtYXkgbmVlZCB0byB1cGRhdGUgeW91ciBjbGFzcyBhcyB3ZWxsLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { ClassNameUpgradeData } from '../data';
11
+ import { UpgradeData } from '../upgrade-data';
12
+ /**
13
+ * Migration that walks through every identifier that is part of Angular Material or thr CDK
14
+ * and replaces the outdated name with the new one if specified in the upgrade data.
15
+ */
16
+ export declare class ClassNamesMigration extends Migration<UpgradeData> {
17
+ /** Change data that upgrades to the specified target version. */
18
+ data: ClassNameUpgradeData[];
19
+ /**
20
+ * List of identifier names that have been imported from `@angular/material` or `@angular/cdk`
21
+ * in the current source file and therefore can be considered trusted.
22
+ */
23
+ trustedIdentifiers: Set<string>;
24
+ /** List of namespaces that have been imported from `@angular/material` or `@angular/cdk`. */
25
+ trustedNamespaces: Set<string>;
26
+ enabled: boolean;
27
+ visitNode(node: ts.Node): void;
28
+ /** Method that is called for every identifier inside of the specified project. */
29
+ private _visitIdentifier;
30
+ /** Creates a failure and replacement for the specified identifier. */
31
+ private _createFailureWithReplacement;
32
+ }
@@ -0,0 +1,88 @@
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.ClassNamesMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const imports_1 = require("../typescript/imports");
14
+ const module_specifiers_1 = require("../typescript/module-specifiers");
15
+ const upgrade_data_1 = require("../upgrade-data");
16
+ /**
17
+ * Migration that walks through every identifier that is part of Angular Material or thr CDK
18
+ * and replaces the outdated name with the new one if specified in the upgrade data.
19
+ */
20
+ // TODO: rework this rule to identify symbols using the import identifier resolver. This
21
+ // makes it more robust, less AST convoluted and is more TypeScript AST idiomatic. COMP-300.
22
+ class ClassNamesMigration extends migration_1.Migration {
23
+ /** Change data that upgrades to the specified target version. */
24
+ data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'classNames');
25
+ /**
26
+ * List of identifier names that have been imported from `@angular/material` or `@angular/cdk`
27
+ * in the current source file and therefore can be considered trusted.
28
+ */
29
+ trustedIdentifiers = new Set();
30
+ /** List of namespaces that have been imported from `@angular/material` or `@angular/cdk`. */
31
+ trustedNamespaces = new Set();
32
+ // Only enable the migration rule if there is upgrade data.
33
+ enabled = this.data.length !== 0;
34
+ visitNode(node) {
35
+ if (ts.isIdentifier(node)) {
36
+ this._visitIdentifier(node);
37
+ }
38
+ }
39
+ /** Method that is called for every identifier inside of the specified project. */
40
+ _visitIdentifier(identifier) {
41
+ // For identifiers that aren't listed in the className data, the whole check can be
42
+ // skipped safely.
43
+ if (!this.data.some(data => data.replace === identifier.text)) {
44
+ return;
45
+ }
46
+ // For namespace imports that are referring to Angular Material or the CDK, we store the
47
+ // namespace name in order to be able to safely find identifiers that don't belong to the
48
+ // developer's application.
49
+ if ((0, imports_1.isNamespaceImportNode)(identifier) && (0, module_specifiers_1.isMaterialImportDeclaration)(identifier)) {
50
+ this.trustedNamespaces.add(identifier.text);
51
+ return this._createFailureWithReplacement(identifier);
52
+ }
53
+ // For export declarations that are referring to Angular Material or the CDK, the identifier
54
+ // can be immediately updated to the new name.
55
+ if ((0, imports_1.isExportSpecifierNode)(identifier) && (0, module_specifiers_1.isMaterialExportDeclaration)(identifier)) {
56
+ return this._createFailureWithReplacement(identifier);
57
+ }
58
+ // For import declarations that are referring to Angular Material or the CDK, the name of
59
+ // the import identifiers. This allows us to identify identifiers that belong to Material and
60
+ // the CDK, and we won't accidentally touch a developer's identifier.
61
+ if ((0, imports_1.isImportSpecifierNode)(identifier) && (0, module_specifiers_1.isMaterialImportDeclaration)(identifier)) {
62
+ this.trustedIdentifiers.add(identifier.text);
63
+ return this._createFailureWithReplacement(identifier);
64
+ }
65
+ // In case the identifier is part of a property access expression, we need to verify that the
66
+ // property access originates from a namespace that has been imported from Material or the CDK.
67
+ if (ts.isPropertyAccessExpression(identifier.parent)) {
68
+ const expression = identifier.parent.expression;
69
+ if (ts.isIdentifier(expression) && this.trustedNamespaces.has(expression.text)) {
70
+ return this._createFailureWithReplacement(identifier);
71
+ }
72
+ }
73
+ else if (this.trustedIdentifiers.has(identifier.text)) {
74
+ return this._createFailureWithReplacement(identifier);
75
+ }
76
+ }
77
+ /** Creates a failure and replacement for the specified identifier. */
78
+ _createFailureWithReplacement(identifier) {
79
+ const classData = this.data.find(data => data.replace === identifier.text);
80
+ const filePath = this.fileSystem.resolve(identifier.getSourceFile().fileName);
81
+ this.fileSystem
82
+ .edit(filePath)
83
+ .remove(identifier.getStart(), identifier.getWidth())
84
+ .insertRight(identifier.getStart(), classData.replaceWith);
85
+ }
86
+ }
87
+ exports.ClassNamesMigration = ClassNamesMigration;
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvY2xhc3MtbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBQ2pDLDJEQUFzRDtBQUd0RCxtREFJK0I7QUFDL0IsdUVBR3lDO0FBQ3pDLGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCx3RkFBd0Y7QUFDeEYsNEZBQTRGO0FBQzVGLE1BQWEsbUJBQW9CLFNBQVEscUJBQXNCO0lBQzdELGlFQUFpRTtJQUNqRSxJQUFJLEdBQTJCLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXpFOzs7T0FHRztJQUNILGtCQUFrQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTVDLDZGQUE2RjtJQUM3RixpQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUUzQywyREFBMkQ7SUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUV4QixTQUFTLENBQUMsSUFBYTtRQUM5QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGtGQUFrRjtJQUMxRSxnQkFBZ0IsQ0FBQyxVQUF5QjtRQUNoRCxtRkFBbUY7UUFDbkYsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdELE9BQU87U0FDUjtRQUVELHdGQUF3RjtRQUN4Rix5RkFBeUY7UUFDekYsMkJBQTJCO1FBQzNCLElBQUksSUFBQSwrQkFBcUIsRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLCtDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsNEZBQTRGO1FBQzVGLDhDQUE4QztRQUM5QyxJQUFJLElBQUEsK0JBQXFCLEVBQUMsVUFBVSxDQUFDLElBQUksSUFBQSwrQ0FBMkIsRUFBQyxVQUFVLENBQUMsRUFBRTtZQUNoRixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2RDtRQUVELHlGQUF5RjtRQUN6Riw2RkFBNkY7UUFDN0YscUVBQXFFO1FBQ3JFLElBQUksSUFBQSwrQkFBcUIsRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLCtDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsNkZBQTZGO1FBQzdGLCtGQUErRjtRQUMvRixJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFFaEQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN2RDtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxzRUFBc0U7SUFDOUQsNkJBQTZCLENBQUMsVUFBeUI7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFVBQVU7YUFDWixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDcEQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBN0VELGtEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuXG5pbXBvcnQge0NsYXNzTmFtZVVwZ3JhZGVEYXRhfSBmcm9tICcuLi9kYXRhJztcbmltcG9ydCB7XG4gIGlzRXhwb3J0U3BlY2lmaWVyTm9kZSxcbiAgaXNJbXBvcnRTcGVjaWZpZXJOb2RlLFxuICBpc05hbWVzcGFjZUltcG9ydE5vZGUsXG59IGZyb20gJy4uL3R5cGVzY3JpcHQvaW1wb3J0cyc7XG5pbXBvcnQge1xuICBpc01hdGVyaWFsRXhwb3J0RGVjbGFyYXRpb24sXG4gIGlzTWF0ZXJpYWxJbXBvcnREZWNsYXJhdGlvbixcbn0gZnJvbSAnLi4vdHlwZXNjcmlwdC9tb2R1bGUtc3BlY2lmaWVycyc7XG5pbXBvcnQge2dldFZlcnNpb25VcGdyYWRlRGF0YSwgVXBncmFkZURhdGF9IGZyb20gJy4uL3VwZ3JhZGUtZGF0YSc7XG5cbi8qKlxuICogTWlncmF0aW9uIHRoYXQgd2Fsa3MgdGhyb3VnaCBldmVyeSBpZGVudGlmaWVyIHRoYXQgaXMgcGFydCBvZiBBbmd1bGFyIE1hdGVyaWFsIG9yIHRociBDREtcbiAqIGFuZCByZXBsYWNlcyB0aGUgb3V0ZGF0ZWQgbmFtZSB3aXRoIHRoZSBuZXcgb25lIGlmIHNwZWNpZmllZCBpbiB0aGUgdXBncmFkZSBkYXRhLlxuICovXG4vLyBUT0RPOiByZXdvcmsgdGhpcyBydWxlIHRvIGlkZW50aWZ5IHN5bWJvbHMgdXNpbmcgdGhlIGltcG9ydCBpZGVudGlmaWVyIHJlc29sdmVyLiBUaGlzXG4vLyBtYWtlcyBpdCBtb3JlIHJvYnVzdCwgbGVzcyBBU1QgY29udm9sdXRlZCBhbmQgaXMgbW9yZSBUeXBlU2NyaXB0IEFTVCBpZGlvbWF0aWMuIENPTVAtMzAwLlxuZXhwb3J0IGNsYXNzIENsYXNzTmFtZXNNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqIENoYW5nZSBkYXRhIHRoYXQgdXBncmFkZXMgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YTogQ2xhc3NOYW1lVXBncmFkZURhdGFbXSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnY2xhc3NOYW1lcycpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGlkZW50aWZpZXIgbmFtZXMgdGhhdCBoYXZlIGJlZW4gaW1wb3J0ZWQgZnJvbSBgQGFuZ3VsYXIvbWF0ZXJpYWxgIG9yIGBAYW5ndWxhci9jZGtgXG4gICAqIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlIGFuZCB0aGVyZWZvcmUgY2FuIGJlIGNvbnNpZGVyZWQgdHJ1c3RlZC5cbiAgICovXG4gIHRydXN0ZWRJZGVudGlmaWVyczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgLyoqIExpc3Qgb2YgbmFtZXNwYWNlcyB0aGF0IGhhdmUgYmVlbiBpbXBvcnRlZCBmcm9tIGBAYW5ndWxhci9tYXRlcmlhbGAgb3IgYEBhbmd1bGFyL2Nka2AuICovXG4gIHRydXN0ZWROYW1lc3BhY2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICAvLyBPbmx5IGVuYWJsZSB0aGUgbWlncmF0aW9uIHJ1bGUgaWYgdGhlcmUgaXMgdXBncmFkZSBkYXRhLlxuICBlbmFibGVkID0gdGhpcy5kYXRhLmxlbmd0aCAhPT0gMDtcblxuICBvdmVycmlkZSB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSk6IHZvaWQge1xuICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZSkpIHtcbiAgICAgIHRoaXMuX3Zpc2l0SWRlbnRpZmllcihub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWV0aG9kIHRoYXQgaXMgY2FsbGVkIGZvciBldmVyeSBpZGVudGlmaWVyIGluc2lkZSBvZiB0aGUgc3BlY2lmaWVkIHByb2plY3QuICovXG4gIHByaXZhdGUgX3Zpc2l0SWRlbnRpZmllcihpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKSB7XG4gICAgLy8gRm9yIGlkZW50aWZpZXJzIHRoYXQgYXJlbid0IGxpc3RlZCBpbiB0aGUgY2xhc3NOYW1lIGRhdGEsIHRoZSB3aG9sZSBjaGVjayBjYW4gYmVcbiAgICAvLyBza2lwcGVkIHNhZmVseS5cbiAgICBpZiAoIXRoaXMuZGF0YS5zb21lKGRhdGEgPT4gZGF0YS5yZXBsYWNlID09PSBpZGVudGlmaWVyLnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRm9yIG5hbWVzcGFjZSBpbXBvcnRzIHRoYXQgYXJlIHJlZmVycmluZyB0byBBbmd1bGFyIE1hdGVyaWFsIG9yIHRoZSBDREssIHdlIHN0b3JlIHRoZVxuICAgIC8vIG5hbWVzcGFjZSBuYW1lIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gc2FmZWx5IGZpbmQgaWRlbnRpZmllcnMgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlXG4gICAgLy8gZGV2ZWxvcGVyJ3MgYXBwbGljYXRpb24uXG4gICAgaWYgKGlzTmFtZXNwYWNlSW1wb3J0Tm9kZShpZGVudGlmaWVyKSAmJiBpc01hdGVyaWFsSW1wb3J0RGVjbGFyYXRpb24oaWRlbnRpZmllcikpIHtcbiAgICAgIHRoaXMudHJ1c3RlZE5hbWVzcGFjZXMuYWRkKGlkZW50aWZpZXIudGV4dCk7XG5cbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgIH1cblxuICAgIC8vIEZvciBleHBvcnQgZGVjbGFyYXRpb25zIHRoYXQgYXJlIHJlZmVycmluZyB0byBBbmd1bGFyIE1hdGVyaWFsIG9yIHRoZSBDREssIHRoZSBpZGVudGlmaWVyXG4gICAgLy8gY2FuIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQgdG8gdGhlIG5ldyBuYW1lLlxuICAgIGlmIChpc0V4cG9ydFNwZWNpZmllck5vZGUoaWRlbnRpZmllcikgJiYgaXNNYXRlcmlhbEV4cG9ydERlY2xhcmF0aW9uKGlkZW50aWZpZXIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRmFpbHVyZVdpdGhSZXBsYWNlbWVudChpZGVudGlmaWVyKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgaW1wb3J0IGRlY2xhcmF0aW9ucyB0aGF0IGFyZSByZWZlcnJpbmcgdG8gQW5ndWxhciBNYXRlcmlhbCBvciB0aGUgQ0RLLCB0aGUgbmFtZSBvZlxuICAgIC8vIHRoZSBpbXBvcnQgaWRlbnRpZmllcnMuIFRoaXMgYWxsb3dzIHVzIHRvIGlkZW50aWZ5IGlkZW50aWZpZXJzIHRoYXQgYmVsb25nIHRvIE1hdGVyaWFsIGFuZFxuICAgIC8vIHRoZSBDREssIGFuZCB3ZSB3b24ndCBhY2NpZGVudGFsbHkgdG91Y2ggYSBkZXZlbG9wZXIncyBpZGVudGlmaWVyLlxuICAgIGlmIChpc0ltcG9ydFNwZWNpZmllck5vZGUoaWRlbnRpZmllcikgJiYgaXNNYXRlcmlhbEltcG9ydERlY2xhcmF0aW9uKGlkZW50aWZpZXIpKSB7XG4gICAgICB0aGlzLnRydXN0ZWRJZGVudGlmaWVycy5hZGQoaWRlbnRpZmllci50ZXh0KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUZhaWx1cmVXaXRoUmVwbGFjZW1lbnQoaWRlbnRpZmllcik7XG4gICAgfVxuXG4gICAgLy8gSW4gY2FzZSB0aGUgaWRlbnRpZmllciBpcyBwYXJ0IG9mIGEgcHJvcGVydHkgYWNjZXNzIGV4cHJlc3Npb24sIHdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhlXG4gICAgLy8gcHJvcGVydHkgYWNjZXNzIG9yaWdpbmF0ZXMgZnJvbSBhIG5hbWVzcGFjZSB0aGF0IGhhcyBiZWVuIGltcG9ydGVkIGZyb20gTWF0ZXJpYWwgb3IgdGhlIENESy5cbiAgICBpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oaWRlbnRpZmllci5wYXJlbnQpKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gaWRlbnRpZmllci5wYXJlbnQuZXhwcmVzc2lvbjtcblxuICAgICAgaWYgKHRzLmlzSWRlbnRpZmllcihleHByZXNzaW9uKSAmJiB0aGlzLnRydXN0ZWROYW1lc3BhY2VzLmhhcyhleHByZXNzaW9uLnRleHQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50cnVzdGVkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIudGV4dCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZmFpbHVyZSBhbmQgcmVwbGFjZW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllci4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRmFpbHVyZVdpdGhSZXBsYWNlbWVudChpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY2xhc3NEYXRhID0gdGhpcy5kYXRhLmZpbmQoZGF0YSA9PiBkYXRhLnJlcGxhY2UgPT09IGlkZW50aWZpZXIudGV4dCkhO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUoaWRlbnRpZmllci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5maWxlU3lzdGVtXG4gICAgICAuZWRpdChmaWxlUGF0aClcbiAgICAgIC5yZW1vdmUoaWRlbnRpZmllci5nZXRTdGFydCgpLCBpZGVudGlmaWVyLmdldFdpZHRoKCkpXG4gICAgICAuaW5zZXJ0UmlnaHQoaWRlbnRpZmllci5nZXRTdGFydCgpLCBjbGFzc0RhdGEucmVwbGFjZVdpdGgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { Migration } from '../../update-tool/migration';
10
+ import { UpgradeData } from '../upgrade-data';
11
+ /**
12
+ * Migration that visits every TypeScript new expression or super call and checks if
13
+ * the parameter type signature is invalid and needs to be updated manually.
14
+ */
15
+ export declare class ConstructorSignatureMigration extends Migration<UpgradeData> {
16
+ data: string[];
17
+ enabled: boolean;
18
+ visitNode(node: ts.Node): void;
19
+ /**
20
+ * Method that will be called for each source file of the upgrade project. In order to
21
+ * properly determine invalid constructor signatures, we take advantage of the pre-emit
22
+ * diagnostics from TypeScript.
23
+ *
24
+ * By using the diagnostics, the migration can handle type assignability. Not using
25
+ * diagnostics would mean that we need to use simple type equality checking which is
26
+ * too strict. See related issue: https://github.com/Microsoft/TypeScript/issues/9879
27
+ */
28
+ private _visitSourceFile;
29
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ConstructorSignatureMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const version_changes_1 = require("../../update-tool/version-changes");
14
+ /**
15
+ * List of diagnostic codes that refer to pre-emit diagnostics which indicate invalid
16
+ * new expression or super call signatures. See the list of diagnostics here:
17
+ *
18
+ * https://github.com/Microsoft/TypeScript/blob/master/src/compiler/diagnosticMessages.json
19
+ */
20
+ const signatureErrorDiagnostics = [
21
+ // Type not assignable error diagnostic.
22
+ 2345,
23
+ // Constructor argument length invalid diagnostics
24
+ 2554, 2555, 2556, 2557,
25
+ ];
26
+ /**
27
+ * Migration that visits every TypeScript new expression or super call and checks if
28
+ * the parameter type signature is invalid and needs to be updated manually.
29
+ */
30
+ class ConstructorSignatureMigration extends migration_1.Migration {
31
+ // Note that the data for this rule is not distinguished based on the target version because
32
+ // we don't keep track of the new signature and don't want to update incrementally.
33
+ // See: https://github.com/angular/components/pull/12970#issuecomment-418337566
34
+ data = (0, version_changes_1.getAllChanges)(this.upgradeData.constructorChecks);
35
+ // Only enable the migration rule if there is upgrade data.
36
+ enabled = this.data.length !== 0;
37
+ visitNode(node) {
38
+ if (ts.isSourceFile(node)) {
39
+ this._visitSourceFile(node);
40
+ }
41
+ }
42
+ /**
43
+ * Method that will be called for each source file of the upgrade project. In order to
44
+ * properly determine invalid constructor signatures, we take advantage of the pre-emit
45
+ * diagnostics from TypeScript.
46
+ *
47
+ * By using the diagnostics, the migration can handle type assignability. Not using
48
+ * diagnostics would mean that we need to use simple type equality checking which is
49
+ * too strict. See related issue: https://github.com/Microsoft/TypeScript/issues/9879
50
+ */
51
+ _visitSourceFile(sourceFile) {
52
+ // List of classes of which the constructor signature has changed.
53
+ const diagnostics = ts
54
+ .getPreEmitDiagnostics(this.program, sourceFile)
55
+ .filter(diagnostic => signatureErrorDiagnostics.includes(diagnostic.code))
56
+ .filter(diagnostic => diagnostic.start !== undefined);
57
+ for (const diagnostic of diagnostics) {
58
+ const node = findConstructorNode(diagnostic, sourceFile);
59
+ if (!node) {
60
+ continue;
61
+ }
62
+ const classType = this.typeChecker.getTypeAtLocation(node.expression);
63
+ const className = classType.symbol && classType.symbol.name;
64
+ const isNewExpression = ts.isNewExpression(node);
65
+ // Determine the class names of the actual construct signatures because we cannot assume that
66
+ // the diagnostic refers to a constructor of the actual expression. In case the constructor
67
+ // is inherited, we need to detect that the owner-class of the constructor is added to the
68
+ // constructor checks upgrade data. e.g. `class CustomCalendar extends MatCalendar {}`.
69
+ const signatureClassNames = classType
70
+ .getConstructSignatures()
71
+ .map(signature => getClassDeclarationOfSignature(signature))
72
+ .map(declaration => (declaration && declaration.name ? declaration.name.text : null))
73
+ .filter(Boolean);
74
+ // Besides checking the signature class names, we need to check the actual class name because
75
+ // there can be classes without an explicit constructor.
76
+ if (!this.data.includes(className) &&
77
+ !signatureClassNames.some(name => this.data.includes(name))) {
78
+ continue;
79
+ }
80
+ const classSignatures = classType
81
+ .getConstructSignatures()
82
+ .map(signature => getParameterTypesFromSignature(signature, this.typeChecker));
83
+ const expressionName = isNewExpression ? `new ${className}` : 'super';
84
+ const signatures = classSignatures
85
+ .map(signature => signature.map(t => (t === null ? 'any' : this.typeChecker.typeToString(t))))
86
+ .map(signature => `${expressionName}(${signature.join(', ')})`)
87
+ .join(' or ');
88
+ this.createFailureAtNode(node, `Found "${className}" constructed with ` +
89
+ `an invalid signature. Please manually update the ${expressionName} expression to ` +
90
+ `match the new signature${classSignatures.length > 1 ? 's' : ''}: ${signatures}`);
91
+ }
92
+ }
93
+ }
94
+ exports.ConstructorSignatureMigration = ConstructorSignatureMigration;
95
+ /** Resolves the type for each parameter in the specified signature. */
96
+ function getParameterTypesFromSignature(signature, typeChecker) {
97
+ return signature
98
+ .getParameters()
99
+ .map(param => param.declarations ? typeChecker.getTypeAtLocation(param.declarations[0]) : null);
100
+ }
101
+ /**
102
+ * Walks through each node of a source file in order to find a new-expression node or super-call
103
+ * expression node that is captured by the specified diagnostic.
104
+ */
105
+ function findConstructorNode(diagnostic, sourceFile) {
106
+ let resolvedNode = null;
107
+ const _visitNode = (node) => {
108
+ // Check whether the current node contains the diagnostic. If the node contains the diagnostic,
109
+ // walk deeper in order to find all constructor expression nodes.
110
+ if (node.getStart() <= diagnostic.start && node.getEnd() >= diagnostic.start) {
111
+ if (ts.isNewExpression(node) ||
112
+ (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.SuperKeyword)) {
113
+ resolvedNode = node;
114
+ }
115
+ ts.forEachChild(node, _visitNode);
116
+ }
117
+ };
118
+ ts.forEachChild(sourceFile, _visitNode);
119
+ return resolvedNode;
120
+ }
121
+ /** Determines the class declaration of the specified construct signature. */
122
+ function getClassDeclarationOfSignature(signature) {
123
+ let node = signature.getDeclaration();
124
+ // Handle signatures which don't have an actual declaration. This happens if a class
125
+ // does not have an explicitly written constructor.
126
+ if (!node) {
127
+ return null;
128
+ }
129
+ while (!ts.isSourceFile((node = node.parent))) {
130
+ if (ts.isClassDeclaration(node)) {
131
+ return node;
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3Itc2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL25nLXVwZGF0ZS9taWdyYXRpb25zL2NvbnN0cnVjdG9yLXNpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUFDakMsMkRBQXNEO0FBQ3RELHVFQUFnRTtBQUdoRTs7Ozs7R0FLRztBQUNILE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsd0NBQXdDO0lBQ3hDLElBQUk7SUFDSixrREFBa0Q7SUFDbEQsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSxxQkFBc0I7SUFDdkUsNEZBQTRGO0lBQzVGLG1GQUFtRjtJQUNuRiwrRUFBK0U7SUFDL0UsSUFBSSxHQUFHLElBQUEsK0JBQWEsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekQsMkRBQTJEO0lBQzNELE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFeEIsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLGdCQUFnQixDQUFDLFVBQXlCO1FBQ2hELGtFQUFrRTtRQUNsRSxNQUFNLFdBQVcsR0FBRyxFQUFFO2FBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO2FBQy9DLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDekUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztRQUV4RCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNwQyxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxTQUFTO2FBQ1Y7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzVELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakQsNkZBQTZGO1lBQzdGLDJGQUEyRjtZQUMzRiwwRkFBMEY7WUFDMUYsdUZBQXVGO1lBQ3ZGLE1BQU0sbUJBQW1CLEdBQUcsU0FBUztpQkFDbEMsc0JBQXNCLEVBQUU7aUJBQ3hCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMzRCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuQiw2RkFBNkY7WUFDN0Ysd0RBQXdEO1lBQ3hELElBQ0UsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQzlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSyxDQUFDLENBQUMsRUFDNUQ7Z0JBQ0EsU0FBUzthQUNWO1lBRUQsTUFBTSxlQUFlLEdBQUcsU0FBUztpQkFDOUIsc0JBQXNCLEVBQUU7aUJBQ3hCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVqRixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN0RSxNQUFNLFVBQVUsR0FBRyxlQUFlO2lCQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDZixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDNUU7aUJBQ0EsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2lCQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEIsSUFBSSxDQUFDLG1CQUFtQixDQUN0QixJQUFJLEVBQ0osVUFBVSxTQUFTLHFCQUFxQjtnQkFDdEMsb0RBQW9ELGNBQWMsaUJBQWlCO2dCQUNuRiwwQkFBMEIsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFBRSxDQUNuRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0Y7QUFqRkQsc0VBaUZDO0FBRUQsdUVBQXVFO0FBQ3ZFLFNBQVMsOEJBQThCLENBQ3JDLFNBQXVCLEVBQ3ZCLFdBQTJCO0lBRTNCLE9BQU8sU0FBUztTQUNiLGFBQWEsRUFBRTtTQUNmLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNYLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixVQUF5QixFQUN6QixVQUF5QjtJQUV6QixJQUFJLFlBQVksR0FBbUIsSUFBSSxDQUFDO0lBRXhDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBYSxFQUFFLEVBQUU7UUFDbkMsK0ZBQStGO1FBQy9GLGlFQUFpRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBTSxFQUFFO1lBQzlFLElBQ0UsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQ2xGO2dCQUNBLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDckI7WUFFRCxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUMsQ0FBQztJQUVGLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsU0FBUyw4QkFBOEIsQ0FBQyxTQUF1QjtJQUM3RCxJQUFJLElBQUksR0FBWSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0Msb0ZBQW9GO0lBQ3BGLG1EQUFtRDtJQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1FBQzdDLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtnZXRBbGxDaGFuZ2VzfSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC92ZXJzaW9uLWNoYW5nZXMnO1xuaW1wb3J0IHtVcGdyYWRlRGF0YX0gZnJvbSAnLi4vdXBncmFkZS1kYXRhJztcblxuLyoqXG4gKiBMaXN0IG9mIGRpYWdub3N0aWMgY29kZXMgdGhhdCByZWZlciB0byBwcmUtZW1pdCBkaWFnbm9zdGljcyB3aGljaCBpbmRpY2F0ZSBpbnZhbGlkXG4gKiBuZXcgZXhwcmVzc2lvbiBvciBzdXBlciBjYWxsIHNpZ25hdHVyZXMuIFNlZSB0aGUgbGlzdCBvZiBkaWFnbm9zdGljcyBoZXJlOlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9ibG9iL21hc3Rlci9zcmMvY29tcGlsZXIvZGlhZ25vc3RpY01lc3NhZ2VzLmpzb25cbiAqL1xuY29uc3Qgc2lnbmF0dXJlRXJyb3JEaWFnbm9zdGljcyA9IFtcbiAgLy8gVHlwZSBub3QgYXNzaWduYWJsZSBlcnJvciBkaWFnbm9zdGljLlxuICAyMzQ1LFxuICAvLyBDb25zdHJ1Y3RvciBhcmd1bWVudCBsZW5ndGggaW52YWxpZCBkaWFnbm9zdGljc1xuICAyNTU0LCAyNTU1LCAyNTU2LCAyNTU3LFxuXTtcblxuLyoqXG4gKiBNaWdyYXRpb24gdGhhdCB2aXNpdHMgZXZlcnkgVHlwZVNjcmlwdCBuZXcgZXhwcmVzc2lvbiBvciBzdXBlciBjYWxsIGFuZCBjaGVja3MgaWZcbiAqIHRoZSBwYXJhbWV0ZXIgdHlwZSBzaWduYXR1cmUgaXMgaW52YWxpZCBhbmQgbmVlZHMgdG8gYmUgdXBkYXRlZCBtYW51YWxseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yU2lnbmF0dXJlTWlncmF0aW9uIGV4dGVuZHMgTWlncmF0aW9uPFVwZ3JhZGVEYXRhPiB7XG4gIC8vIE5vdGUgdGhhdCB0aGUgZGF0YSBmb3IgdGhpcyBydWxlIGlzIG5vdCBkaXN0aW5ndWlzaGVkIGJhc2VkIG9uIHRoZSB0YXJnZXQgdmVyc2lvbiBiZWNhdXNlXG4gIC8vIHdlIGRvbid0IGtlZXAgdHJhY2sgb2YgdGhlIG5ldyBzaWduYXR1cmUgYW5kIGRvbid0IHdhbnQgdG8gdXBkYXRlIGluY3JlbWVudGFsbHkuXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9wdWxsLzEyOTcwI2lzc3VlY29tbWVudC00MTgzMzc1NjZcbiAgZGF0YSA9IGdldEFsbENoYW5nZXModGhpcy51cGdyYWRlRGF0YS5jb25zdHJ1Y3RvckNoZWNrcyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZCA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHtcbiAgICBpZiAodHMuaXNTb3VyY2VGaWxlKG5vZGUpKSB7XG4gICAgICB0aGlzLl92aXNpdFNvdXJjZUZpbGUobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHNvdXJjZSBmaWxlIG9mIHRoZSB1cGdyYWRlIHByb2plY3QuIEluIG9yZGVyIHRvXG4gICAqIHByb3Blcmx5IGRldGVybWluZSBpbnZhbGlkIGNvbnN0cnVjdG9yIHNpZ25hdHVyZXMsIHdlIHRha2UgYWR2YW50YWdlIG9mIHRoZSBwcmUtZW1pdFxuICAgKiBkaWFnbm9zdGljcyBmcm9tIFR5cGVTY3JpcHQuXG4gICAqXG4gICAqIEJ5IHVzaW5nIHRoZSBkaWFnbm9zdGljcywgdGhlIG1pZ3JhdGlvbiBjYW4gaGFuZGxlIHR5cGUgYXNzaWduYWJpbGl0eS4gTm90IHVzaW5nXG4gICAqIGRpYWdub3N0aWNzIHdvdWxkIG1lYW4gdGhhdCB3ZSBuZWVkIHRvIHVzZSBzaW1wbGUgdHlwZSBlcXVhbGl0eSBjaGVja2luZyB3aGljaCBpc1xuICAgKiB0b28gc3RyaWN0LiBTZWUgcmVsYXRlZCBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy85ODc5XG4gICAqL1xuICBwcml2YXRlIF92aXNpdFNvdXJjZUZpbGUoc291cmNlRmlsZTogdHMuU291cmNlRmlsZSkge1xuICAgIC8vIExpc3Qgb2YgY2xhc3NlcyBvZiB3aGljaCB0aGUgY29uc3RydWN0b3Igc2lnbmF0dXJlIGhhcyBjaGFuZ2VkLlxuICAgIGNvbnN0IGRpYWdub3N0aWNzID0gdHNcbiAgICAgIC5nZXRQcmVFbWl0RGlhZ25vc3RpY3ModGhpcy5wcm9ncmFtLCBzb3VyY2VGaWxlKVxuICAgICAgLmZpbHRlcihkaWFnbm9zdGljID0+IHNpZ25hdHVyZUVycm9yRGlhZ25vc3RpY3MuaW5jbHVkZXMoZGlhZ25vc3RpYy5jb2RlKSlcbiAgICAgIC5maWx0ZXIoZGlhZ25vc3RpYyA9PiBkaWFnbm9zdGljLnN0YXJ0ICE9PSB1bmRlZmluZWQpO1xuXG4gICAgZm9yIChjb25zdCBkaWFnbm9zdGljIG9mIGRpYWdub3N0aWNzKSB7XG4gICAgICBjb25zdCBub2RlID0gZmluZENvbnN0cnVjdG9yTm9kZShkaWFnbm9zdGljLCBzb3VyY2VGaWxlKTtcblxuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjbGFzc1R5cGUgPSB0aGlzLnR5cGVDaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKG5vZGUuZXhwcmVzc2lvbik7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBjbGFzc1R5cGUuc3ltYm9sICYmIGNsYXNzVHlwZS5zeW1ib2wubmFtZTtcbiAgICAgIGNvbnN0IGlzTmV3RXhwcmVzc2lvbiA9IHRzLmlzTmV3RXhwcmVzc2lvbihub2RlKTtcblxuICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBjbGFzcyBuYW1lcyBvZiB0aGUgYWN0dWFsIGNvbnN0cnVjdCBzaWduYXR1cmVzIGJlY2F1c2Ugd2UgY2Fubm90IGFzc3VtZSB0aGF0XG4gICAgICAvLyB0aGUgZGlhZ25vc3RpYyByZWZlcnMgdG8gYSBjb25zdHJ1Y3RvciBvZiB0aGUgYWN0dWFsIGV4cHJlc3Npb24uIEluIGNhc2UgdGhlIGNvbnN0cnVjdG9yXG4gICAgICAvLyBpcyBpbmhlcml0ZWQsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoYXQgdGhlIG93bmVyLWNsYXNzIG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBhZGRlZCB0byB0aGVcbiAgICAgIC8vIGNvbnN0cnVjdG9yIGNoZWNrcyB1cGdyYWRlIGRhdGEuIGUuZy4gYGNsYXNzIEN1c3RvbUNhbGVuZGFyIGV4dGVuZHMgTWF0Q2FsZW5kYXIge31gLlxuICAgICAgY29uc3Qgc2lnbmF0dXJlQ2xhc3NOYW1lcyA9IGNsYXNzVHlwZVxuICAgICAgICAuZ2V0Q29uc3RydWN0U2lnbmF0dXJlcygpXG4gICAgICAgIC5tYXAoc2lnbmF0dXJlID0+IGdldENsYXNzRGVjbGFyYXRpb25PZlNpZ25hdHVyZShzaWduYXR1cmUpKVxuICAgICAgICAubWFwKGRlY2xhcmF0aW9uID0+IChkZWNsYXJhdGlvbiAmJiBkZWNsYXJhdGlvbi5uYW1lID8gZGVjbGFyYXRpb24ubmFtZS50ZXh0IDogbnVsbCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgIC8vIEJlc2lkZXMgY2hlY2tpbmcgdGhlIHNpZ25hdHVyZSBjbGFzcyBuYW1lcywgd2UgbmVlZCB0byBjaGVjayB0aGUgYWN0dWFsIGNsYXNzIG5hbWUgYmVjYXVzZVxuICAgICAgLy8gdGhlcmUgY2FuIGJlIGNsYXNzZXMgd2l0aG91dCBhbiBleHBsaWNpdCBjb25zdHJ1Y3Rvci5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZGF0YS5pbmNsdWRlcyhjbGFzc05hbWUpICYmXG4gICAgICAgICFzaWduYXR1cmVDbGFzc05hbWVzLnNvbWUobmFtZSA9PiB0aGlzLmRhdGEuaW5jbHVkZXMobmFtZSEpKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjbGFzc1NpZ25hdHVyZXMgPSBjbGFzc1R5cGVcbiAgICAgICAgLmdldENvbnN0cnVjdFNpZ25hdHVyZXMoKVxuICAgICAgICAubWFwKHNpZ25hdHVyZSA9PiBnZXRQYXJhbWV0ZXJUeXBlc0Zyb21TaWduYXR1cmUoc2lnbmF0dXJlLCB0aGlzLnR5cGVDaGVja2VyKSk7XG5cbiAgICAgIGNvbnN0IGV4cHJlc3Npb25OYW1lID0gaXNOZXdFeHByZXNzaW9uID8gYG5ldyAke2NsYXNzTmFtZX1gIDogJ3N1cGVyJztcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBjbGFzc1NpZ25hdHVyZXNcbiAgICAgICAgLm1hcChzaWduYXR1cmUgPT5cbiAgICAgICAgICBzaWduYXR1cmUubWFwKHQgPT4gKHQgPT09IG51bGwgPyAnYW55JyA6IHRoaXMudHlwZUNoZWNrZXIudHlwZVRvU3RyaW5nKHQpKSksXG4gICAgICAgIClcbiAgICAgICAgLm1hcChzaWduYXR1cmUgPT4gYCR7ZXhwcmVzc2lvbk5hbWV9KCR7c2lnbmF0dXJlLmpvaW4oJywgJyl9KWApXG4gICAgICAgIC5qb2luKCcgb3IgJyk7XG5cbiAgICAgIHRoaXMuY3JlYXRlRmFpbHVyZUF0Tm9kZShcbiAgICAgICAgbm9kZSxcbiAgICAgICAgYEZvdW5kIFwiJHtjbGFzc05hbWV9XCIgY29uc3RydWN0ZWQgd2l0aCBgICtcbiAgICAgICAgICBgYW4gaW52YWxpZCBzaWduYXR1cmUuIFBsZWFzZSBtYW51YWxseSB1cGRhdGUgdGhlICR7ZXhwcmVzc2lvbk5hbWV9IGV4cHJlc3Npb24gdG8gYCArXG4gICAgICAgICAgYG1hdGNoIHRoZSBuZXcgc2lnbmF0dXJlJHtjbGFzc1NpZ25hdHVyZXMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfTogJHtzaWduYXR1cmVzfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vKiogUmVzb2x2ZXMgdGhlIHR5cGUgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHRoZSBzcGVjaWZpZWQgc2lnbmF0dXJlLiAqL1xuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyVHlwZXNGcm9tU2lnbmF0dXJlKFxuICBzaWduYXR1cmU6IHRzLlNpZ25hdHVyZSxcbiAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuKTogKHRzLlR5cGUgfCBudWxsKVtdIHtcbiAgcmV0dXJuIHNpZ25hdHVyZVxuICAgIC5nZXRQYXJhbWV0ZXJzKClcbiAgICAubWFwKHBhcmFtID0+XG4gICAgICBwYXJhbS5kZWNsYXJhdGlvbnMgPyB0eXBlQ2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihwYXJhbS5kZWNsYXJhdGlvbnNbMF0pIDogbnVsbCxcbiAgICApO1xufVxuXG4vKipcbiAqIFdhbGtzIHRocm91Z2ggZWFjaCBub2RlIG9mIGEgc291cmNlIGZpbGUgaW4gb3JkZXIgdG8gZmluZCBhIG5ldy1leHByZXNzaW9uIG5vZGUgb3Igc3VwZXItY2FsbFxuICogZXhwcmVzc2lvbiBub2RlIHRoYXQgaXMgY2FwdHVyZWQgYnkgdGhlIHNwZWNpZmllZCBkaWFnbm9zdGljLlxuICovXG5mdW5jdGlvbiBmaW5kQ29uc3RydWN0b3JOb2RlKFxuICBkaWFnbm9zdGljOiB0cy5EaWFnbm9zdGljLFxuICBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlLFxuKTogdHMuQ2FsbEV4cHJlc3Npb24gfCB0cy5OZXdFeHByZXNzaW9uIHwgbnVsbCB7XG4gIGxldCByZXNvbHZlZE5vZGU6IHRzLk5vZGUgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBfdmlzaXROb2RlID0gKG5vZGU6IHRzLk5vZGUpID0+IHtcbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBjdXJyZW50IG5vZGUgY29udGFpbnMgdGhlIGRpYWdub3N0aWMuIElmIHRoZSBub2RlIGNvbnRhaW5zIHRoZSBkaWFnbm9zdGljLFxuICAgIC8vIHdhbGsgZGVlcGVyIGluIG9yZGVyIHRvIGZpbmQgYWxsIGNvbnN0cnVjdG9yIGV4cHJlc3Npb24gbm9kZXMuXG4gICAgaWYgKG5vZGUuZ2V0U3RhcnQoKSA8PSBkaWFnbm9zdGljLnN0YXJ0ISAmJiBub2RlLmdldEVuZCgpID49IGRpYWdub3N0aWMuc3RhcnQhKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRzLmlzTmV3RXhwcmVzc2lvbihub2RlKSB8fFxuICAgICAgICAodHMuaXNDYWxsRXhwcmVzc2lvbihub2RlKSAmJiBub2RlLmV4cHJlc3Npb24ua2luZCA9PT0gdHMuU3ludGF4S2luZC5TdXBlcktleXdvcmQpXG4gICAgICApIHtcbiAgICAgICAgcmVzb2x2ZWROb2RlID0gbm9kZTtcbiAgICAgIH1cblxuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIF92aXNpdE5vZGUpO1xuICAgIH1cbiAgfTtcblxuICB0cy5mb3JFYWNoQ2hpbGQoc291cmNlRmlsZSwgX3Zpc2l0Tm9kZSk7XG5cbiAgcmV0dXJuIHJlc29sdmVkTm9kZTtcbn1cblxuLyoqIERldGVybWluZXMgdGhlIGNsYXNzIGRlY2xhcmF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgY29uc3RydWN0IHNpZ25hdHVyZS4gKi9cbmZ1bmN0aW9uIGdldENsYXNzRGVjbGFyYXRpb25PZlNpZ25hdHVyZShzaWduYXR1cmU6IHRzLlNpZ25hdHVyZSk6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsIHtcbiAgbGV0IG5vZGU6IHRzLk5vZGUgPSBzaWduYXR1cmUuZ2V0RGVjbGFyYXRpb24oKTtcbiAgLy8gSGFuZGxlIHNpZ25hdHVyZXMgd2hpY2ggZG9uJ3QgaGF2ZSBhbiBhY3R1YWwgZGVjbGFyYXRpb24uIFRoaXMgaGFwcGVucyBpZiBhIGNsYXNzXG4gIC8vIGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXRseSB3cml0dGVuIGNvbnN0cnVjdG9yLlxuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICB3aGlsZSAoIXRzLmlzU291cmNlRmlsZSgobm9kZSA9IG5vZGUucGFyZW50KSkpIHtcbiAgICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
10
+ import { Migration } from '../../update-tool/migration';
11
+ import { CssSelectorUpgradeData } from '../data/css-selectors';
12
+ import { UpgradeData } from '../upgrade-data';
13
+ /**
14
+ * Migration that walks through every string literal, template and stylesheet in
15
+ * order to migrate outdated CSS selectors to the new selector.
16
+ */
17
+ export declare class CssSelectorsMigration extends Migration<UpgradeData> {
18
+ /** Change data that upgrades to the specified target version. */
19
+ data: CssSelectorUpgradeData[];
20
+ enabled: boolean;
21
+ visitNode(node: ts.Node): void;
22
+ visitTemplate(template: ResolvedResource): void;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ private _visitStringLiteralLike;
25
+ private _replaceSelector;
26
+ }